diff --git a/api/v1/get/products_software.php b/api/v1/get/products_software.php index 4fc338e..eda6ee5 100644 --- a/api/v1/get/products_software.php +++ b/api/v1/get/products_software.php @@ -56,6 +56,10 @@ if(isset($get_content) && $get_content!=''){ //build up search $clause .= ' AND e.serialnumber = :'.$v[0]; } + elseif ($v[0] == 'status') { + //build up search + $clause .= ' AND ps.status = :'.$v[0]; + } else {//create clause $clause .= ' AND '.$v[0].' = :'.$v[0]; } @@ -132,7 +136,14 @@ else { } // IF PRODUCTCODE AND VERSION IS SEND ASSUME SOFTWARE REQUEST -if (!isset($criterias['productrowid']) && isset($criterias['sn']) && $criterias['sn'] != ''){ +if (!isset($criterias['productrowid']) && isset($criterias['sn']) && $criterias['sn'] != '' ){ + + //check if current version is send and update the equipment record + if(isset($criterias['version']) && $criterias['version'] !=''){ + $sql = 'UPDATE equipment SET sw_version = ? WHERE serialnumber = ? '; + $stmt = $pdo->prepare($sql); + $stmt->execute([$criterias['version'],$criterias['sn']]); + } //default output $output = array( @@ -144,31 +155,63 @@ if (!isset($criterias['productrowid']) && isset($criterias['sn']) && $criterias[ "source" => "", "source_type" => "" ); - + //CHECK IF VERSION IS LATEST $latest_check = 0; + $sw_upgrade_version = 0; + foreach ($messages as $message){ - if ($message['latest'] == 1){ + if ($message['latest'] == 1 && ($message['sw_version_upgrade']== 0 || $message['sw_version_upgrade']== '')){ + + $file_contents = 'https://'.$_SERVER['SERVER_NAME'].'/firmware'.'/'.$message['software']; + $output = array( "productcode" => $message['productcode'], "version"=> $message['version'], "mandatory"=> $message['mandatory'], "latest"=> $message['latest'], "software"=> $message['software'], - "source" => "", - "source_type" => "" + "source" => $file_contents, + "source_type" => "url" ); - $latest_check = 1; + } + //Check if sw_version_upgrade is set + if ($message['sw_version_upgrade'] > 0){ + $sw_upgrade_version = $message['sw_version_upgrade']; + } + } + + //GET PRODUCTCODE BASED ON SN WHEN NO RECORDS FOUND + if (count($messages) === 0){ + $sql = 'SELECT p.productcode, e.sw_version_upgrade FROM equipment e JOIN products p ON e.productrowid = p.rowID WHERE e.serialnumber =?'; + $stmt = $pdo->prepare($sql); + //Excute Query + $stmt->execute([$criterias['sn']]); + //Get results + $productcodes = $stmt->fetchAll(PDO::FETCH_ASSOC); + //assign serialnumber to productcode + $criterias['productcode'] = $productcodes[0]['productcode']; + $sw_upgrade_version = $productcodes[0]['sw_version_upgrade']; } if ($latest_check == 0){ //GET LATEST BASED ON PRODUCTCODE - $sql = 'SELECT * FROM products_software ps JOIN products p ON ps.productrowid = p.rowID WHERE p.productcode = ? AND ps.status = "1" AND ps.latest = "1"'; - $stmt = $pdo->prepare($sql); - //Excute Query - $stmt->execute([$criterias['productcode']]); - + if ($sw_upgrade_version > 0){ + //sw_version_upgrade set => change query + $sql = 'SELECT * FROM products_software ps JOIN products p ON ps.productrowid = p.rowID WHERE ps.rowID = ? AND ps.status = "1"'; + $stmt = $pdo->prepare($sql); + //Excute Query + $stmt->execute([$sw_upgrade_version]); + } + else { + //GET THE LATEST + $sql = 'SELECT * FROM products_software ps JOIN products p ON ps.productrowid = p.rowID WHERE p.productcode = ? AND ps.status = "1" AND ps.latest = "1"'; + $stmt = $pdo->prepare($sql); + //Excute Query + $stmt->execute([$criterias['productcode']]); + } + //Get results $messages = $stmt->fetchAll(PDO::FETCH_ASSOC); diff --git a/api/v2/get/products_software.php b/api/v2/get/products_software.php index 753b15a..fe4147b 100644 --- a/api/v2/get/products_software.php +++ b/api/v2/get/products_software.php @@ -56,6 +56,10 @@ if(isset($get_content) && $get_content!=''){ //build up search $clause .= ' AND e.serialnumber = :'.$v[0]; } + elseif ($v[0] == 'status') { + //build up search + $clause .= ' AND ps.status = :'.$v[0]; + } else {//create clause $clause .= ' AND '.$v[0].' = :'.$v[0]; } @@ -78,7 +82,7 @@ elseif (isset($criterias['list']) && $criterias['list'] =='') { } elseif (isset($criterias['sn']) && $criterias['sn'] !='') { //SQL for PRODUCT SOFTWARE DOWNLOAD API - $sql = 'SELECT p.productcode, ps.* FROM products p JOIN equipment e ON e.productrowid = p.rowID JOIN products_software ps ON p.rowID = ps.productrowid '.$whereclause.''; + $sql = 'SELECT p.productcode, ps.*, e.sw_version_upgrade FROM products p JOIN equipment e ON e.productrowid = p.rowID JOIN products_software ps ON p.rowID = ps.productrowid '.$whereclause.''; } else { //SQL for Paging @@ -133,6 +137,13 @@ else { // IF PRODUCTCODE AND VERSION IS SEND ASSUME SOFTWARE REQUEST if (!isset($criterias['productrowid']) && isset($criterias['sn']) && $criterias['sn'] != '' ){ + //check if current version is send and update the equipment record + if(isset($criterias['version']) && $criterias['version'] !=''){ + $sql = 'UPDATE equipment SET sw_version = ? WHERE serialnumber = ? '; + $stmt = $pdo->prepare($sql); + $stmt->execute([$criterias['version'],$criterias['sn']]); + } + //default output $output = array( "productcode" => "", @@ -146,9 +157,10 @@ if (!isset($criterias['productrowid']) && isset($criterias['sn']) && $criterias[ //CHECK IF VERSION IS LATEST $latest_check = 0; + $sw_upgrade_version = 0; foreach ($messages as $message){ - if ($message['latest'] == 1){ + if ($message['latest'] == 1 && ($message['sw_version_upgrade']== 0 || $message['sw_version_upgrade']== '')){ $file_contents = 'https://'.$_SERVER['SERVER_NAME'].'/firmware'.'/'.$message['software']; @@ -161,13 +173,17 @@ if (!isset($criterias['productrowid']) && isset($criterias['sn']) && $criterias[ "source" => $file_contents, "source_type" => "url" ); - $latest_check = 1; + + } + //Check if sw_version_upgrade is set + if ($message['sw_version_upgrade'] > 0){ + $sw_upgrade_version = $message['sw_version_upgrade']; } } //GET PRODUCTCODE BASED ON SN WHEN NO RECORDS FOUND if (count($messages) === 0){ - $sql = 'SELECT p.productcode FROM equipment e JOIN products p ON e.productrowid = p.rowID WHERE e.serialnumber =?'; + $sql = 'SELECT p.productcode, e.sw_version_upgrade FROM equipment e JOIN products p ON e.productrowid = p.rowID WHERE e.serialnumber =?'; $stmt = $pdo->prepare($sql); //Excute Query $stmt->execute([$criterias['sn']]); @@ -175,15 +191,26 @@ if (!isset($criterias['productrowid']) && isset($criterias['sn']) && $criterias[ $productcodes = $stmt->fetchAll(PDO::FETCH_ASSOC); //assign serialnumber to productcode $criterias['productcode'] = $productcodes[0]['productcode']; + $sw_upgrade_version = $productcodes[0]['sw_version_upgrade']; } if ($latest_check == 0){ //GET LATEST BASED ON PRODUCTCODE - $sql = 'SELECT * FROM products_software ps JOIN products p ON ps.productrowid = p.rowID WHERE p.productcode = ? AND ps.status = "1" AND ps.latest = "1"'; - $stmt = $pdo->prepare($sql); - //Excute Query - $stmt->execute([$criterias['productcode']]); - + if ($sw_upgrade_version > 0){ + //sw_version_upgrade set => change query + $sql = 'SELECT * FROM products_software ps JOIN products p ON ps.productrowid = p.rowID WHERE ps.rowID = ? AND ps.status = "1"'; + $stmt = $pdo->prepare($sql); + //Excute Query + $stmt->execute([$sw_upgrade_version]); + } + else { + //GET THE LATEST + $sql = 'SELECT * FROM products_software ps JOIN products p ON ps.productrowid = p.rowID WHERE p.productcode = ? AND ps.status = "1" AND ps.latest = "1"'; + $stmt = $pdo->prepare($sql); + //Excute Query + $stmt->execute([$criterias['productcode']]); + } + //Get results $messages = $stmt->fetchAll(PDO::FETCH_ASSOC); diff --git a/equipment.php b/equipment.php index 9abf471..88422e4 100644 --- a/equipment.php +++ b/equipment.php @@ -52,6 +52,12 @@ $equipment_data = ioServer($api_url,''); //Decode Payload if (!empty($equipment_data )){$equipment_data = decode_payload($equipment_data );}else{$equipment_data = null;} +//GET PRODUCTS_SOFTWARE +$api_url = '/v1/products_software/productrowid='.$responses->productrowid.'&status=1'; +$products_software = ioServer($api_url,''); +//Decode Payload +if (!empty($products_software)){$products_software = decode_payload($products_software);}else{$products_software = null;} + //------------------------------ //Variables //------------------------------ @@ -231,8 +237,19 @@ $view .= '
'.$equipment_label6.' '.$responses->sw_version.' - - + '; +//SHOW ONLY SW_UPGRADE WHEN SET +if (isset($products_software) && $products_software !=''){ + foreach ($products_software as $products_soft){ + if ($products_soft->rowID == $responses->sw_version_upgrade){ + $view .= ' + '.($equipment_sw_version_upgrade ?? 'sw_version_upgrade').' + '.$products_soft->version.' + '; + } + } +} +$view .= '
'; diff --git a/equipment_manage.php b/equipment_manage.php index 0d4c82b..bed7dc3 100644 --- a/equipment_manage.php +++ b/equipment_manage.php @@ -51,7 +51,6 @@ $responses = ioServer($api_url,''); //Decode Payload if (!empty($responses)){$products = decode_payload($responses);}else{$products = null;} - if (isset($_GET['equipmentID'])) { // ID param exists, edit an existing product //CALL TO API @@ -62,6 +61,12 @@ if (isset($_GET['equipmentID'])) { $equipment = json_decode(json_encode($responses[0]), true); + //GET PRODUCTS_SOFTWARE + $api_url = '/v1/products_software/productrowid='.$equipment['productrowid'].'&status=1'; + $products_software = ioServer($api_url,''); + //Decode Payload + if (!empty($products_software)){$products_software = decode_payload($products_software);}else{$products_software = null;} + //------------------------------------ //CHECK IF USER IS ALSO CREATOR OF RECORD THEN OVERRIDE UPDATE_ALLOWED //------------------------------------ @@ -158,6 +163,22 @@ foreach ($products as $product){ $product_option_list .= ' '; } + +//create products_software list +$product_software_list =''; +if (isset($products_software) && $products_software !=''){ + $product_software_list = ' + + '; +} + $view .= '
@@ -179,6 +200,7 @@ $view .= '
+ '.$product_software_list.'