<?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();
?>
|