Example #1
0
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)
Example #2
0
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'))
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)