Let's say we are working on an Service Desk type application.
My main table has (among others) the following fields:
`opening_date`
`closing_date`
`kpi`
The "opening_date" is filled automatically using the "now()" as default value in the visual editor.
The "kpi" is selected with a drop-down menu and is used to define what the closing date should be.
So what I do to determine de closing date is use the code below in the events.
// Before record added
function BeforeAdd(&$values,&$message,$inline)
{
$kpi = $values["kpi"];
if ($kpi == "2.1")
$kpidate = date("Y-m-d H:i:s", time()+7200);
else if ($kpi == "2.2")
$kpidate = date("Y-m-d H:i:s", time()+10800);
else if ($kpi == "3.1")
$kpidate = date("Y-m-d H:i:s", time()+14400);
else if ($kpi == "4.1")
$kpidate = date("Y-m-d H:i:s", time()+96400);
else if ($kpi == "4.2")
$kpidate = date("Y-m-d H:i:s", time()+86400);
else if ($kpi == "4.3")
$kpidate = date("Y-m-d H:i:s", time()+345600);
else if ($kpi == "4.4")
$kpidate = date("Y-m-d H:i:s", time()+2592000);
else if ($kpi == "4.5")
$kpidate = date("Y-m-d H:i:s", time()+15552000);
$values["data_fim"] = $kpidate;
} // function BeforeAdd
// Before record updated
function BeforeEdit(&$values,$where,&$oldvalues,&$keys,&$message,$inline)
{
$kpi = $values["kpi"];
$opendate = $values["data_abertura"];
if ($kpi == "2.1")
$kpidate = date("Y-m-d H:i:s", strtotime("$opendate + 120 minutes"));
else if ($kpi == "2.2")
$kpidate = date("Y-m-d H:i:s", strtotime("$opendate + 180 minutes"));
else if ($kpi == "3.1")
$kpidate = date("Y-m-d H:i:s", strtotime("$opendate + 240 minutes"));
else if ($kpi == "4.1")
$kpidate = date("Y-m-d H:i:s", strtotime("$opendate + 1 days"));
else if ($kpi == "4.2")
$kpidate = date("Y-m-d H:i:s", strtotime("$opendate + 1 days"));
else if ($kpi == "4.3")
$kpidate = date("Y-m-d H:i:s", strtotime("$opendate + 4 days"));
else if ($kpi == "4.4")
$kpidate = date("Y-m-d H:i:s", strtotime("$opendate + 30 days"));
else if ($kpi == "4.5")
$kpidate = date("Y-m-d H:i:s", strtotime("$opendate + 180 days"));
$values["data_fim"] = $kpidate;
} // function BeforeEditHope this is helpful.

Sign In
Register
Help

MultiQuote
