Spaces:
Running
Running
Update src/modules/loans_engine.py
Browse files- src/modules/loans_engine.py +28 -16
src/modules/loans_engine.py
CHANGED
|
@@ -500,10 +500,11 @@ def show_loans_engine(client, sheet_name):
|
|
| 500 |
nb_versements = 1
|
| 501 |
|
| 502 |
# Affichage résultat simulation immédiate
|
| 503 |
-
st.markdown("###
|
| 504 |
-
res1, res2 = st.columns(
|
| 505 |
res1.metric("Versement unique", f"{int(montant_versement):,} XOF".replace(",", " "))
|
| 506 |
res2.metric("Coût du crédit", f"{int(cout_credit):,} XOF".replace(",", " "))
|
|
|
|
| 507 |
|
| 508 |
# -----------------------------------------------------------
|
| 509 |
# 2. LOGIQUE MENSUEL - INTÉRÊTS (Remboursement capital à la fin)
|
|
@@ -524,11 +525,16 @@ def show_loans_engine(client, sheet_name):
|
|
| 524 |
nb_versements = int(duree_mois)
|
| 525 |
|
| 526 |
# Affichage résultat simulation
|
| 527 |
-
st.markdown("###
|
| 528 |
-
res1, res2
|
| 529 |
res1.metric("Intérêts mensuels", f"{int(interet_mensuel):,} XOF".replace(",", " "))
|
| 530 |
res2.metric("Dernier versement", f"{int(montant_final_mois):,} XOF".replace(",", " "))
|
| 531 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 532 |
|
| 533 |
# -----------------------------------------------------------
|
| 534 |
# 3. LOGIQUE MENSUEL - CONSTANT (Amortissement classique)
|
|
@@ -553,10 +559,11 @@ def show_loans_engine(client, sheet_name):
|
|
| 553 |
nb_versements = int(duree_mois)
|
| 554 |
|
| 555 |
# Affichage résultat simulation
|
| 556 |
-
st.markdown("###
|
| 557 |
-
res1, res2 = st.columns(
|
| 558 |
res1.metric("Mensualité constante", f"{int(mensualite):,} XOF".replace(",", " "))
|
| 559 |
-
res2.metric("Coût
|
|
|
|
| 560 |
|
| 561 |
# -----------------------------------------------------------
|
| 562 |
# 4. LOGIQUE HEBDOMADAIRE
|
|
@@ -578,10 +585,11 @@ def show_loans_engine(client, sheet_name):
|
|
| 578 |
nb_versements = int(duree_semaines)
|
| 579 |
|
| 580 |
# Affichage résultat simulation
|
| 581 |
-
st.markdown("###
|
| 582 |
-
res1, res2 = st.columns(
|
| 583 |
res1.metric("Versement Hebdo", f"{int(hebdomadalite):,} XOF".replace(",", " "))
|
| 584 |
-
res2.metric("Coût
|
|
|
|
| 585 |
|
| 586 |
|
| 587 |
# 5. LOGIQUE PERSONNALISÉE (Dates manuelles)
|
|
@@ -607,7 +615,7 @@ def show_loans_engine(client, sheet_name):
|
|
| 607 |
col_d, col_x = st.columns([4, 1])
|
| 608 |
new_date = col_d.date_input(f"Echéance {idx+1}", value=dt, key=f"d_{idx}", min_value=date.today())
|
| 609 |
dates_versements.append(new_date)
|
| 610 |
-
if col_x.button("
|
| 611 |
st.session_state.dates_perso.pop(idx)
|
| 612 |
st.rerun()
|
| 613 |
|
|
@@ -626,11 +634,15 @@ def show_loans_engine(client, sheet_name):
|
|
| 626 |
montant_versement = montant_total / nb_versements
|
| 627 |
|
| 628 |
# Affichage résultat simulation
|
| 629 |
-
st.markdown("###
|
| 630 |
-
res1, res2
|
| 631 |
res1.metric("Moyenne/Versement", f"{int(montant_versement):,} XOF".replace(",", " "))
|
| 632 |
-
res2.metric("Durée
|
| 633 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 634 |
|
| 635 |
# ====================================================================
|
| 636 |
# FIN DU BLOC LOGIQUE
|
|
|
|
| 500 |
nb_versements = 1
|
| 501 |
|
| 502 |
# Affichage résultat simulation immédiate
|
| 503 |
+
st.markdown("###Simulation")
|
| 504 |
+
res1, res2, res3 = st.columns(3)
|
| 505 |
res1.metric("Versement unique", f"{int(montant_versement):,} XOF".replace(",", " "))
|
| 506 |
res2.metric("Coût du crédit", f"{int(cout_credit):,} XOF".replace(",", " "))
|
| 507 |
+
res3.metric("Montant Total", f"{int(montant_total):,} XOF".replace(",", " "), delta=f"+{int(cout_credit):,}")
|
| 508 |
|
| 509 |
# -----------------------------------------------------------
|
| 510 |
# 2. LOGIQUE MENSUEL - INTÉRÊTS (Remboursement capital à la fin)
|
|
|
|
| 525 |
nb_versements = int(duree_mois)
|
| 526 |
|
| 527 |
# Affichage résultat simulation
|
| 528 |
+
st.markdown("###Simulation")
|
| 529 |
+
res1, res2 = st.columns(2)
|
| 530 |
res1.metric("Intérêts mensuels", f"{int(interet_mensuel):,} XOF".replace(",", " "))
|
| 531 |
res2.metric("Dernier versement", f"{int(montant_final_mois):,} XOF".replace(",", " "))
|
| 532 |
+
|
| 533 |
+
res3, res4 = st.columns(2)
|
| 534 |
+
res3.metric("Coût du crédit", f"{int(cout_credit):,} XOF".replace(",", " "))
|
| 535 |
+
res4.metric("Montant Total", f"{int(montant_total):,} XOF".replace(",", " "), delta=f"+{int(cout_credit):,}")
|
| 536 |
+
|
| 537 |
+
|
| 538 |
|
| 539 |
# -----------------------------------------------------------
|
| 540 |
# 3. LOGIQUE MENSUEL - CONSTANT (Amortissement classique)
|
|
|
|
| 559 |
nb_versements = int(duree_mois)
|
| 560 |
|
| 561 |
# Affichage résultat simulation
|
| 562 |
+
st.markdown("###Simulation")
|
| 563 |
+
res1, res2, res3 = st.columns(3)
|
| 564 |
res1.metric("Mensualité constante", f"{int(mensualite):,} XOF".replace(",", " "))
|
| 565 |
+
res2.metric("Coût du crédit", f"{int(cout_credit):,} XOF".replace(",", " "))
|
| 566 |
+
res3.metric("Montant Total", f"{int(montant_total):,} XOF".replace(",", " "), delta=f"+{int(cout_credit):,}")
|
| 567 |
|
| 568 |
# -----------------------------------------------------------
|
| 569 |
# 4. LOGIQUE HEBDOMADAIRE
|
|
|
|
| 585 |
nb_versements = int(duree_semaines)
|
| 586 |
|
| 587 |
# Affichage résultat simulation
|
| 588 |
+
st.markdown("###Simulation")
|
| 589 |
+
res1, res2, res3 = st.columns(3)
|
| 590 |
res1.metric("Versement Hebdo", f"{int(hebdomadalite):,} XOF".replace(",", " "))
|
| 591 |
+
res2.metric("Coût du crédit", f"{int(cout_credit):,} XOF".replace(",", " "))
|
| 592 |
+
res3.metric("Montant Total", f"{int(montant_total):,} XOF".replace(",", " "), delta=f"+{int(cout_credit):,}")
|
| 593 |
|
| 594 |
|
| 595 |
# 5. LOGIQUE PERSONNALISÉE (Dates manuelles)
|
|
|
|
| 615 |
col_d, col_x = st.columns([4, 1])
|
| 616 |
new_date = col_d.date_input(f"Echéance {idx+1}", value=dt, key=f"d_{idx}", min_value=date.today())
|
| 617 |
dates_versements.append(new_date)
|
| 618 |
+
if col_x.button("🔻", key=f"del_{idx}") and len(st.session_state.dates_perso) > 1:
|
| 619 |
st.session_state.dates_perso.pop(idx)
|
| 620 |
st.rerun()
|
| 621 |
|
|
|
|
| 634 |
montant_versement = montant_total / nb_versements
|
| 635 |
|
| 636 |
# Affichage résultat simulation
|
| 637 |
+
st.markdown("###Simulation")
|
| 638 |
+
res1, res2 = st.columns(2)
|
| 639 |
res1.metric("Moyenne/Versement", f"{int(montant_versement):,} XOF".replace(",", " "))
|
| 640 |
+
res2.metric("Durée estimée", f"{duree_semaines} sem")
|
| 641 |
+
|
| 642 |
+
res3, res4 = st.columns(2)
|
| 643 |
+
res3.metric("Coût du crédit", f"{int(cout_credit):,} XOF".replace(",", " "))
|
| 644 |
+
res4.metric("Montant Total", f"{int(montant_total):,} XOF".replace(",", " "), delta=f"+{int(cout_credit):,}")
|
| 645 |
+
|
| 646 |
|
| 647 |
# ====================================================================
|
| 648 |
# FIN DU BLOC LOGIQUE
|