示例#1
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_change_interbranch_order_status(request):
    data_list = []
    try:
        action = request.POST.get('action', '')
        checkdata = request.POST.get('checkdata', '')
        checkdata_list = eval(checkdata)
        for item in checkdata_list:
            if action == 'print':
                if item['status'] == 'Open':
                    InterbranchOrder.objects.filter(id=item['id']).update(
                        status='Printed')
                data_list.append(item['id'])
            elif action == 'cancel':
                if item['status'] == 'Open' or item['status'] == 'Printed':
                    InterbranchOrder.objects.filter(id=item['id']).update(
                        status='Cancelled')
            elif action == 'fulfill':
                if item['status'] == 'Printed':
                    InterbranchOrder.objects.filter(id=item['id']).update(
                        status='Fulfilled')
            elif action == 'receive':
                if item['status'] == 'Fulfilled':
                    InterbranchOrder.objects.filter(id=item['id']).update(
                        status='Finish')

        return json_response(code=0, msg='Success', data=data_list)
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#2
0
def compare_face():
    if 'files' not in request.files:
        return json_response(error(400, "no files sent"), None)
    uploaded_files = request.files.getlist("files")

    faces = []
    for f in uploaded_files:
        file_path = save_image(IMG_PATH, f)
        faces.append(file_path)

    try:
        start_time = time.time()
        dist = face_match_controller.compare_two_faces(faces[0], faces[1])
        result = 1 if dist < 1 else 0

        return json_response(
            None, {
                "distance": dist,
                "valid": result,
                "time_taken": time.time() - start_time
            })
    except IndexError as e:
        logger.exception(e)
        return json_response(
            error(400, "cannot find face in one or both image"), None)
    except Exception as e:
        logger.exception(e)
        return json_response(error(400, "cannot determine similarity"), None)
示例#3
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_create_stock_in_request(request):
    try:
        stock_order_number = request.POST.get('stock_order_number', '')
        lab_number = request.POST.get('lab_number', '')
        frame = request.POST.get('frame', '')
        #lens_sku = request.POST.get('lens_sku', '')
        quantity = request.POST.get('quantity', '')
        act_quantity = request.POST.get('act_quantity', '')
        comments = request.POST.get('comments', '')

        if act_quantity == '':
            return json_response(code=-1, msg='参数不能为空')

        stockinrequests = StockInRequest.objects.filter(lab_number=lab_number)
        if len(stockinrequests) > 0:
            return json_response(code=-1, msg='该订单已经生成了StockInRequest')

        stock_order = StockOrder.objects.get(
            stock_order_number=stock_order_number)
        new_stockin_request = StockInRequest()
        new_stockin_request.lab_number = lab_number
        new_stockin_request.frame = stock_order.frame
        new_stockin_request.stock_order_number = stock_order_number
        new_stockin_request.quantity = quantity
        new_stockin_request.act_quantity = act_quantity
        new_stockin_request.comments = comments
        new_stockin_request.user_id = request.user.id
        new_stockin_request.user_name = request.user.username
        new_stockin_request.save()

        LabOrder.objects.filter(lab_number=lab_number).update(
            status='PreStockIn')
        return json_response(code=0, msg='Success')
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#4
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_accs_order_pick(request):
    try:
        data_dict = {}
        accs_order_number = request.POST.get('accs_order_number', '')
        now = datetime.datetime.now()
        accs_orders = get_by_entity(accs_order_number)
        for accs_order in accs_orders:
            if accs_order.status != 'Picking':
                return json_response(code=-1, msg='只有【Picking】状态可以进行Accs Pick')

            accorder_requestnote_line = AccsOrderRequestNotesLine.objects.filter(accsorder_id=accs_order.id).order_by(
                "-base_entity")
            accorder_requestnote = AccsOrderRequestNotes.objects.get(id=accorder_requestnote_line[0].base_entity)
            if not accorder_requestnote.last_flag:
                return json_response(code=-1, msg='请先打印出库申请单')
            invd_ctrl = inventory_delivery_control()
            if now.month < 10:
                month = '0' + str(now.month)
            else:
                month = str(now.month)
            if now.day < 10:
                day = '0' + str(now.day)
            else:
                day = str(now.day)

            accs_order.status = 'Picked'
            accs_order.pick_date = now
            accs_order.save()

            data_dict['p_number'] = str(now.year) + month + day
            data_dict['wh_number'] = accs_order.warehouse
            data_dict['sku'] = accs_order.sku
            data_dict['doc_type'] = 'AUTO'
            data_dict['quantity'] = accs_order.quantity
            data_dict['comments'] = accs_order.accs_order_number
            data_dict['lab_number_input'] = accs_order.accs_order_number
            data_dict['product_type'] = 1
            data_dict['wh_channel'] = 'WEBSITE'

            rm = invd_ctrl.add_new(request, data_dict)
            if rm.code != 0:
                return json_response(code=-1, msg=rm.message)

            accs_order_delivery = AccsOrderDeliveryLine()
            accs_order_delivery.base_entity = accorder_requestnote_line[0].base_entity
            accs_order_delivery.sku = accs_order.sku
            accs_order_delivery.quantity = accs_order.quantity
            accs_order_delivery.accs_order_number = accs_order.accs_order_number
            accs_order_delivery.warehouse = accs_order.warehouse
            accs_order_delivery.user_name = request.user.username
            accs_order_delivery.user_id = request.user.id
            accs_order_delivery.save()

        return json_response(code=0, msg='Success')
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#5
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_create_stock_in(request):
    try:
        stock_order_number = request.POST.get('stock_order_number', '')
        lab_number = request.POST.get('lab_number', '')
        frame = request.POST.get('frame', '')
        lens_sku = request.POST.get('lens_sku', '')
        inbound_type = request.POST.get('inbound_type', '')
        warehouse_code = request.POST.get('warehouse', '')
        location = request.POST.get('location', '')
        quantity = request.POST.get('quantity', '')
        comments = request.POST.get('comments', '')
        if quantity == '':
            return json_response(code=-1, msg='参数不能为空')

        stockstructlines = StockStructLine.objects.filter(
            lab_number=lab_number)
        if len(stockstructlines) > 0:
            return json_response(code=-1, msg='该订单已经生成了StockStruct')

        p_number = datetime.datetime.now().strftime('%Y%m%d')
        #增加StockStruct start
        invr_ctrl = inventory_receipt_control()
        rm = invr_ctrl.add(request, p_number, warehouse_code, frame.upper(), 0,
                           inbound_type, quantity, comments)
        if rm.code == 0:
            stlrs = LabOrder.objects.filter(lab_number=lab_number)
            stock_order_number = stlrs[0].order_number

            new_stockstructline = StockStructLine()
            new_stockstructline.stock_order_number = stock_order_number
            new_stockstructline.lab_number = lab_number
            new_stockstructline.frame = frame.upper()
            new_stockstructline.lens_sku = lens_sku.upper()
            new_stockstructline.quantity = quantity
            new_stockstructline.warehouse = warehouse_code
            new_stockstructline.location = location
            new_stockstructline.inbound_type = inbound_type
            new_stockstructline.comments = comments
            new_stockstructline.user_id = request.user.id
            new_stockstructline.user_name = request.user.username
            new_stockstructline.save()
            StockInRequest.objects.filter(lab_number=lab_number).update(
                status='Finish')
            LabOrder.objects.filter(lab_number=lab_number).update(
                status='DELIVERED')
            return json_response(code=0, msg='Success')
        else:
            return json_response(code=-1, msg=rm.msg)

    except Exception as e:
        return json_response(code=-1, msg=e)
示例#6
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_interbranch_order_save(request):
    try:
        interbranch_order_number = request.POST.get('interbranch_order_number',
                                                    '')
        issuing_warehouse = request.POST.get('issuing_warehouse', '')
        issuing_location = request.POST.get('issuing_location', '')
        receiving_warehouse = request.POST.get('receiving_warehouse', '')
        receiving_location = request.POST.get('receiving_location', '')
        frame_sku = request.POST.get('frame_sku', '')
        lens_sku = request.POST.get('lens_sku', '')
        quantity = request.POST.get('quantity', '')
        sku_attribute = request.POST.get('sku_attribute', '')
        fulfilment_date = request.POST.get('fulfilment_date', '')
        comments = request.POST.get('comments', '')
        interbranch_orders = InterbranchOrder.objects.filter(
            interbranch_order_number=interbranch_order_number)

        if len(interbranch_orders) > 0:
            return json_response(code=-1,
                                 msg='The order number already exists',
                                 data='')

        #创建内部移库单 start
        invsws = inventory_struct_warehouse.objects.filter(
            sku=frame_sku.upper(), warehouse_code=issuing_warehouse)
        if len(invsws) == 0:
            return json_response(code=-1, msg='该仓库不存在SKU库存,请确认')
        invsw = invsws[0]
        diff_quantity = invsw.quantity - int(quantity)
        if diff_quantity < 0:
            return json_response(code=-1, msg='移库数量大于库存数量,不能移库,请确认')

        new_interbranch_order = InterbranchOrder()
        new_interbranch_order.interbranch_order_number = interbranch_order_number
        new_interbranch_order.warehouse_from = issuing_warehouse
        new_interbranch_order.location_from = issuing_location
        new_interbranch_order.warehouse_to = receiving_warehouse
        new_interbranch_order.location_to = receiving_location
        new_interbranch_order.frame = frame_sku.upper()
        new_interbranch_order.lens_sku = lens_sku.upper()
        new_interbranch_order.quantity = quantity
        new_interbranch_order.sku_attribute = sku_attribute
        new_interbranch_order.fulfil_date = fulfilment_date
        new_interbranch_order.comments = comments
        new_interbranch_order.user_name = request.user.username
        new_interbranch_order.user_id = request.user.id
        new_interbranch_order.save()

        return json_response(code=0, msg='Success')
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#7
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_stock_order_list(request):
    status_data = []
    try:
        title = "成镜订单列表"
        flag = request.GET.get('flag', 'list')
        if flag == 'list':
            title = "成镜订单列表"
        elif flag == 'confirm':
            title = "成镜订单确认"
        elif flag == 'cancel':
            title = "成镜订单取消"
        elif flag == 'close':
            title = "成镜订单关闭"
        elif flag == 'create':
            title = "从成镜订单生成Lab Order"

        for item in StockOrder.STATUS_CHOICES:
            status_data.append(item[0])
        return render(request, "stockorder_list.html", {
            "status_data": status_data,
            "flag": flag,
            "title": title
        })
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#8
0
 def ins(self, request, name):
     user = get_object_or_400(User, name=name)
     ins = User.objects.get_ins(user)
     page = self.paginate_queryset(format_ins(ins))
     if page is not None:
         return self.get_paginated_response(page)
     return json_response(page)
示例#9
0
        def decorator_function(*args, **kwargs):

            try:
                return function(*args, **kwargs)

            except ApiResponseNotFound as e:
                return handle_exception_json_response(e)

            except BankAccountNotFound as e:
                return handle_exception_json_response(e)

            except BankAccountUserNotFound as e:
                return handle_exception_json_response(e)

            except BankAccountInsufficientFounds as e:
                return handle_exception_json_response(e)

            except BadRequest as e:
                return handle_exception_json_response(e)

            except Exception as e:
                logging.error(
                    '################# Exception Not Handled ################# {}'
                    .format(e))
                return json_response(
                    {
                        'message':
                        'An error occurred while processing the request. ERROR: {0}'
                        .format(e)
                    }, 500)
示例#10
0
 def following(self, request, name):
     user = get_object_or_400(User, name=name)
     following = User.objects.get_following(user)
     page = self.paginate_queryset(following)
     if page is not None:
         return self.get_paginated_response(page)
     return json_response(page)
示例#11
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_interbranch_order_list(request):
    status_data = []
    try:
        whs = warehouse.objects.filter()
        title = "Interbranch Transfer List"
        flag = request.GET.get('flag', 'list')
        if flag == 'list':
            title = "内部调拨单列表"
        elif flag == 'print':
            title = "内部调拨单打印"
        elif flag == 'cancel':
            title = "内部调拨单取消"
        elif flag == 'fulfill':
            title = "内部调拨调出"
        elif flag == 'receive':
            title = "内部调拨接收"

        for item in InterbranchOrder.STATUS_CHOICES:
            status_data.append(item[0])
        return render(request, "interbranchorder_list.html", {
            "status_data": status_data,
            "flag": flag,
            "title": title,
            "whs": whs
        })
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#12
0
 def followedins(self, request, name):
     user = get_object_or_400(User, name=name)
     queue_manager = QueueManager()
     queue_name = 'uid_{}'.format(user.uuid)
     ins_list = queue_manager.get_user_followed_ins(queue_name)
     page = self.paginate_queryset(ins_list)
     if page is not None:
         return self.get_paginated_response(page)
     return json_response(page)
示例#13
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_change_stock_order_status(request):
    try:
        flag = request.POST.get('flag', '')
        action = request.POST.get('action', '')
        checkdata = request.POST.get('checkdata', '')
        checkdata_list = eval(checkdata)
        for item in checkdata_list:
            if action == 'cancel':
                if item['status'] == 'Open':
                    StockOrder.objects.filter(id=item['id']).update(
                        status='Cancel', remaining_qty=0)
                else:
                    return json_response(code=-1,
                                         msg='只有【Open】状态的StockOrder,才能Cancel')
            elif action == 'close':
                if item['status'] == 'Open' or item['status'] == 'Processing':
                    StockOrder.objects.filter(id=item['id']).update(
                        status='Close')
                else:
                    return json_response(
                        code=-1,
                        msg='只有【Open,Processing】状态的StockOrder,才能Close')
            elif action == 'confirm':
                if item['status'] == 'Open':
                    StockOrder.objects.filter(id=item['id']).update(
                        status='Confirm')
                else:
                    return json_response(code=-1,
                                         msg='只有【Open】状态的StockOrder,才能Confirm')
            elif action == 'create':
                if item['status'] == 'Confirm' or item[
                        'status'] == 'Processing':
                    stlc = stockorder_to_laborder_controller()
                    data = stlc.create_laborder(item, flag)
                    if data['code'] != 0:
                        return json_response(code=-1, msg='LabOrder 创建失败')
                    else:
                        if flag == 'list':
                            StockOrder.objects.filter(id=item['id']).update(
                                status='Finish', remaining_qty=0)
                        else:
                            diff_qty = int(item['remaining_qty']) - int(
                                item['lab_qty'])
                            if diff_qty > 0:
                                StockOrder.objects.filter(
                                    id=item['id']).update(
                                        status='Processing',
                                        remaining_qty=diff_qty)
                            else:
                                StockOrder.objects.filter(
                                    id=item['id']).update(status='Finish',
                                                          remaining_qty=0)
                else:
                    return json_response(
                        code=-1,
                        msg='只有【Confirm】状态的StockOrder,才能Create LabOrder')
        return json_response(code=0, msg='Success')
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#14
0
 def process_exception(self, request, exception):
     if type(exception) == INSException:
         if type(exception.code) == int:
             return error_response(message=exception.message,
                                   status=exception.code)
         return json_response(data={
             'message': exception.message,
             'code': exception.code,
         },
                              status=get_status_code(exception.code))
示例#15
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_stock_bom_order_save(request):
    try:
        product_sku = request.POST.get('product_sku', '')
        frame_sku = request.POST.get('frame_sku', '')
        frame_qty = request.POST.get('frame_qty', '')
        od_lens_sku = request.POST.get('od_lens_sku', '')
        od_lens_name = request.POST.get('od_lens_name', '')
        od_lens_sph = request.POST.get('od_lens_sph', '0')
        od_lens_cyl = request.POST.get('od_lens_cyl', '0')
        od_lens_qty = request.POST.get('od_lens_qty', '0')
        os_lens_sku = request.POST.get('os_lens_sku', '')
        os_lens_name = request.POST.get('os_lens_name', '')
        os_lens_sph = request.POST.get('os_lens_sph', '0')
        os_lens_cyl = request.POST.get('os_lens_cyl', '0')
        os_lens_qty = request.POST.get('os_lens_qty', '0')
        comments = request.POST.get('comments', '')
        stock_bom_structs = StockBomStruct.objects.filter(
            product_sku=product_sku)
        if len(stock_bom_structs) > 0:
            return json_response(code=-1, msg='该成镜SKU已存在!')

        new_bom = StockBomStruct()
        new_bom.product_sku = product_sku
        new_bom.product_qty = frame_qty
        new_bom.frame = frame_sku.upper()
        new_bom.frame_qty = frame_qty
        new_bom.od_lens_sku = od_lens_sku
        new_bom.od_lens_name = od_lens_name
        new_bom.od_sph = od_lens_sph
        new_bom.od_cyl = od_lens_cyl
        new_bom.od_lens_qty = od_lens_qty
        new_bom.os_lens_sku = os_lens_sku
        new_bom.os_lens_name = os_lens_name
        new_bom.os_sph = os_lens_sph
        new_bom.os_cyl = os_lens_cyl
        new_bom.os_lens_qty = os_lens_qty
        new_bom.comments = comments
        new_bom.user_name = request.user.username
        new_bom.user_id = request.user.id
        new_bom.save()
        return json_response(code=0, msg='Success')
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#16
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_accs_order_request_list(request):
    try:
        flag = request.GET.get('flag', 'list')
        warehouses = warehouse.objects.filter(used_to='ACCESSORIES')
        return render(request, "accsorder_request_list.html", {
            "warehouses":warehouses,
            "flag":flag
        })
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#17
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_stock_bom_order_new_data(request):
    data_list = []
    try:
        page = request.GET.get('page', '1')
        limit = request.GET.get('limit', '30')
        page = int(page)
        start = (page - 1) * int(limit)
        end = page * int(limit)
        stock_orders = StockBomStruct.objects.filter().order_by("-id")
        total = len(stock_orders)
        fsi_list = stock_orders[start:end]
        for item in fsi_list:
            data_list.append({
                "id":
                item.id,
                "product_sku":
                item.product_sku,
                "product_qty":
                item.product_qty,
                "frame":
                item.frame,
                "frame_qty":
                item.frame_qty,
                "od_lens_sku":
                item.od_lens_sku,
                "od_lens_name":
                item.od_lens_name,
                "od_lens_sph":
                str(item.od_sph),
                "od_lens_cyl":
                str(item.od_cyl),
                "od_len_qty":
                str(item.od_lens_qty),
                "os_lens_sku":
                item.os_lens_sku,
                "os_lens_name":
                item.os_lens_name,
                "os_lens_sph":
                str(item.os_sph),
                "os_lens_cyl":
                str(item.os_cyl),
                "os_len_qty":
                str(item.os_lens_qty),
                "user_name":
                item.user_name,
                "comments":
                item.comments,
                "update_date":
                (item.updated_at +
                 datetime.timedelta(hours=+8)).strftime("%Y-%m-%d %H:%M:%S")
            })
        return json_response_page(code=0, msg='', count=total, data=data_list)
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#18
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_stock_in_request_list(request):
    inbound_type_list = []
    try:
        whs = warehouse.objects.filter()
        for item in StockStruct.TYPE_CHOICES:
            inbound_type_list.append({'code': item[0], 'name': item[1]})
        return render(request, "stock_in_request_list.html", {
            "whs": whs,
            "inbound_type_list": inbound_type_list
        })
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#19
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_accs_to_lab(request):
    try:
        checkdata = request.POST.get('checkdata', '')
        acc_order_tracking = AccsOrderTracking()
        checkdata_list = eval(checkdata)
        item = checkdata_list[0]
        if item['status'] == 'Open':
            pgorderitems = PgOrderItem.objects.filter(frame__contains=item['frame_sku'], order_number=item['order_number'],lab_order_number='')
            if len(pgorderitems) > 0:
                pgorderitem = pgorderitems[0]
                try:
                    for i in range(0, pgorderitem.quantity):
                        lbo = pgorderitem.generate_lab_order(index=i, flag='accs')
                except Exception as e:
                    return json_response(code=-1, msg='转lab失败')
                if lbo:
                    AccsOrder.objects.filter(accs_order_number=item['accs_order_number']).update(status='Closed', comments='此订单转Laborder')
                    acc_order_tracking.add_order_tracking(item['accs_order_number'], request.user.id,request.user.username, 'accs_to_lab')
                    return json_response(code=0, msg='Success')
                else:
                    return json_response(code=-1, msg='转lab失败')
            else:
                return json_response(code=-1, msg='PgOrderItem不存在')
        else:
            return json_response(code=-1, msg='只有Open状态允许转Lab')
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#20
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_stock_order_new(request):
    try:
        t = time.time()
        now_time = int(round(t * 1000))
        stock_order_number = "STKO" + str(now_time)
        product_frame_lists = product_frame.objects.filter(product_type='STKG')
        return render(
            request, "stockorder_new.html", {
                "stock_order_number": stock_order_number,
                "product_frame_lists": product_frame_lists
            })
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#21
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_get_stko_laborder_data(request):
    data_list = []
    try:
        page = request.GET.get('page', '1')
        limit = request.GET.get('limit', '30')
        lab_number = request.GET.get('lab_number', '')
        start_date = request.GET.get('start_date', '')

        page = int(page)
        start = (page - 1) * int(limit)
        end = page * int(limit)

        if lab_number != '':
            if len(lab_number) <= 10 and len(lab_number) >= 4:
                count = LabOrder.objects.filter(
                    type='STKO',
                    status='FINAL_INSPECTION_YES',
                    lab_number__contains=lab_number).count()
                labs = LabOrder.objects.filter(
                    type='STKO',
                    status='FINAL_INSPECTION_YES',
                    lab_number__contains=lab_number).order_by('-id')[start:end]
            else:
                count = LabOrder.objects.filter(type='STKO',
                                                status='FINAL_INSPECTION_YES',
                                                lab_number=lab_number).count()
                labs = LabOrder.objects.filter(
                    type='STKO',
                    status='FINAL_INSPECTION_YES',
                    lab_number=lab_number).order_by("-id")[start:end]
        else:
            count = LabOrder.objects.filter(
                type='STKO', status='FINAL_INSPECTION_YES').count()
            labs = LabOrder.objects.filter(
                type='STKO',
                status='FINAL_INSPECTION_YES').order_by("-id")[start:end]
        total = count  #len(labs)
        #fsi_list = labs[start: end]
        for item in labs:
            data_list.append({
                "id": item.id,
                "lab_number": item.lab_number,
                "sku": item.frame,
                "lens_sku": item.act_lens_sku,
                "lens_name": item.act_lens_name,
                "quantity": item.quantity,
                "order_number": item.order_number
            })
        return json_response_page(code=0, msg='', count=total, data=data_list)
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#22
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_stock_order_save(request):
    try:
        stock_order_number = request.POST.get('stock_order_number', '')
        start_date = request.POST.get('start_date', '')
        finish_date = request.POST.get('finish_date', '')
        frame_sku = request.POST.get('frame_sku', '')
        lens_sku = request.POST.get('lens_sku', '')
        quantity = request.POST.get('quantity', '')
        comments = request.POST.get('comments', '')

        stock_orders = StockOrder.objects.filter(
            stock_order_number=stock_order_number)
        if len(stock_orders) > 0:
            return json_response(code=-1, msg='该订单已存在!', data='')

        stockbomstruct_list = StockBomStruct.objects.filter(
            product_sku=frame_sku.upper())
        if len(stockbomstruct_list) == 0:
            return json_response(code=-1, msg='请先在BOM创建该成镜SKU!', data='')

        new_stock_order = StockOrder()
        new_stock_order.stock_order_number = stock_order_number
        new_stock_order.start_date = start_date
        new_stock_order.finish_date = finish_date
        new_stock_order.frame = frame_sku.upper()
        new_stock_order.lens_sku = lens_sku.upper()
        new_stock_order.quantity = quantity
        new_stock_order.remaining_qty = quantity
        new_stock_order.comments = comments
        new_stock_order.user_name = request.user.username
        new_stock_order.user_id = request.user.id
        new_stock_order.save()
        return json_response(code=0, msg='Success')
    except Exception as e:
        print(e)
        print('1111111111111111111')
        return json_response(code=-1, msg=e)
示例#23
0
 def comments(self, request, pk):
     # globals()['_comments_{}'.format(request.method.lower())](self, request, pk)
     ins = get_object_or_400(Ins, uuid=pk)
     if request.method == 'GET':
         comments = Ins.ins_objects.get_comments(ins)
         page = self.paginate_queryset(
             CommentSerializer(comments, many=True).data)
         if page is not None:
             return self.get_paginated_response(page)
         return json_response(page)
     else:
         data = request.data
         comment_keys = ['type', 'body']
         check_keys(data, comment_keys)
         if 'type' in data:
             validate_value(data['type'], const.COMMENT_TYPES)
         data.update({'user': request.user, 'ins': ins})
         comment = Comment.objects.create(**data)
         data = CommentSerializer(comment).data
         send_hook_request(comment,
                           method='POST',
                           context=request,
                           data=data)
         return json_response(data)
示例#24
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_interbranch_transfer_new(request):
    try:
        whs = warehouse.objects.filter()
        t = time.time()
        now_time = int(round(t * 1000))
        stock_order_number = "IT" + str(now_time)
        product_frame_lists = product_frame.objects.filter(product_type='STKG')
        return render(
            request, "interbranch_transfer_new.html", {
                "stock_order_number": stock_order_number,
                "whs": whs,
                "product_frame_lists": product_frame_lists
            })
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#25
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_interbranch_order_print(request):
    try:
        id_str = request.GET.get('id_str', '')
        id_str = id_str[1:]
        id_list = id_str.split("-")
        interbranch_orders = InterbranchOrder.objects.filter(id__in=id_list)
        # for item in checkdata_list:
        #     if item['status'] == 'Open':
        #         InterbranchOrder.objects.filter(id=item['id']).update(status='Printed')

        return render(request, "interbranchorder_list_print.html", {
            "interbranch_orders": interbranch_orders,
        })
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#26
0
 def upload_file(self, file_path, file_data, upload_flag):
     try:
         if upload_flag == 'LOCAL':
             local_handler = LocalHandler()
             json_data = local_handler.upload_file(file_path, file_data)
         #暂时不启用
         #elif self.upload_flag == 'SFTP':
         #    sftp_handler = SFTPHandler()
         #    json_data = sftp_handler.upload_file(file_path, file_data)
         #elif self.upload_flag == 'S3':
         #    s3_handler = S3Handler()
         #    json_data = s3_handler.save(file_data.name, file_data)
         return json_data
     except Exception as e:
         return json_response(code=-1, msg=e)
示例#27
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_accs_order_pick_list(request):
    try:
        flag = request.GET.get('flag', 'list')
        warehouses = warehouse.objects.filter(used_to='ACCESSORIES')
        ship_direction_list = []
        SHIP_DIRECTION = AccsOrder.SHIP_DIRECTION_CHOICES
        for item in SHIP_DIRECTION:
            ship_direction_list.append({"key":item[0], "value":item[1]})
        return render(request, "accsorder_delivery_list.html", {
            "warehouses":warehouses,
            "ship_direction_list":ship_direction_list,
            "flag":flag
        })
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#28
0
    def create_ins(self, request):
        data = request.data
        ins_keys = ['desc', 'content', 'type']
        check_keys(data, ins_keys)
        data.update({'user': request.user.name})

        # data.update({'user': request.user})
        # ins = Ins.objects.create(**data)
        # return json_response(InsSerializer(ins).data)
        # with QueueManager() as queue_manager:
        #     queue_manager.publish_ins(data=data)

        queue_manager = QueueManager()
        queue_manager.publish_ins(data=data)
        queue_manager.close()
        return json_response(data)
示例#29
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_accs_order_pick_list_data(request):
    data_list = []
    filter = {}
    try:
        page = request.GET.get('page', '1')
        limit = request.GET.get('limit', '30')
        accs_order_number = request.GET.get('accs_order_number', '')
        frame_sku = request.GET.get('frame', '')
        order_status = request.GET.get('order_status', '')
        start_date = request.GET.get('start_date', '')
        finish_date = request.GET.get('finish_date', '')

        if accs_order_number:
            filter['accs_order_number'] = accs_order_number
        if frame_sku:
            filter['sku'] = frame_sku
        if order_status:
            filter['status'] = order_status

        page = int(page)
        start = (page-1) * int(limit)
        end = page * int(limit)
        accs_orders_request_notes = AccsOrderDeliveryLine.objects.filter().order_by("-id")
        if start_date:
            accs_orders_request_notes = accs_orders_request_notes.filter(created_at__gte=start_date).order_by("-id")

        if finish_date:
            accs_orders_request_notes = accs_orders_request_notes.filter(created_at__lte=finish_date).order_by("-id")

        accs_orders_request_notes = accs_orders_request_notes.filter(**filter)
        total = len(accs_orders_request_notes)
        fsi_list = accs_orders_request_notes[start: end]
        for item in fsi_list:
            data_list.append({
                "id": item.id,
                "accs_order_number": item.accs_order_number,
                "sku": item.sku,
                "quantity": str(item.quantity),
                "warehouse": item.warehouse,
                "user_name": item.user_name,
                "base_entity": item.base_entity,
                "comments": item.comments,
                "created_at": (item.created_at + datetime.timedelta(hours=8)).strftime("%Y-%m-%d %H:%M:%S"),
            })
        return json_response_page(code=0, msg='', count=total, data=data_list)
    except Exception as e:
        return json_response(code=-1, msg=e)
示例#30
0
文件: views.py 项目: qiaozhizt/OMS
def redirect_accs_order_request_list_data(request):
    data_list = []
    filter = {}
    try:
        page = request.GET.get('page', '1')
        limit = request.GET.get('limit', '30')
        accs_order_number = request.GET.get('accs_order_number', '')
        frame_sku = request.GET.get('frame', '')
        order_status = request.GET.get('order_status', '')
        order_wh = request.GET.get('order_wh', '')
        start_date = request.GET.get('start_date', '')
        finish_date = request.GET.get('finish_date', '')

        if accs_order_number:
            filter = get_by_entity_filter(accs_order_number)
        if frame_sku:
            filter['sku'] = frame_sku
        if order_status:
            filter['status'] = order_status

        if order_wh:
            filter['warehouse'] = order_wh

        page = int(page)
        start = (page-1) * int(limit)
        end = page * int(limit)
        accs_orders_request_notes = AccsOrderRequestNotes.objects.filter().order_by("-id")
        if start_date:
            accs_orders_request_notes = accs_orders_request_notes.filter(created_at__gte=start_date).order_by("-id")

        if finish_date:
            accs_orders_request_notes = accs_orders_request_notes.filter(created_at__lte=finish_date).order_by("-id")

        accs_orders_request_notes = accs_orders_request_notes.filter(**filter)
        total = len(accs_orders_request_notes)
        fsi_list = accs_orders_request_notes[start: end]
        for item in fsi_list:
            data_list.append({
                "id": item.id,
                "accs_order_number": item.accs_order_number,
                "count": item.count,
                "warehouse": item.get_warehouse_display(),
                "created_at": (item.created_at + datetime.timedelta(hours=8)).strftime("%Y-%m-%d %H:%M:%S"),
            })
        return json_response_page(code=0, msg='', count=total, data=data_list)
    except Exception as e:
        return json_response(code=-1, msg=e)