Added charset header and BOM to utf-8 csv exports

This commit is contained in:
Frank Schubert
2024-11-05 13:53:50 +01:00
parent ed95e9bb7c
commit 1f3ef5246f
8 changed files with 15 additions and 15 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
<?php <?php
$header = "FIBU Kontonummber;Zahlungsziel Lieferant;Skontotage;Skontoprozent;Zahlsperre;Vorname;Nachname;Straße Hausnummer;PLZ;Ort;Land;Telefon;Mail;UID;SEPA;Kontoinhaber;IBAN;BIC;customer_numbers\n"; $header = "\u{FEFF}FIBU Kontonummber;Zahlungsziel Lieferant;Skontotage;Skontoprozent;Zahlsperre;Vorname;Nachname;Straße Hausnummer;PLZ;Ort;Land;Telefon;Mail;UID;SEPA;Kontoinhaber;IBAN;BIC;customer_numbers\n";
$this->setReturnValue(["header" => $header]); $this->setReturnValue(["header" => $header]);
foreach($addresses as $a): foreach($addresses as $a):
+2 -2
View File
@@ -5,7 +5,7 @@
*/ */
$i = 0; $i = 0;
ob_end_flush(); ob_end_flush();
header("Content-type: text/csv"); header("Content-type: text/csv; charset=utf-8");
if(!$no_filename) { if(!$no_filename) {
header('Content-disposition: attachment; filename="addressdb-export-'.date('Y-m-d_H-i-s').'.csv"'); header('Content-disposition: attachment; filename="addressdb-export-'.date('Y-m-d_H-i-s').'.csv"');
} }
@@ -17,7 +17,7 @@ foreach(ADBStatusflagModel::getAll() as $sflag) {
} }
?> ?>
AddressDB_ID;Extref;Adrcd;OAID;Status Code;Status Name;"<?=implode('";"', $status_flags_header)?>";Netzgebiet_Extref;Netzgebiet;Rimo Building External ID;GKZ;Gemeinde;OKZ;Ortschaft;PLZ;SKZ;Strasse;Hausnummer;Grundstueck;GPS Breite;GPS Laenge;Rollout;Rollout_Info;Freigabe;Nutzungseinheiten;GDA-Eigenschaft;Meridian;RW;HW;Sichtbarkeit;Erstellt;Letzte Bearbeitung <?="\u{FEFF}"?>AddressDB_ID;Extref;Adrcd;OAID;Status Code;Status Name;"<?=implode('";"', $status_flags_header)?>";Netzgebiet_Extref;Netzgebiet;Rimo Building External ID;GKZ;Gemeinde;OKZ;Ortschaft;PLZ;SKZ;Strasse;Hausnummer;Grundstueck;GPS Breite;GPS Laenge;Rollout;Rollout_Info;Freigabe;Nutzungseinheiten;GDA-Eigenschaft;Meridian;RW;HW;Sichtbarkeit;Erstellt;Letzte Bearbeitung
<?php <?php
$line = 0; $line = 0;
@@ -1,9 +1,9 @@
<?php <?php
ob_end_flush(); ob_end_flush();
header("Content-type: text/csv"); header("Content-type: text/csv; charset=utf-8");
header('Content-disposition: attachment; filename="ivtproducts-active-'.date('Y-m-d_H-i-s').'.csv"'); header('Content-disposition: attachment; filename="ivtproducts-active-'.date('Y-m-d_H-i-s').'.csv"');
?> ?>
IVT ID;Typ;Produkt;Standardpreis;Anzahl Kunden;Kunde <?="\u{FEFF}"?>IVT ID;Typ;Produkt;Standardpreis;Anzahl Kunden;Kunde
<?php <?php
$types = array('-----', 'xDSL', 'FTTH', 'FTTB', 'DOCSIS', 'Funk', 'Telefon', 'Webhosting', 'Carrier', 'Housing', 'TV'); $types = array('-----', 'xDSL', 'FTTH', 'FTTB', 'DOCSIS', 'Funk', 'Telefon', 'Webhosting', 'Carrier', 'Housing', 'TV');
foreach($products as $product_id => $product): foreach($products as $product_id => $product):
@@ -1,9 +1,9 @@
<?php <?php
header("Content-type: text/csv"); header("Content-type: text/csv; charset=utf-8");
header('Content-disposition: attachment; filename="'.$invoice->invoice_number.'.csv"'); header('Content-disposition: attachment; filename="'.$invoice->invoice_number.'.csv"');
?> ?>
Rechnungsnummer;Belegdatum;Kundennummer;Firma;Nachname;Vorname;Produktname;Matchcode;Zeitraum;Anzahl;Preis Netto;Ust%;Preis Brutto <?="\u{FEFF}"?>Rechnungsnummer;Belegdatum;Kundennummer;Firma;Nachname;Vorname;Produktname;Matchcode;Zeitraum;Anzahl;Preis Netto;Ust%;Preis Brutto
<?php <?php
foreach($invoice->positions as $p): foreach($invoice->positions as $p):
$timerange_month_only = $p->getOption('timerange_month_only'); $timerange_month_only = $p->getOption('timerange_month_only');
@@ -1,9 +1,9 @@
<?php <?php
ob_end_flush(); ob_end_flush();
header("Content-type: text/csv"); header("Content-type: text/csv; charset=utf-8");
header('Content-disposition: attachment; filename="Kampagne-'.$campaign->name.'-billing-'.date('Y-m-d_H-i-s').'.csv"'); header('Content-disposition: attachment; filename="Kampagne-'.$campaign->name.'-billing-'.date('Y-m-d_H-i-s').'.csv"');
?> ?>
Kampagne;Netzgebiet ID;Netzgebiet;Extref;Bestellcode;OAID;Bestelldatum;Bestelltyp;Status Code; Status Name;Anschlusstyp;GWR Adresscode;Meridian;RW;HW;Anschluss Strasse;Anschluss Hausnummer;Anschluss PLZ;Anschluss Ort;Anschluss Wohneinheit;GPS Breite;GPS Länge;Anzahl Anschlüsse;Kunde Firma;Kunde UID;Kunde Vorname;Kunde Nachname;Kunde Strasse;Kunde PLZ;Kunde Ort;Kunde Telefon;Kunde Email;Partner;Preis Setup;Erstellt;Letzte Bearbeitung <?="\u{FEFF}"?>Kampagne;Netzgebiet ID;Netzgebiet;Extref;Bestellcode;OAID;Bestelldatum;Bestelltyp;Status Code; Status Name;Anschlusstyp;GWR Adresscode;Meridian;RW;HW;Anschluss Strasse;Anschluss Hausnummer;Anschluss PLZ;Anschluss Ort;Anschluss Wohneinheit;GPS Breite;GPS Länge;Anzahl Anschlüsse;Kunde Firma;Kunde UID;Kunde Vorname;Kunde Nachname;Kunde Strasse;Kunde PLZ;Kunde Ort;Kunde Telefon;Kunde Email;Partner;Preis Setup;Erstellt;Letzte Bearbeitung
<?php <?php
$line = 0; $line = 0;
+2 -2
View File
@@ -4,7 +4,7 @@
* @var resource $res * @var resource $res
*/ */
ob_end_flush(); ob_end_flush();
header("Content-type: text/csv"); header("Content-type: text/csv; charset=utf-8");
if(!$no_filename) { if(!$no_filename) {
header('Content-disposition: attachment; filename="preorder-export-' . date('Y-m-d_H-i-s') . '.csv"'); header('Content-disposition: attachment; filename="preorder-export-' . date('Y-m-d_H-i-s') . '.csv"');
} }
@@ -15,7 +15,7 @@ foreach(PreorderStatusflagModel::getAll() as $sflag) {
} }
?> ?>
Kampagne;Netzgebiet ID;Netzgebiet;Extref;Bestellcode;Gutscheincodes;OAID;Bestelldatum;Bestelltyp;Status Code;Status Name;"<?=implode('";"', $status_flags_header)?>";Anschlusstyp;GWR Adresscode;Meridian;RW;HW;Anschluss Strasse;Anschluss Hausnummer;Anschluss PLZ;Anschluss Ort;Anschluss Wohneinheit;GPS Breite;GPS Länge;Anzahl Anschlüsse;Kunde Firma;Kunde UID;Kunde Vorname;Kunde Nachname;Kunde Strasse;Kunde PLZ;Kunde Ort;Kunde Telefon;Kunde Email;Partner;CIF Token;Cif Url;Cif Cable Url;Addon Lehrverrohrung Grundstück;Addon Hausverkabelung;BEP festgelegt;Starterpaket erhalten;Erstellt;Letzte Bearbeitung <?="\u{FEFF}"?>Kampagne;Netzgebiet ID;Netzgebiet;Extref;Bestellcode;Gutscheincodes;OAID;Bestelldatum;Bestelltyp;Status Code;Status Name;"<?=implode('";"', $status_flags_header)?>";Anschlusstyp;GWR Adresscode;Meridian;RW;HW;Anschluss Strasse;Anschluss Hausnummer;Anschluss PLZ;Anschluss Ort;Anschluss Wohneinheit;GPS Breite;GPS Länge;Anzahl Anschlüsse;Kunde Firma;Kunde UID;Kunde Vorname;Kunde Nachname;Kunde Strasse;Kunde PLZ;Kunde Ort;Kunde Telefon;Kunde Email;Partner;CIF Token;Cif Url;Cif Cable Url;Addon Lehrverrohrung Grundstück;Addon Hausverkabelung;BEP festgelegt;Starterpaket erhalten;Erstellt;Letzte Bearbeitung
<?php <?php
$line = 0; $line = 0;
@@ -1,8 +1,8 @@
<?php <?php
header("Content-type: text/csv"); header("Content-type: text/csv; charset=utf-8");
header('Content-disposition: attachment; filename="preorder-services-'.$campaign->name.'-'.date("Y-m-d_H-m-s").'.csv"'); header('Content-disposition: attachment; filename="preorder-services-'.$campaign->name.'-'.date("Y-m-d_H-m-s").'.csv"');
?> ?>
Code;Gemeinde;PLZ;Ortschaft;Strasse;Hausnummer;Block;Stiege;Stock;Tuer;Adresszusatz;Adressinfo;Firma;UID;Vorname;Nachname;Kontakt Strasse;Kontakt PLZ;Kontakt Ort;Telefon;Email;Dienstleistung;Data <?="\u{FEFF}"?>Code;Gemeinde;PLZ;Ortschaft;Strasse;Hausnummer;Block;Stiege;Stock;Tuer;Adresszusatz;Adressinfo;Firma;UID;Vorname;Nachname;Kontakt Strasse;Kontakt PLZ;Kontakt Ort;Telefon;Email;Dienstleistung;Data
<?php foreach($csv as $c):?> <?php foreach($csv as $c):?>
"<?=$c["ucode"]?>";"<?=$c["gemeinde"]?>";"<?=$c["plz"]?>";"<?=$c["ortschaft"]?>";"<?=$c["strasse"]?>";"<?=$c["hausnummer"]?>";"<?=$c["block"]?>";"<?=$c["stiege"]?>";"<?=$c["stock"]?>";"<?=$c["tuer"]?>";"<?=$c["zusatz"]?>";"<?=$c["address_info"]?>";"<?=$c["contact_company"]?>";"<?=$c["contact_uid"]?>";"<?=$c["contact_firstname"]?>";"<?=$c["contact_lastname"]?>";"<?=$c["contact_street"]?>";"<?=$c["contact_plz"]?>";"<?=$c["contact_ort"]?>";"<?=$c["phone"]?>";"<?=$c["email"]?>";"<?=$c["service"]?>";"<?=$c["service_data"]?>" "<?=$c["ucode"]?>";"<?=$c["gemeinde"]?>";"<?=$c["plz"]?>";"<?=$c["ortschaft"]?>";"<?=$c["strasse"]?>";"<?=$c["hausnummer"]?>";"<?=$c["block"]?>";"<?=$c["stiege"]?>";"<?=$c["stock"]?>";"<?=$c["tuer"]?>";"<?=$c["zusatz"]?>";"<?=$c["address_info"]?>";"<?=$c["contact_company"]?>";"<?=$c["contact_uid"]?>";"<?=$c["contact_firstname"]?>";"<?=$c["contact_lastname"]?>";"<?=$c["contact_street"]?>";"<?=$c["contact_plz"]?>";"<?=$c["contact_ort"]?>";"<?=$c["phone"]?>";"<?=$c["email"]?>";"<?=$c["service"]?>";"<?=$c["service_data"]?>"
<?php endforeach; <?php endforeach;
+2 -2
View File
@@ -674,7 +674,7 @@ class InvoiceController extends mfBaseController {
$type = "credit"; $type = "credit";
} }
$csv_header = "satzart;konto;gkonto;belegnr;belegdatum;buchsymbol;buchcode;prozent;steuercode;betrag;steuer;text;kost;"; $csv_header = "\u{FEFF}satzart;konto;gkonto;belegnr;belegdatum;buchsymbol;buchcode;prozent;steuercode;betrag;steuer;text;kost;";
if($type == "credit") { if($type == "credit") {
$csv_header .= "extbelegnr"; $csv_header .= "extbelegnr";
@@ -822,7 +822,7 @@ class InvoiceController extends mfBaseController {
/*$this->layout()->setFlash("Export erfolgreich abgeschlossen", "success"); /*$this->layout()->setFlash("Export erfolgreich abgeschlossen", "success");
$this->redirect("Invoice");*/ $this->redirect("Invoice");*/
header("Content-type: text/csv"); header("Content-type: text/csv; charset=utf-8");
if($type == "credit") { if($type == "credit") {
header('Content-disposition: attachment; filename="tt-prov-export-bmd-'.date('Y-m-d_H-i-s').'.csv"'); header('Content-disposition: attachment; filename="tt-prov-export-bmd-'.date('Y-m-d_H-i-s').'.csv"');
} else { } else {