10 $monLibrary= dirname(__FILE__) .
"/../library";
11 $sharedLibrary= dirname(__FILE__) .
"/../../shared/library";
12 require_once(
"$monLibrary/cu_top.i");
13 require_once(
"$monLibrary/ck_hticket.i");
14 require_once(
"$sharedLibrary/cutrusted.i");
15 require_once(
"$sharedLibrary/commonPhpFunctions.i");
18 if (!CheckPerm($link, $Hu,
"cutrustdetail", $_SERVER[
'REMOTE_ADDR'])) {
21 header(
"Location: /hcuadm/hcu_noperm.prg");
27 dms_import_v2($DATA_PARAMETERS,
"TOP_LEVEL", array(
"operation" =>
"string"));
28 $operation= $DATA_PARAMETERS[
"TOP_LEVEL"][
"operation"];
32 case "readTrustedVendors":
33 $returnArray= readTrustedVendorsDetails($dbh);
35 case "createTrustedId":
36 $returnArray= createTrustedIdDetails($dbh);
38 case "removeTrustedId":
39 $returnArray= removeTrustedIdDetails($dbh);
41 case "addTrustedDetail":
42 $returnArray= changeTrustedDetailDetails($dbh,
"add");
44 case "updateTrustedDetail":
45 $returnArray= changeTrustedDetailDetails($dbh,
"update");
47 case "removeTrustedDetail":
48 $returnArray= changeTrustedDetailDetails($dbh,
"delete");
50 case "addServerSetting":
51 $returnArray= changeServiceProperty($dbh,
"add");
53 case "updateServerSetting":
54 $returnArray= changeServiceProperty($dbh,
"update");
56 case "removeServerSetting":
57 $returnArray= changeServiceProperty($dbh,
"delete");
59 case "readServerSettings":
60 $returnArray= readServerSettings($dbh);
63 $returnArray= serviceUpdate($dbh);
65 case "pullDownOptions":
66 $returnArray= pullDownOptions($dbh);
68 case "reorderProperties":
69 $returnArray= reorderProperties($dbh);
71 default: $returnArray= array(
"sql" => array(),
"error" => array(
"Operation not specified: '$operation'"),
"record" =>
"",
"operation" =>
"");
75 unset($returnArray[
"sql"]);
76 header(
'Content-type: application/json');
77 print json_encode($returnArray);
84 function getServerOptions()
86 return array(
"N" =>
"Active",
"U" =>
"Offline (Auto Up)",
"Y" =>
"Offline (Stay Down)");
94 function getServiceUpdateOptions()
96 return array(array(
"text" =>
"Turn On",
"value" =>
"Y"), array(
"text" =>
"Turn Off",
"value" =>
"N"));
107 function extractDetails($records, $cu)
109 $masterKey = sha1(
"${cu}:3pk4osso");
110 $extractedRecords= array();
112 foreach($records as $record)
116 $detailsDecoded= array();
118 if ($record[
"detailsEncoded"] !=
"")
120 $detailsDecrypted= parmdecrypt($record[
"detailsEncoded"], $masterKey);
121 $detailsDecoded= json_decode($detailsDecrypted,
true);
124 $record[
"detailsDecoded"]= $detailsDecoded;
125 unset($record[
"detailsEncoded"]);
126 $extractedRecords[]= $record;
128 return $extractedRecords;
143 function getDetailsForGrid($almostExpandedRecords, $trustedIdDetailDDL, $masterDetailLength= array(), &$warnings)
145 $expandedRecords= array();
151 foreach ($almostExpandedRecords as $record)
155 $detailDDL= $trustedIdDetailDDL[$record[
"trustedId"]];
156 $detailsDecoded= $record[
"detailsDecoded"];
157 $record[
"hasMasterRecord"]= isset($detailDDL);
158 if (is_array($detailsDecoded))
161 foreach($detailsDecoded as $key => $value)
163 $fieldType= isset($detailDDL[$key][
"fieldType"]) ? $detailDDL[$key][
"fieldType"] :
"string";
164 $message= isset($detailDDL[$key][
"message"]) ? $detailDDL[$key][
"message"] :
"";
165 $value= stripslashes($value);
166 $message= stripslashes($message);
168 $details[]= array(
"property" => $key,
"value" => $value,
"fieldType" => $fieldType,
"hasMasterRecord" => $record[
"hasMasterRecord"],
"message" => $message,
169 "trustedId" => $record[
"trustedId"],
"displayOrder" => $displayOrder,
"pid" => $displayOrder + 1);
173 else if ($detailsDecoded !=
"")
175 $trustedId= $record[
"trustedId"];
176 $warnings[]=
"TrustedId's details are not encoded correctly: $trustedId";
179 unset($record[
"detailsDecoded"]);
180 $record[
"masterDetailLength"]= isset($masterDetailLength[$record[
"trustedId"]]) ? $masterDetailLength[$record[
"trustedId"]] : 0;
181 $expandedRecords[]= $record;
183 return array(
"topRecords" => $expandedRecords,
"detailRecords" => $details);
194 function encryptDetails($detailRecords, $cu)
196 $masterKey = sha1(
"${cu}:3pk4osso");
198 if (is_array($detailRecords) && count($detailRecords) > 0)
199 return parmencrypt(json_encode($detailRecords), $masterKey);
210 function readTrustedVendorsDetails($dbh)
212 $parameters= array();
213 dms_import_v2($parameters,
"BOTTOM_LEVEL", array(
"cu" =>
"string"));
216 $errors= cleanValuesForDatabase($parameters[
"BOTTOM_LEVEL"],
217 array(
"cu" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 12)));
218 $cu= strtoupper($parameters[
"BOTTOM_LEVEL"][
"cu"]);
220 $sql=
"select td.trustedid, td.parms from cutrusteddetail td where upper(td.cu) = '$cu' order by td.trustedid";
221 $queryResults= runSelectStatement($sql, $dbh, array(
"trustedid" =>
"trustedId",
"parms" =>
"detailsEncoded"));
222 $errors= array_merge($errors, $queryResults[
"error"]);
225 $almostExpandedRecords= extractDetails($queryResults[
"record"], $cu);
227 $masterSQL=
"select tm.trustedid, tm.trustedfields from cutrustedmaster tm order by tm.trustedid, tm.trustedvendor";
228 $queryResults= runSelectStatement($masterSQL, $dbh, array(
"trustedid" =>
"trustedId",
"trustedfields" =>
"masterFields"));
230 $errors= array_merge($errors, $queryResults[
"error"]);
232 $trustedIdDetailDDL= array();
233 $masterDetailLength= array();
234 foreach($queryResults[
"record"] as $record)
236 $details= json_decode($record[
"masterFields"],
true);
238 $trustedId= $record[
"trustedId"];
240 if (is_array($details))
242 foreach($details as $key => $detailRow)
244 $detail= array(
"fieldType" =>
"string",
"defaultValue" =>
"");
245 if (is_array($detailRow))
247 foreach($detailRow as $lowerKey => $value)
249 if ($lowerKey ==
"Type")
250 $detail[
"fieldType"]= $value;
251 else if ($lowerKey ==
"Default")
252 $detail[
"defaultValue"]= stripslashes($value);
253 else if ($lowerKey ==
"Message")
254 $detail[
"message"]= stripslashes($value);
257 $detailDDL[stripslashes($key)]= $detail;
259 $masterDetailLength[$trustedId]= count($details);
261 else if ($record[
"masterFields"] !=
"")
263 $trustedId= $record[
"trustedId"];
264 $warnings[]=
"TrustedId master's details are not encoded correctly: $trustedId";
266 $masterDetailLength[$trustedId]= 0;
269 $trustedIdDetailDDL[$trustedId]= $detailDDL;
272 $expandedRecords= getDetailsForGrid($almostExpandedRecords, $trustedIdDetailDDL, $masterDetailLength, $warnings);
274 return array(
"sql" => array($sql, $masterSQL),
"error" => $errors,
"topRecords" => $expandedRecords[
"topRecords"],
"detailRecords" => $expandedRecords[
"detailRecords"],
275 "trustedIdDetailDDL" => $trustedIdDetailDDL,
"operation" =>
"read",
"warning" => $warnings);
290 function readServerSettings($dbh)
292 $parameters= array();
293 dms_import_v2($parameters,
"BOTTOM_LEVEL", array(
"initializeDDLs" =>
"string"));
296 $errors= cleanValuesForDatabase($parameters[
"BOTTOM_LEVEL"],
297 array(
"initializeDDLs" => array(
"type" =>
"boolean",
"required" =>
false)));
298 $initializeDDLs= $parameters[
"BOTTOM_LEVEL"][
"initializeDDLs"] ==
"Y";
300 $sql=
"select td.trustedid, td.parms, tm.trustedfields, tm.trustedid as master_id from cutrusteddetail td left join cutrustedmaster tm on td.trustedid= tm.trustedid " .
301 "where upper(td.cu) = 'HOMECU' and td.trustedid= 'HOMECUSERVICE' and upper(tm.trustedvendor) = 'HOMECU' order by td.trustedid";
302 $queryResults= runSelectStatement($sql, $dbh, array(
"trustedid" =>
"trustedId",
"parms" =>
"detailsEncoded",
"trustedfields" =>
"masterDetailsEncoded",
"master_id" =>
"masterId"));
303 $errors= $queryResults[
"error"];
306 $almostExpandedRecords= extractDetails($queryResults[
"record"],
"HOMECU");
308 $returnArray= array(
"error" => $errors,
"sql" => array($sql),
"record" => array(),
"defaultsDDL" => array(),
"hasMasterRecord" =>
false,
"operation" =>
"read");
309 $serverOptions= getServerOptions();
314 $serverOptionsDDL= array();
315 $serviceUpdateOptions= getServiceUpdateOptions();
316 foreach($serverOptions as $key => $value)
318 $serverOptionsDDL[]= array(
"value" => $key,
"text" => $value);
320 $returnArray[
"serviceUpdateOptions"]= $serviceUpdateOptions;
321 $returnArray[
"serverOptions"]= $serverOptionsDDL;
323 foreach($queryResults[
"record"] as $record)
327 $masterDetails= array();
328 $masterMessages= array();
329 $detailsDecoded= $almostExpandedRecords[0][
"detailsDecoded"];
330 if (is_array($detailsDecoded))
332 foreach($detailsDecoded as $key => $value)
334 $pos= stripos($key,
"_MSG");
337 if ($pos !==
false && $len - $pos == 4)
338 $messages[stripslashes(substr($key, 0, $pos))]= stripslashes($value);
340 $details[]= array(
"property" => $key,
"value" => stripslashes($value));
344 $returnArray[
"hasMasterRecord"]= $record[
"masterId"] !=
"";
346 for($i=0, $count=count($details); $i != $count; $i++)
348 $key= $details[$i][
"property"];
349 $value= $details[$i][
"value"];
350 $details[$i][
"message"]= strval($messages[$key]);
351 $details[$i][
"text"]= isset($serverOptions[$value]) ? $serverOptions[$value] : $value;
353 $returnArray[
"record"]= $details;
357 $masterDetailsDecoded= json_decode($record[
"masterDetailsEncoded"],
true);
358 if (is_array($masterDetailsDecoded))
360 foreach($masterDetailsDecoded as $key => $value)
362 $pos= stripos($key,
"_MSG");
363 if ($pos !==
false && strlen($key) - $pos == 4)
364 $masterMessages[stripslashes(substr($key, 0, $pos))]= stripslashes($value[
"Default"]);
366 $masterDetails[]= array(
"property" => stripslashes($key),
"defaultValue" => stripslashes($value[
"Default"]));
369 for($i=0, $count=count($masterDetails); $i != $count; $i++)
371 $key= $masterDetails[$i][
"property"];
372 $masterDetails[$i][
"defaultMessage"]= strval($masterMessages[$key]);
375 $returnArray[
"defaultsDDL"]= $masterDetails;
394 function createTrustedIdDetails($dbh)
396 $parameters= array();
398 dms_import_v2($parameters,
"BOTTOM_LEVEL", array(
"trustedId" =>
"string",
"cu" =>
"string",
"masterDetails" =>
"string"));
399 $trustedId= trim($parameters[
"BOTTOM_LEVEL"][
"trustedId"]);
400 $cu= trim($parameters[
"BOTTOM_LEVEL"][
"cu"]);
401 $masterDetails= trim($parameters[
"BOTTOM_LEVEL"][
"masterDetails"]);
403 $newBottomRecords= array();
406 if ($trustedId ==
"")
407 throw new exception(
"TrustedId is required!", 1);
408 if (strlen($trustedId) > 20)
409 throw new exception(
"TrustedId is too long!", 2);
411 throw new exception(
"Cu is required!", 3);
412 if (strlen($cu) > 12)
413 throw new exception(
"Cu is too long!", 4);
414 if ($masterDetails ==
"")
415 throw new exception(
"Master details are required!", 5);
416 $masterDetails= json_decode($masterDetails,
true);
417 if (!is_array($masterDetails))
418 throw new exception(
"Master details are malformed!", 6);
420 foreach($masterDetails as $key => $record)
422 $property= stripslashes($key);
423 $value= stripslashes(strval($record[
"defaultValue"]));
424 $message= stripslashes(strval($record[
"message"]));
425 $expandedDetails[$property]= $value;
426 $fieldType= isset($record[
"fieldType"]) ? $record[
"fieldType"] :
"string";
427 $newBottomRecords[]= array(
"property" => $property,
"fieldType" => $fieldType,
"value" => $value,
"message" => $message,
"hasMasterRecord" =>
true,
"trustedId" => $trustedId);
429 $encryptedDetails= encryptDetails($expandedDetails, $cu);
431 $sql=
"insert into cutrusteddetail (cu, trustedid, parms) values ('" . prep_save($cu, 12) .
"', '" . prep_save($trustedId, 20) .
"', '" . prep_save($encryptedDetails) .
"')";
433 $sth= db_query($sql, $dbh);
435 throw new exception(
"Insert query failed!", 7);
436 $record= array(
"trustedId" => $trustedId,
"hasMasterRecord" =>
true,
"masterDetailLength" => count($newBottomRecords));
440 return array(
"record" => array(),
"error" => array($e->getMessage()),
"sql" => $sqls,
"operation" =>
"add",
"trustedId" => $trustedId,
"bottomRecords" => array());
442 return array(
"record" => $record,
"error" => array(),
"sql" => $sqls,
"operation" =>
"add",
"trustedId" => $trustedId,
"bottomRecords" => $newBottomRecords);
455 function removeTrustedIdDetails($dbh)
457 $parameters= array();
458 dms_import_v2($parameters,
"BOTTOM_LEVEL", array(
"trustedId" =>
"string",
"cu" =>
"string"));
460 $errors= cleanValuesForDatabase($parameters[
"BOTTOM_LEVEL"],
461 array(
"trustedId" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 20),
462 "cu" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 12)));
463 $trustedId= $parameters[
"BOTTOM_LEVEL"][
"trustedId"];
464 $cu= $parameters[
"BOTTOM_LEVEL"][
"cu"];
466 $sql=
"delete from cutrusteddetail where cu= '$cu' and trustedid= '$trustedId'";
467 $queryResults= runExecStatement($sql, $dbh);
468 $errors= array_merge($errors, $queryResults[
"error"]);
470 return array(
"error" => $errors,
"sql" => array($sql),
"operation" =>
"delete");
485 function changeTrustedDetailDetails($dbh, $mode)
487 $parameters= array();
489 $valid= array(
"trustedId" =>
"string",
"property" =>
"string",
"cu" =>
"string");
490 if ($mode !=
"delete")
492 $valid[
"value"]=
"string";
493 $valid[
"fieldType"]=
"string";
494 $valid[
"message"]=
"string";
496 dms_import_v2($parameters,
"BOTTOM_LEVEL", $valid);
498 $errors= cleanValuesForDatabase($parameters[
"BOTTOM_LEVEL"],
499 array(
"trustedId" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 20),
500 "cu" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 12)));
501 $trustedId= $parameters[
"BOTTOM_LEVEL"][
"trustedId"];
502 $property= trim($parameters[
"BOTTOM_LEVEL"][
"property"]);
503 $value= trim($parameters[
"BOTTOM_LEVEL"][
"value"]);
504 $cu= $parameters[
"BOTTOM_LEVEL"][
"cu"];
505 $fieldType= trim($parameters[
"BOTTOM_LEVEL"][
"fieldType"]);
506 $message= trim($parameters[
"BOTTOM_LEVEL"][
"message"]);
509 $errors[]=
"Property is required";
511 $retrievalSQL=
"select parms from cutrusteddetail where trustedid= '$trustedId' and cu= '$cu'";
512 $queryResults= runSelectStatement($retrievalSQL, $dbh, array(
"parms" =>
"detailsEncoded"));
513 $errors= array_merge($errors, $queryResults[
"error"]);
514 $sqls= array($retrievalSQL);
516 $detailArray= array();
518 if (count($errors) == 0)
520 $expandedRecords= extractDetails($queryResults[
"record"], $cu, $errors);
521 if ($expandedRecords ==
"" || count($expandedRecords) == 0)
522 $expandedDetails= array();
524 $expandedDetails= $expandedRecords[0][
"detailsDecoded"];
526 if ($mode ==
"delete")
527 unset($expandedDetails[$property]);
529 $expandedDetails[$property]= $value;
531 $encrypedDetails= encryptDetails($expandedDetails, $cu);
532 $returnRecord= array(array(
"property" => $property,
"value" => $value,
"fieldType" => $fieldType,
"message" => $message,
"hasMasterRecord" =>
true,
"trustedId" => $trustedId));
534 $updateSQL=
"update cutrusteddetail set parms= '$encrypedDetails' where trustedid= '$trustedId' and cu= '$cu'";
535 $queryResults= runExecStatement($updateSQL, $dbh);
536 $errors= array_merge($errors, $queryResults[
"error"]);
539 return array(
"sql" => $sqls,
"error" => $errors,
"operation" => $mode,
"record" => $returnRecord);
553 function reorderProperties($dbh)
555 $parameters= array();
557 dms_import_v2($parameters,
"BOTTOM_LEVEL", array(
"trustedId" =>
"string",
"property" =>
"string",
"cu" =>
"string",
"position" =>
"string"));
559 $errors= cleanValuesForDatabase($parameters[
"BOTTOM_LEVEL"],
560 array(
"trustedId" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 20),
561 "cu" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 12),
562 "position" => array(
"type" =>
"int",
"required" =>
true)));
563 $trustedId= $parameters[
"BOTTOM_LEVEL"][
"trustedId"];
564 $property= trim($parameters[
"BOTTOM_LEVEL"][
"property"]);
565 $cu= $parameters[
"BOTTOM_LEVEL"][
"cu"];
566 $position= $parameters[
"BOTTOM_LEVEL"][
"position"];
569 $errors[]=
"Property is required";
571 $retrievalSQL=
"select parms from cutrusteddetail where trustedid= '$trustedId' and cu= '$cu'";
572 $queryResults= runSelectStatement($retrievalSQL, $dbh, array(
"parms" =>
"detailsEncoded"));
573 $errors= array_merge($errors, $queryResults[
"error"]);
574 $sqls= array($retrievalSQL);
576 $detailArray= array();
578 if (count($errors) == 0)
580 $expandedRecords= extractDetails($queryResults[
"record"], $cu, $errors);
581 if ($expandedRecords ==
"" || count($expandedRecords) == 0)
582 $expandedDetails= array();
584 $expandedDetails= $expandedRecords[0][
"detailsDecoded"];
586 $newExpandedDetails= array();
588 foreach($expandedDetails as $key => $value)
590 if ($index == $position)
591 $newExpandedDetails[$property]= $expandedDetails[$property];
592 if ($key != $property)
593 $newExpandedDetails[$key]= $value;
597 if ($index >= count($expandedDetails))
598 $newExpandedDetails[$property]= $expandedDetails[$property];
600 $encrypedDetails= encryptDetails($newExpandedDetails, $cu);
602 $masterSQL=
"select tm.trustedid, tm.trustedfields from cutrustedmaster tm where tm.trustedid = '$trustedId' order by tm.trustedid, tm.trustedvendor";
603 $queryResults= runSelectStatement($masterSQL, $dbh, array(
"trustedid" =>
"trustedId",
"trustedfields" =>
"masterFields"));
604 $errors= array_merge($errors, $queryResults[
"error"]);
606 $trustedIdDetailDDL= array();
607 $masterDetailLength= array();
608 foreach($queryResults[
"record"] as $record)
610 $details= json_decode($record[
"masterFields"],
true);
612 $trustedId= $record[
"trustedId"];
614 if (is_array($details))
616 foreach($details as $key => $detailRow)
618 $detail= array(
"fieldType" =>
"string",
"defaultValue" =>
"");
619 if (is_array($detailRow))
621 foreach($detailRow as $lowerKey => $value)
623 if ($lowerKey ==
"Type")
624 $detail[
"fieldType"]= $value;
625 else if ($lowerKey ==
"Default")
626 $detail[
"defaultValue"]= stripslashes($value);
627 else if ($lowerKey ==
"Message")
628 $detail[
"message"]= stripslashes($value);
631 $detailDDL[stripslashes($key)]= $detail;
633 $masterDetailLength[$trustedId]= count($details);
635 else if ($record[
"masterFields"] !=
"")
637 $trustedId= $record[
"trustedId"];
638 $warnings[]=
"TrustedId master's details are not encoded correctly: $trustedId";
640 $masterDetailLength[$trustedId]= 0;
643 $trustedIdDetailDDL[$trustedId]= $detailDDL;
647 $expandedRecords= getDetailsForGrid(array(array(
"trustedId" => $trustedId,
"detailsDecoded" => $newExpandedDetails)), $trustedIdDetailDDL, $masterDetailLength, $warnings);
649 $returnRecord= $expandedRecords[
"detailRecords"];
651 $updateSQL=
"update cutrusteddetail set parms= '$encrypedDetails' where trustedid= '$trustedId' and cu= '$cu'";
652 $queryResults= runExecStatement($updateSQL, $dbh);
653 $errors= array_merge($errors, $queryResults[
"error"]);
656 return array(
"sql" => $sqls,
"error" => $errors,
"operation" => $mode,
"record" => $returnRecord);
671 function changeServiceProperty($dbh, $mode)
673 $parameters= array();
675 $valid= array(
"property" =>
"string");
676 if ($mode !=
"delete")
678 $valid[
"value"]=
"string";
679 $valid[
"message"]=
"string";
681 dms_import_v2($parameters,
"BOTTOM_LEVEL", $valid);
683 $property= trim($parameters[
"BOTTOM_LEVEL"][
"property"]);
684 $value= trim($parameters[
"BOTTOM_LEVEL"][
"value"]);
685 $message= trim($parameters[
"BOTTOM_LEVEL"][
"message"]);
689 $errors[]=
"Property is required";
691 $serverOptions= getServerOptions();
694 $trustedId=
"HOMECUSERVICE";
696 $retrievalSQL=
"select trustedid, parms from cutrusteddetail where trustedid= '$trustedId' and cu= '$cu'";
697 $queryResults= runSelectStatement($retrievalSQL, $dbh, array(
"trustedid" =>
"validId",
"parms" =>
"detailsEncoded"));
698 $errors= array_merge($errors, $queryResults[
"error"]);
699 $sqls= array($retrievalSQL);
701 $detailArray= array();
703 if (count($errors) == 0)
705 $expandedRecords= extractDetails($queryResults[
"record"], $cu, $errors);
706 if ($expandedRecords ==
"" || count($expandedRecords) == 0)
707 $expandedDetails= array();
709 $expandedDetails= $expandedRecords[0][
"detailsDecoded"];
711 if ($mode ==
"delete")
713 unset($expandedDetails[$property]);
714 unset($expandedDetails[
"${property}_MSG"]);
718 $expandedDetails[$property]= $value;
721 $expandedDetails[$property .
"_MSG"]= $message;
723 unset($expandedDetails[$property .
"_MSG"]);
726 $encrypedDetails= encryptDetails($expandedDetails, $cu);
728 $returnRecord= array(array(
"property" => $property,
"value" => $value,
"message" => $message,
"text" => $serverOptions[$value],
"hasMasterRecord" =>
true,
"trustedId" => $trustedId));
730 $updateSQL=
"update cutrusteddetail set parms= '$encrypedDetails' where trustedid= '$trustedId' and cu= '$cu'";
731 $queryResults= runExecStatement($updateSQL, $dbh);
732 $errors= array_merge($errors, $queryResults[
"error"]);
735 return array(
"sql" => $sqls,
"error" => $errors,
"operation" => $mode,
"record" => $returnRecord);
762 function serviceUpdate($dbh)
764 $parameters= array();
765 dms_import_v2($parameters,
"BOTTOM_LEVEL", array(
"isTurnOff" =>
"string"));
766 $errors= cleanValuesForDatabase($parameters[
"BOTTOM_LEVEL"],
767 array(
"isTurnOff" => array(
"type" =>
"boolean",
"required" =>
true)));
769 $isTurnOff= $parameters[
"BOTTOM_LEVEL"][
"isTurnOff"] ==
"Y";
772 $trustedId=
"HOMECUSERVICE";
774 $retrievalSQL=
"select trustedid, parms from cutrusteddetail where trustedid= '$trustedId' and cu= '$cu'";
775 $queryResults= runSelectStatement($retrievalSQL, $dbh, array(
"trustedid" =>
"validId",
"parms" =>
"detailsEncoded"));
776 $errors= array_merge($errors, $queryResults[
"error"]);
777 $sqls= array($retrievalSQL);
779 $detailArray= array();
781 if (count($errors) == 0)
783 $expandedRecords= extractDetails($queryResults[
"record"], $cu, $errors);
784 if ($expandedRecords ==
"" || count($expandedRecords) == 0)
785 $expandedDetails= array();
787 $expandedDetails= $expandedRecords[0][
"detailsDecoded"];
789 foreach($expandedDetails as $key => $value)
791 $pos= stripos($key,
"_MSG");
794 if ($pos !==
false && $len - $pos == 4)
799 $expandedDetails[$key]=
"N";
804 $expandedDetails[$key]=
"U";
808 $encrypedDetails= encryptDetails($expandedDetails, $cu);
810 $updateSQL=
"update cutrusteddetail set parms= '$encrypedDetails' where trustedid= '$trustedId' and cu= '$cu'";
811 $queryResults= runExecStatement($updateSQL, $dbh);
812 $errors= array_merge($errors, $queryResults[
"error"]);
815 return array(
"sql" => $sqls,
"error" => $errors,
"operation" =>
"bulkUpdate");
828 function pullDownOptions($dbh)
830 $parameters= array();
831 dms_import_v2($parameters,
"BOTTOM_LEVEL", array(
"cu" =>
"string",
"trustedId" =>
"string",
"options" =>
"string"));
833 $cu= $parameters[
"BOTTOM_LEVEL"][
"cu"];
834 $trustedId= $parameters[
"BOTTOM_LEVEL"][
"trustedId"];
836 $errors= cleanValuesForDatabase($parameters[
"BOTTOM_LEVEL"],
837 array(
"cu" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 12),
838 "trustedId" => array(
"type" =>
"string",
"required" =>
true,
"maxlength" => 20)));
840 $cuClean= $parameters[
"BOTTOM_LEVEL"][
"cu"];
841 $trustedIdClean= $parameters[
"BOTTOM_LEVEL"][
"trustedId"];
843 $optionsEncoded= $parameters[
"BOTTOM_LEVEL"][
"options"];
845 $retrievalSQL=
"select parms from cutrusteddetail where trustedid= '$trustedIdClean' and cu= '$cuClean'";
846 $queryResults= runSelectStatement($retrievalSQL, $dbh, array(
"parms" =>
"detailsEncoded"));
847 $errors= array_merge($errors, $queryResults[
"error"]);
848 $sqls= array($retrievalSQL);
850 $returnRecords= array();
851 $expandedRecords= array();
852 $expandedDetails= array();
853 if (count($errors) == 0)
855 $expandedRecords= extractDetails($queryResults[
"record"], $cu, $errors);
856 $expandedDetails= $expandedRecords[0][
"detailsDecoded"];
859 if (trim($optionsEncoded) ==
"")
860 $errors[]=
"Options are required";
863 $options= json_decode($optionsEncoded,
true);
864 if (is_array($options))
866 foreach($options as $record)
868 if (isset($record[
"property"]))
870 $property= stripslashes($record[
"property"]);
871 $value= stripslashes(strval($record[
"value"]));
872 $message= stripslashes(strval($record[
"message"]));
873 $expandedDetails[$property]= $value;
874 $fieldType= isset($record[
"fieldType"]) ? $record[
"fieldType"] :
"string";
875 $returnRecords[]= array(
"property" => $property,
"fieldType" => $fieldType,
"value" => $value,
"message" => $message,
"hasMasterRecord" =>
true,
"trustedId" => $trustedId);
879 $errors[]=
"One or more options rows is not formed correctly";
885 $errors[]=
"Options are not encoded correctly";
888 $encryptedDetails= encryptDetails($expandedDetails, $cu);
890 $updateSQL=
"update cutrusteddetail set parms= '$encryptedDetails' where trustedid= '$trustedIdClean' and cu= '$cuClean'";
892 if (count($errors) == 0)
894 $queryResults= runExecStatement($updateSQL, $dbh);
895 $errors= array_merge($errors, $queryResults[
"error"]);
898 return array(
"sql" => $sqls,
"error" => $errors,
"record" => $returnRecords);