FIX: format all money entries in CSV correctly FEA: allow multiple personnel billing emails
This commit is contained in:
parent
187ccde762
commit
ff6fa999e4
|
@ -36,4 +36,4 @@ default_pagination_limit = 20
|
|||
#If set true members don't need billing related permissions if they are member_responsible for specific event
|
||||
member_responsible_overwrites_permissions = true
|
||||
send_personnel_billing_to_email = true
|
||||
personnel_billing_email = "receiver@localhost"
|
||||
personnel_billing_emails = "receiver@localhost,receiver2@localhost"
|
|
@ -37,4 +37,4 @@ default_pagination_limit = 20
|
|||
#If set true members don't need billing related permissions if they are member_responsible for specific event
|
||||
member_responsible_overwrites_permissions = true
|
||||
send_personnel_billing_to_email = true
|
||||
personnel_billing_email = "receiver@localhost"
|
||||
personnel_billing_emails = "receiver@localhost,receiver2@localhost"
|
|
@ -269,11 +269,22 @@ pub async fn approve(
|
|||
debug!("Generated CSV: {}", csv);
|
||||
if settings.billing.send_personnel_billing_to_email {
|
||||
let attachement = Attachment::new(String::from("Einsatzabrechnung.txt")).body(csv, ContentType::parse("text/csv").unwrap());
|
||||
let msg = Message::builder()
|
||||
let mut msg = Message::builder()
|
||||
.from(settings.mail.from.clone().parse().unwrap())
|
||||
.reply_to(settings.mail.reply_to.clone().parse().unwrap())
|
||||
.to(settings.billing.personnel_billing_email.parse().unwrap())
|
||||
.subject("Einsatzabrechnung")
|
||||
.reply_to(settings.mail.reply_to.clone().parse().unwrap());
|
||||
for receiver in settings.billing.personnel_billing_emails.split(","){
|
||||
match receiver.parse(){
|
||||
Ok(receiver) => {
|
||||
msg = msg.to(receiver)
|
||||
},
|
||||
Err(e) => {
|
||||
error!("Couldn't parse settings.billing.personnel_billing_emails email {}: {}", receiver, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let event = get_event(settings, event_id).unwrap();
|
||||
let msg = msg.subject(format!("Einsatzabrechnung: {}", event.name))
|
||||
.multipart(MultiPart::mixed().singlepart(attachement).singlepart(SinglePart::plain(String::from("Es wurde eine Einsatzabrechnung freigegeben. Sie befindet sich im Anhang dieser E-Mail.")))).unwrap();
|
||||
mq.add_mail(msg);
|
||||
}
|
||||
|
|
|
@ -128,7 +128,7 @@ pub fn generate_billing_csv(settings: &State<Settings>, event_id: uuid::Uuid) ->
|
|||
None => return Err(CSVGeneratorError::Generator(CSVGeneratorErrorKind::MissingTimes))
|
||||
};
|
||||
|
||||
res.push_str(&format!("{},{},{},{},{},{},{},{},{}\n", sanitize(member.personnel_number.unwrap_or(0).to_string()), sanitize(member.firstname), sanitize(member.lastname), sanitize(begin), sanitize(end), sanitize(personnel.fulfilled_time.to_string()), sanitize(personnel.money_from_lump_sum.to_string()), sanitize(convert(personnel.money_for_time.clone(), 2, ',', Some('.'))), sanitize(convert(personnel.money_from_lump_sum+personnel.money_for_time, 2, ',', Some('.')))));
|
||||
res.push_str(&format!("{},{},{},{},{},{},{},{},{}\n", sanitize(member.personnel_number.unwrap_or(0).to_string()), sanitize(member.firstname), sanitize(member.lastname), sanitize(begin), sanitize(end), sanitize(personnel.fulfilled_time.to_string()), sanitize(convert(personnel.money_from_lump_sum.clone(), 2, ',', Some('.'))), sanitize(convert(personnel.money_for_time.clone(), 2, ',', Some('.'))), sanitize(convert(personnel.money_from_lump_sum+personnel.money_for_time, 2, ',', Some('.')))));
|
||||
}
|
||||
None => {
|
||||
return Err(CSVGeneratorError::Generator(CSVGeneratorErrorKind::MissingMember));
|
||||
|
|
Loading…
Reference in New Issue