MaintenanceNotification::getRecipients() can output a list of customers

This commit is contained in:
Frank Schubert
2024-11-14 11:51:00 +01:00
parent d63bda226d
commit d0aa315dca

View File

@@ -90,7 +90,7 @@ class MaintenanceNotification extends mfBaseModel {
return $body;
}
public function getRecipients() {
public function getRecipients($list_recipients = false) {
$plz_list = $this->getProperty("plzs");
$emails = [];
@@ -132,17 +132,17 @@ class MaintenanceNotification extends mfBaseModel {
$address_count = 0;
// find addresses with contracts we haven't found from Terminations yet
foreach(AddressModel::search(["zip" => $plz_list]) as $address) {
if(!$address->customer_number) continue;
if($address->customer_number > 900000) continue;
if(!$address->active_contracts) continue;
if(!in_array($address->id, $owner_ids)) {
$owner_ids[] = $address->id;
} else {
continue;
}
if(!$address->customer_number) continue;
if($address->customer_number > 900000) continue;
if(!$address->active_contracts) continue;
$address_count++;
if($address->email) {
@@ -158,6 +158,30 @@ class MaintenanceNotification extends mfBaseModel {
}
}
if($list_recipients) {
$csv = "Kundennummer;Firma;Vorname;Nachname;Straße;PLZ;Ort;Email\n";
foreach ($owner_ids as $id) {
$address = new Address($id);
if (!$address->id) {
echo "Adresse mit id $id nicht gefunden\n";
}
$csv .= $address->customer_number . ";";
$csv .= '"' . str_replace("\n"," ", $address->company) . '";';
$csv .= '"' . $address->firstname . '";';
$csv .= '"' . $address->lastname . '";';
$csv .= '"' . $address->street . '";';
$csv .= '"' . $address->zip . '";';
$csv .= '"' . $address->city . '";';
$csv .= '"' . $address->email . '";' . "\n";
}
echo $csv;
exit;
}
echo "$term_count Terminations\n";
echo "$term_contract_count Contracts from Terminations\n";
echo "$address_count Adressen sonst\n";