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