22
33class 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