# Conflicts:
#	src/Helper/Hiltes.php
This commit is contained in:
Marko
2023-09-29 10:58:09 +02:00
2 changed files with 294 additions and 25 deletions

View File

@@ -9,9 +9,14 @@ use Symfony\Component\Finder\Finder;
class Hiltes
{
// init file system
protected $fsObject;
protected $current_dir_path;
// init file system
protected $fsObject;
protected $current_dir_path;
protected $apiKey;
protected $hiltesApiHash = '';
protected $hiltesUsr = 'admin';
protected $hiltesPass = '1996';
protected $hiltesApiUrl = 'https://api.orangejungle.eu';
public function __construct()
{
@@ -49,15 +54,13 @@ class Hiltes
}
/**
* @param string $data
* @return void
*/
public function export(string $data)
{
try {
/**
* @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))
@@ -134,10 +137,164 @@ class Hiltes
'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);
public function addOrder(\App\Entity\Order $order)
{
}
}
$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');
}
}
}