Esempio n. 1
0
def accept_permisconst():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    mun_name = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_name
    mun_long = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_long
    mun_lat = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_lat
    permis_id = request.values['type']
    name = request.values['name']
    permis_data = Permisconstruct.query.filter_by(id=permis_id).first()
    form = PermisupdateForm()
    if form.validate_on_submit():
        permis = Permisconstruct.query.get(int(permis_id))
        permis.num_permis = form.num_permis.data
        permis.date_attribution = form.date_attribution.data
        permis.date_expiration = form.date_expiration.data
        permis.mont_charge_fix = form.mont_charge_fix.data
        permis.mont_decision = form.mont_decision.data
        permis.mont_cloture = form.mont_cloture.data
        permis.mont_charge_ascend = form.mont_charge_ascend.data
        permis.mont_total = form.mont_charge_fix.data + form.mont_decision.data + form.mont_cloture.data + form.mont_charge_ascend.data
        permis.permis_status = 'approved'
        db.session.commit()
        flash(u'تم التحيين ', 'success')
        return redirect(url_for('permis_construction.consult_permisconst'))
    else:
        flash(u'الرجاء التثبت فالإستمارة ', 'warning')
    return render_template('permis_construction/form_permis_construction.html', form=form, update=True, accept=True, check=True, permis_id=permis_id, name=name, permis_data=reforme(permis_data.__dict__), mun_name=mun_name, mun_cord=[mun_lat, mun_long])
Esempio n. 2
0
def api():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    push_api(request.values)
    data = [u.__dict__ for u in Permisconstruct.query.filter_by(municipal_id=current_user.municipal_id).all()]
    return render_template('permis_construction/permis_construction.html', data=data)
Esempio n. 3
0
def add_detention():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    form = DetentionForm(request.form)
    form.Name_Fourrier2.choices = [(None, '')]
    form.Name_Fourrier2.choices.extend([(str(row.id), row.Name_Fourrier) for row in Fourrier.query.filter_by(municipal_id=current_user.municipal_id).all()])
    if form.validate_on_submit():
        detention = Detention(
            user_id=current_user.id,
            municipal_id=current_user.municipal_id,
            Date_Detention=form.Date_Detention.data,
            Cause_Detention=form.Cause_Detention.data,
            Descr_Detention=form.Descr_Detention.data,
            Name_Owner=form.Name_Owner.data,
            Authority_Detention=form.Authority_Detention.data,
            Type_Detention=form.Type_Detention.data,
            fourrier_id=int(form.Name_Fourrier2.data),
            Name_Fourrier=Fourrier.query.filter_by(id=int(form.Name_Fourrier2.data)).first().Name_Fourrier,
            Registration_Detention=form.Registration_Detention.data,
            Num_Bon=None,
            Date_Release=None,
            Note=None,
            Status_Detention=u'محجوز')
        db.session.add(detention)
        db.session.commit()
        flash(u'تم حفظها في قاعدة البيانات', 'success')
        return redirect(url_for('fourrier.fourrier'))
    return render_template('fourrier/form_detention.html', form=form)
Esempio n. 4
0
def budget_annuel():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    if Budget_annuelle.query.filter_by(
            municipal_id=current_user.municipal_id).first():
        confirm_url = url_for('main.home', _external=True) + 'static/files/'
        recette_link_simple, depecence_link_simple, recette_link_per_year, depecence_link_per_year = csv_annuelle_file(
        )
        rcs = confirm_url + recette_link_simple
        dps = confirm_url + depecence_link_simple
        rcy = confirm_url + recette_link_per_year
        dpy = confirm_url + depecence_link_per_year
        years = Budget_annuelle.query.filter_by(
            municipal_id=current_user.municipal_id).all()
        years = [_.year for _ in years]
        year_str = ''
        for y in sorted(list(set(years))):
            year_str = year_str + ', ' + y if year_str else y
        auto_list = [{
            'file_name': recette_link_simple,
            'link': rcs,
            'text': u'موارد تقديم عمودي لسنوات ' + year_str,
            'type': 'an_rec_h'
        }, {
            'file_name': recette_link_per_year,
            'link': rcy,
            'text': u'موارد تقديم أفقي لسنوات ' + year_str,
            'type': 'an_rec_v'
        }, {
            'file_name': depecence_link_simple,
            'link': dps,
            'text': u'نفقات تقديم عمودي لسنوات ' + year_str,
            'type': 'an_dep_h'
        }, {
            'file_name': depecence_link_per_year,
            'link': dpy,
            'text': u'نفقات تقديم أفقي لسنوات ' + year_str,
            'type': 'an_dep_v'
        }]
        data = get_auto_update_data(auto_list)
        create = Packages.query.filter_by(
            modules_id=str(module_id),
            package_type='budget-annuel',
            municipal_id=current_user.municipal_id).first()
        if 'open_api' in request.values:
            module_publisher(module_id, 'budget-annuel', auto_list, year_str,
                             '', '')
            create = Packages.query.filter_by(
                modules_id=str(module_id),
                package_type='budget-annuel',
                municipal_id=current_user.municipal_id).first()
        return render_template('budget/budget_annuel.html',
                               data=data,
                               parsed_annuel=True,
                               create=create)
    return render_template(
        'budget/budget_annuel.html',
        mun_name=Municipality.query.filter_by(
            municipal_id=current_user.municipal_id).first().municipal_name_ar)
Esempio n. 5
0
def add_municipal_property():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    form = ProprietyForm(request.form)
    mun_name = Municipality.query.filter_by(
        municipal_id=current_user.municipal_id).first().municipal_name
    mun_long = Municipality.query.filter_by(
        municipal_id=current_user.municipal_id).first().municipal_long
    mun_lat = Municipality.query.filter_by(
        municipal_id=current_user.municipal_id).first().municipal_lat
    if form.validate_on_submit():
        mun_property = Proprietemunicipal(
            user_id=current_user.id,
            municipal_id=current_user.municipal_id,
            Titre_Foncier=form.Titre_Foncier.data,
            Type_du_Bien=form.Type_du_Bien.data,
            Adresse_Localisation=form.Adresse_Localisation.data,
            Mode_Octroi=form.Mode_Octroi.data,
            Surface=form.Surface.data,
            Longitude=form.Longitude.data,
            Laltitude=form.Laltitude.data,
            Type_Proprety=form.Type_Proprety.data,
            Type_Usage=form.Type_Usage.data)
        db.session.add(mun_property)
        db.session.commit()
        flash(u'تم حفظها في قاعدة البيانات', 'success')
        return redirect(
            url_for('municipal_property.consult_municipal_property'))
    return render_template('municipal_property/forms_municipal_property.html',
                           form=form,
                           update=False,
                           mun_name=mun_name,
                           mun_cord=[mun_lat, mun_long])
Esempio n. 6
0
def update_detention():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    detention_data = Detention.query.filter_by(id=request.values['d_id']).first().__dict__
    save = True
    name_fourrier_option = [(str(row.id), row.Name_Fourrier) for row in Fourrier.query.filter_by(municipal_id=current_user.municipal_id).all()]
    authority_option = [(u'الشرطة البيئية', u'الشرطة البيئية'), (u'الشرطة البلدية', u'الشرطة البلدية'), (u'البلدية', u'البلدية'), (u'شرطة المرور', u'شرطة المرور'), (u'الحرس الوطني', u'الحرس الوطني'), (u'عدل منفذ', u'عدل منفذ'), (u' حرس المرور', u' حرس المرور')]
    if len(request.values) > 3:
        if not check_date(request.values['Date_Detention']):
            flash(u'Date_Detention verified format', 'warning')
            save = False
        if save:
            detent = Detention.query.get(int(request.values['d_id']))
            detent.Descr_Detention = request.values['Descr_Detention']
            detent.Date_Detention = request.values['Date_Detention']
            detent.Cause_Detention = request.values['Cause_Detention']
            detent.Name_Owner = request.values['Name_Owner']
            detent.Authority_Detention = request.values['Authority_Detention']
            detent.Type_Detention = request.values['Type_Detention']
            detent.Registration_Detention = request.values['Registration_Detention']
            detent.fourrier_id = int(request.values['fourrier_id'])
            detent.Name_Fourrier = Fourrier.query.filter_by(id=int(request.values['fourrier_id'])).first().Name_Fourrier
            db.session.commit()
            flash(u'تم تحيين مستودع الحجز', 'success')
            return redirect(url_for('fourrier.fourrier'))
    return render_template('fourrier/form_detention.html', update=True, detention_data=reforme_dict(detention_data), name_fourrier_option=name_fourrier_option, authority_option=authority_option)
Esempio n. 7
0
def update_fourrier():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    mun_name = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_name
    mun_long = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_long
    mun_lat = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_lat
    fourrier_data = Fourrier.query.filter_by(id=request.values['f_id']).first().__dict__
    save = True
    if len(request.values) > 3:
        if not check_float(request.values['Longitude']):
            flash(u'longitude verified format', 'warning')
            save = False
        if not check_float(request.values['Laltitude']):
            flash(u'laltitude verified format', 'warning')
            save = False
        if save:
            four = Fourrier.query.get(int(request.values['f_id']))
            four.Longitude = float(request.values['Longitude'])
            four.Laltitude = float(request.values['Laltitude'])
            four.Name_Fourrier = request.values['Name_Fourrier']
            four.Address_Fourrier = request.values['Address_Fourrier']
            db.session.commit()
            Detention.query.filter_by(municipal_id=current_user.municipal_id, fourrier_id=int(request.values['f_id'])).update(dict(Name_Fourrier=request.values['Name_Fourrier']))
            db.session.commit()
            flash(u'تم تحيين مستودع الحجز', 'success')
            return redirect(url_for('fourrier.fourrier'))
    return render_template('fourrier/form_fourrier.html', update=True, fourrier_data=fourrier_data, mun_name=mun_name, mun_cord=[mun_lat, mun_long])
Esempio n. 8
0
def api():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    push_api(request.values)
    fourrier_data = [u.__dict__ for u in Fourrier.query.filter_by(municipal_id=current_user.municipal_id).all()]
    detention_data = [u.__dict__ for u in Detention.query.filter_by(municipal_id=current_user.municipal_id).all()]
    return render_template('fourrier/fourrier.html', fourrier_data=fourrier_data, detention_data=reforme_list(detention_data))
Esempio n. 9
0
def archiver_fourrier(id):
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    form = ReleaseForm(request.form)
    if form.validate_on_submit():
        det = Detention.query.get(int(id))
        det.Status_Detention = u'أرشيف'
        det.montant_sortie = form.montant_sortie.data
        det.Date_Release = form.Date_Release.data
        det.Note = form.Note.data
        db.session.commit()
        flash(u'تم تحيين', 'success')
        return redirect(url_for('fourrier.fourrier'))
    return render_template('fourrier/archiver.html', form=form)
Esempio n. 10
0
def budget_depence_mensuelle():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    if Budget_annuelle.query.filter_by(
            municipal_id=current_user.municipal_id).first():
        if check_monthly_data("Depence"):
            confirm_url = url_for('main.home',
                                  _external=True) + 'static/files/'
            file_name, months, year = csv_mensuelle_file('Depence')
            month_list = decode_mm_ar(months)
            month_list_fr = decode_mm_fr(months)
            dpm = confirm_url + file_name
            auto_data = [{
                'link':
                dpm,
                'file_name':
                file_name,
                'text':
                u'نفقات أشهر %s للسنة %s' % (month_list, str(year)),
                'type':
                'an_dep_h'
            }]
            data = get_auto_update_data(auto_data)
            create = Packages.query.filter_by(
                modules_id=str(module_id),
                package_type='budget-mensuelle-dep',
                municipal_id=current_user.municipal_id).first()
            if 'open_api' in request.values:
                module_publisher(module_id, 'budget-mensuelle-dep', auto_data,
                                 str(year),
                                 month_list_fr.split(',')[-1],
                                 month_list.split(',')[-1])
                create = Packages.query.filter_by(
                    modules_id=str(module_id),
                    package_type='budget-mensuelle-dep',
                    municipal_id=current_user.municipal_id).first()
            return render_template('budget/budget_depence_mensuelle.html',
                                   dpm=dpm,
                                   parsed_dep=True,
                                   month_list=month_list,
                                   year=year,
                                   data=data,
                                   create=create)
    return render_template(
        'budget/budget_depence_mensuelle.html',
        mun_name=Municipality.query.filter_by(
            municipal_id=current_user.municipal_id).first().municipal_name_ar)
Esempio n. 11
0
def budget_recette_mensuelle():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    year = datetime.datetime.today().year
    list_years = [year - i for i in range(25)]
    if Budget_annuelle.query.filter_by(
            municipal_id=current_user.municipal_id).first():
        if check_monthly_data("Recette"):
            confirm_url = url_for('main.home',
                                  _external=True) + 'static/files/'
            file_name, months, year = csv_mensuelle_file('Recette')
            month_list = decode_mm_ar(months)
            month_list_fr = decode_mm_fr(months)
            rcm = confirm_url + file_name
            auto_data = [{
                'link':
                rcm,
                'file_name':
                file_name,
                'text':
                u'موارد أشهر %s للسنة %s' % (month_list, str(year)),
                'type':
                'an_rec_h'
            }]
            data = get_auto_update_data(auto_data)
            create = Packages.query.filter_by(
                modules_id=str(module_id),
                package_type='budget-mensuelle-rec',
                municipal_id=current_user.municipal_id).first()
            if 'open_api' in request.values:
                module_publisher(module_id, 'budget-mensuelle-rec', auto_data,
                                 str(year),
                                 month_list_fr.split(',')[-1],
                                 month_list.split(',')[-1])
                create = Packages.query.filter_by(
                    modules_id=str(module_id),
                    package_type='budget-mensuelle-rec',
                    municipal_id=current_user.municipal_id).first()
            return render_template('budget/budget_recette_mensuelle.html',
                                   parsed_rect=True,
                                   data=data,
                                   month_list=month_list,
                                   year=year,
                                   create=create,
                                   list_years=list_years)
    return render_template('budget/budget_recette_mensuelle.html',
                           list_years=list_years)
Esempio n. 12
0
def consult_municipal_property():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    data = [
        u.__dict__ for u in Proprietemunicipal.query.filter_by(
            municipal_id=current_user.municipal_id).all()
    ]
    if 'delete_row' in request.values:
        mun_property = Proprietemunicipal.query.get(int(
            request.values['type']))
        db.session.delete(mun_property)
        db.session.commit()
        flash(u'تم حذف الملك البلدي', 'success')
        return redirect(
            url_for('municipal_property.consult_municipal_property'))
    return render_template('municipal_property/municipal_property.html',
                           data=data)
Esempio n. 13
0
def update_municipal_property():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    mun_name = Municipality.query.filter_by(
        municipal_id=current_user.municipal_id).first().municipal_name
    mun_long = Municipality.query.filter_by(
        municipal_id=current_user.municipal_id).first().municipal_long
    mun_lat = Municipality.query.filter_by(
        municipal_id=current_user.municipal_id).first().municipal_lat
    property_id = request.values['type']
    save = True
    if len(request.values) > 3:
        if not check_float(request.values['Longitude']):
            flash(u'longitude verified format', 'warning')
            save = False
        if not check_float(request.values['Laltitude']):
            flash(u'laltitude verified format', 'warning')
            save = False
        if not check_float(request.values['Surface']):
            flash(u'surface verified format', 'warning')
            save = False
        if save:
            mun_property = Proprietemunicipal.query.get(int(property_id))
            mun_property.Longitude = float(request.values['Longitude'])
            mun_property.Laltitude = float(request.values['Laltitude'])
            mun_property.Adresse_Localisation = request.values[
                'Adresse_Localisation']
            mun_property.Mode_Octroi = request.values['Mode_Octroi']
            mun_property.Surface = float(request.values['Surface'])
            mun_property.Titre_Foncier = request.values['Titre_Foncier']
            mun_property.Type_Usage = request.values['Type_Usage']
            mun_property.Type_du_Bien = request.values['Type_du_Bien']
            mun_property.Type_Proprety = request.values['Type_Proprety']
            db.session.commit()
            flash(u'تم تحيين الملك البلدي', 'success')
            return redirect(
                url_for('municipal_property.consult_municipal_property'))
    property_data = Proprietemunicipal.query.filter_by(id=property_id).first()
    return render_template('municipal_property/forms_municipal_property.html',
                           update=True,
                           property_data=property_data.__dict__,
                           mun_name=mun_name,
                           mun_cord=[mun_lat, mun_long])
Esempio n. 14
0
def get_files():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    data_pub = Data_Publisher.query.filter_by(municipal_id=current_user.municipal_id, modules_id=module_id).first().data_pub
    data = [u.__dict__ for u in Permisconstruct.query.filter_by(municipal_id=current_user.municipal_id).all()]
    if data:
        files_data = [get_permis_files(data, 'en_cours', data_pub, u'ملف الرخص بصدد الدرس')]
        files_data.append(get_permis_files(data, 'approved', data_pub, u'ملف الرخص المقبولة'))
        files_data.append(get_permis_files(data, 'refused', data_pub, u'ملف الرخص المرفوضة'))
        create = Packages.query.filter_by(modules_id=str(module_id), package_type='permis_de_construction', municipal_id=current_user.municipal_id).first()
        if 'open_api' in request.values:
            module_publisher(module_id, 'permis_de_construction', files_data, '', '', '')
            create = Packages.query.filter_by(modules_id=str(module_id), package_type='permis_de_construction', municipal_id=current_user.municipal_id).first()
            return redirect(url_for('permis_construction.consult_permisconst'))
        return render_template('permis_construction/permis_construction.html', data=data, file=True, files_data=files_data, create=create)
    else:
        flash(u'ليست هنالك بيانات', 'warning')
    return render_template('permis_construction/permis_construction.html', data=data)
Esempio n. 15
0
def consult_permisconst():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    if 'approved' in request.values:
        p_id = Permisconstruct.query.get(int(request.values['type']))
        p_id.reserve_note = None
        p_id.permis_status = 'approved'
        db.session.commit()
        flash(u'تم تغير وضعية الرخصة إلى مقبولة ', 'success')
        return redirect(url_for('permis_construction.consult_permisconst'))
    if 'delete_row' in request.values:
        p_id = Permisconstruct.query.get(int(request.values['type']))
        db.session.delete(p_id)
        db.session.commit()
        flash(u'تم فسخ الرخصة', 'success')
        return redirect(url_for('permis_construction.consult_permisconst'))
    data = [u.__dict__ for u in Permisconstruct.query.filter_by(municipal_id=current_user.municipal_id).all()]
    return render_template('permis_construction/permis_construction.html', data=data)
Esempio n. 16
0
def subvention():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    link_data, _ = get_link_data()
    create = Packages.query.filter_by(
        modules_id=str(module_id),
        package_type='budget-association',
        municipal_id=current_user.municipal_id).first()
    if request.method == 'POST' and 'file_type' in request.values:
        if 'file' not in request.files:
            flash('No selected file', 'warning')
            return redirect(request.url)
        f = request.files['file']
        if f.filename == '':
            flash('No selected file', 'warning')
            return redirect(request.url)
        if f and allowed_file(f.filename):
            data, mun_id = parse_xml(f)
            if data and mun_id == current_user.municipal_id:
                save_db(data)
                link_data, _ = get_link_data()
                return render_template('subvention/subvention.html',
                                       link_data=link_data,
                                       create=create)
            else:
                flash(u'ملف خاطئ', 'danger')
                return url_for('subvention.subvention')
    if 'open_api' in request.values:
        link_data, year_str = get_link_data()
        module_publisher(module_id, 'budget-association', link_data, year_str,
                         '', '')
        create = Packages.query.filter_by(
            modules_id=str(module_id),
            package_type='budget-association',
            municipal_id=current_user.municipal_id).first()
        return render_template('subvention/subvention.html',
                               link_data=link_data,
                               create=create)
    return render_template('subvention/subvention.html',
                           link_data=link_data,
                           create=create)
Esempio n. 17
0
def fourrier():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    fourrier_data = [u.__dict__ for u in Fourrier.query.filter_by(municipal_id=current_user.municipal_id).all()]
    detention_data = [u.__dict__ for u in Detention.query.filter_by(municipal_id=current_user.municipal_id).all()]
    if 'delete_row' in request.values:
        if request.values['delete_row'] == 'delete_row_detention':
            det = Detention.query.get(int(request.values['type']))
            flash(u'تم فسخ المحجوز', 'success')
        elif Detention.query.filter_by(fourrier_id=int(request.values['type'])).first():
            flash(u'لا يمكن فسخ المستودع وبه محجوز', 'warning')
            return render_template('fourrier/fourrier.html', fourrier_data=fourrier_data, detention_data=reforme_list(detention_data), msg='yooo')
        else:
            det = Fourrier.query.get(int(request.values['type']))
            flash(u'تم فسخ المستودع', 'success')
        db.session.delete(det)
        db.session.commit()
        return redirect(url_for('fourrier.fourrier'))
    return render_template('fourrier/fourrier.html', fourrier_data=fourrier_data, detention_data=reforme_list(detention_data))
Esempio n. 18
0
def add_fourrier():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    mun_name = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_name
    mun_long = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_long
    mun_lat = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_lat
    form = FourrierForm(request.form)
    if form.validate_on_submit():
        fourrier = Fourrier(
            user_id=current_user.id,
            municipal_id=current_user.municipal_id,
            Name_Fourrier=form.Name_Fourrier.data,
            Address_Fourrier=form.Address_Fourrier.data,
            Longitude=form.Longitude.data,
            Laltitude=form.Laltitude.data)
        db.session.add(fourrier)
        db.session.commit()
        flash(u'تم حفظها في قاعدة البيانات', 'success')
        return redirect(url_for('fourrier.fourrier'))
    return render_template('fourrier/form_fourrier.html', form=form, update=False, mun_name=mun_name, mun_cord=[mun_lat, mun_long])
Esempio n. 19
0
def permisconst():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    mun_name = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_name
    mun_long = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_long
    mun_lat = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_lat
    form = PermisencourForm(request.form)
    if form.validate_on_submit():
        permis = Permisconstruct(municipal_id=current_user.municipal_id,
                                 user_id=current_user.id,
                                 num_demande=form.num_demande.data,
                                 date_depot=form.date_depot.data,
                                 nom_titulaire=form.nom_titulaire.data,
                                 num_cin=form.num_cin.data,
                                 address=form.address.data,
                                 type_construct=form.type_construct.data,
                                 desc_construct=form.desc_construct.data,
                                 zone_municipal=form.zone_municipale.data,
                                 longitude=form.longitude.data,
                                 laltitude=form.latitude.data,
                                 permis_status='en_cours',
                                 num_permis=None,
                                 date_attribution=None,
                                 date_expiration=None,
                                 date_refuse=None,
                                 mont_charge_fix=0,
                                 mont_charge_ascend=0,
                                 mont_cloture=0,
                                 mont_decision=0,
                                 mont_total=0,
                                 surface=form.surface.data,
                                 refuse_note=None,
                                 nom_architect=form.nom_architect.data
                                 )
        db.session.add(permis)
        db.session.commit()
        flash(u'تم حفظها في قاعدة البيانات', 'success')
        return redirect(url_for('permis_construction.consult_permisconst'))
    return render_template('permis_construction/form_permis_construction.html', form=form, update=False, permis_id=None, mun_name=mun_name, mun_cord=[mun_lat, mun_long])
Esempio n. 20
0
def upload_file():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    if request.method == 'POST':
        if 'file' not in request.files:
            flash('No selected file')
            return redirect(request.url)
        f = request.files['file']
        if f.filename == '':
            flash('No selected file')
            return redirect(request.url)
        if f and allowed_file(f.filename):
            confirm_url = url_for('main.home',
                                  _external=True) + 'static/files/'
            if request.values['file_type'] == 'annuel':
                try:
                    b, file_mun_id, update = parse_budget(f)
                    check = check_municipal_id(current_user.municipal_id,
                                               file_mun_id)
                    if check:
                        save_budget_parametre(b)
                        log = save_budget_fee_annuelle(b)
                        flash(u'تم حفظها في قاعدة البيانات',
                              'success') if log else flash(
                                  u'لقد تم تحميل هذا الملف من قبل', 'info')
                        recette_link_simple, depecence_link_simple, recette_link_per_year, depecence_link_per_year = csv_annuelle_file(
                        )
                        rcs = confirm_url + recette_link_simple
                        dps = confirm_url + depecence_link_simple
                        rcy = confirm_url + recette_link_per_year
                        dpy = confirm_url + depecence_link_per_year
                        if log:
                            save_xml_file(f, 'b_annuel')
                            save_log([
                                recette_link_simple, depecence_link_simple,
                                recette_link_per_year, depecence_link_per_year
                            ])
                        years = Budget_annuelle.query.filter_by(
                            municipal_id=current_user.municipal_id).all()
                        years = [_.year for _ in years]
                        year_str = ''
                        for y in sorted(list(set(years))):
                            year_str = year_str + ', ' + y if year_str else y
                        auto_list = [{
                            'file_name': recette_link_simple,
                            'link': rcs,
                            'text': u'موارد تقديم عمودي لسنوات ' + year_str,
                            'type': 'an_rec_h'
                        }, {
                            'file_name': recette_link_per_year,
                            'link': rcy,
                            'text': u'موارد تقديم أفقي لسنوات ' + year_str,
                            'type': 'an_rec_v'
                        }, {
                            'file_name': depecence_link_simple,
                            'link': dps,
                            'text': u'نفقات تقديم عمودي لسنوات ' + year_str,
                            'type': 'an_dep_h'
                        }, {
                            'file_name': depecence_link_per_year,
                            'link': dpy,
                            'text': u'نفقات تقديم أفقي لسنوات ' + year_str,
                            'type': 'an_dep_v'
                        }]
                        data = get_auto_update_data(auto_list)
                        create = Packages.query.filter_by(
                            modules_id=str(module_id),
                            package_type='budget-annuel',
                            municipal_id=current_user.municipal_id).first()
                        if 'open_api' in request.values:
                            module_publisher(module_id, 'budget-annuel',
                                             auto_list, year_str, '', '')
                            create = Packages.query.filter_by(
                                modules_id=str(module_id),
                                package_type='budget-annuel',
                                municipal_id=current_user.municipal_id).first(
                                )
                        return render_template('budget/budget_annuel.html',
                                               data=data,
                                               parsed_annuel=True,
                                               create=create)
                    else:
                        flash(u'ملف من بلدية أخرى الرجاء التثبت', 'danger')
                        return redirect(url_for('budget.budget_annuel'))
                except:
                    flash(
                        u'ملف خاطئ الرجاء التثبت من إسم الملف( AREPLFTMUN أو AREPMLFMUN)',
                        'danger')
                    return redirect(url_for('budget.budget_annuel'))
            elif request.values['file_type'] == 'dep_month':
                try:
                    b, file_mun_id = parse_depence_file(f)
                    check = check_municipal_id(current_user.municipal_id,
                                               file_mun_id)
                    if check:
                        save_budget_parametre(b)
                        log = save_budget_fee_monthly(b)
                        flash(u'تم حفظها في قاعدة البيانات',
                              'success') if log else flash(
                                  u'لقد تم تحميل هذا الملف من قبل', 'info')
                        file_name, months, year = csv_mensuelle_file('Depence')
                        month_list = decode_mm_ar(months)
                        month_list_fr = decode_mm_fr(months)
                        dpm = confirm_url + file_name
                        if log:
                            save_xml_file(f, 'b_depence_mensuelle')
                            save_log([file_name])
                        auto_data = [{
                            'link':
                            dpm,
                            'file_name':
                            file_name,
                            'text':
                            u'نفقات أشهر %s للسنة %s' %
                            (month_list, str(year)),
                            'type':
                            'men_dep'
                        }]
                        data = get_auto_update_data(auto_data)
                        create = Packages.query.filter_by(
                            modules_id=str(module_id),
                            package_type='budget-mensuelle-dep',
                            municipal_id=current_user.municipal_id).first()
                        if 'open_api' in request.values:
                            module_publisher(module_id, 'budget-mensuelle-dep',
                                             auto_data, str(year),
                                             month_list_fr.split(',')[-1],
                                             month_list.split(',')[-1])
                            create = Packages.query.filter_by(
                                modules_id=str(module_id),
                                package_type='budget-mensuelle-dep',
                                municipal_id=current_user.municipal_id).first(
                                )
                        return render_template(
                            'budget/budget_depence_mensuelle.html',
                            parsed_dep=True,
                            data=data,
                            create=create)
                    else:
                        flash(u'ملف من بلدية أخرى الرجاء التثبت', 'danger')
                        return redirect(
                            url_for('budget.budget_depence_mensuelle'))
                except:
                    flash(u'ملف خاطئ الرجاء التثبت من إسم الملف( MREPSITMNS )',
                          'danger')
                    return redirect(url_for('budget.budget_depence_mensuelle'))
            else:
                year = datetime.datetime.today().year
                list_years = [year - i for i in range(25)]
                try:
                    b, file_mun_id = parse_recette_file(f)
                    check = check_municipal_id(current_user.municipal_id,
                                               file_mun_id)
                    if request.values['month'].isdigit(
                    ) and request.values['year'].isdigit():
                        if check:
                            b = get_new_budget(b, request.values['month'],
                                               request.values['year'])
                            save_budget_parametre(b)
                            log = save_budget_fee_monthly(b)
                            flash(u'تم حفظها في قاعدة البيانات',
                                  'success') if log else flash(
                                      u'لقد تم تحميل هذا الملف من قبل', 'info')
                            file_name, months, year = csv_mensuelle_file(
                                'Recette')
                            month_list = decode_mm_ar(months)
                            month_list_fr = decode_mm_fr(months)
                            rcm = confirm_url + file_name
                            if log:
                                save_xml_file(f, 'b_recette_mensuelle')
                                save_log([file_name])
                            auto_data = [{
                                'link':
                                rcm,
                                'file_name':
                                file_name,
                                'text':
                                u'نفقات أشهر %s للسنة %s' %
                                (month_list, str(year)),
                                'type':
                                'men_rec'
                            }]
                            data = get_auto_update_data(auto_data)
                            create = Packages.query.filter_by(
                                modules_id=str(module_id),
                                package_type='budget-mensuelle-rec',
                                municipal_id=current_user.municipal_id).first(
                                )
                            if 'open_api' in request.values:
                                module_publisher(module_id,
                                                 'budget-mensuelle-rec',
                                                 auto_data, str(year),
                                                 month_list_fr.split(',')[-1],
                                                 month_list.split(',')[-1])
                                create = Packages.query.filter_by(
                                    modules_id=str(module_id),
                                    package_type='budget-mensuelle-rec',
                                    municipal_id=current_user.municipal_id
                                ).first()
                            return render_template(
                                'budget/budget_recette_mensuelle.html',
                                parsed_rect=True,
                                data=data,
                                create=create,
                                list_years=list_years)
                        else:
                            flash(u'ملف من بلدية أخرى الرجاء التثبت', 'danger')
                            return redirect(
                                url_for('budget.budget_recette_mensuelle'))
                    else:
                        flash(u'إختيار ألسنة وشهر إجباري ', 'danger')
                        return redirect(
                            url_for('budget.budget_recette_mensuelle'))
                except:
                    flash(u'ملف خاطئ الرجاء التثبت من إسم الملف( MREPSUIREC )',
                          'danger')
                    return redirect(url_for('budget.budget_recette_mensuelle'))
    return render_template('budget/budget.html',
                           parsed_annuel=False,
                           parsed_rect=False,
                           parsed_dep=False,
                           list_years=list_years)
Esempio n. 21
0
def get_property_file():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    private_list, private_data, public_list, public_data = [], [], [], []
    create = Packages.query.filter_by(
        modules_id=str(module_id),
        package_type='propriete_municipal',
        municipal_id=current_user.municipal_id).first()
    if 'project' in url_for('main.home', _external=True) + 'static/files/':
        confirm_url = url_for('main.home', _external=True) + 'static/files/'
        confirm_url = confirm_url.replace('project', '')
    else:
        confirm_url = url_for('main.home', _external=True) + 'static/files/'
    data = [
        u.__dict__ for u in Proprietemunicipal.query.filter_by(
            municipal_id=current_user.municipal_id).all()
    ]
    for d in data:
        if u'خاص' in d['Type_Proprety']:
            p_data, fieldnames_pv = get_file_content(d, 'private')
            private_list.append(p_data)
        else:
            p_data, fieldnames_pu = get_file_content(d, 'public')
            public_list.append(p_data)
    public_ref = 'properte_municipal_public_' + str(current_user.municipal_id)
    if public_list:
        public_file = get_csv_file(public_list, public_ref, fieldnames_pu)
    else:
        public_file = get_csv_file([], public_ref, fieldnames_pu)
    save_auto_update(public_file, 'Propriete municipale')
    public_url = confirm_url + public_file
    public_data = get_auto_update_data({
        'file_name': public_file,
        'link': public_url,
        'type': 'mp_public'
    })
    public_data['text_head'] = u'الملك العام'
    private_ref = 'properte_municipal_private_' + str(
        current_user.municipal_id)
    if private_list:
        private_file = get_csv_file(private_list, private_ref, fieldnames_pv)
    else:
        private_file = get_csv_file([], private_ref, fieldnames_pv)
    save_auto_update(private_file, 'Propriete municipale')
    private_url = confirm_url + private_file
    private_data = get_auto_update_data({
        'file_name': private_file,
        'link': private_url,
        'type': 'mp_private'
    })
    private_data['text_head'] = u'الملك الخاص'
    f_data = [private_data] + [public_data]
    if 'open_api' in request.values:
        module_publisher(module_id, 'propriete_municipal', f_data, '', '', '')
        return redirect(
            url_for('municipal_property.consult_municipal_property'))
    return render_template('municipal_property/municipal_property.html',
                           file=True,
                           files_data=f_data,
                           create=create,
                           data=data)
Esempio n. 22
0
def update_permisconst(status=None):
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    mun_name = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_name
    mun_long = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_long
    mun_lat = Municipality.query.filter_by(municipal_id=current_user.municipal_id).first().municipal_lat
    permis_id = request.values['type']
    name = request.values['name']
    save = True
    permis_data = Permisconstruct.query.filter_by(id=permis_id).first()
    permis_data = reforme(permis_data.__dict__)
    if not status:
        if len(request.values) > 3:
            if not check_date(request.values['date_depot']):
                flash(u'الرجاء التثبت في صيغة تاريخ التسجيل yyyy/mm/dd', 'warning')
                save = False
            if not check_float(request.values['longitude']):
                flash(u'longitude verified format', 'warning')
                save = False
            if not check_float(request.values['laltitude']):
                flash(u'laltitude verified format', 'warning')
                save = False
            if not check_float(request.values['surface']):
                flash(u'صيغة المساحة خاطئة', 'warning')
                save = False
            if not request.values['nom_architect'].strip():
                flash(u'إسم المهندس المعماري إجباري', 'warning')
                save = False
            if save:
                permis = Permisconstruct.query.get(int(permis_id))
                permis.num_cin = request.values['num_cin']
                permis.nom_titulaire = request.values['nom_titulaire']
                permis.latitude = float(request.values['laltitude'])
                permis.num_demande = request.values['num_demande']
                permis.longitude = float(request.values['longitude'])
                permis.date_depot = request.values['date_depot']
                permis.address = request.values['address']
                permis.desc_construct = request.values['desc_construct']
                permis.surface = request.values['surface']
                permis.type_construct = request.values['type_construct']
                permis.nom_architect = request.values['nom_architect']
                if request.values['permis_status'] in 'refused':
                    permis.date_refuse = request.values['date_refuse']
                    permis.refuse_note = request.values['refuse_note']
                if request.values['permis_status'] in "approved":
                    permis.date_attribution = request.values['date_attribution']
                    permis.date_expiration = request.values['date_expiration']
                    permis.num_permis = request.values['num_permis']
                    permis.mont_total = calculer_montant(float(request.values['surface']))
                if request.values['permis_status'] == "approved_with":
                    permis.reserve_note = request.values['reserve_note']
                    permis.date_attribution = request.values['date_attribution']
                    permis.date_expiration = request.values['date_expiration']
                    permis.num_permis = request.values['num_permis']
                    permis.mont_total = calculer_montant(float(request.values['surface']))
                db.session.commit()
                flash(u'تم تحيين الرخصة', 'success')
                return redirect(url_for('permis_construction.consult_permisconst'))
    elif 'refuse' in status:
        if 'date_refuse' in request.values:
            if not check_date(request.values['date_refuse']):
                flash(u'تاريخ الرفض مفروض', 'danger')
                save = False
            if save:
                permis = Permisconstruct.query.get(int(permis_id))
                permis.date_refuse = request.values['date_refuse']
                permis.refuse_note = request.values['refuse_note']
                permis.num_permis = None
                permis.date_attribution = None
                permis.date_expiration = None
                permis.mont_total = None
                permis.reserve_note = None
                permis.permis_status = 'refused'
                db.session.commit()
                flash(u'تم تحيين الرخصة', 'success')
                return redirect(url_for('permis_construction.consult_permisconst'))
        return render_template('permis_construction/update_permis.html', permis_id=permis_id, name=name, permis_data=permis_data, mun_name=mun_name, mun_cord=[mun_lat, mun_long], refuse=True)
    elif 'accept' in status:
        if 'with' in status:
            approved_with = True
        else:
            approved_with = False
        if 'date_attribution' in request.values:
            if not check_date(request.values['date_attribution']):
                flash(u'تاريخ اسناد الرخصة مفروض', 'danger')
                save = False
            if not request.values['num_permis'].isdigit():
                flash(u'عدد قرار رخصة البناء مفروض', 'danger')
                save = False
            if save:
                permis = Permisconstruct.query.get(int(permis_id))
                permis.num_permis = request.values['num_permis']
                permis.date_attribution = request.values['date_attribution']
                permis.date_expiration = request.values['date_expiration']
                permis.mont_total = request.values['mont_total']
                permis.date_refuse = None
                permis.refuse_note = None
                if approved_with:
                    permis.permis_status = 'approved_with'
                    permis.reserve_note = request.values['reserve_note']
                else:
                    permis.permis_status = 'approved'
                    permis.reserve_note = None
                db.session.commit()
                flash(u'تم تحيين الرخصة', 'success')
                return redirect(url_for('permis_construction.consult_permisconst'))
        montant_total = int(round(calculer_montant(permis_data['surface'])))
        return render_template('permis_construction/update_permis.html', permis_id=permis_id, name=name, permis_data=permis_data, mun_name=mun_name, mun_cord=[mun_lat, mun_long], accept=True, montant_total=montant_total, approved_with=approved_with)
    return render_template('permis_construction/update_permis.html', permis_id=permis_id, name=name, permis_data=permis_data, mun_name=mun_name, mun_cord=[mun_lat, mun_long])
Esempio n. 23
0
def get_fourrier_file():
    if not check_role(module_id):
        flash(u' ليس لديك إمكانية الولوج لهذه الصفحة', 'warning')
        return redirect(url_for('main.home'))
    confirm_url = url_for('main.home', _external=True) + 'static/files/'
    fourrier_file, detention_file = [], []
    fourrier_data = [u.__dict__ for u in Fourrier.query.filter_by(municipal_id=current_user.municipal_id).all()]
    detention_data = [u.__dict__ for u in Detention.query.filter_by(municipal_id=current_user.municipal_id).all()]
    if 'type_file' in request.values:
        if request.values['type_file'] == 'list_fourrier':
            for f in fourrier_data:
                f_data, f_fieldnames = get_file_content(f, 'fourriere')
                fourrier_file.append(f_data)
            ref = 'list_fourrierre_' + str(current_user.municipal_id)
            fourrier_f = get_csv_file(fourrier_file, ref, f_fieldnames)
            save_auto_update(fourrier_f, 'Fourriere')
            fourrier_url = confirm_url + fourrier_f
            f_data = get_auto_update_data({'file_name': fourrier_f, 'link': fourrier_url, 'type': 'fourriere'})
            return render_template('fourrier/fourrier.html', fourrier_data=fourrier_data, detention_data=reforme_list(detention_data), f_data=f_data, fourrier_lancher=True)
        if request.values['type_file'] == 'list_archive':
            for d in detention_data:
                if u'محجوز' not in d['Status_Detention']:
                    det_lon = Fourrier.query.filter_by(id=d['fourrier_id']).first().Longitude
                    det_lat = Fourrier.query.filter_by(id=d['fourrier_id']).first().Laltitude
                    detention_file.append({'Longitude': det_lon,
                                           'Latitude': det_lat,
                                           'Lieu_fourriere': decode_unicode(d['Name_Fourrier']),
                                           'Date_enlevement': d['Date_Detention'].strftime("%Y/%m/%d"),
                                           'Cause_enlevement': decode_unicode(d['Cause_Detention']),
                                           'Nom_proprietaire': decode_unicode(d['Name_Owner']),
                                           'Autorite_origine_de_detention': decode_unicode(d['Authority_Detention']),
                                           'Type_objets_detenues': decode_unicode(d['Type_Detention']),
                                           'Imatriculation': decode_unicode(d['Registration_Detention']),
                                           'Desc_objets_detenues': decode_unicode(d['Descr_Detention']),
                                           'Date_restitution': d['Date_Release'],
                                           'Num_recu': d['Num_Bon'],
                                           'Amende': d['montant_sortie']})
            if detention_file:
                ref = 'list_archive_' + str(current_user.municipal_id)
                field_list = ['Date_enlevement', 'Cause_enlevement', 'Autorite_origine_de_detention', 'Nom_proprietaire', 'Type_objets_detenues', 'Imatriculation', 'Desc_objets_detenues', 'Lieu_fourriere', 'Longitude', 'Latitude', 'Date_restitution', 'Num_recu', 'Amende']
                detention_f = get_csv_file(detention_file, ref, field_list)
                save_auto_update(detention_f, 'Fourriere')
                detention_url = confirm_url + detention_f
                d_data = get_auto_update_data({'file_name': detention_f, 'link': detention_url, 'type': 'detention'})
                return render_template('fourrier/fourrier.html', fourrier_data=fourrier_data, detention_data=reforme_list(detention_data), d_data=d_data, archive_lancher=True)
            else:
                flash(u'ليس هنالك بيانات ', 'info')
        else:
            for d in detention_data:
                if u'محجوز' in d['Status_Detention']:
                    det_lon = Fourrier.query.filter_by(id=d['fourrier_id']).first().Longitude
                    det_lat = Fourrier.query.filter_by(id=d['fourrier_id']).first().Laltitude
                    d_data, d_fieldnames = get_file_content(d, 'detention')
                    d_fieldnames.extend(['Longitude', 'Latitude'])
                    d_data['Longitude'] = det_lon
                    d_data['Latitude'] = det_lat
                    detention_file.append(d_data)
            for f in fourrier_data:
                f_data, f_fieldnames = get_file_content(f, 'fourriere')
                fourrier_file.append(f_data)
            ref = 'list_fourrierre_' + str(current_user.municipal_id)
            fourrier_f = get_csv_file(fourrier_file, ref, f_fieldnames)
            save_auto_update(fourrier_f, 'Fourriere')
            fourrier_url = confirm_url + fourrier_f
            f_data = get_auto_update_data({'file_name': fourrier_f, 'link': fourrier_url, 'type': 'fourriere'})
            ref = 'list_detention_' + str(current_user.municipal_id)
            if detention_file:
                detention_f = get_csv_file(detention_file, ref, d_fieldnames)
            else:
                detention_f = get_csv_file(detention_file, ref, [])
            save_auto_update(detention_f, 'Fourriere')
            detention_url = confirm_url + detention_f
            d_data = get_auto_update_data({'file_name': detention_f, 'link': detention_url, 'type': 'detention'})
            create = Packages.query.filter_by(modules_id=str(module_id), package_type='fourriere', municipal_id=current_user.municipal_id).first()
            if 'open_api' in request.values:
                pub_data = [d_data] + [f_data]
                module_publisher(module_id, 'fourriere', pub_data, '', '', '')
                return redirect(url_for('fourrier.fourrier'))
            return render_template('fourrier/fourrier.html', fourrier_data=fourrier_data, detention_data=reforme_list(detention_data), f_data=f_data, d_data=d_data, detention_lancher=True, create=create)
    return render_template('fourrier/fourrier.html', fourrier_data=fourrier_data, detention_data=reforme_list(detention_data))