From b49e7b9a8d3c5f2b6af43dae437dd4013c906d8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CVeLiTi=E2=80=9D?= <“info@veliti.nl”> Date: Fri, 29 Mar 2024 13:19:00 +0100 Subject: [PATCH] CIM 59 - Create Partner --- api/v1/post/equipments.php | 29 +++++++++++++++++++++++++++++ api/v1/post/partners.php | 2 +- assets/functions.php | 34 +++++++++++++++++++++++++++++++++- 3 files changed, 63 insertions(+), 2 deletions(-) diff --git a/api/v1/post/equipments.php b/api/v1/post/equipments.php index afba649..31eda8f 100644 --- a/api/v1/post/equipments.php +++ b/api/v1/post/equipments.php @@ -103,6 +103,35 @@ else { ); } } +//CHECK IF PARTNER HAS PARTNER RECORD - IF NOT CREATE AND USE +foreach ($account as $key => $value){ + if ($key != "section"){ + //CHECK for id- pattern + if (preg_match('/\-.*/',$value)){ + //Do Nothing + } + else { + //No partner ID found + switch ($key) { + case 'salesid': + $p_type = 'SalesID'; + break; + case 'soldto': + $p_type = 'SoldTo'; + break; + case 'shipto': + $p_type = 'ShipTo'; + break; + case 'location': + $p_type = 'Location'; + break; + } + //Create partner and push to array account + $account[$key] = createPartner($partner->salesid,$partner->soldto,$value,$p_type); + } + } +} +// CREATE ACCOUNTHIERARCHY JSON FROM ACCOUNT ARRAY $accounthierarchy = json_encode($account, JSON_UNESCAPED_UNICODE); //ADD STANDARD PARAMETERS TO ARRAY BASED ON INSERT OR UPDATE diff --git a/api/v1/post/partners.php b/api/v1/post/partners.php index 1e017c4..e51c16f 100644 --- a/api/v1/post/partners.php +++ b/api/v1/post/partners.php @@ -13,7 +13,7 @@ $post_content = json_decode(decode_payload($input),true); //SoldTo is empty if (empty($partner->soldto) || $partner->soldto == ''){$soldto_search = '%';} else {$soldto_search = '-%';} -//default whereclause to check if data is owned buy user +//default whereclause to check if data is owned by user $whereclause = ''; switch ($permission) { diff --git a/assets/functions.php b/assets/functions.php index 37e792b..6a048eb 100644 --- a/assets/functions.php +++ b/assets/functions.php @@ -1776,4 +1776,36 @@ header("Content-Disposition: attachment; filename=\"$fileName\""); // Render excel data echo $excelData; exit; -} \ No newline at end of file +} + +// +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// Create Partner - when not exists +// +++++++++++++++++++++++++++++++++++++++++++++++++++++++ +function createPartner($user_salesid,$user_soldto,$p_name,$p_type){ + + $p_return = ''; + + //BUILD POST DATA + $data = json_encode(array("partnerID" => '' , "salesid" => $user_salesid , "soldto" => $user_soldto, "partnername" => $p_name, "partnertype" => $p_type , "partnernotes" => 'system generated'), JSON_UNESCAPED_UNICODE); + //Secure data + $payload = generate_payload($data); + //API call + $responses = ioServer('/v1/partners', $payload); + + if ($responses === 'NOK'){ + // Do Nothing + } + else { + //GET PARTNER DATA - CALL TO API WITH PARTNERNAME + $api_url = '/v1/partners/partnername='.$p_name; + $responses = ioServer($api_url,''); + //Decode Payload + if (!empty($responses)){ + //If response received, check END of array for latest partner details + $responses = decode_payload($responses); + $partner= end($responses); + $p_return = $responses['partnerID'].'-'.$responses['partnername']; + } + } + return $p_return; + } \ No newline at end of file