def daftar(request, kode_toko): (pengguna, toko) = inisiasi_view(request, kode_toko) grup_peminjaman_di_luar = [] peminjaman_di_luar = Peminjaman.objects.filter( pelanggan__toko=toko, dikembalikan =False, ) for p in peminjaman_di_luar: stat_peminjaman_di_luar = {} stat_peminjaman_di_luar['peminjaman'] = p if p.selesai < timezone.now() : stat_peminjaman_di_luar['terlambat'] = True grup_peminjaman_di_luar.append(stat_peminjaman_di_luar) minggu_ini_min = datetime.datetime.combine( datetime.date.today()-datetime.timedelta(days=7), datetime.time.min ) minggu_ini_max = datetime.datetime.combine( datetime.date.today(), datetime.time.max ) peminjaman = Peminjaman.objects.filter( pelanggan__toko=toko, mulai__range=(minggu_ini_min, minggu_ini_max) ) return render(request, 'peminjaman/daftar.jade', locals())
def berlangsung(request, kode_toko): (pengguna, toko) = inisiasi_view(request, kode_toko) ada_pesanan = cek_pesanan(request) if request.method == "POST": postdata = request.POST.copy() if postdata["submit"] == "Batal": hapus_pesanan(request) return redirect(toko) if postdata['submit'] == "hapus": pesanan = ambil_pesanan(request) item_dihapus = pesanan.item.get(pk=postdata['pk_item']) pesanan.item.remove(item_dihapus) pesanan.save() del item_dihapus if postdata['submit'] == "Checkout": pesanan = ambil_pesanan(request) pesanan.check_out = True pesanan.save() hapus_cookie_pesanan(request) return redirect(toko) try: pesanan = ambil_pesanan(request) except Pesanan.DoesNotExist: hapus_cookie_pesanan(request) return redirect(request.path) item = pesanan.item.all() return render(request, 'pesanan/berlangsung.jade', locals())
def detail(request, kode_toko='', kode_pelanggan=''): (pengguna, toko) = inisiasi_view(request, kode_toko) pelanggan = Pelanggan.objects.get(toko=toko, slug=kode_pelanggan) pelanggan.dilihat = timezone.now() pelanggan.save(update_fields=['dilihat']) peminjaman = Peminjaman.objects.filter(pelanggan=pelanggan) catatan_peminjaman = [] ada_pesanan = cek_pesanan(request) ada_keranjang = cek_keranjang(request) for p in peminjaman: item_peminjaman = ItemPeminjaman.objects.filter( peminjaman=p) catatan_peminjaman.append(item_peminjaman) if request.method == "POST": datapost = request.POST.copy() if datapost['submit'] == "Peminjaman Baru": set_keranjang(request, pelanggan) return redirect(reverse( 'katalog_depan', args=[toko.slug,] )) if datapost['submit'] == "pesanan": cantumkan_pelanggan(request, pelanggan) return redirect(reverse( 'pesanan_lihat', args=[toko.slug] )) if datapost['submit'] == "hapus": pelanggan.diaktifkan = False pelanggan.save(update_fields=['diaktifkan',]) return redirect(reverse('pelanggan_depan', args=[toko.slug,])) return render(request, 'pelanggan/detail.jade', locals())
def lihat(request, kode_toko): (pengguna, toko) = inisiasi_view(request, kode_toko) form = CheckoutKeranjangForm() ada_keranjang = cek_keranjang(request) if not ada_keranjang: return redirect(toko) keranjang = ItemKeranjang.objects.get( id_keranjang=request.session[ID_KERANJANG_SESSION_KEY], check_out=False) if request.method == "POST": postdata = request.POST.copy() if postdata['submit'] == "Hapus": item_dihapus = keranjang.item.get(pk=postdata['pk_item']) keranjang.item.remove(item_dihapus) keranjang.save() del item_dihapus if postdata['submit'] == "Checkout": form = CheckoutKeranjangForm(postdata) if form.is_valid(): checkout(request) return redirect(toko) if postdata['submit'] == "Batal": hapus_keranjang(request) return redirect(toko) item = keranjang.item.all() return render(request, 'keranjang/lihat.jade', locals())
def item_detail(request, kode_toko, slug_kategori, slug_jenis, nama_item): (pengguna, toko) = inisiasi_view(request, kode_toko) kategori = Kategori.objects.get(toko=toko, slug=slug_kategori) jenis = Jenis.objects.get(kategori=kategori, slug=slug_jenis) item = Item.objects.get(jenis=jenis, nama=nama_item) item_baru = Item(jenis=jenis) form = TambahItemForm(instance=item_baru) peminjaman = Peminjaman.objects.filter( aktif=True, item__id=item.id, ) pesanan = Pesanan.objects.filter( aktif=True, check_out=True, item__id__exact=item.id, ) if request.method == "POST": item.aktif = False item.save(update_fields=['aktif']) return redirect( reverse('katalog_daftar_item', args=[toko.slug, kategori.slug, jenis.slug])) form.fields['jenis'].widget = HiddenInput() item.dilihat = now() item.save(update_fields=['dilihat']) #item = Item.objects.filter(jenis=jenis) return render(request, 'katalog/item_detail.jade', locals())
def lihat(request, kode_toko): (pengguna, toko) = inisiasi_view(request, kode_toko) form = CheckoutKeranjangForm() ada_keranjang = cek_keranjang(request) if not ada_keranjang: return redirect(toko) keranjang = ItemKeranjang.objects.get( id_keranjang = request.session[ID_KERANJANG_SESSION_KEY], check_out = False ) if request.method == "POST": postdata = request.POST.copy() if postdata['submit'] == "Hapus": item_dihapus = keranjang.item.get( pk= postdata['pk_item'] ) keranjang.item.remove(item_dihapus) keranjang.save() del item_dihapus if postdata['submit'] == "Checkout": form = CheckoutKeranjangForm(postdata) if form.is_valid(): checkout(request) return redirect(toko) if postdata['submit'] == "Batal": hapus_keranjang(request) return redirect(toko) item = keranjang.item.all() return render(request, 'keranjang/lihat.jade', locals())
def detail(request, kode_toko='', kode_pelanggan=''): (pengguna, toko) = inisiasi_view(request, kode_toko) pelanggan = Pelanggan.objects.get(toko=toko, slug=kode_pelanggan) pelanggan.dilihat = timezone.now() pelanggan.save(update_fields=['dilihat']) peminjaman = Peminjaman.objects.filter(pelanggan=pelanggan) catatan_peminjaman = [] ada_pesanan = cek_pesanan(request) ada_keranjang = cek_keranjang(request) for p in peminjaman: item_peminjaman = ItemPeminjaman.objects.filter(peminjaman=p) catatan_peminjaman.append(item_peminjaman) if request.method == "POST": datapost = request.POST.copy() if datapost['submit'] == "Peminjaman Baru": set_keranjang(request, pelanggan) return redirect(reverse('katalog_depan', args=[ toko.slug, ])) if datapost['submit'] == "pesanan": cantumkan_pelanggan(request, pelanggan) return redirect(reverse('pesanan_lihat', args=[toko.slug])) if datapost['submit'] == "hapus": pelanggan.diaktifkan = False pelanggan.save(update_fields=[ 'diaktifkan', ]) return redirect(reverse('pelanggan_depan', args=[ toko.slug, ])) return render(request, 'pelanggan/detail.jade', locals())
def ubah(request, kode_toko='', kode_pelanggan=''): (pengguna, toko) = inisiasi_view(request, kode_toko) pelanggan = Pelanggan.objects.get(toko=toko, slug=kode_pelanggan) form = UbahPelangganForm(instance=pelanggan) if request.method == "POST": form = UbahPelangganForm(request.POST, instance=pelanggan) if form.is_valid: form.save() return redirect(pelanggan) return render(request, 'pelanggan/ubah.jade', locals())
def depan(request, kode_toko): (pengguna, toko) = inisiasi_view(request, kode_toko) if request.method == "POST": nama = request.POST['nama'] if nama != '': kategori_baru = Kategori(nama=nama, toko=toko) toko_slugify(kategori_baru, nama) kategori_baru.save() kategori = Kategori.objects.filter(toko=toko, aktif=True) return render(request, 'katalog/depan.jade', locals())
def depan(request, kode_toko=''): (pengguna, toko) = inisiasi_view(request, kode_toko) form = TambahPelangganForm(initial={'toko': toko.pk}) if request.method == "POST": form = TambahPelangganForm(request.POST) if form.is_valid(): pelanggan_baru = form.save() return redirect(pelanggan_baru) pelanggan = Pelanggan.objects.filter(toko=toko, diaktifkan=True) return render(request, 'pelanggan/depan.jade', locals())
def ubah(request, kode_toko='', kode_pelanggan=''): (pengguna, toko) = inisiasi_view(request, kode_toko) pelanggan = Pelanggan.objects.get( toko=toko, slug=kode_pelanggan) form = UbahPelangganForm(instance=pelanggan) if request.method == "POST": form = UbahPelangganForm(request.POST, instance=pelanggan) if form.is_valid: form.save() return redirect(pelanggan) return render(request, 'pelanggan/ubah.jade', locals())
def hasil(request, kode_toko): (pengguna, toko) = inisiasi_view(request, kode_toko) q = request.GET.get('q', '') permintaan = request.GET.get('submit') if permintaan == "cari_item": cocok = mesin_cari.item(toko, q) objek_cari = "Item" kolom_cari = "nama" else: cocok = mesin_cari.pelanggan(toko, q) objek_cari = "Pelanggan" kolom_cari = "telepon" if cocok.count() == 1: return redirect(cocok[0]) return render(request, 'cari/hasil_cari.jade', locals())
def hasil(request, kode_toko): (pengguna, toko) = inisiasi_view(request, kode_toko) q = request.GET.get('q', '') permintaan = request.GET.get('submit') if permintaan == "cari_item": cocok = mesin_cari.item(toko,q) objek_cari = "Item" kolom_cari = "nama" else: cocok = mesin_cari.pelanggan(toko, q) objek_cari = "Pelanggan" kolom_cari = "telepon" if cocok.count() == 1: return redirect(cocok[0]) return render(request, 'cari/hasil_cari.jade', locals())
def kategori(request, kode_toko, slug_kategori): (pengguna, toko) = inisiasi_view(request, kode_toko) kategori = Kategori.objects.get(toko=toko, slug=slug_kategori) if request.method == "POST": postdata = request.POST.copy() if postdata['submit'] == "tambah": nama = request.POST['nama'] jenis_baru = Jenis(nama=nama, kategori=kategori) jenis_baru.save() if postdata['submit'] == "hapus": kategori.aktif = False kategori.save(update_fields=['aktif']) return redirect(reverse('katalog_depan', args=[toko.slug])) kategori.dilihat = now() kategori.save(update_fields=['dilihat']) jenis = Jenis.objects.filter(kategori=kategori, aktif=True) return render(request, 'katalog/kategori_detail.jade', locals())
def lihat(request, kode_toko): (pengguna, toko) = inisiasi_view(request, kode_toko) ada_pesanan = cek_pesanan(request) ada_keranjang = cek_keranjang(request) form = BuatPesananForm() if request.method == "POST": postdata = request.POST.copy() if postdata["submit"] == "buat": form = BuatPesananForm(request.POST) if form.is_valid(): buat_pesanan(request, form) ada_pesanan = True if postdata["submit"] == "Batal": hapus_pesanan(request) return redirect(toko) if postdata['submit'] == "hapus": pesanan = ambil_pesanan(request) item_dihapus = pesanan.item.get( pk= postdata['pk_item'] ) pesanan.item.remove(item_dihapus) pesanan.save() del item_dihapus if postdata['submit'] == "Checkout": pesanan = ambil_pesanan(request) pesanan.check_out = True pesanan.save() hapus_cookie_pesanan(request) return redirect(toko) if ada_pesanan: try: pesanan = ambil_pesanan(request) except Pesanan.DoesNotExist: hapus_cookie_pesanan(request) return redirect(request.path) item = pesanan.item.all() return render(request, 'pesanan/lihat.jade', locals())
def lihat(request, kode_toko): (pengguna, toko) = inisiasi_view(request, kode_toko) ada_pesanan = cek_pesanan(request) ada_keranjang = cek_keranjang(request) form = BuatPesananForm() if request.method == "POST": postdata = request.POST.copy() if postdata["submit"] == "buat": form = BuatPesananForm(request.POST) if form.is_valid(): buat_pesanan(request, form) ada_pesanan = True if postdata["submit"] == "Batal": hapus_pesanan(request) return redirect(toko) if postdata['submit'] == "hapus": pesanan = ambil_pesanan(request) item_dihapus = pesanan.item.get(pk=postdata['pk_item']) pesanan.item.remove(item_dihapus) pesanan.save() del item_dihapus if postdata['submit'] == "Checkout": pesanan = ambil_pesanan(request) pesanan.check_out = True pesanan.save() hapus_cookie_pesanan(request) return redirect(toko) if ada_pesanan: try: pesanan = ambil_pesanan(request) except Pesanan.DoesNotExist: hapus_cookie_pesanan(request) return redirect(request.path) item = pesanan.item.all() return render(request, 'pesanan/lihat.jade', locals())
def detail(request, kode_toko, pk_peminjaman): (pengguna, toko) = inisiasi_view(request, kode_toko) peminjaman = Peminjaman.objects.get(pk=pk_peminjaman) item_peminjaman = ItemPeminjaman.objects.filter( peminjaman=peminjaman) if request.method == 'POST': postdata = request.POST.copy() if postdata['submit'] == 'selesai': peminjaman.dikembalikan = True peminjaman.save(update_fields = ['dikembalikan',]) if postdata['submit'] == 'keterangan': form = PerbaruiKeteranganForm(postdata) if form.is_valid(): peminjaman.keterangan = form.cleaned_data['keterangan'] peminjaman.save(update_fields = ['keterangan',]) form = PerbaruiKeteranganForm( instance=peminjaman, ) return render(request, 'peminjaman/detail.jade', locals())
def berlangsung(request, kode_toko): (pengguna, toko) = inisiasi_view(request, kode_toko) ada_pesanan = cek_pesanan(request) if request.method == "POST": postdata = request.POST.copy() if postdata["submit"] == "Batal": hapus_pesanan(request) return redirect(toko) if postdata['submit'] == "hapus": pesanan = ambil_pesanan(request) item_dihapus = pesanan.item.get( pk= postdata['pk_item'] ) pesanan.item.remove(item_dihapus) pesanan.save() del item_dihapus if postdata['submit'] == "Checkout": pesanan = ambil_pesanan(request) pesanan.check_out = True pesanan.save() hapus_cookie_pesanan(request) return redirect(toko) try: pesanan = ambil_pesanan(request) except Pesanan.DoesNotExist: hapus_cookie_pesanan(request) return redirect(request.path) item = pesanan.item.all() return render(request, 'pesanan/berlangsung.jade', locals())
def detail(request, kode_toko, pk): (pengguna, toko) = inisiasi_view(request, kode_toko) pesanan = Pesanan.objects.get(pk=pk) item = pesanan.item.all() return render(request, 'pesanan/detail.jade', locals())
def daftar_item(request, kode_toko, slug_kategori, slug_jenis): (pengguna, toko) = inisiasi_view(request, kode_toko) kategori = Kategori.objects.get(toko=toko, slug=slug_kategori) jenis = Jenis.objects.get(kategori=kategori, slug=slug_jenis) item_baru = Item(jenis=jenis) form = TambahItemForm(instance=item_baru) if request.method == "POST": postdata = request.POST.copy() # kalau form item baru if postdata['submit'] == "item_baru": form = TambahItemForm(request.POST) if form.is_valid(): nama = form.cleaned_data['nama'] item_baru = Item(nama=nama, jenis=jenis) item_baru.save() # kalau form tambah item ke keranjang if postdata['submit'] == "tambah_keranjang": tambah_item_ke_keranjang(request) return redirect(reverse('keranjang_lihat', args=[ toko.slug, ])) if postdata['submit'] == "pesan": tambah_pesanan(request) return redirect(jenis) if postdata['submit'] == "hapus": jenis.aktif = False jenis.save(update_fields=['aktif']) return redirect( reverse('katalog_kategori', args=[toko.slug, kategori.slug])) form.fields['jenis'].widget = HiddenInput() ada_keranjang = cek_keranjang(request) ada_pesanan = cek_pesanan(request) jenis.dilihat = now() jenis.save(update_fields=['dilihat']) item = Item.objects.filter(jenis=jenis, aktif=True) grup_stat_item = [] stat_item = {} for it in item: stat_item['item'] = it status = "Tersedia" peminjaman_item = Peminjaman.objects.filter( dikembalikan=False, item__id=it.id, ) if peminjaman_item: status = "Sedang dipinjam" stat_item['status'] = status pesanan_terdekat = Pesanan.objects.filter( item__id=it.id, check_out=True, awal__gte=now().date(), ) status_pesanan = "" if pesanan_terdekat: pesanan_terdekat = pesanan_terdekat[0] status_pesanan = pesanan_terdekat.awal if ada_pesanan: pesanan = ambil_pesanan(request) if it in pesanan.item.all(): status_pesanan = "Sedang dipesan" if not status_pesanan: status_pesanan = "Tidak dipesan" stat_item['pesanan_terdekat'] = status_pesanan grup_stat_item.append(stat_item) return render(request, 'katalog/daftar_item.jade', locals())