add fixed export
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Marko
2023-11-14 10:14:28 +01:00
parent 8554cf714d
commit dd8faaea95
4 changed files with 87 additions and 127 deletions

View File

@@ -40,7 +40,7 @@ class Hiltes
foreach ($finder as $file) {
$contents = $file->getContents();
var_dump($contents);
//var_dump($contents);
}
}
@@ -77,37 +77,27 @@ class Hiltes
return 'WU' . $date . $number . '.' . $filial;
}
/**
* @param $orderData
* @return bool|void
*/
public function createRequest($orderData)
{
dump($orderData);
$data = array();
$this->loginToHiltes('', '');
$order = $this->orderRepository->findOneBy(array('orderId' => $orderData->getOrderId()));
dump($order);
/**
* @var Order
*/
if ($order) {
//foreach ($orders as $order) {
// if ($order->getStatus() > 0) continue;
$tA = $order->getData();#json_decode($order->getData());
#$tA['orderdate'] = "2023-08-30T12:05:24.000Z";
if ($order->getStatus() != 2) return false;
$tA = $order->getData()[0];#json_decode($order->getData());
#dump($tA);
dump($tA);
#dd($order->getData());
#dd(array(
# 'orderdate'=> $tA['orderdate'],
# 'time'=> strtotime($tA['orderdate']),
# 'gmdate '=> gmdate ('d-m-Y\TH:i:s.v\Z',strtotime($tA['orderdate'])),
#));
#*** Umkonvertieren des Datumstings *****************
$tA['orderdate'] = gmdate('Y-m-d\TH:i:s.v\Z', $tA['orderdate'] ? strtotime($tA['orderdate']) : time());
#****
@@ -120,38 +110,46 @@ class Hiltes
'CustomerList' => array(),
);
#*** Items ***************
if (!empty($tA['data']) && is_array($tA['data'])) {
if (!empty($tA['positions']) && is_array($tA['positions'])) {
# Noch nötig
# "CalculatedSellingPrice" => 0, #X Kalkulierter Verkaufspreis
# "AchievedSalesPrice" => 0, #X Erzielter Verkaufspreis
$tSalNr = array();
foreach ($tA['data'] as $v) {
$SalesNumber = (!empty($v['gtin']) ? $v['gtin'] : $v['sku']);
if (preg_match('/^([0-9]+)_/', $SalesNumber, $tP)) {
$SalesNumber = $tP[1];
}
if (isset($tSalNr[$SalesNumber])) {
$tSalNr[$SalesNumber]++;
$SalesNumber .= $tSalNr[$SalesNumber];
foreach ($tA['positions'] as $v) {
if ($v['type'] == 'versandposition') {
$SalesNumber = '000001';
$SalesGoodsGroupNumber = 9350;
} else {
$tSalNr[$SalesNumber] = 0;
$SalesNumber = (!empty($v['gtin']) ? $v['gtin'] : $v['sku']);
if (preg_match('/^([0-9]+)_/', $SalesNumber, $tP)) {
$SalesNumber = $tP[1];
}
if (isset($tSalNr[$SalesNumber])) {
$tSalNr[$SalesNumber]++;
$SalesNumber .= $tSalNr[$SalesNumber];
} else {
$tSalNr[$SalesNumber] = 0;
}
$SalesGoodsGroupNumber = 0;
}
#dump($SalesNumber);
#********
$v['CalculatedSellingPrice'] = 100.00;
$v['AchievedSalesPrice'] = 90.00;
$v['CalculatedSellingPrice'] = round(str_replace(',', '.', $v['price']), 2);
$v['AchievedSalesPrice'] = round(str_replace(',', '.', $v['CalculatedSellingPrice']), 2);
$arr['SaleList'][] = array(
"SalesLabel" => 'Ean',#$v['sku'],#X
"SalesLabelNumber" => $SalesNumber,#X
"SalesGoodsGroupNumber" => 0,
"SalesGoodsGroupNumber" => $SalesGoodsGroupNumber,
"SizeDescription" => '',#"string",
"CustomerNumber" => 0,
"CustomerNumber" => $tA['kundenummer'],
"TypeOfEstate" => 0,
"Amount" => $v['menge'],#X
"CalculatedSellingPrice" => $v['CalculatedSellingPrice'], #X Kalkulierter Verkaufspreis
"AchievedSalesPrice" => $v['AchievedSalesPrice'], #X Erzielter Verkaufspreis
"TransactionType" => "Sale", #X Die Vorgangsart Sale=Verkauf Exchange=Umtausch / Storno
"ReceiptNumber" => 0, #Die Belegnummer
"ReceiptNumber" => $tA['externOrderId'], #Die Belegnummer
"DateOfSale" => $tA['orderdate'],#X das Verkaufsdatum mit Verkaufszeit
"PaymentMethod" => 'Invoice',#X "CreditCard",
"Currency" => 'EUR',#X "string",
@@ -163,13 +161,13 @@ class Hiltes
}
#*** Kundne *******************************
$arr['CustomerList'][] = array(
"CustomerNumber" => $tA['kundennummer'], # Fake Daten
"Surname" => 'MAX',#"string",
"Forename" => 'MUSTERMANN',#"string",
"AddressCity" => 'ERFURT',#"string",
"AddressZipCode" => '99084', "string",
"AddressStreet" => 'MusterStrasse 22',#"string",
"AddressCountry" => 'DE',#"string",
"CustomerNumber" => $tA['kundenummer'], # Fake Daten
"Surname" => $tA['name'],#"string",
"Forename" => $tA['vorname'],#"string",
"AddressCity" => $tA['ort'],#"string",
"AddressZipCode" => $tA['plz'], "string",
"AddressStreet" => $tA['strasse'],#"string",
"AddressCountry" => substr($tA['land'], 0, 3),#"string",
#*** Nicht nötig
#"CardNumber" => 0,
#"SalutionNumber" => 0,
@@ -207,16 +205,9 @@ class Hiltes
#"AdBan" => '',#true
);
dd($arr);
$data = $this->createJson($arr);
// }
return $this->sendOrderToHiltes($data);
}
}
/**
@@ -369,8 +360,9 @@ class Hiltes
$url = $this->hiltesApiUrl . '/api/WebSale/import';
$param = $data;
dump($param);
//dump($param);
$r = $this->sendToHiltes($url, $param, true);
$t = json_decode($r, true);
if ($t['Success']) {
return true;
@@ -380,68 +372,4 @@ class Hiltes
}
}
public function checkData($data)
{
$umsatz = [
'EtikettKz' => 'E', // E = EAN, I = Ident, W = Warengruppe
'Etikettnummer' => $data['sku'], // mit führenden Nullen bei Satzart „W“ die Warengruppennummer
'Warengruppennummer' => '0000', // mit führenden Nullen
'Groessenbez' => '',
'Kundennummer' => '00000000000000000000',
'Nachlassart' => '0',
'Menge' => '00000000000000000000', //7 Vor und 2 Nachkommastellen (Darstellung ohne Komma mit führenden Nullen).
'Kalk-VkPreis' => '00000000000000000000', //7 Vor und 2 Nachkommastellen (Darstellung ohne Komma mit führenden Nullen).
'Vorgangsart' => 'v', // u = Umtausch, v = Verkauf
'Belegnummer' => '00000000000000000000', // mit führenden Nullen
'Verkaufsdatum' => '00000000', // YYYYMMTT
'Verkaufszeit' => '000000', // HHMM
'Zahlungsart' => 2, // 1 = Kreditkarte, 2 = Rechnung, 3 = Lastschrift, 4 = Gutschein, 5 = Gutschrift, 6 = Mischzahlung
'Währung' => 'EUR', // EUR
'Einheit' => 'S', // S= Stück, M = Meter
'Vertriebskanal' => '0000', // Vertriebskanäle werden über das Stammdatenprogramm angelegt und müssen mit der hinterlegten Nummer aus dem Webshop übergeben werden
];
$kunde = [
'Kunden-Nummer' => '00000000000000000000', // mit führenden Nullen
'Kartennummer' => '00000000000000000000', // mit führenden Nullen
'Nachname' => '00000000000000000000', // mit führenden Nullen
'Vorname' => '00000000000000000000', // mit führenden Nullen
'Ort' => '00000000000000000000', // mit führenden Nullen
'PLZ' => '00000000000000000000', // mit führenden Nullen
'Straße' => '00000000000000000000', // mit führenden Nullen
'Land' => '00000000000000000000', // mit führenden Nullen
'Postfach' => '00000000000000000000', // mit führenden Nullen
'PostfachPLZ' => '00000000000000000000', // mit führenden Nullen
'Titel' => '00000000000000000000', // mit führenden Nullen
'Telefon1' => '00000000000000000000', // mit führenden Nullen
'Telefon2' => '00000000000000000000', // mit führenden Nullen
'Telefax' => '00000000000000000000', // mit führenden Nullen
'Geburtsdatum' => '00000000', // YYYYMMDD
'Geschlecht' => '00000000000000000000', // s = sonstiges, m = männlich, w = weiblich
'Email' => '00000000000000000000', // mit führenden Nullen
'Rabatt' => '00000000000000000000', // mit führenden Nullen
'Limit' => '00000000000000000000', // mit führenden Nullen
'Sperr Kennzeichen' => '0', // 0 = nicht gesperrt, 1 = gesperrt
'Dubios Kennzeichen' => '0', // 0 = nicht dubios, 1 = dubios
'Bankeinzug' => '0', // 0 = kein Bankeinzug, 1 = Bankeinzug
'BankName1' => '00000000000000000000', // mit führenden Nullen
'Konto1' => '00000000000000000000', // mit führenden Nullen
'BLZ1' => '00000000000000000000', // mit führenden Nullen
'BankName2' => '00000000000000000000', // mit führenden Nullen
'Konto2' => '00000000000000000000', // mit führenden Nullen
'BLZ2' => '00000000000000000000', // mit führenden Nullen
'BankName3' => '00000000000000000000', // mit führenden Nullen
'Konto3' => '00000000000000000000', // mit führenden Nullen
'BLZ3' => '00000000000000000000', // mit führenden Nullen
'Kreditkartennummer Kreditkarte1' => '', // mit führenden Nullen
'Kreditkartennummer Kreditkarte2' => '', // mit führenden Nullen
'Kreditkartennummer Kreditkarte3' => '', // mit führenden Nullen
'Kreditkartennummer Kreditkarte4' => '', // mit führenden Nullen
'Änderungskennzeichen' => '0', // 0 = Kunde ist OK, 1 = Änderung
'Newsletter' => '0', // 0 = kein Newsletter, 1 = Newsletter
'Passwort' => '', //
'Werbesperre' => '0', // 0 = keine Werbung, 1 = Werbung
];
}
}