<?php
/** * @author Prakash Khanchandani * @copyright 2013 * @program prodTypes.php * @description product types maintenance * @specialities - hiding column(s) in form\ * - explicitly programming to check if a record can be deleted */
session_start(); require_once ("classes.php");
function createTableObject() { $obj = new prodTypesTable; if ($obj->getListAndColumns() === false) return false; else return $obj; }
class prodTypesTable extends mstrTable { function getListAndColumns() { $this->tableName = 'prodTypes';
/* ignore the following columns from having text boxes for user input. */ $this->ignoreInForm = array('active');
/* set the constraints. Initialise the master class with the constraints. setting bank=412 IS FOR THIS DEMO ONLY. In my case, in the project in which it is used, it comes from the session which is set at login. */ $var = array(); $pair[0] = 'bank'; $pair[1] = '412'; $var[] = $pair;
$this->constraints = $var;
$result = parent::getListAndColumns('productCd', 'description', 'basePrdType', 'maxCashCr');
return $result; }
function canDelete() { /* since there are no foreign keys, implicit or explicit, we will check manually whether the selected record is used at all. Let us check in the prodSubTypes table for even 1 reference to the productCode. If found, we cannot delete the selected prodTypes record. */ // get the value of productCd of the selected record $productCd = $this->getColDefsVal('productCd'); /* build the where clause for the prodSubTypes table. Note that the column name in prodSubTypes is "prdType". */ $clause = "prdType = " . $productCd; /* read the prodSubTypes record with the above clause. Use limit 1 clause. */ $script = new mstrScripts; $result = $script->readMasterRecord("prodSubTypes", $clause, "limit 1"); /* if the count of result is zero, you can delete the record. Greater than zero (it can only be 1), you cannot. */ if (count($result) > 0) return "no"; else return "yes"; } }
if (!isset($_REQUEST['actn'])) { $obj = createTableObject(); } else { /* if the user has taken some action, handle it. */ $obj = handleRequestOption(); }
$form = new mstrFH($obj); $form->setDemoNotes(prodTypesNotes()); $form->displayForm(); ?>
|