Пример #1
0
def list_shipment(request):
    shipmentList = Shipment.objects.all().order_by("-create_date")
    return render_response(request, 'sms/list_shipment.html',
            {
            'shipmentList':shipmentList,
            'totalShipmentItemCount':getTotalShipmentItemCount(request),
            })
Пример #2
0
def view_basket(request):
    shipment = request.session.get("shipment",None)
    siList = request.session.get("siList",[])
    return render_response(request, 'sms/view_basket.html',
            {
            'shipment':shipment,
            'siList':siList,
            'shipmentTypeList':ShipmentType.objects.all().order_by("order"),
            'totalShipmentItemCount':getTotalShipmentItemCount(request)
        })
Пример #3
0
def update_basket(request):
    ics = request.POST.get("id_catalog_simple",None)
    count = request.POST.get("count",0)

    totalCount = 0
    currentBasketSize = getTotalShipmentItemCount(request)

    shipment = request.session.get("shipment",Shipment())
    siList = request.session.get("siList",[])

    cs = CatalogSimple.objects.get(pk=ics)
    supplier = cs.supplier.pk

    if not currentBasketSize>0:
        request.session["supplier"] = supplier


    si= ShipmentItem()
    si.catalog_simple = cs
    si.quantity_ordered = int(count)
    si.shipment = shipment
    si.catalog_simple = cs

    index = -1
    for item in siList:
        if item.catalog_simple == cs:
            item.quantity_ordered += int(count)
            index = siList.index(item)
            break

    if index < 0:
        siList.append(si)

    request.session["shipment"] = shipment
    request.session["siList"] = siList

    totalCount = getTotalShipmentItemCount(request)


    json_models = simplejson.dumps(totalCount)
    return HttpResponse(json_models, mimetype='application/json; charset=utf8')
Пример #4
0
def list_catalog_simple(request):
    if request.method == 'POST' and request.POST["sid"]!= '-1':
        sup = None
        csList = CatalogSimple.objects.all()
        if "sid" in request.POST and CatalogSupplier.objects.filter(pk=request.POST["sid"]).count():
            sup = CatalogSupplier.objects.get(pk=request.POST["sid"])
            csList = CatalogSimple.objects.filter(supplier=sup,status_simple = SimpleStatus.ACTIVE, status_config = SimpleStatus.ACTIVE, id_shipment_type = SimpleShipmentTypeID.ON_WAREHOUSE, brand__status = BrandStatus.ACTIVE)

        return render_response(request, 'sms/list_catalog_simple.html',
                {
                'supplier':sup,
                'csList':csList,
                'supList':CatalogSupplier.objects.filter( status = SupplierStatus.ACTIVE).order_by('name'),
                'totalShipmentItemCount':getTotalShipmentItemCount(request)
            })
    else:

        return render_response(request, 'sms/list_catalog_simple.html',
                {
                'supList':CatalogSupplier.objects.filter( status = SupplierStatus.ACTIVE).order_by('name'),
                'totalShipmentItemCount':getTotalShipmentItemCount(request)
            })
Пример #5
0
def clone_shipment(request):

    sid = request.POST.get("sid")
    shipment = Shipment.objects.get(pk = sid)


    request.session.__delitem__("supplier")
    request.session.__delitem__("siList")
    request.session.__delitem__("shipment")

    request.session["supplier"] = shipment.supplier.pk
    siListQuerySet = ShipmentItem.objects.filter( shipment = shipment)
    siList = list()
    for si in siListQuerySet:
        siList.append(si)
    request.session["siList"] = siList
    request.session["shipment"] = Shipment()

    totalCount = getTotalShipmentItemCount(request)
    json_models = simplejson.dumps(totalCount)
    return HttpResponse(json_models, mimetype='application/json; charset=utf8')
Пример #6
0
def view_shipment(request):
    sid = request.GET.get("sid",None)
    if sid is  None or Shipment.objects.filter(pk=sid).count() == 0:
        return redirect("/sms/list_shipment/")

    shipment = Shipment.objects.get(pk=sid)
    siList = ShipmentItem.objects.filter(shipment=shipment)

    date = shipment.proposed_shipment_date
    shipments = Shipment.objects.filter(Q(proposed_shipment_date = date) & Q(status = 1) )
    total_item = 0
    for s in shipments:
        total_item = total_item + s.totalShipmentItemCount

    return render_response(request, 'sms/view_shipment.html',
            {
            'shipment':shipment,
            'siList':siList,
            'totalShipmentItemCount':getTotalShipmentItemCount(request),
            'cancelTypeList' :CancellationReason.objects.all().order_by("order"),
            'total' : total_item,
            })
Пример #7
0
def import_mass(request):
    if request.method == 'POST':
        sku_simple = request.POST['sku_simple']
        sku_quantity = request.POST['sku_simple_quantity']
        sup = None
        if "sid" in request.POST and CatalogSupplier.objects.filter(pk=request.POST["sid"]).count():
            sup = CatalogSupplier.objects.get(pk=request.POST["sid"])

        shipment = Shipment()
        siList = []
        exceptionList = []

        sku_simple_list = sku_simple.split("\r\n")
        quantity_list = sku_quantity.split("\r\n")
        index = 0
        for sku in sku_simple_list:
            sku = sku.lstrip().rstrip()
            if sku == "":
                continue
            if not CatalogSimple.objects.filter(sku=sku).count():
                exception = [sku,1]
                exceptionList.append(exception)
            elif not CatalogSimple.objects.filter(sku=sku,supplier = sup).count():
                exception = [sku,2]
                exceptionList.append(exception)
            elif not CatalogSimple.objects.filter(sku=sku,supplier = sup,status_simple = SimpleStatus.ACTIVE).count():
                exception = [sku,3]
                exceptionList.append(exception)
            elif not CatalogSimple.objects.filter(sku=sku,supplier = sup,status_simple = SimpleStatus.ACTIVE,status_config = SimpleStatus.ACTIVE).count():
                exception = [sku,4]
                exceptionList.append(exception)
            elif not CatalogSimple.objects.filter(sku=sku,supplier = sup,status_simple = SimpleStatus.ACTIVE,status_config = SimpleStatus.ACTIVE,id_shipment_type = SimpleShipmentTypeID.ON_WAREHOUSE).count():
                exception = [sku,5]
                exceptionList.append(exception)
            elif not quantity_list[index].isdigit():
                exception = [sku,6]
                exceptionList.append(exception)
            elif not CatalogSimple.objects.filter(sku=sku,
                                            supplier = sup,
                                            status_simple = SimpleStatus.ACTIVE,
                                            status_config = SimpleStatus.ACTIVE,
                                            id_shipment_type = SimpleShipmentTypeID.ON_WAREHOUSE,
                                            brand__status = BrandStatus.ACTIVE).count() > 0:
                exception = [sku,7]
                exceptionList.append(exception)
            else:
                cs = CatalogSimple.objects.get(sku=sku)
                si= ShipmentItem()
                si.catalog_simple = cs
                si.quantity_ordered = int(quantity_list[index])
                si.shipment = shipment
                siList.append(si)

            index +=1

        if not exceptionList:
            request.session["shipment"] = shipment
            request.session["siList"] = siList
            return redirect('/sms/view_basket/')
        else:
            return render_response(request, 'sms/import_mass.html',
                {
                    'supList':CatalogSupplier.objects.filter( status = SupplierStatus.ACTIVE).order_by('name'),
                    'exceptionList': exceptionList ,
                    'exceptionListLength':len(exceptionList),
                    'sku_simple':request.POST['sku_simple'],
                    'sku_quantity':request.POST['sku_simple_quantity'],
                    'supplier':sup,
                    'totalShipmentItemCount':getTotalShipmentItemCount(request)
                })
    else:
        return render_response(request, 'sms/import_mass.html',
                {
                    'supList':CatalogSupplier.objects.filter( status = SupplierStatus.ACTIVE).order_by('name'),
                    'exceptionList' : [],
                    'totalShipmentItemCount':getTotalShipmentItemCount(request)
                })