def iurankas_details(): idwarga = request.args['idwarga'] bulan = request.args['bulan'] tahun = request.args['tahun'] iuran_warga_obj = TahunIuran.find_one_warga_by_idwarga(idwarga) if request.method == 'POST': tahun_list = list(filter(lambda x: x['tahun'] == tahun, iuran_warga_obj.iuran)) for iuranbulan in tahun_list[0]['iurankas']: if iuranbulan['bulan'] == bulan: iuranbulan['status'] = 'lunas' iuranbulan['verifikasi_oleh'] = session['name'] iuranbulan['tanggal_verifikasi'] = datetime.now().strftime("%Y-%m-%d") iuran_warga_obj.update_db() data = TahunIuran.find_all_iuran_warga() datakas = [] for d in data: for tahun in d.iuran: for iurankas in tahun['iurankas']: if iurankas['status'] == 'verifikasi': datakas.append( {**iurankas, "norumah": d.norumah, "tahun": tahun['tahun'], "idwarga": d.idwarga}) return render_template('verifikasi/iurankas.html', message=f'{iuran_warga_obj.norumah} {bulan} Done!', data=datakas) iuran_kas_details = [iuran['iurankas'] for iuran in iuran_warga_obj.iuran if iuran['tahun'] == tahun] data_kas_bulan = {"idwarga": iuran_warga_obj.idwarga, "norumah": iuran_warga_obj.norumah, "tahun": tahun} for bulan_iuran in iuran_kas_details[0]: if bulan_iuran['bulan'] == bulan: data_kas_bulan = {**data_kas_bulan, **bulan_iuran} return render_template('verifikasi/iurankasdetails.html', data=data_kas_bulan)
def home_warga(): # start Message dari konfirmasi view jika sukses try: message = request.args['success'] except: message = None # end Message dari konfirmasi view jika sukses # start jika ada tahun dari input tahun home try: tahun_from_datetime = request.args['tahun'] except: tahun_from_datetime = str(datetime.now().year) # end jika ada tahun dari input tahun home # start jika ada tahun dari input tahun home try: tahunkas = request.args['tahunkas'] except: tahunkas = str(datetime.now().year) # end jika ada tahun dari input tahun home # print(message, tahun_from_datetime, tahun_from_datetime) # start cari 1 warga try: tahun_obj = TahunIuran.find_one_warga_by_idwarga(session['idwarga']) if tahun_obj is None: return render_template('home/home.html', dataiuran=[], datakas=[], tahun=tahun_from_datetime, tahunkas=tahunkas) tahun_fromdb = [ d['tahun'] for d in tahun_obj.iuran if d['tahun'] == tahun_from_datetime ] if len(tahun_fromdb) == 0: # Jika tidak ada iuran warga di db return render_template('home/home.html', dataiuran=tahun_fromdb, datakas=tahun_fromdb, tahun=tahun_from_datetime, tahunkas=tahunkas) else: # Jika ada iuran warga di db datatahun = [ d['iuranbulanan'] for d in tahun_obj.iuran if d['tahun'] == tahun_from_datetime ][0] datakas = [ d['iurankas'] for d in tahun_obj.iuran if d['tahun'] == tahunkas ][0] return render_template('home/home.html', dataiuran=json.dumps(datatahun), datakas=json.dumps(datakas), message=message, tahun=tahun_from_datetime, tahunkas=tahunkas) except Exception as e: print('error di home view home page => ', e) return redirect(url_for('login_view.login_page'))
def iuranbulanan(): data = TahunIuran.find_all_iuran_warga() dataiuran = [] for d in data: for tahun in d.iuran: for iuranbulan in tahun['iuranbulanan']: if iuranbulan['status'] == 'verifikasi': dataiuran.append( {**iuranbulan, "norumah": d.norumah, "tahun": tahun['tahun'], "idwarga": d.idwarga}) return render_template('verifikasi/iuranbulanan.html', data=dataiuran)
def home_report(): data = TahunIuran.find_all_iuran_warga() datasemuaiuran = [] for d in data: datasemuaiuran.append(d.json()) try: tahun = request.args['tahun'] except: tahun = str(datetime.now().year) return render_template('report/report.html', data=datasemuaiuran, tahunreport=tahun)
def iuran_bulanan(): try: idwarga = session['idwarga'] norumah = session['norumah'] except: return redirect(url_for('login_view.login_page')) #######START POST########### if request.method == 'POST': file = request.files['uploadbukti'] if request.form['databulan'] == 'kosong': return render_template('konfirmasi/iuranbulanan.html', error="Belum Pilih Bulan Pembayaran", data=request.form) databulan = request.form['databulan'].rsplit(',') if file and Utlis.allowed_file(file.filename): tahunbayar = request.form['tahunbayar'] namapembayar = request.form['namapembayar'] tanggalbayar = request.form['tanggalbayar'] catatan = request.form['catatan'] unik_name = datetime.now().strftime("%Y%m%d%H%M%S") filename = secure_filename(f'{unik_name}_{file.filename}') file.save(os.path.join(app.config['BUKTI_BAYAR_IURAN'], filename)) iuran_obj = TahunIuran.find_one_warga_by_idwarga(idwarga) if iuran_obj is not None: # JIKA ADA IURAN tahun_fromdb = [ d for d in iuran_obj.iuran if d['tahun'] == tahunbayar ] if len(tahun_fromdb) == 0: tahun_obj = Tahun(tahunbayar) for bulan in databulan: iuran_bulanan_obj = DataBulanan( bulan, catatan, tanggalbayar, namapembayar, filename) iuran_bulanan_obj.status = 'verifikasi' tahun_obj.iuranbulanan.append(iuran_bulanan_obj.json()) iuran_obj.iuran.append(tahun_obj.json()) iuran_obj.update_db() else: for bulan in databulan: iuran_bulanan_obj = DataBulanan( bulan, catatan, tanggalbayar, namapembayar, filename) iuran_bulanan_obj.status = 'verifikasi' tahun_fromdb[0]['iuranbulanan'].append( iuran_bulanan_obj.json()) iuran_obj.update_db() return redirect( url_for('home_view.home_warga', success="success")) else: # JIKA TIDAK ADA IURAN tahuniuran_obj = TahunIuran(idwarga, norumah) tahun_obj = Tahun(tahunbayar) dataiuranbulanan = [ DataBulanan(d, catatan, tanggalbayar, namapembayar, filename).json() for d in databulan ] for iuranbulan in dataiuranbulanan: iuranbulan['status'] = 'verifikasi' tahun_obj.iuranbulanan.append(iuranbulan) tahuniuran_obj.iuran.append(tahun_obj.json()) tahuniuran_obj.save_to_db() return redirect( url_for('home_view.home_warga', success="success!")) #######END POST########### try: bulan_from_home = request.args['bulan'] except: bulan_from_home = None try: tahun_from_datetime = request.args['tahun'] except: tahun_from_datetime = str(datetime.now().year) iuran_obj = TahunIuran.find_one_warga_by_idwarga(idwarga) if iuran_obj is None: return render_template('konfirmasi/iuranbulanan.html', bulan_from_home=bulan_from_home, tahun=tahun_from_datetime) tahun_fromdb = [ d for d in iuran_obj.iuran if tahun_from_datetime in d['tahun'] ] if len(tahun_fromdb) == 0: return render_template('konfirmasi/iuranbulanan.html', tahun=tahun_from_datetime, bulan_from_home=bulan_from_home) else: bulan_data = [] for bulan in tahun_fromdb[0]['iuranbulanan']: bulan_data.append(bulan['bulan']) return render_template('konfirmasi/iuranbulanan.html', dataiuran=json.dumps(bulan_data), tahun=tahun_from_datetime, bulan_from_home=bulan_from_home)