forked from Ruderverein-Donau-Linz/rowt
		
	Merge pull request 'inform board if more trips than allowed' (#743) from mail-end-scheckbuch into staging
Reviewed-on: Ruderverein-Donau-Linz/rowt#743
This commit is contained in:
		@@ -257,8 +257,6 @@ ASKÖ Ruderverein Donau Linz", self.name, SCHECKBUCH/100),
 | 
			
		||||
        mail: &str,
 | 
			
		||||
        smtp_pw: &str,
 | 
			
		||||
    ) -> Result<(), String> {
 | 
			
		||||
        // 2 things to do:
 | 
			
		||||
        // 1. Send mail to user
 | 
			
		||||
        Mail::send_single_tx(
 | 
			
		||||
            db,
 | 
			
		||||
            mail,
 | 
			
		||||
@@ -279,20 +277,6 @@ ASKÖ Ruderverein Donau Linz", self.name),
 | 
			
		||||
            smtp_pw,
 | 
			
		||||
        ).await?;
 | 
			
		||||
 | 
			
		||||
        // 2. Notify all coxes
 | 
			
		||||
        let coxes = Role::find_by_name_tx(db, "cox").await.unwrap();
 | 
			
		||||
        Notification::create_for_role_tx(
 | 
			
		||||
            db,
 | 
			
		||||
            &coxes,
 | 
			
		||||
            &format!(
 | 
			
		||||
                "Liebe Steuerberechtigte, {} hat alle Ausfahrten des Scheckbuchs absolviert. Hoffentlich können wir uns bald über ein neues Mitglied freuen :-)",
 | 
			
		||||
                self.name
 | 
			
		||||
            ),
 | 
			
		||||
            "Scheckbuch fertig",
 | 
			
		||||
            None,None
 | 
			
		||||
        )
 | 
			
		||||
        .await;
 | 
			
		||||
 | 
			
		||||
        Ok(())
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -971,13 +955,42 @@ ORDER BY last_access DESC
 | 
			
		||||
        db: &mut Transaction<'_, Sqlite>,
 | 
			
		||||
        smtp_pw: &str,
 | 
			
		||||
    ) {
 | 
			
		||||
        if self.has_role_tx(db, "scheckbuch").await
 | 
			
		||||
            && Logbook::completed_with_user_tx(db, &self).await.len() == 5
 | 
			
		||||
        {
 | 
			
		||||
            if let Some(mail) = &self.mail {
 | 
			
		||||
                let _ = self.send_end_mail_scheckbuch(db, mail, smtp_pw).await;
 | 
			
		||||
        if self.has_role_tx(db, "scheckbuch").await {
 | 
			
		||||
            let amount_trips = Logbook::completed_with_user_tx(db, &self).await.len();
 | 
			
		||||
            if amount_trips == 5 {
 | 
			
		||||
                if let Some(mail) = &self.mail {
 | 
			
		||||
                    let _ = self.send_end_mail_scheckbuch(db, mail, smtp_pw).await;
 | 
			
		||||
                }
 | 
			
		||||
                let coxes = Role::find_by_name_tx(db, "cox").await.unwrap();
 | 
			
		||||
                Notification::create_for_role_tx(
 | 
			
		||||
            db,
 | 
			
		||||
            &coxes,
 | 
			
		||||
            &format!(
 | 
			
		||||
                "Liebe Steuerberechtigte, {} hat alle Ausfahrten des Scheckbuchs absolviert. Hoffentlich können wir uns bald über ein neues Mitglied freuen :-)",
 | 
			
		||||
                self.name
 | 
			
		||||
            ),
 | 
			
		||||
            "Scheckbuch fertig",
 | 
			
		||||
            None,None
 | 
			
		||||
        )
 | 
			
		||||
        .await;
 | 
			
		||||
            } else if amount_trips > 5 {
 | 
			
		||||
                let board = Role::find_by_name_tx(db, "Vorstand").await.unwrap();
 | 
			
		||||
                Notification::create_for_role_tx(
 | 
			
		||||
            db,
 | 
			
		||||
            &board,
 | 
			
		||||
            &format!(
 | 
			
		||||
                "Lieber Vorstand, {} hat nun bereits die {}. seiner 5 Scheckbuchausfahrten absolviert.",
 | 
			
		||||
                self.name, amount_trips
 | 
			
		||||
            ),
 | 
			
		||||
            "Scheckbuch überfertig",
 | 
			
		||||
            None,None
 | 
			
		||||
        )
 | 
			
		||||
        .await;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // TODO: check fahrtenabzeichen fertig?
 | 
			
		||||
        // TODO: check äquatorpreis geschafft?
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user