aboutsummaryrefslogtreecommitdiff
path: root/src/jobs/weekly_report.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/jobs/weekly_report.rs')
-rw-r--r--src/jobs/weekly_report.rs65
1 files changed, 0 insertions, 65 deletions
diff --git a/src/jobs/weekly_report.rs b/src/jobs/weekly_report.rs
deleted file mode 100644
index 35bf5af..0000000
--- a/src/jobs/weekly_report.rs
+++ /dev/null
@@ -1,65 +0,0 @@
-use std::collections::HashMap;
-use tokio_rusqlite::Connection;
-
-use crate::db;
-use crate::mail;
-use crate::model::config::Config;
-use crate::payer;
-
-pub async fn send(
- config: &Config,
- db_conn: &Connection,
- env: &minijinja::Environment<'_>,
-) -> bool {
- match get_weekly_report(db_conn, env).await {
- Ok(report) => {
- let users = db::users::list(db_conn).await;
- mail::send(
- config,
- users
- .into_iter()
- .map(|u| mail::Recipient {
- name: u.name,
- address: u.email,
- })
- .collect(),
- "Rapport hebdomadaire",
- &report,
- )
- .await
- }
- Err(err) => {
- log::error!(
- "Error preparing weekly report from template: {:?}",
- err
- );
- false
- }
- }
-}
-
-async fn get_weekly_report(
- db_conn: &Connection,
- env: &minijinja::Environment<'_>,
-) -> Result<String, minijinja::Error> {
- let users = db::users::list(db_conn).await;
- let incomes_from = db::incomes::defined_for_all(db_conn).await;
- let user_incomes = match incomes_from {
- Some(from) => db::incomes::cumulative(db_conn, from).await,
- None => HashMap::new(),
- };
- let user_payments = db::payments::repartition(db_conn).await;
- let exceeding_payers =
- payer::exceeding(&users, &user_incomes, &user_payments);
-
- let last_week_payments = db::payments::last_week(db_conn).await;
- let last_week_incomes = db::incomes::last_week(db_conn).await;
-
- let template = env.get_template("report/report.j2")?;
- template.render(minijinja::context!(
- name => "John",
- exceeding_payers => exceeding_payers,
- payments => last_week_payments,
- incomes => last_week_incomes
- ))
-}