forked from ScoDoc/ScoDoc
suite taxe apprentissage, association partenaire
This commit is contained in:
parent
0485c8769d
commit
48c16d761f
@ -82,6 +82,7 @@ def _build_string_field(label, required=True, render_kw=None):
|
|||||||
|
|
||||||
class EntreprisesFilterForm(FlaskForm):
|
class EntreprisesFilterForm(FlaskForm):
|
||||||
active = BooleanField("Afficher les entreprises désactivés")
|
active = BooleanField("Afficher les entreprises désactivés")
|
||||||
|
association = BooleanField("Afficher les associations partenaires")
|
||||||
|
|
||||||
|
|
||||||
class EntrepriseCreationForm(FlaskForm):
|
class EntrepriseCreationForm(FlaskForm):
|
||||||
@ -89,6 +90,7 @@ class EntrepriseCreationForm(FlaskForm):
|
|||||||
"SIRET (*)",
|
"SIRET (*)",
|
||||||
render_kw={"placeholder": "Numéro composé de 14 chiffres"},
|
render_kw={"placeholder": "Numéro composé de 14 chiffres"},
|
||||||
)
|
)
|
||||||
|
association = BooleanField("Association")
|
||||||
nom_entreprise = _build_string_field("Nom de l'entreprise (*)")
|
nom_entreprise = _build_string_field("Nom de l'entreprise (*)")
|
||||||
adresse = _build_string_field("Adresse de l'entreprise (*)")
|
adresse = _build_string_field("Adresse de l'entreprise (*)")
|
||||||
codepostal = _build_string_field("Code postal de l'entreprise (*)")
|
codepostal = _build_string_field("Code postal de l'entreprise (*)")
|
||||||
@ -168,8 +170,8 @@ class EntrepriseCreationForm(FlaskForm):
|
|||||||
|
|
||||||
|
|
||||||
class EntrepriseModificationForm(FlaskForm):
|
class EntrepriseModificationForm(FlaskForm):
|
||||||
hidden_entreprise_siret = HiddenField()
|
|
||||||
siret = StringField("SIRET (*)")
|
siret = StringField("SIRET (*)")
|
||||||
|
association = BooleanField("Association")
|
||||||
nom = _build_string_field("Nom de l'entreprise (*)")
|
nom = _build_string_field("Nom de l'entreprise (*)")
|
||||||
adresse = _build_string_field("Adresse (*)")
|
adresse = _build_string_field("Adresse (*)")
|
||||||
codepostal = _build_string_field("Code postal (*)")
|
codepostal = _build_string_field("Code postal (*)")
|
||||||
@ -179,10 +181,7 @@ class EntrepriseModificationForm(FlaskForm):
|
|||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.siret.render_kw = {
|
self.siret.render_kw = {"disabled": ""}
|
||||||
"disabled": "",
|
|
||||||
"value": self.hidden_entreprise_siret.data,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class SiteCreationForm(FlaskForm):
|
class SiteCreationForm(FlaskForm):
|
||||||
@ -624,6 +623,7 @@ class TaxeApprentissageForm(FlaskForm):
|
|||||||
validators=[
|
validators=[
|
||||||
DataRequired(message=CHAMP_REQUIS),
|
DataRequired(message=CHAMP_REQUIS),
|
||||||
NumberRange(
|
NumberRange(
|
||||||
|
min=1900,
|
||||||
max=int(datetime.now().strftime("%Y")),
|
max=int(datetime.now().strftime("%Y")),
|
||||||
message=f"L'année doit être inférieure ou égale à {int(datetime.now().strftime('%Y'))}",
|
message=f"L'année doit être inférieure ou égale à {int(datetime.now().strftime('%Y'))}",
|
||||||
),
|
),
|
||||||
@ -661,6 +661,28 @@ class TaxeApprentissageForm(FlaskForm):
|
|||||||
return validate
|
return validate
|
||||||
|
|
||||||
|
|
||||||
|
class TaxeApprentissageModificationForm(FlaskForm):
|
||||||
|
hidden_annee = HiddenField()
|
||||||
|
annee = IntegerField("Année (*)")
|
||||||
|
montant = IntegerField(
|
||||||
|
"Montant (*)",
|
||||||
|
validators=[
|
||||||
|
DataRequired(message=CHAMP_REQUIS),
|
||||||
|
NumberRange(
|
||||||
|
min=1,
|
||||||
|
message="Le montant doit être supérieur à 0",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
default=1,
|
||||||
|
)
|
||||||
|
notes = TextAreaField("Notes")
|
||||||
|
submit = SubmitField("Modifier", render_kw=SUBMIT_MARGE)
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
self.annee.render_kw = {"disabled": ""}
|
||||||
|
|
||||||
|
|
||||||
class EnvoiOffreForm(FlaskForm):
|
class EnvoiOffreForm(FlaskForm):
|
||||||
responsables = FieldList(
|
responsables = FieldList(
|
||||||
_build_string_field(
|
_build_string_field(
|
||||||
|
@ -10,6 +10,7 @@ class Entreprise(db.Model):
|
|||||||
codepostal = db.Column(db.Text)
|
codepostal = db.Column(db.Text)
|
||||||
ville = db.Column(db.Text)
|
ville = db.Column(db.Text)
|
||||||
pays = db.Column(db.Text)
|
pays = db.Column(db.Text)
|
||||||
|
association = db.Column(db.Boolean, default=False)
|
||||||
visible = db.Column(db.Boolean, default=False)
|
visible = db.Column(db.Boolean, default=False)
|
||||||
active = db.Column(db.Boolean, default=True)
|
active = db.Column(db.Boolean, default=True)
|
||||||
notes_active = db.Column(db.Text)
|
notes_active = db.Column(db.Text)
|
||||||
|
@ -31,6 +31,7 @@ from app.entreprises.forms import (
|
|||||||
EnvoiOffreForm,
|
EnvoiOffreForm,
|
||||||
AjoutFichierForm,
|
AjoutFichierForm,
|
||||||
TaxeApprentissageForm,
|
TaxeApprentissageForm,
|
||||||
|
TaxeApprentissageModificationForm,
|
||||||
ValidationConfirmationForm,
|
ValidationConfirmationForm,
|
||||||
ImportForm,
|
ImportForm,
|
||||||
PreferencesForm,
|
PreferencesForm,
|
||||||
@ -71,11 +72,14 @@ def index():
|
|||||||
logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).limit(LOGS_LEN).all()
|
logs = EntrepriseLog.query.order_by(EntrepriseLog.date.desc()).limit(LOGS_LEN).all()
|
||||||
if current_user.has_permission(Permission.RelationsEntreprisesChange, None):
|
if current_user.has_permission(Permission.RelationsEntreprisesChange, None):
|
||||||
form = EntreprisesFilterForm()
|
form = EntreprisesFilterForm()
|
||||||
checked = False
|
checked = [False, False]
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
checked = form.active.data
|
checked[0] = form.active.data
|
||||||
if checked:
|
checked[1] = form.association.data
|
||||||
|
if checked[0]:
|
||||||
entreprises = Entreprise.query.filter_by(visible=True)
|
entreprises = Entreprise.query.filter_by(visible=True)
|
||||||
|
if checked[1]:
|
||||||
|
entreprises = Entreprise.query.filter_by(association=True)
|
||||||
return render_template(
|
return render_template(
|
||||||
"entreprises/entreprises.html",
|
"entreprises/entreprises.html",
|
||||||
title="Entreprises",
|
title="Entreprises",
|
||||||
@ -317,6 +321,7 @@ def add_entreprise():
|
|||||||
entreprise = Entreprise(
|
entreprise = Entreprise(
|
||||||
nom=form.nom_entreprise.data.strip(),
|
nom=form.nom_entreprise.data.strip(),
|
||||||
siret=form.siret.data.strip(),
|
siret=form.siret.data.strip(),
|
||||||
|
association=form.association.data,
|
||||||
adresse=form.adresse.data.strip(),
|
adresse=form.adresse.data.strip(),
|
||||||
codepostal=form.codepostal.data.strip(),
|
codepostal=form.codepostal.data.strip(),
|
||||||
ville=form.ville.data.strip(),
|
ville=form.ville.data.strip(),
|
||||||
@ -387,7 +392,7 @@ def edit_entreprise(id):
|
|||||||
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404(
|
entreprise = Entreprise.query.filter_by(id=id, visible=True).first_or_404(
|
||||||
description=f"entreprise {id} inconnue"
|
description=f"entreprise {id} inconnue"
|
||||||
)
|
)
|
||||||
form = EntrepriseModificationForm(hidden_entreprise_siret=entreprise.siret)
|
form = EntrepriseModificationForm(siret=entreprise.siret)
|
||||||
if form.validate_on_submit():
|
if form.validate_on_submit():
|
||||||
nom_entreprise = f"<a href=/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}>{form.nom.data.strip()}</a>"
|
nom_entreprise = f"<a href=/ScoDoc/entreprises/fiche_entreprise/{entreprise.id}>{form.nom.data.strip()}</a>"
|
||||||
if entreprise.nom != form.nom.data.strip():
|
if entreprise.nom != form.nom.data.strip():
|
||||||
@ -432,6 +437,7 @@ def edit_entreprise(id):
|
|||||||
form.pays.data.strip() if form.pays.data.strip() else "FRANCE"
|
form.pays.data.strip() if form.pays.data.strip() else "FRANCE"
|
||||||
)
|
)
|
||||||
db.session.add(log)
|
db.session.add(log)
|
||||||
|
entreprise.association = form.association.data
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
flash("L'entreprise a été modifié.")
|
flash("L'entreprise a été modifié.")
|
||||||
return redirect(url_for("entreprises.fiche_entreprise", id=entreprise.id))
|
return redirect(url_for("entreprises.fiche_entreprise", id=entreprise.id))
|
||||||
@ -442,6 +448,7 @@ def edit_entreprise(id):
|
|||||||
form.codepostal.data = entreprise.codepostal
|
form.codepostal.data = entreprise.codepostal
|
||||||
form.ville.data = entreprise.ville
|
form.ville.data = entreprise.ville
|
||||||
form.pays.data = entreprise.pays
|
form.pays.data = entreprise.pays
|
||||||
|
form.association.data = entreprise.association
|
||||||
return render_template(
|
return render_template(
|
||||||
"entreprises/form_modification_entreprise.html",
|
"entreprises/form_modification_entreprise.html",
|
||||||
title="Modification entreprise",
|
title="Modification entreprise",
|
||||||
@ -522,6 +529,64 @@ def add_taxe_apprentissage(id):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route(
|
||||||
|
"/fiche_entreprise/<int:id_entreprise>/edit_taxe_apprentissage/<int:id_taxe>",
|
||||||
|
methods=["GET", "POST"],
|
||||||
|
)
|
||||||
|
def edit_taxe_apprentissage(id_entreprise, id_taxe):
|
||||||
|
"""
|
||||||
|
Permet de modifier une taxe d'apprentissage sur un fiche entreprise
|
||||||
|
"""
|
||||||
|
entreprise = Entreprise.query.filter_by(
|
||||||
|
id=id_entreprise, visible=True
|
||||||
|
).first_or_404(description=f"entreprise {id_entreprise} inconnue")
|
||||||
|
taxe = EntrepriseTaxeApprentissage.query.filter_by(id=id_taxe).first_or_404(
|
||||||
|
description=f"taxe d'apprentissage {id_taxe} inconnue"
|
||||||
|
)
|
||||||
|
form = TaxeApprentissageModificationForm(annee=taxe.annee)
|
||||||
|
if form.validate_on_submit():
|
||||||
|
taxe.montant = form.montant.data
|
||||||
|
taxe.notes = form.notes.data.strip()
|
||||||
|
db.session.commit()
|
||||||
|
return redirect(url_for("entreprises.fiche_entreprise", id=entreprise.id))
|
||||||
|
elif request.method == "GET":
|
||||||
|
form.montant.data = taxe.montant
|
||||||
|
form.notes.data = taxe.notes
|
||||||
|
return render_template(
|
||||||
|
"entreprises/form.html",
|
||||||
|
title="Modification taxe apprentissage",
|
||||||
|
form=form,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route(
|
||||||
|
"/fiche_entreprise/<int:id_entreprise>/delete_taxe_apprentissage/<int:id_taxe>",
|
||||||
|
methods=["GET", "POST"],
|
||||||
|
)
|
||||||
|
def delete_taxe_apprentissage(id_entreprise, id_taxe):
|
||||||
|
"""
|
||||||
|
Permet de modifier une taxe d'apprentissage sur un fiche entreprise
|
||||||
|
"""
|
||||||
|
entreprise = Entreprise.query.filter_by(
|
||||||
|
id=id_entreprise, visible=True
|
||||||
|
).first_or_404(description=f"entreprise {id_entreprise} inconnue")
|
||||||
|
taxe = EntrepriseTaxeApprentissage.query.filter_by(id=id_taxe).first_or_404(
|
||||||
|
description=f"taxe d'apprentissage {id_taxe} inconnue"
|
||||||
|
)
|
||||||
|
form = SuppressionConfirmationForm()
|
||||||
|
if form.validate_on_submit():
|
||||||
|
db.session.delete(taxe)
|
||||||
|
db.session.commit()
|
||||||
|
flash("La taxe d'apprentissage a été supprimé de la liste.")
|
||||||
|
return redirect(url_for("entreprises.fiche_entreprise", id=entreprise.id))
|
||||||
|
return render_template(
|
||||||
|
"entreprises/confirmation_form.html",
|
||||||
|
title="Supprimer taxe apprentissage",
|
||||||
|
form=form,
|
||||||
|
info_message="Cliquez sur le bouton Supprimer pour confirmer votre supression",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
@bp.route(
|
||||||
"/fiche_entreprise_validation/<int:id>/validate_entreprise", methods=["GET", "POST"]
|
"/fiche_entreprise_validation/<int:id>/validate_entreprise", methods=["GET", "POST"]
|
||||||
)
|
)
|
||||||
|
@ -116,3 +116,8 @@
|
|||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#liste-taxes-apprentissages {
|
||||||
|
list-style: none;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
@ -39,7 +39,8 @@
|
|||||||
{% if form %}
|
{% if form %}
|
||||||
<form method="POST" action="">
|
<form method="POST" action="">
|
||||||
{{ form.hidden_tag() }}
|
{{ form.hidden_tag() }}
|
||||||
<input id="active" name="active" type="checkbox" onChange="form.submit()" {% if checked %} checked {% endif %}> <label for="active">Afficher les entreprises désactivés</label>
|
<input id="active" name="active" type="checkbox" onChange="form.submit()" {% if checked[0] %} checked {% endif %}> <label for="active" style="margin-right:20px">Afficher les entreprises désactivés</label>
|
||||||
|
<input id="association" name="association" type="checkbox" onChange="form.submit()" {% if checked[1] %} checked {% endif %}> <label for="association">Afficher les associations partenaires</label>
|
||||||
</form>
|
</form>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<table id="table-entreprises">
|
<table id="table-entreprises">
|
||||||
|
@ -33,7 +33,10 @@
|
|||||||
Adresse : {{ entreprise.adresse }}<br>
|
Adresse : {{ entreprise.adresse }}<br>
|
||||||
Code postal : {{ entreprise.codepostal }}<br>
|
Code postal : {{ entreprise.codepostal }}<br>
|
||||||
Ville : {{ entreprise.ville }}<br>
|
Ville : {{ entreprise.ville }}<br>
|
||||||
Pays : {{ entreprise.pays }}
|
Pays : {{ entreprise.pays }}<br>
|
||||||
|
{% if entreprise.association %}
|
||||||
|
Association
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
{% if current_user.has_permission(current_user.Permission.RelationsEntreprisesChange, None) %}
|
||||||
@ -41,12 +44,15 @@
|
|||||||
Taxe d'apprentissage<br>
|
Taxe d'apprentissage<br>
|
||||||
<a class="btn btn-primary" href="{{ url_for('entreprises.add_taxe_apprentissage', id=entreprise.id) }}">Ajouter taxe apprentissage</a>
|
<a class="btn btn-primary" href="{{ url_for('entreprises.add_taxe_apprentissage', id=entreprise.id) }}">Ajouter taxe apprentissage</a>
|
||||||
<div class="taxe-apprentissage">
|
<div class="taxe-apprentissage">
|
||||||
<ul>
|
<ul id="liste-taxes-apprentissages">
|
||||||
{% if not taxes|check_taxe_now %}
|
{% if not taxes|check_taxe_now %}
|
||||||
<li>année actuelle : non versé</li>
|
<li>année actuelle : non versé</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for taxe in taxes %}
|
{% for taxe in taxes %}
|
||||||
<li>{{ taxe.annee }} : {{ taxe.montant }} euros</li>
|
<li>
|
||||||
|
<a href="{{ url_for('entreprises.delete_taxe_apprentissage', id_entreprise=entreprise.id, id_taxe=taxe.id) }}"><img title="Supprimer taxe d'apprentissage" alt="supprimer" width="10" height="9" border="0" src="/ScoDoc/static/icons/delete_small_img.png" /></a>
|
||||||
|
<a href="{{ url_for('entreprises.edit_taxe_apprentissage', id_entreprise=entreprise.id, id_taxe=taxe.id) }}">{{ taxe.annee }}</a> : {{ taxe.montant }} euros
|
||||||
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -12,7 +12,10 @@
|
|||||||
Adresse : {{ entreprise.adresse }}<br>
|
Adresse : {{ entreprise.adresse }}<br>
|
||||||
Code postal : {{ entreprise.codepostal }}<br>
|
Code postal : {{ entreprise.codepostal }}<br>
|
||||||
Ville : {{ entreprise.ville }}<br>
|
Ville : {{ entreprise.ville }}<br>
|
||||||
Pays : {{ entreprise.pays }}
|
Pays : {{ entreprise.pays }}<br>
|
||||||
|
{% if entreprise.association %}
|
||||||
|
Association
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user