Skip to content

Commit 9f8ee94

Browse files
Merge branch 'master' of gitlab.mpluskassa.nl:mpluskassa/mplus-api-client
2 parents 21d23a9 + 6684c3b commit 9f8ee94

File tree

1 file changed

+104
-45
lines changed

1 file changed

+104
-45
lines changed

Mplusqapiclient.php

Lines changed: 104 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
class MplusQAPIclient
44
{
5-
const CLIENT_VERSION = '1.28.8';
5+
const CLIENT_VERSION = '1.29.1';
66
const WSDL_TTL = 300;
77

88
var $MIN_API_VERSION_MAJOR = 0;
@@ -82,9 +82,9 @@ class MplusQAPIclient
8282
*/
8383
private $default_socket_timeout = 600;
8484

85-
const OverviewTypeEmployee = 'EMPLOYEE';
86-
const OverviewTypeProduct = 'PRODUCT';
87-
const OverviewTypeRelation = 'RELATION';
85+
const CardTypeEmployee = 'EMPLOYEE';
86+
const CardTypeProduct = 'PRODUCT';
87+
const CardTypeRelation = 'RELATION';
8888

8989
private $returnRawResult = false;
9090

@@ -3823,32 +3823,32 @@ public function getSalePromotions($branchNumbers = [], $attempts=0)
38233823
}
38243824
} // END getSalePromotions()
38253825

3826-
private function validateOverviewType($overviewType) {
3827-
$overviewAllowedTypes = [
3828-
self::OverviewTypeEmployee,
3829-
self::OverviewTypeProduct,
3830-
self::OverviewTypeRelation,
3826+
protected function validateCardType($cardType) {
3827+
$cardAllowedTypes = [
3828+
self::CardTypeEmployee,
3829+
self::CardTypeProduct,
3830+
self::CardTypeRelation,
38313831
];
3832-
if (!in_array($overviewType, $overviewAllowedTypes)) {
3833-
throw new Exception('OverviewType should be one of those : ' . implode(', ', $overviewAllowedTypes));
3832+
if (!in_array($cardType, $cardAllowedTypes)) {
3833+
throw new Exception('CardType should be one of those : ' . implode(', ', $cardAllowedTypes));
38343834
}
38353835
}
38363836

38373837
//----------------------------------------------------------------------------
3838-
public function getOverview($overviewType, $selectFields, $pageNumber = null, $maxPerPage = null, $orderField = null, $sortOrder = null, $filters = null, $search = null, $attempts = 0) {
3838+
public function getOverview($cardType, $categoryId = 0, $selectFields, $pageNumber = null, $maxPerPage = null, $orderField = null, $sortOrder = null, $filters = null, $search = null, $attempts = 0) {
38393839
try {
3840-
$this->validateOverviewType($overviewType);
3841-
$request = $this->parser->convertGetOverviewRequest($overviewType, $selectFields, $pageNumber, $maxPerPage, $orderField, $sortOrder, $filters, $search);
3840+
$this->validateCardType($cardType);
3841+
$request = $this->parser->convertGetOverviewRequest($cardType, $categoryId, $selectFields, $pageNumber, $maxPerPage, $orderField, $sortOrder, $filters, $search);
38423842
$result = $this->client->getOverview($request);
3843-
if($this->returnRawResult) {
3843+
if ($this->returnRawResult) {
38443844
return $result;
38453845
}
38463846
return $this->parser->parseGetOverviewResult($result);
38473847
} catch (SoapFault $e) {
38483848
$msg = $e->getMessage();
38493849
if (false !== stripos($msg, 'Could not connect to host') and $attempts < 3) {
38503850
sleep(1);
3851-
return $this->getOverview($overviewType, $selectFields, $pageNumber, $maxPerPage, $orderField, $sortOrder, $filters, $search, $attempts + 1);
3851+
return $this->getOverview($cardType, $categoryId, $selectFields, $pageNumber, $maxPerPage, $orderField, $sortOrder, $filters, $search, $attempts + 1);
38523852
} else {
38533853
throw new MplusQAPIException('SoapFault occurred: ' . $msg, 0, $e);
38543854
}
@@ -3859,20 +3859,20 @@ public function getOverview($overviewType, $selectFields, $pageNumber = null, $m
38593859

38603860
// END getOverview()
38613861
//----------------------------------------------------------------------------
3862-
public function getOverviewFields($overviewType, $attempts = 0) {
3862+
public function getOverviewFields($cardType, $categoryId = 0, $attempts = 0) {
38633863
try {
3864-
$this->validateOverviewType($overviewType);
3865-
$request = $this->parser->convertGetOverviewFieldsRequest($overviewType);
3864+
$this->validateCardType($cardType);
3865+
$request = $this->parser->convertGetOverviewFieldsRequest($cardType, $categoryId);
38663866
$result = $this->client->getOverviewFields($request);
3867-
if($this->returnRawResult) {
3867+
if ($this->returnRawResult) {
38683868
return $result;
38693869
}
38703870
return $this->parser->parseGetOverviewFieldsResult($result);
38713871
} catch (SoapFault $e) {
38723872
$msg = $e->getMessage();
38733873
if (false !== stripos($msg, 'Could not connect to host') and $attempts < 3) {
38743874
sleep(1);
3875-
return $this->getOverviewFields($overviewType, $attempts + 1);
3875+
return $this->getOverviewFields($cardType, $categoryId, $attempts + 1);
38763876
} else {
38773877
throw new MplusQAPIException('SoapFault occurred: ' . $msg, 0, $e);
38783878
}
@@ -3883,6 +3883,30 @@ public function getOverviewFields($overviewType, $attempts = 0) {
38833883

38843884
// END getOverviewFields()
38853885

3886+
//----------------------------------------------------------------------------
3887+
public function updateBatch($cardType, $categoryId = 0, $numbers, $fields, $attempts = 0) {
3888+
try {
3889+
$this->validateCardType($cardType);
3890+
$request = $this->parser->convertUpdateBatchRequest($cardType, $categoryId, $numbers, $fields);
3891+
$result = $this->client->updateBatch($request);
3892+
if ($this->returnRawResult) {
3893+
return $result;
3894+
}
3895+
return $this->parser->parseUpdateBatchResult($result);
3896+
} catch (SoapFault $e) {
3897+
$msg = $e->getMessage();
3898+
if (false !== stripos($msg, 'Could not connect to host') and $attempts < 3) {
3899+
sleep(1);
3900+
return $this->updateBatch($cardType, $categoryId, $numbers, $fields, $attempts + 1);
3901+
} else {
3902+
throw new MplusQAPIException('SoapFault occurred: ' . $msg, 0, $e);
3903+
}
3904+
} catch (Exception $e) {
3905+
throw new MplusQAPIException('Exception occurred: ' . $e->getMessage(), 0, $e);
3906+
}
3907+
}
3908+
3909+
// END updateBatch()
38863910

38873911
//----------------------------------------------------------------------------
38883912
public function checkGiftcardPayment($cardNumber, $branchNumber, $amount = null, $attempts = 0) {
@@ -4248,7 +4272,18 @@ public function getLastErrorMessage()
42484272
} // END getLastErrorMessage()
42494273

42504274
//----------------------------------------------------------------------------
4275+
4276+
private function filterList(&$soapResult, $listName, $dataName) {
4277+
if (is_object($soapResult)) {
4278+
if (isset($soapResult->$listName) && isset($soapResult->$listName->$dataName)) {
4279+
$soapResult->$listName = $soapResult->$listName->$dataName;
4280+
} else {
4281+
$soapResult->$listName = [];
4282+
}
4283+
}
4284+
} // END filterList()
42514285

4286+
//----------------------------------------------------------------------------
42524287
public function parseApiVersion($soapApiVersion)
42534288
{
42544289
$apiVersion = false;
@@ -4815,6 +4850,9 @@ public function parseEmployees($soapEmployees)
48154850
if (isset($employee['createTimestamp'])) {
48164851
$employee['createTimestamp'] = $this->parseMplusDateTime($employee['createTimestamp']);
48174852
}
4853+
if (isset($employee['customFieldList']['customField'])) {
4854+
$employee['customFieldList'] = $employee['customFieldList']['customField'];
4855+
}
48184856
$employees[$idx] = $employee;
48194857
}
48204858
}
@@ -6698,28 +6736,28 @@ public function parseGetSalePromotionsResult($soapGetSalePromotionsResult) {
66986736
} // END parseGetSalePromotionsResult()
66996737

67006738
//----------------------------------------------------------------------------
6701-
public function parseGetOverviewFieldsResult($soapGetOverviewFieldsResult) {
6702-
$overviewFields = array();
6703-
6704-
if (isset($soapGetOverviewFieldsResult->overviewFieldsList->overviewFields)) {
6705-
$overviewFields = objectToArray($soapGetOverviewFieldsResult->overviewFieldsList->overviewFields);
6739+
public function parseGetOverviewFieldsResult($soapResult) {
6740+
$this->filterList($soapResult, "overviewFieldsList", "overviewFields");
6741+
$this->filterList($soapResult, "errorList", "errors");
6742+
return $soapResult;
67066743
}
6707-
return $overviewFields;
6708-
} // END parseGetOverviewFieldsResult()
6709-
6710-
//----------------------------------------------------------------------------
6711-
public function parseGetOverviewResult($soapOverviewResult) {
6712-
$overview = array();
6713-
if (isset($soapOverviewResult->overview)) {
6714-
$overview = objectToArray($soapOverviewResult->overview);
6715-
}
6716-
if (isset($soapOverviewResult->overviewList->overview)) {
6717-
$overview['overviewList'] = objectToArray($soapOverviewResult->overviewList->overview);
6718-
}
6719-
return $overview;
6744+
6745+
// END parseGetOverviewFieldsResult()
6746+
//----------------------------------------------------------------------------
6747+
public function parseGetOverviewResult($soapResult) {
6748+
$this->filterList($soapResult, "overviewList", "overview");
6749+
$this->filterList($soapResult, "errorList", "errors");
6750+
return $soapResult;
67206751
}
67216752

67226753
// END parseGetOverviewResult()
6754+
//----------------------------------------------------------------------------
6755+
public function parseUpdateBatchResult($soapResult) {
6756+
$this->filterList($soapResult, "errorList", "errors");
6757+
return $soapResult;
6758+
}
6759+
6760+
// END parseUpdateBatchResult()
67236761

67246762
//----------------------------------------------------------------------------
67256763
public function parseCheckGiftcardPaymentResult($soapCheckGiftcardPaymentResult) {
@@ -9194,12 +9232,16 @@ public function convertGetSalePromotionsRequest($branchNumbers)
91949232
} // END convertGetSalePromotionsRequest()
91959233

91969234
//----------------------------------------------------------------------------
9197-
public function convertGetOverviewRequest($overviewType, $selectFieldList, $pageNumber, $maxPerPage, $orderField, $sortOrder, $filters, $search) {
9235+
public function convertGetOverviewRequest($cardType, $categoryId, $selectFieldList, $pageNumber, $maxPerPage, $orderField, $sortOrder, $filters, $search) {
91989236
$request = new stdClass();
91999237
$request->request = new stdClass();
92009238

9201-
if (isset($overviewType)) {
9202-
$request->request->overviewType = $overviewType;
9239+
if (isset($categoryId)) {
9240+
$request->request->categoryId = $categoryId;
9241+
}
9242+
9243+
if (isset($cardType)) {
9244+
$request->request->cardType = $cardType;
92039245
}
92049246

92059247
if (!is_array($selectFieldList)) {
@@ -9233,17 +9275,34 @@ public function convertGetOverviewRequest($overviewType, $selectFieldList, $page
92339275
// END convertGetOverviewRequest()
92349276

92359277
//----------------------------------------------------------------------------
9236-
public function convertGetOverviewFieldsRequest($overviewType) {
9278+
public function convertGetOverviewFieldsRequest($cardType, $categoryId = 0) {
92379279
$request = new stdClass();
92389280
$request->request = new stdClass();
9239-
if (isset($overviewType)) {
9240-
$request->request->overviewType = $overviewType;
9281+
$request->request->cardType = $cardType;
9282+
if (isset($categoryId)) {
9283+
$request->request->categoryId = $categoryId;
92419284
}
92429285
return $request;
92439286
}
92449287

92459288
// END convertGetOverviewFieldsRequest()
92469289

9290+
//----------------------------------------------------------------------------
9291+
public function convertUpdateBatchRequest($cardType, $categoryId, $numbers, $fields) {
9292+
$request = new stdClass();
9293+
$request->request = new stdClass();
9294+
$request->request->cardType = $cardType;
9295+
$request->request->categoryId = $categoryId;
9296+
if (!is_array($numbers)) {
9297+
$numbers = array($numbers);
9298+
}
9299+
$request->request->numbers = $numbers;
9300+
$request->request->fieldList = $fields;
9301+
return $request;
9302+
}
9303+
9304+
// END convertUpdateBatchRequest()
9305+
92479306
public function parseMplusDate($mplus_date)
92489307
{
92499308
if ($mplus_date['day'] == 0 || $mplus_date['mon'] == 0 || $mplus_date['year'] == 0) {

0 commit comments

Comments
 (0)