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
|
#If set true members don't need billing related permissions if they are member_responsible for specific event
|
||||||
member_responsible_overwrites_permissions = true
|
member_responsible_overwrites_permissions = true
|
||||||
send_personnel_billing_to_email = 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
|
#If set true members don't need billing related permissions if they are member_responsible for specific event
|
||||||
member_responsible_overwrites_permissions = true
|
member_responsible_overwrites_permissions = true
|
||||||
send_personnel_billing_to_email = 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);
|
debug!("Generated CSV: {}", csv);
|
||||||
if settings.billing.send_personnel_billing_to_email {
|
if settings.billing.send_personnel_billing_to_email {
|
||||||
let attachement = Attachment::new(String::from("Einsatzabrechnung.txt")).body(csv, ContentType::parse("text/csv").unwrap());
|
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())
|
.from(settings.mail.from.clone().parse().unwrap())
|
||||||
.reply_to(settings.mail.reply_to.clone().parse().unwrap())
|
.reply_to(settings.mail.reply_to.clone().parse().unwrap());
|
||||||
.to(settings.billing.personnel_billing_email.parse().unwrap())
|
for receiver in settings.billing.personnel_billing_emails.split(","){
|
||||||
.subject("Einsatzabrechnung")
|
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();
|
.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);
|
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))
|
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 => {
|
None => {
|
||||||
return Err(CSVGeneratorError::Generator(CSVGeneratorErrorKind::MissingMember));
|
return Err(CSVGeneratorError::Generator(CSVGeneratorErrorKind::MissingMember));
|
||||||
|
|
Loading…
Reference in New Issue