fsObject = new Filesystem(); $this->current_dir_path = getcwd(); } /** * Aufbau des Dateinamens: * WU + Datum(TTMM) + Fortlaufendenummer (x2) + “.“ +Filialnummer(x4) * Beispieldateiname : WU220401.0001 */ public function createFileName() :String { $date = date('dm'); $number = '01'; $filial = '0001'; return 'WU'.$date.$number.'.'.$filial; } public function import() { $finder = new Finder(); $finder->files()->in($this->current_dir_path . "/hiltes/h2c/"); foreach ($finder as $file) { $contents = $file->getContents(); var_dump($contents); } } /** * @param string $data * @return void */ public function export(string $data) { try { $new_file_path = $this->current_dir_path . "/hiltes/c2h/".$this->createFileName(); if (!$this->fsObject->exists($new_file_path)) { $this->fsObject->touch($new_file_path); $this->fsObject->chmod($new_file_path, 0777); $this->fsObject->dumpFile($new_file_path, $data); } } catch (IOExceptionInterface $exception) { echo "Error creating file at". $exception->getPath(); } } 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 ]; } public function createJson($data){ $arr = array( 'File' => array( "BranchNumber" => $data['BranchNumber'], #Die Filialnummer "ShopNumber" => $data['ShopNumber'], #Die Shopnummer "SalesDate" => $data['SalesDate'], #Das Umsatzdatu "DistributionChannel" => $data['DistributionChannel'] #Der Vertriebskanal ), 'SaleList' => array( ), 'CustomerList' => array( ), ); #*** Sale List if(!empty($data['SaleList'])){ foreach ($data['SaleList'] as $v){ $arr['SaleList'][] = array( "SalesLabel" => $v['SalesLabel'], #Das Etikettkennzeichen "SalesLabelNumber" => $v['SalesLabelNumber'], #Etikettennummer "SalesGoodsGroupNumber" => $v['SalesGoodsGroupNumber'], #"SizeDescription" => $v['SizeDescription'], #"CustomerNumber" => $v['CustomerNumber'], #"TypeOfEstate" => $v['TypeOfEstate'], "Amount" => $v['Amount'], "CalculatedSellingPrice" => $v['CalculatedSellingPrice'], "AchievedSalesPrice" => $v['AchievedSalesPrice'], "TransactionType" => $v['TransactionType'], #"ReceiptNumber" => $v['ReceiptNumber'], "DateOfSale" => $data['SalesDate'],#"2023-09-14T11:54:26.708Z", "PaymentMethod" => $v['PaymentMethod'], "Currency" => $v['Currency'], "Unit" => $v['Unit'], "DistributionChannel" => $v['DistributionChannel'] ); } } #*** Sale List if(true){ foreach ($data['CustomerList'] as $v){ $arr['CustomerList'][] = array( "CustomerNumber" => $v['CustomerNumber'], #"CardNumber" => $v['CardNumber'], #"SalutionNumber" => $v['SalutionNumber'], "Surname" => $v['Surname'], "Forename" => $v['Forename'], "AddressCity" => $v['AddressCity'], "AddressZipCode" => $v['AddressZipCode'], "AddressStreet" => $v['AddressStreet'], "AddressCountry" => $v['AddressCountry'], #"PostOfficeBox" => $v['PostOfficeBox'], #"PostOfficeBoxZipCode" => $v['PostOfficeBoxZipCode'], #"Title" => $v['Title'], #"PhoneNumber1" => $v['PhoneNumber1'], #"PhoneNumber2" => $v['PhoneNumber2'], #"FaxNumber" => $v['FaxNumber'],#"string", #"BirthDay" => $v['BirthDay'], #"Gender" => $v['Gender'], #"EmailAddress" => $v['EmailAddress'], #"Discount" => $v['Discount'], #"Limit" => $v['Limit'], #"LockMark" => $v['LockMark'], #"DubiousMark" => $v['DubiousMark'], #"DubiousText" => $v['DubiousText'], #"DirectDebit" => $v['DirectDebit'], #"BankName1" => $v['BankName1'],#"string", #"BankAccountNumber1" => $v['BankAccountNumber1'],#"string", #"BankCodeNumber1" => $v['BankCodeNumber1'],#"string", #"BankName2" => $v['BankName2'],#"string", #"BankAccountNumber2" => $v['BankAccountNumber2'],#"string", #"BankCodeNumber2" => $v['BankCodeNumber2'],#"string", #"BankName3" => $v['BankName3'],#"string", #"BankAccountNumber3" => $v['BankAccountNumber3'],#"string", #"BankCodeNumber3" => $v['BankCodeNumber3'],#"string", #"CreditcardNumber1" => $v['CreditcardNumber1'],#"string", #"CreditcardNumber2" => $v['CreditcardNumber2'],#"string", #"CreditcardNumber3" => $v['CreditcardNumber3'],#"string", #"CreditcardNumber4" => $v['CreditcardNumber4'],#"string", #"ChangeIndicator" => $v['ChangeIndicator'], #"Newsletter" => $v['Newsletter'], #"Password" => $v['Password'], #"AdBan" => $v['AdBan'] ); } } #dump($arr); return $arr; } public function sendToHiltes($url,$param,$auth=false){ if($auth){ #var_export($this->hiltesApiHash); #var_export($url); #var_export($param); } $ch = curl_init($url); if($auth){ $authorization = "Authorization: Bearer ".$this->hiltesApiHash; }else{ $authorization = false; } #dump($param); # Setup request to send json via POST. $payload = json_encode( $param ); #dump($payload); curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json',$authorization)); curl_setopt( $ch, CURLOPT_POSTFIELDS, $payload ); # Return response instead of printing. curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); # Send request. $result = curl_exec($ch); curl_close($ch); return $result; } public function loginToHiltes($usr,$pass){ $url = $this->hiltesApiUrl.'/api/Authentication/authenticate'; /* { "Username": "string", "Password": "string" } */ $param = array( 'Username' => (!empty($usr) ? $usr : $this->hiltesUsr), 'Password' => (!empty($pass) ? $pass : $this->hiltesPass), # 'parse_mode' => 'html', # 'disable_notification' => $disable_notification, # 'text' => $message_text ); $r = $this->sendToHiltes($url,$param); $t = json_decode($r,true); if($t['Success']){ $this->hiltesApiHash = $t['Data']; return true; }else{ dump($r); dump('Login Error'); return false; } } public function sendOrderToHiltes($data){ $url = $this->hiltesApiUrl.'/api/WebSale/import'; /* { "Username": "string", "Password": "string" } */ $param = $data; dump($param); $r = $this->sendToHiltes($url,$param,true); $t = json_decode($r,true); if($t['Success']){ $this->hiltesApiHash = $t['Data']; }else{ dump($r); dd('Login Error'); } } }