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])
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)
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)
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)
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])
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)
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])
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))
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)
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)
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)
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)
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])
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)
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)
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)
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))
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])
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])
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)
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)
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])
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))