Пример #1
0
    def handle(self, *args, **options):
        logging.critical('start post lab orders ....')
        try:
            lbos = LabOrder.objects.filter(is_sync=False).exclude(vendor='0')

            count = lbos.count()
            index = 0

            for lbo in lbos:
                index += 1
                try:
                    logging.critical('Index: %s / %s' % (index,count))
                    if lbo.is_sync:
                        logging.critical('Order is Sync, passed ....')
                        continue

                    if lbo.vendor=='0':
                        logging.critical("Order has'nt been distributed to any vendor. passed ....")
                        continue

                    logging.critical('Lab Order Number: %s' % lbo.lab_number)
                    loc = lab_order_controller()
                    loc.post_mrp(lbo)
                    logging.critical('Post Ok!')
                except Exception as ex:
                    logging.critical(str(ex))

        except Exception as e:
            logging.critical(str(e))

        logging.critical('post lab orders completed ....')
Пример #2
0
    def add(self, request, data_dict):
        rm = response_message()
        rm.code = -9
        rm.message = '准备操作'
        try:
            logging.debug('开始进入 ...')
            logging.debug('没有重复记录')
            with transaction.atomic():
                loc = lab_order_controller()
                lbos = loc.get_by_entity(data_dict.get('lab_number'))

                lbo = None
                if len(lbos) > 0:
                    lbo = lbos[0]

                if not lbo == None:
                    objs = glasses_return.objects.all().order_by('-id')[:1]
                    # 2019.03.30 by guof.
                    # 去掉针对连续重复生成同一订单号的成镜返工单的限制
                    # 调整针对连续重复操作的限制规则
                    if len(objs) > 0:
                        ob = objs[0]
                        if ob.lab_number == lbo.lab_number \
                                and lbo.status == 'GLASSES_RETURN':
                            rm.code = -3
                            rm.message = '疑似重复操作'
                            return rm

                    if not lbo.status == 'FINAL_INSPECTION_NO' and \
                            not lbo.status == 'GLASSES_RECEIVE' and \
                            not lbo.status == 'FINAL_INSPECTION_YES' and \
                            not lbo.status == 'FINAL_INSPECTION':
                        rm.code = -4
                        rm.message = '只有 待装配/装配完成/终检/终检合格或终检不合格 的状态时才可以生成镜片返工; \n该订单当前状态为:{%s}' % lbo.get_status_display()
                        return rm

                    if data_dict.get('lens_check') == 'true':
                        lenreason = LensReason.objects.get(reason_code=data_dict.get('reason_code'))
                        obj = glasses_return()
                        obj.laborder_id = lbo.id
                        obj.lab_number = lbo.lab_number
                        obj.laborder_entity = lbo
                        obj.user_id = request.user.id
                        obj.user_name = request.user.username
                        obj.doc_type = '1'
                        obj.assembler_id = data_dict.get('assembler')
                        obj.assembler_user_code = data_dict.get('assembler_user_code')
                        obj.assembler_user_name = data_dict.get('assembler_user_name')
                        obj.reason_code = data_dict.get('reason_code')
                        obj.reason = lenreason.reason_name
                        obj.lens_return = data_dict.get('lens_return')
                        if obj.lens_return == '0':
                            obj.lens_return_qty = 2
                        else:
                            obj.lens_return_qty = 1
                        obj.comments = data_dict.get('comments')
                        obj.save()
                    if data_dict.get('frame_check') == 'true':
                        framereason = FrameReason.objects.get(reason_code=data_dict.get('frame_reason'))
                        obj = glasses_return()
                        obj.laborder_id = lbo.id
                        obj.lab_number = lbo.lab_number
                        obj.laborder_entity = lbo
                        obj.user_id = request.user.id
                        obj.user_name = request.user.username
                        obj.doc_type = '2'
                        obj.assembler_id = data_dict.get('assembler')
                        obj.assembler_user_code = data_dict.get('assembler_user_code')
                        obj.assembler_user_name = data_dict.get('assembler_user_name')
                        obj.reason_code = data_dict.get('frame_reason')
                        obj.reason = framereason.reason_name
                        obj.lens_return = ''
                        obj.lens_return_qty = 0
                        obj.comments = data_dict.get('frame_comments')
                        obj.save()
                    lbo.status = 'GLASSES_RETURN'
                    lbo.is_glasses_return = True
                    lbo.save()
                    tloc = tracking_lab_order_controller()
                    tloc.tracking(lbo, request.user, 'GLASSES_RETURN', '成镜返工', obj.reason)

                    rm.obj = obj
                    rm.code = 0
                    rm.message = '此操作已成功'

                else:
                    rm.code = -4
                    rm.message = '订单未找到'
                    return rm

        except Exception as e:
            logging.debug(str(e))
            rm.capture_execption(e)

        return rm
Пример #3
0
    def add(self, request, lab_order_entity, qualified, reason_code, reason, act_lens_sku, act_lens_name):
        rm = response_message()
        rm.code = -9
        rm.message = '准备操作'

        try:
            logging.debug('开始进入 ...')
            logging.debug('没有重复记录')
            logging.debug('------------------------------------------------------------')
            logging.debug('lab entity: %s' % lab_order_entity)

            logging.debug('------------------------------------------------------------')
            # with transaction.atomic():
            loc = lab_order_controller()
            lbos = loc.get_by_entity(lab_order_entity)

            if len(lbos) == 0:
                rm.code = -20
                rm.message = "未找到订单记录,请求的订单号[%s]" % lab_order_entity
                return rm

            lbo = None
            if len(lbos) > 0:
                lbo = lbos[0]

            if not lbo == None:
                objs = preliminary_checking.objects.all().order_by('-id')[:1]
                if len(objs) > 0:
                    ob = objs[0]
                    if ob.lab_number == lbo.lab_number:
                        rm.code = -3
                        rm.message = '疑似重复操作'
                        return rm

                if not lbo.status == 'LENS_REGISTRATION':
                    rm.code = -4
                    rm.message = '只有镜片来片登记之后 的状态时才可以初检; 该订单当前状态为:{%s}' % lbo.get_status_display()
                    return rm

                obj = preliminary_checking()
                obj.laborder_id = lbo.id
                obj.lab_number = lbo.lab_number
                obj.laborder_entity = lbo
                obj.user_id = request.user.id
                obj.user_name = request.user.username
                obj.is_qualified = qualified
                obj.reason_code = reason_code
                obj.reason = reason
                obj.save()

                if qualified == True:
                    logging.debug('')
                    lc = lens_collection()
                    lc.pc_entity = obj
                    lc.laborder_entity = lbo
                    lc.laborder_id = lbo.id
                    lc.lab_number = lbo.lab_number
                    lc.user_id = request.user.id
                    lc.user_name = request.user.username
                    lc.save()

                    if not act_lens_sku == '':
                        if not lbo.act_lens_sku == act_lens_sku:
                            lbo.act_lens_sku = act_lens_sku
                            lbo.act_lens_name = act_lens_name

                    self.update_status(lbo.id)
                    # lbo.status = 'LENS_RECEIVE'
                    # lbo.save()
                    tloc = tracking_lab_order_controller()
                    tloc.tracking(lbo, request.user, 'LENS_RECEIVE')
                    lbo.status = 'LENS_RECEIVE'
                    lbo.save()

                    # from django.db import connection
                    # cursor = connection.cursor()
                    # # 更新操作
                    # cursor.execute(
                    #     "update oms_laborder set status='LENS_RECEIVE' where lab_number='%s'" % lbo.lab_number)

                    logging.debug('1.----%s' % qualified)
                else:
                    lc = lens_return()
                    lc.pc_entity = obj
                    lc.laborder_entity = lbo
                    lc.laborder_id = lbo.id
                    lc.lab_number = lbo.lab_number
                    lc.user_id = request.user.id
                    lc.user_name = request.user.username
                    lc.reason_code = reason_code
                    lc.reason = reason
                    lc.save()

                    lbo.status = 'LENS_RETURN'

                    lbo.save()
                    tloc = tracking_lab_order_controller()
                    tloc.tracking(lbo, request.user, 'LENS_RETURN', '镜片退货', reason)
                    logging.debug('2.----%s' % qualified)

                rm.obj = obj
                rm.code = 0
                rm.message = '此操作已成功'

            else:
                rm.code = -4
                rm.message = '订单未找到'
                return rm

        except Exception as e:
            logging.debug(str(e))
            rm.capture_execption(e)

        return rm
Пример #4
0
    def add(self, request, lab_order_entity):
        rm = response_message()
        rm.code = -9
        rm.message = '准备操作'

        try:
            with transaction.atomic():
                logging.debug('开始进入 ...')
                logging.debug('没有重复记录')

                loc = lab_order_controller()
                lbos = loc.get_by_entity(lab_order_entity)

                lbo = None
                if len(lbos) > 0:
                    lbo = lbos[0]

                if not lbo == None:
                    objs = lens_registration.objects.all().order_by('-id')[:1]
                    if len(objs) > 0:
                        ob = objs[0]
                        if ob.lab_number == lbo.lab_number and \
                                lbo.status == 'LENS_REGISTRATION':
                            rm.code = -3
                            rm.message = '疑似重复操作'
                            return rm

                    if not lbo.status == 'PRINT_DATE' and not lbo.status == 'LENS_RETURN' \
                            and not lbo.status == 'GLASSES_RETURN' and not lbo.status == 'LENS_OUTBOUND' \
                            and not lbo.status == 'REQUEST_NOTES' and not lbo.status == 'FRAME_OUTBOUND':
                        rm.code = -4
                        rm.message = '只有订单处于镜片生产/镜片退货/成镜退货/镜片出库的状态时才可以执行来片登记; ' \
                                     '\n该订单当前状态为:{%s}' % lbo.get_status_display()
                        return rm

                    # VD 6 ,VD 8,lens_order为已出库状态才能来片登记
                    if lbo.vendor == '6' or lbo.vendor == '8':
                        los = lens_order.objects.filter(lab_number=lbo.lab_number)
                        for lo in los:
                            if not lo.status == 'LENS_OUTBOUND':
                                rm.code = -4
                                rm.message = '此订单未完成镜片出库'
                                return rm

                    obj = lens_registration()
                    obj.laborder_id = lbo.id
                    obj.lab_number = lbo.lab_number
                    obj.laborder_entity = lbo
                    obj.user_id = request.user.id
                    obj.user_name = request.user.username
                    obj.save()

                    lbo.status = 'LENS_REGISTRATION'
                    lbo.save()

                    tloc = tracking_lab_order_controller()
                    tloc.tracking(lbo, request.user, 'LENS_REGISTRATION')

                    rm.obj = obj
                    rm.code = 0
                    rm.message = '此操作已成功'
                else:
                    rm.code = -4
                    rm.message = '订单未找到'
                    return rm

        except Exception as e:
            logging.debug(str(e))
            rm.capture_execption(e)

        return rm
    def handle(self, *args, **options):
        logging.critical('start sync_pg_orderitem_ordertype ....')
        try:
            from util.ups import run
            from util.utils import LogHelper

            start_date = '2020-01-01 00:00:00'
            sd = datetime.datetime.strptime(start_date, '%Y-%m-%d %H:%M:%S')

            lh = LogHelper(settings.BASE_DIR + '/logs/sync_pgorder_shipments_tracking_code_maintenance.csv')
            lbos = LabOrder.objects.filter(
                create_at__gte=sd
                , status='SHIPPING').filter(
                act_ship_direction='STANDARD'
            ) \
                .only(
                'id',
                'lab_number',
                'order_number',
                'shipping_number')

            lbos_count = lbos.count()

            idx = 1
            for lbo in lbos:

                try:
                    logging.critical('----------------------------------------')
                    logging.critical('index: %s / count:%s' % (idx, lbos_count))

                    msg = ',%s,%s,%s' % (
                        lbo.order_number,
                        lbo.lab_number,
                        lbo.shipping_number)
                    logging.critical(msg)

                    shipping_number = lbo.shipping_number
                    lab_number = lbo.lab_number

                    sleep_life = random.randint(1, 2)
                    logging.critical('sleep: %s Seconds ....' % sleep_life)
                    time.sleep(sleep_life)
                    loc = lab_order_controller()
                    resp = loc.get_tracking_code(lab_number=lab_number)
                    logging.debug(resp)

                    tracking_code = resp.get('data', '')
                    if tracking_code:
                        LabOrder.objects.filter(lab_number=lab_number).update(tracking_code=tracking_code)
                        lh.write(msg)
                    else:
                        logging.debug('tracking is null, passed ....')
                except Exception as ex:
                    logging.error(str(ex))

                idx += 1

        except Exception as e:
            logging.critical(str(e))

        logging.critical('end sync_pg_orderitem_ordertype ....')
Пример #6
0
def redirect_construction_voucher_finished_glasses_quick_submit(request):
    _form_data = {}
    _form_data['request_feature'] = 'Finished Glasses'
    _items = []
    _paginator = None
    _id = -1

    _id = request.GET.get('id', -1)
    logging.debug('id: %s' % _id)

    _form_data['id'] = _id
    try:
        if _id != -1:
            loc = lab_order_controller()
            lbos = loc.get_by_entity(_id)
            lbo = lbos[0]
            lab_number = lbo.lab_number

            if not lbo.status == 'LENS_RECEIVE' and not lbo.status == 'GLASSES_RETURN' and not lbo.status == 'COLLECTION' and not lbo.status == 'ASSEMBLING' and lbo.quantity == 1:
                _form_data['code'] = -1
                _form_data[
                    'message'] = "订单只有 镜片收货或成镜返工 状态,才能更改状态!当前订单状态为{0}".format(
                        lbo.status)
                _form_data['laborder'] = lbo
                return render(
                    request,
                    "construction_voucher_finished_glasses_quick.html", {
                        'form_data': _form_data,
                    })
            elif lbo.status == 'ASSEMBLING':
                _form_data['code'] = -1
                _form_data['message'] = "该订单已是待装配状态!"
                _form_data['laborder'] = lbo
                _form_data['flag'] = 0
                return render(
                    request,
                    "construction_voucher_finished_glasses_quick.html", {
                        'form_data': _form_data,
                    })

            if lbo.is_production_change:
                _form_data['message'] = "制作参数已经修改,请补打印作业单"
                _form_data['flag'] = 0
                _form_data['code'] = 0
            elif lbo.is_production_change == False:
                lbo.status = 'ASSEMBLING'
                lbo.save()
                tloc = tracking_lab_order_controller()
                tloc.tracking(lbo, request.user, 'ASSEMBLING')
                _form_data['code'] = 0
                _form_data['message'] = "【装配】操作成功!"

            # 移除仓位
            lc = locker_controller()
            lc.deleteItem(lab_number)

            lbo = LabOrder.objects.get(lab_number=lab_number)
            _form_data['laborder'] = lbo
        return render(request,
                      "construction_voucher_finished_glasses_quick.html", {
                          'form_data': _form_data,
                      })

    except Exception as e:
        logging.debug('Exception: %s' % e.message)
        _form_data['exceptions'] = e
        _form_data['error_message'] = e.message
        return render(request, "exceptions.html", {
            'form_data': _form_data,
        })
Пример #7
0
def redirect_preliminary_checking_quick(request):
    '''
    初检快捷
    :param request:
    :return:
    '''

    rm = response_message()
    _form_data = {}

    _form_data['request_feature'] = 'Preliminary Checking'
    items = []

    lbo = None

    try:
        if request.method == 'POST':
            res = {}

            lab_number = request.POST.get('lab_nubmer', '')
            qualified = request.POST.get('qualified', '')
            reason_code = request.POST.get('reason_code', '')
            reason = request.POST.get('reason', '')
            act_lens_sku = request.POST.get('act_lens_sku', '')
            act_lens_name = request.POST.get('act_lens_name', '')

            if lab_number == '':
                res['code'] = -1
                res['message'] = '请输入订单号!!'
                return HttpResponse(json.dumps(res))

            if qualified == '':
                res['code'] = -1
                res['message'] = '无质检结果信息!!'
                return HttpResponse(json.dumps(res))

            try:
                logging.debug('----------------------------------------')
                if qualified == '1':
                    is_qualified = True
                else:
                    is_qualified = False

                pcc = preliminary_checking_control()
                # preliminary_checking_control.add 已加事务
                rm = pcc.add(
                    request,
                    lab_number,
                    is_qualified,
                    reason_code,
                    reason,
                    act_lens_sku,
                    act_lens_name,
                )

                res['code'] = rm.code
                res['message'] = rm.message
                logging.debug('----------------------------------------')

            except Exception as e:
                res['code'] = -999
                res['message'] = '数据遇到异常: ' + e.message

            return HttpResponse(json.dumps(res))

        entity_id = request.GET.get('entity_id', '')
        # _form_data["search_entity"] = entity_id

        if not entity_id == '':
            loc = lab_order_controller()
            lbos = loc.get_by_entity(entity_id)

            if len(lbos) == 1:
                lbo = lbos[0]
                lab_number = lbo.lab_number

            lbo = LabOrder.objects.get(lab_number=lab_number)
            _form_data['laborder'] = lbo
            _form_data['code'] = 0
            if lbo.status == 'LENS_RECEIVE':
                _form_data['message'] = '当前状态为【镜片收货】'
            else:
                _form_data['message'] = '当前状态为【镜片退货】'

        return render(
            request, "construction_voucher_finished_glasses_quick.html", {
                'form_data': _form_data,
                'item': lbo,
                'requestUrl': reverse('workshop_preliminary_checking_quick'),
            })
    except Exception as e:
        logging.debug('Exception: %s' % e.message)
        _form_data['exceptions'] = e
        _form_data['error_message'] = e.message
        return render(
            request, "exceptions.html", {
                'form_data': _form_data,
                'requestUrl': reverse('workshop_preliminary_checking_quick'),
            })
Пример #8
0
def redirect_lens_registration_quick(request):
    '''
    来片登记快捷
    :param request:
    :return:
    '''

    rm = response_message()
    _form_data = {}  # 字典,相当于hashMap
    _form_data['code'] = 0
    _form_data['request_feature'] = 'Lens Registration'
    items = []
    lbo = None
    try:
        # if request.method == 'POST':
        #     res = {}
        #     lab_number = request.POST.get('lab_nubmer', '')
        #
        #     if lab_number == '':
        #         res['code'] = -1
        #         res['message'] = '请输入订单号!!'
        #         _form_data['code'] = -1
        #         _form_data['message'] = '请输入订单号!!'
        #         return HttpResponse(json.dumps(res))
        #
        #     try:
        #         logging.debug('----------------------------------------')
        #         lrc = lens_registration_control()
        #         # lens_registration_control.add 已添加事务
        #         rm = lrc.add(
        #             request,
        #             lab_number
        #         )
        #         res['code'] = rm.code
        #         res['message'] = rm.message
        #         logging.debug('----------------------------------------')
        #
        #     except Exception as e:
        #         res['code'] = -999
        #         res['message'] = '数据遇到异常: ' + e.message
        #         _form_data['code'] = -1
        #         _form_data['message'] = '数据遇到异常: ' + e.message
        #     return HttpResponse(json.dumps(res))
        entity_id = request.GET.get('entity_id', '')
        if entity_id == '':
            _form_data['code'] = -1
            _form_data['message'] = '请输入订单号!!'
            return render(
                request, "construction_voucher_finished_glasses_quick.html", {
                    'form_data': _form_data,
                    'requestUrl': reverse('workshop_lens_registration_quick'),
                })

        loc = lab_order_controller()
        lbos = loc.get_by_entity(entity_id)

        if len(lbos) == 1:
            lbo = lbos[0]
            lab_number = lbo.lab_number

        # 用来到wms_product_frame中查找sku_specs字段(警示信息)
        caution_info = product_frame.objects.get(sku=lbo.frame)
        _form_data['caution_info'] = caution_info.sku_specs

        try:
            logging.debug('----------------------------------------')
            lrc = lens_registration_control()
            # lens_registration_control.add 已添加事务
            rm = lrc.add(request, lab_number)
            if rm.code == 0:
                _form_data['message'] = "【来片登记】操作成功!"
            else:
                _form_data['code'] = rm.code
                _form_data['message'] = rm.message
            logging.debug('----------------------------------------')

        except Exception as e:
            _form_data['code'] = -1
            _form_data['message'] = '数据遇到异常: ' + e.message

        lbo = LabOrder.objects.get(lab_number=lab_number)
        _form_data['laborder'] = lbo
        special_handling = lbo.special_handling if lbo.special_handling else ''
        _form_data['special_handling'] = special_handling.replace(
            "\n", "").replace("\t", "").replace("\r", "")
        return render(
            request, "construction_voucher_finished_glasses_quick.html", {
                'form_data': _form_data,
                'item': lbo,
                'requestUrl': reverse('workshop_lens_registration_quick'),
            })
    except Exception as e:
        logging.debug('Exception: %s' % e.message)
        _form_data['exceptions'] = e
        _form_data['error_message'] = e.message
        _form_data['code'] = -1
        return render(
            request, "exceptions.html", {
                'form_data': _form_data,
                'requestUrl': reverse('workshop_lens_registration_quick'),
            })
Пример #9
0
def redirect_assembled(request):
    '''
    装配完成
    :param request:
    :return:
    '''

    rm = response_message()
    _form_data = {}

    _form_data['request_feature'] = 'ASSEMBLED'
    items = []
    lbo = None

    try:
        if request.method == 'POST':
            res = {}
            lab_number = request.POST.get('lab_nubmer', '')

            if lab_number == '':
                res['code'] = -1
                res['message'] = '请输入订单号!!'
                return HttpResponse(json.dumps(res))
            try:
                cac = assembled_control()
                # add 中已做事务处理
                rm = cac.add(request, lab_number)

                res['code'] = rm.code
                res['message'] = rm.message

                tloc = tracking_lab_order_controller()
                tloc.tracking(lbo, request.user, "ASSEMBLING", "装配完成")

            except Exception as e:
                res['code'] = -999
                res['message'] = '数据遇到异常: ' + e.message

            return HttpResponse(json.dumps(res))

        entity_id = request.GET.get('entity_id', '')
        # _form_data["search_entity"] = entity_id

        if not entity_id == '':
            loc = lab_order_controller()
            lbos = loc.get_by_entity(entity_id)

            if len(lbos) == 1:
                lbo = lbos[0]
                lab_number = lbo.lab_number

            # 用来到wms_product_frame中查找sku_specs字段(警示信息)
            caution_info = product_frame.objects.get(sku=lbo.frame)
            _form_data['caution_info'] = caution_info.sku_specs

            lbo = LabOrder.objects.get(lab_number=lab_number)
            _form_data['laborder'] = lbo

        return render(
            request, "assembled.html", {
                'form_data': _form_data,
                'requestUrl': reverse('workshop_assembled'),
                'item': lbo,
            })
    except Exception as e:
        logging.debug('Exception: %s' % e.message)
        _form_data['exceptions'] = e
        _form_data['error_message'] = e.message
        return render(request, "exceptions.html", {
            'form_data': _form_data,
            'requestUrl': reverse('workshop_assembled'),
        })
Пример #10
0
def redirect_glasses_return(request):
    '''
    装配完成
    :param request:
    :return:
    '''

    rm = response_message()
    _form_data = {}
    _page_info = {}

    _form_data['request_feature'] = 'GLASSES_RETURN'
    items = []
    lbo = None

    try:
        entity_id = request.GET.get('entity_id', '')

        page = request.GET.get('page', 1)
        currentPage = int(page)

        filter_ext = {}
        filter_ext['status'] = 'GLASSES_RETURN'
        filter_ext['vendor'] = 5

        if not entity_id == '':
            loc = lab_order_controller()
            lbos = loc.get_by_entity(entity_id)

            if len(lbos) == 1:
                lbo = lbos[0]
                _id = lbo.lab_number
            else:
                _id = entity_id

            filter_ext['lab_number'] = _id

        ac = assembling_control()
        items = ac.get_items(filter_ext)
        count = len(items)

        if count > 0:
            _form_data['total'] = count
            _page_info['total'] = count

        if sorted == 'set_time':
            paginator = Paginator(items, count)
        else:
            paginator = Paginator(
                items, const.PAGE_SIZE_MORE)  # Show 20 contacts per page

        try:
            items = paginator.page(page)
        except PageNotAnInteger:
            # If page is not an integer, deliver first page.
            items = paginator.page(1)
        except EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of results.
            items = paginator.page(paginator.num_pages)
        if request.method == 'POST':
            return HttpResponse("ok")

        return render(
            request, "glasses_return.html", {
                'form_data': _form_data,
                'requestUrl': reverse('workshop_glasses_return'),
                'list': items,
                'page_info': _page_info,
                'currentPage': currentPage,
                'paginator': paginator,
                'filter': filter,
            })

    except Exception as e:
        logging.debug('Exception: %s' % e.message)
        _form_data['exceptions'] = e
        _form_data['error_message'] = e.message
        return render(
            request, "exceptions.html", {
                'form_data': _form_data,
                'requestUrl': reverse('workshop_glasses_return'),
            })
Пример #11
0
    def add(
        self,
        request,
        lab_order_entity,
    ):
        rm = response_message()
        rm.message = '此操作已成功'

        try:
            logging.debug('开始进入 ...')
            with transaction.atomic():
                loc = lab_order_controller()
                lbos = loc.get_by_entity(lab_order_entity)

                lbo = None
                if len(lbos) > 0:
                    lbo = lbos[0]

                if not lbo == None:
                    objs = received_glasses.objects.all().order_by('-id')[:1]
                    if len(objs) > 0:
                        ob = objs[0]
                        if ob.lab_number == lbo.lab_number \
                                and lbo.status == 'GLASSES_RECEIVE':
                            rm.code = -3
                            rm.message = '疑似重复操作'
                            return rm

                    # and not lbo.status == 'PRINT_DATE' \
                    if not lbo.status == 'ASSEMBLING' \
                            and not lbo.status == 'ASSEMBLED' \
                            and not lbo.status == 'FINAL_INSPECTION_NO' \
                            and not lbo.status == 'GLASSES_RETURN':
                        rm.code = -4
                        rm.message = '只有订单处于装配中的状态时才可以执行成镜收货;\n终检不合格&成镜返工支持成镜收货;\n' \
                                     '镜片生产状态支持镜片收货;\n该订单当前状态为:{%s}' % lbo.get_status_display()
                        return rm

                    rg = received_glasses()
                    rg.lab_order_entity = lbo.id
                    rg.lab_number = lbo.lab_number

                    rg.user_id = request.user.id
                    rg.user_name = request.user.username

                    rg.save()

                    lbo.status = 'GLASSES_RECEIVE'
                    lbo.save()

                    tloc = tracking_lab_order_controller()
                    tloc.tracking(lbo, request.user, 'GLASSES_RECEIVE')

                    rm.obj = rg

                else:
                    rm.code = -4
                    rm.message = '订单未找到'
                    return rm

        except Exception as e:
            logging.debug(e.message)
            rm.capture_execption(e)

        return rm
Пример #12
0
    def get_statment_list(self, request):
        rm = response_message()
        lab_number = request.GET.get('lab_number', '')
        try:
            if not lab_number == '':
                objs = []
                loc = lab_order_controller()
                objs = loc.get_by_entity(lab_number)
                lab_number = objs[0].lab_number
            doc_type = request.GET.get('doc_type', '')
            logging.debug('type' + doc_type)
            if doc_type == 'LENS':
                vendor = request.GET.get('filter', '')
                logging.debug('len' + lab_number)
                year = request.GET.get('year', '')
                month = request.GET.get('month', '')
                day = request.GET.get('day', '')
                if lab_number == '':
                    today = timezone.now().date()

                    if year == '':
                        year = today.year

                    if month == '':
                        month = today.month

                    if day == '':
                        day = today.day

                    year = int(year)
                    month = int(month)
                    day = int(day)

                    if day <> '':
                        day = datetime.date(year, month, day)
                        logging.debug(day)
                        day2 = day + datetime.timedelta(days=1)
                        logging.debug(day2)

                        lrs = lens_registration.objects.filter(
                            created_at__range=(day, day2),
                            laborder_entity__vendor=vendor)

                        logging.critical(lrs.query)

                        # logging.debug(lrs.query)

                        # for lr in lrs:
                        #     logging.debug(lr.id)
                    rm.obj = lrs
                else:
                    lrs = lens_registration.objects.filter(
                        lab_number=lab_number)
                    rm.obj = lrs
            else:
                list = []
                rgs = None
                logging.debug(lab_number)
                workshop = request.GET.get('workshop', '')
                year = request.GET.get('year', '')
                month = request.GET.get('month', '')
                day = request.GET.get('day', '')
                if lab_number == '':
                    today = timezone.now().date()

                    if year == '':
                        year = today.year

                    if month == '':
                        month = today.month

                    if day == '':
                        day = today.day

                    year = int(year)
                    month = int(month)
                    day = int(day)

                    if day <> '':
                        day = datetime.date(year, month, day)
                        logging.debug(day)
                        day2 = day + datetime.timedelta(days=1)
                        logging.debug(day2)

                        rgs = received_glasses.objects.filter(
                            created_at__range=(day, day2))

                        for rg in rgs:
                            lbo = LabOrder.objects.get(id=rg.lab_order_entity)
                            ln_rg = received_glasses.objects.filter(
                                created_at__lt=day, lab_number=rg.lab_number)
                            logging.debug(ln_rg.count())
                            if lbo.workshop == workshop and not ln_rg.count():
                                rg.laborder_entity = lbo
                                list.append(rg)

                        logging.debug(rgs.query)
                else:
                    rgs = received_glasses.objects.filter(
                        lab_number=lab_number)
                    logging.debug(rgs.count())
                    for rg in rgs:
                        lbo = LabOrder.objects.get(id=rg.lab_order_entity)
                        rg.laborder_entity = lbo
                        list.append(rg)

                rm.obj = list

            return rm
        except Exception as e:
            rm.capture_execption(e)
            logging.critical(e)
            return rm
Пример #13
0
    def add(
        self,
        request,
        lab_order_entity,
    ):
        rm = response_message()
        rm.message = '此操作已成功'

        try:
            logging.debug('开始进入 ...')
            with transaction.atomic():
                loc = lab_order_controller()
                lbos = loc.get_by_entity(lab_order_entity)

                lbo = None
                if len(lbos) > 0:
                    lbo = lbos[0]

                if not lbo == None:
                    objs = assembled.objects.all().order_by('-id')[:1]
                    if len(objs) > 0:
                        ob = objs[0]
                        if ob.lab_number == lbo.lab_number:
                            rm.code = -3
                            rm.message = '疑似重复操作'
                            return rm

                    if not lbo.status == 'ASSEMBLING':

                        rm.code = -4
                        rm.message = '只有订单处于待装配的状态时才可以执行装配完成:{%s}' % lbo.get_status_display(
                        )
                        return rm

                    rg = assembled()
                    rg.lab_order_entity = lbo.id
                    rg.lab_number = lbo.lab_number

                    rg.user_id = request.user.id
                    rg.user_name = request.user.username

                    rg.save()

                    lbo.status = 'ASSEMBLED'
                    lbo.save()

                    tloc = tracking_lab_order_controller()
                    tloc.tracking(lbo, request.user, "ASSEMBLED", "装配完成")

                    rm.obj = rg

                else:
                    rm.code = -4
                    rm.message = '订单未找到'
                    return rm

        except Exception as e:
            logging.debug(e.message)
            rm.capture_execption(e)

        return rm