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), })
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) })
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')
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) })
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')
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, })
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) })