Odyssey
lnappLookup.data
1 <?php
2  /*
3  * File: lnappLookup.data.v2
4  *
5  * Purpose: This script will handle the data / business logic for online
6  * loan application lookup maintenance
7  * SPB-- 10/6/2015 version two update to kendo
8  */
9 
10 $monLibrary= dirname(__FILE__) . "/../library";
11 $monIncludes= dirname(__FILE__) . "/../includes";
12 $sharedLibrary= dirname(__FILE__) . "/../../shared/library";
13 require_once("$monLibrary/cu_top.i");
14 require_once("$monLibrary/ck_hticket.i");
15 require_once("$monIncludes/cu_remote_top.prg");
16 require_once("$sharedLibrary/commonPhpFunctions.i");
17 
18  if (!CheckPerm($link, $Hu, 'loanAppConfig', $_SERVER['REMOTE_ADDR'])) {
19  // ** Permissions failed
20  // ** redirect to new page
21  header("Location: /hcuadm/hcu_noperm.prg");
22  exit;
23  }
24 
25 HCU_ImportVars($DATA_PARAMETERS, "TOP_LEVEL", array('operation' => 'string'));
26 $operation= $DATA_PARAMETERS["TOP_LEVEL"]['operation'];
27 $showSQL= false;
28 
29 switch ($operation)
30 {
31  case "read":
32  $returnArray= read($dbh);
33  break;
34  case "createTop":
35  $returnArray= createTop($dbh);
36  break;
37  case "updateTop":
38  $returnArray= updateTop($dbh);
39  break;
40  case "createBottom":
41  $returnArray= createBottom($dbh);
42  break;
43  case "updateBottom":
44  $returnArray= updateBottom($dbh);
45  break;
46  case "deleteTop":
47  $returnArray= deleteTop($dbh);
48  break;
49  case "deleteBottom":
50  $returnArray= deleteBottom($dbh);
51  break;
52  default: $returnArray= array("sql" => array(), "error" => array("Operation not specified: '$operation'"), "record" => "", "operation" => "");
53 }
54 
55 if (!$showSQL)
56  unset($returnArray["sql"]);
57 header('Content-type: application/json');
58 print HCU_JsonEncode($returnArray);
59 
60 /* Gathers data for the table (both top-level and bottom level.) */
61 function read($dbh)
62 {
63  $sql= "select h.ansid, h.anstitle, d.ansdetailid, d.ansvalue, d.ansdisplay from lnappanslookupheader h left join lnappanslookupdetail d on h.ansid= d.ansid
64  order by h.anstitle, d.ansdisplay, ansvalue";
65 
66  $results= runSelectStatement($sql, $dbh, array("ansid" => "topId", "anstitle" => "topTitle", "ansdetailid" => "bottomId", "ansvalue" => "bottomValue", "ansdisplay" => "bottomText"));
67  $errors= $results["error"];
68  $gridData= array();
69 
70  $currentTopId= -1;
71  $tempArray= array();
72  foreach($results["record"] as $record)
73  {
74  if ($currentTopId != $record["topId"])
75  {
76  $currentTopId= $record["topId"];
77  $gridData[]= array("topId" => $currentTopId, "topTitle" => $record["topTitle"]);
78  $tempArray[$currentTopId]= array();
79  }
80 
81  if ($record["bottomId"] != "")
82  {
83  $tempArray[$currentTopId][]= array("bottomId" => $record["bottomId"], "bottomValue" => $record["bottomValue"], "bottomText" => $record["bottomText"], "topId" => $record["topId"]);
84  }
85  }
86 
87  for($i=0, $count= count($gridData); $i != $count; $i++)
88  {
89  $topId= $gridData[$i]["topId"];
90  if (isset($tempArray[$topId]))
91  $gridData[$i]["details"]= $tempArray[$topId];
92  else
93  $gridData[$i]["details"]= array();
94  }
95 
96  return array("error" => $errors, "sql" => array($sql), "record" => $gridData, "operation" => "read");
97 }
98 
99 /* Adds a record for the top level. */
100 function createTop($dbh)
101 {
102  $parameters= array();
103  HCU_ImportVars($parameters, "BOTTOM_LEVEL", array("topTitle" => "string"));
104 
105  $errors= cleanValuesForDatabase($parameters["BOTTOM_LEVEL"],
106  array("topTitle" => array("type" => "string", "required" => true, "maxlength" => 50)));
107  $topTitle= $parameters["BOTTOM_LEVEL"]["topTitle"];
108 
109  $sql= "insert into lnappanslookupheader (anstitle) values ('$topTitle'); select currval('lnappanslookupheader_ansid_seq'::regclass) as next; ";
110  $results= runSelectStatement($sql, $dbh, array("next" => "next"));
111  $topId= intval($results["record"][0]["next"]);
112  $errors= array_merge($errors, $results["error"]);
113 
114  Remote_Field_Add("lnappanslookupheader", "ansid", $topId); // ** Lookup Answer ID
115  Remote_Field_Add("lnappanslookupheader", "anstitle", $topTitle); // ** Lookup Answer Title
116 
117  $Remote_Results = Remote_Update_All("U", "lnappanslookupheader");
118 
119  return array("error" => $errors, "sql" => array($sql), "operation" => "create", "record" => array(array("topTitle" => $topTitle, "topId" => $topId, "details" => array())));
120 }
121 
122 /* Updates a record at the top level. */
123 function updateTop($dbh)
124 {
125  $parameters= array();
126  HCU_ImportVars($parameters, "BOTTOM_LEVEL", array("topTitle" => "string", "topId" => "string"));
127 
128  $errors= cleanValuesForDatabase($parameters["BOTTOM_LEVEL"],
129  array("topTitle" => array("type" => "string", "required" => true, "maxlength" => 50),
130  "topId" => array("type" => "int", "required" => true)));
131  $topTitle= $parameters["BOTTOM_LEVEL"]["topTitle"];
132  $topId= $parameters["BOTTOM_LEVEL"]["topId"];
133 
134  $sql= "update lnappanslookupheader set anstitle = '$topTitle' where ansid = $topId";
135  $results= runExecStatement($sql, $dbh);
136  $errors= array_merge($errors, $results["error"]);
137 
138  Remote_Field_Add("lnappanslookupheader", "ansid", $topId); // ** Lookup Answer ID
139  Remote_Field_Add("lnappanslookupheader", "anstitle", $topTitle); // ** Lookup Answer Title
140 
141  $Remote_Results = Remote_Update_All("U", "lnappanslookupheader");
142 
143  return array("error" => $errors, "sql" => array($sql), "operation" => "update", "record" => array(array("topTitle" => $topTitle, "topId" => $topId)));
144 }
145 
146 /* Creates a record at the bottom level. */
147 function createBottom($dbh)
148 {
149  $parameters= array();
150  HCU_ImportVars($parameters, "BOTTOM_LEVEL", array("bottomValue" => "string", "bottomText" => "string", "topId" => "string"));
151 
152  $errors= cleanValuesForDatabase($parameters["BOTTOM_LEVEL"],
153  array("bottomValue" => array("type" => "string", "required" => true, "maxlength" => 50),
154  "bottomText" => array("type" => "string", "required" => true, "maxlength" => 50),
155  "topId" => array("type" => "int", "required" => true)));
156  $bottomValue= $parameters["BOTTOM_LEVEL"]["bottomValue"];
157  $bottomText= $parameters["BOTTOM_LEVEL"]["bottomText"];
158  $topId= $parameters["BOTTOM_LEVEL"]["topId"];
159 
160  $sql= "insert into lnappanslookupdetail (ansvalue, ansdisplay, ansid) values ('$bottomValue', '$bottomText', $topId); select currval('lnappanswerlookupdetail_ansdetailid_seq'::regclass) as next;";
161  $results= runSelectStatement($sql, $dbh, array("next" => "next"));
162  $bottomId= intval($results["record"][0]["next"]);
163  $errors= array_merge($errors, $results["error"]);
164 
165  $record= array("bottomId" => $bottomId, "bottomValue" => $bottomValue, "bottomText" => $bottomText, "topId" => $topId);
166 
167  Remote_Field_Add("lnappanslookupdetail", "ansid", $topId);
168  Remote_Field_Add("lnappanslookupdetail", "ansdetailid", $bottomId); // ** Lookup Answer ID
169  Remote_Field_Add("lnappanslookupdetail", "ansvalue", $bottomValue); // ** Lookup Answer Value
170  Remote_Field_Add("lnappanslookupdetail", "ansdisplay", $bottomText); // ** Lookup Answer Display
171 
172  Remote_Update_All("U", "lnappanslookupdetail");
173 
174  return array("error" => $errors, "sql" => array($sql), "operation" => "create", "record" => array($record));
175 }
176 
177 /* Updates a record at the bottom level. */
178 function updateBottom($dbh)
179 {
180  $parameters= array();
181  HCU_ImportVars($parameters, "BOTTOM_LEVEL", array("bottomValue" => "string", "bottomText" => "string", "bottomId" => "string"));
182 
183  $errors= cleanValuesForDatabase($parameters["BOTTOM_LEVEL"],
184  array("bottomValue" => array("type" => "string", "required" => true, "maxlength" => 50),
185  "bottomText" => array("type" => "string", "required" => true, "maxlength" => 50),
186  "bottomId" => array("type" => "int", "required" => true),
187  "topId" => array("type" => "int", "required" => true)));
188  $bottomValue= $parameters["BOTTOM_LEVEL"]["bottomValue"];
189  $bottomText= $parameters["BOTTOM_LEVEL"]["bottomText"];
190  $bottomId= $parameters["BOTTOM_LEVEL"]["bottomId"];
191 
192  $sql= "update lnappanslookupdetail set ansvalue = '$bottomValue', ansdisplay = '$bottomText' where ansdetailid = $bottomId";
193  $results= runExecStatement($sql, $dbh);
194  $errors= array_merge($errors, $results["error"]);
195 
196  $record= array("bottomId" => $bottomId, "bottomValue" => $bottomValue, "bottomText" => $bottomText);
197 
198  Remote_Field_Add("lnappanslookupdetail", "ansdetailid", $bottomId); // ** Lookup Answer ID
199  Remote_Field_Add("lnappanslookupdetail", "ansvalue", $bottomValue); // ** Lookup Answer Value
200  Remote_Field_Add("lnappanslookupdetail", "ansdisplay", $bottomText); // ** Lookup Answer Display
201 
202  Remote_Update_All("U", "lnappanslookupdetail");
203 
204  return array("error" => $errors, "sql" => array($sql), "operation" => "update", "record" => array($record));
205 }
206 
207 /* Removes a record at the top level. */
208 function deleteTop($dbh)
209 {
210  $parameters= array();
211  HCU_ImportVars($parameters, "BOTTOM_LEVEL", array("topId" => "string", "deleteDetails" => "string"));
212 
213  $errors= cleanValuesForDatabase($parameters["BOTTOM_LEVEL"],
214  array("topId" => array("type" => "int", "required" => true),
215  "deleteDetails" => array("type" => "boolean", "required" => false)));
216 
217  $topId= $parameters["BOTTOM_LEVEL"]["topId"];
218  $deleteDetails= $parameters["BOTTOM_LEVEL"]["deleteDetails"] == "Y";
219 
220  $sqls= array();
221  if ($deleteDetails)
222  {
223  $sql1= "select ansdetailid from lnappanslookupdetail where ansid = $topId";
224  $results1= runSelectStatement($sql1, $dbh, array("ansdetailid" => "id"));
225  $sql2= "delete from lnappanslookupdetail where ansid = $topId";
226  $results2= runExecStatement($sql2, $dbh);
227  $errors= array_merge($errors, $results1["error"], $results2["error"]);
228  array_push($sqls, $sql1, $sql2);
229 
230  foreach($results1["record"] as $record)
231  {
232  Remote_Field_Add("lnappanslookupdetail", "ansdetailid", $record["id"]); // ** Answer Detail ID
233  Remote_Update_All("D", "lnappanslookupdetail");
234  }
235  }
236 
237  $sql= "delete from lnappanslookupheader where ansid = $topId";
238  $sqls[]= $sql;
239  $results= runExecStatement($sql, $dbh);
240  $errors= array_merge($errors, $results["error"]);
241 
242  Remote_Field_Add("lnappanslookupheader", "ansid", $topId); // ** TRUSTED ID
243  Remote_Update_All("D", "lnappanslookupheader");
244 
245  return array("error" => $errors, "sql" => $sqls, "operation" => "delete");
246 }
247 
248 /* Removes a record at the bottom level. */
249 function deleteBottom($dbh)
250 {
251  $parameters= array();
252  HCU_ImportVars($parameters, "BOTTOM_LEVEL", array("bottomId" => "string"));
253 
254  $errors= cleanValuesForDatabase($parameters["BOTTOM_LEVEL"],
255  array("bottomId" => array("type" => "int", "required" => true)));
256 
257  $bottomId= $parameters["BOTTOM_LEVEL"]["bottomId"];
258 
259  $sql= "delete from lnappanslookupdetail where ansdetailid = $bottomId";
260  $results= runExecStatement($sql, $dbh);
261 
262  Remote_Field_Add("lnappanslookupdetail", "ansdetailid", $bottomId); // ** Answer Detail ID
263  Remote_Update_All("D", "lnappanslookupdetail");
264 
265  return array("error" => array_merge($errors, $results["error"]), "sql" => array($sql), "operation" => "delete");
266 }