php 源码 mrp,MRPCalendar.php

/* $Id: MRPCalendar.php 6941 2014-10-26 23:18:08Z daintree $ */

// MRPCalendar.php

// Maintains the calendar of valid manufacturing dates for MRP

include('includes/session.inc');

$Title = _('MRP Calendar');

include('includes/header.inc');

if (isset($_POST['ChangeDate'])){

$ChangeDate =trim(mb_strtoupper($_POST['ChangeDate']));

} elseif (isset($_GET['ChangeDate'])){

$ChangeDate =trim(mb_strtoupper($_GET['ChangeDate']));

}

echo '

' . ' ' . $Title . '

if (isset($_POST['submit'])) {

submit($db,$ChangeDate);

} elseif (isset($_POST['update'])) {

update($db,$ChangeDate);

} elseif (isset($_POST['ListAll'])) {

ShowDays($db);

} else {

ShowInputForm($db,$ChangeDate);

}

function submit(&$db,&$ChangeDate) //####SUBMIT_SUBMIT_SUBMIT_SUBMIT_SUBMIT_SUBMIT_SUBMIT_SUBMIT####

{

//initialize no input errors

$InputError = 0;

/* actions to take once the user has clicked the submit button

ie the page has called itself with some user input */

//first off validate inputs sensible

if (!Is_Date($_POST['FromDate'])) {

$InputError = 1;

prnMsg(_('Invalid From Date'),'error');

}

if (!Is_Date($_POST['ToDate'])) {

$InputError = 1;

prnMsg(_('Invalid To Date'),'error');

}

// Use FormatDateForSQL to put the entered dates into right format for sql

// Use ConvertSQLDate to put sql formatted dates into right format for functions such as

// DateDiff and DateAdd

$FormatFromDate = FormatDateForSQL($_POST['FromDate']);

$FormatToDate = FormatDateForSQL($_POST['ToDate']);

$ConvertFromDate = ConvertSQLDate($FormatFromDate);

$ConvertToDate = ConvertSQLDate($FormatToDate);

$DateGreater = Date1GreaterThanDate2($_POST['ToDate'],$_POST['FromDate']);

$DateDiff = DateDiff($ConvertToDate,$ConvertFromDate,'d'); // Date1 minus Date2

if ($DateDiff < 1) {

$InputError = 1;

prnMsg(_('To Date Must Be Greater Than From Date'),'error');

}

if ($InputError == 1) {

ShowInputForm($db,$ChangeDate);

return;

}

$sql = "DROP TABLE IF EXISTS mrpcalendar";

$result = DB_query($sql);

$sql = "CREATE TABLE mrpcalendar (

calendardate date NOT NULL,

daynumber int(6) NOT NULL,

manufacturingflag smallint(6) NOT NULL default '1',

INDEX (daynumber),

PRIMARY KEY (calendardate)) DEFAULT CHARSET=utf8";

$ErrMsg = _('The SQL to create passbom failed with the message');

$result = DB_query($sql,$ErrMsg);

$i = 0;

/* $DaysTextArray used so can get text of day based on the value get from DayOfWeekFromSQLDate of

the calendar date. See if that text is in the ExcludeDays array note no gettext here hard coded english days from $_POST*/

$DaysTextArray = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');

$ExcludeDays = array($_POST['Sunday'],$_POST['Monday'],$_POST['Tuesday'],$_POST['Wednesday'],

$_POST['Thursday'],$_POST['Friday'],$_POST['Saturday']);

$CalDate = $ConvertFromDate;

for ($i = 0; $i <= $DateDiff; $i++) {

$DateAdd = FormatDateForSQL(DateAdd($CalDate,'d',$i));

// If the check box for the calendar date's day of week was clicked, set the manufacturing flag to 0

$DayOfWeek = DayOfWeekFromSQLDate($DateAdd);

$ManuFlag = 1;

foreach ($ExcludeDays as $exday) {

if ($exday == $DaysTextArray[$DayOfWeek]) {

$ManuFlag = 0;

}

}

$sql = "INSERT INTO mrpcalendar (

calendardate,

daynumber,

manufacturingflag)

VALUES ('" . $DateAdd . "',

'1',

'" . $ManuFlag . "')";

$result = DB_query($sql,$ErrMsg);

}

// Update daynumber. Set it so non-manufacturing days will have the same daynumber as a valid

// manufacturing day that precedes it. That way can read the table by the non-manufacturing day,

// subtract the leadtime from the daynumber, and find the valid manufacturing day with that daynumber.

$DayNumber = 1;

$sql = "SELECT * FROM mrpcalendar

ORDER BY calendardate";

$result = DB_query($sql,$ErrMsg);

while ($myrow = DB_fetch_array($result)) {

if ($myrow['manufacturingflag'] == "1") {

$DayNumber++;

}

$CalDate = $myrow['calendardate'];

$sql = "UPDATE mrpcalendar SET daynumber = '" . $DayNumber . "'

WHERE calendardate = '" . $CalDate . "'";

$resultupdate = DB_query($sql,$ErrMsg);

}

prnMsg(_('The MRP Calendar has been created'),'success');

ShowInputForm($db,$ChangeDate);

} // End of function submit()

function update(&$db,&$ChangeDate) //####UPDATE_UPDATE_UPDATE_UPDATE_UPDATE_UPDATE_UPDATE_####

{

// Change manufacturing flag for a date. The value "1" means the date is a manufacturing date.

// After change the flag, re-calculate the daynumber for all dates.

$InputError = 0;

$CalDate = FormatDateForSQL($ChangeDate);

$sql="SELECT COUNT(*) FROM mrpcalendar

WHERE calendardate='$CalDate'

GROUP BY calendardate";

$result = DB_query($sql);

$myrow = DB_fetch_row($result);

if ($myrow[0] < 1 || !Is_Date($ChangeDate)) {

$InputError = 1;

prnMsg(_('Invalid Change Date'),'error');

}

if ($InputError == 1) {

ShowInputForm($db,$ChangeDate);

return;

}

$sql="SELECT mrpcalendar.* FROM mrpcalendar WHERE calendardate='$CalDate'";

$result = DB_query($sql);

$myrow = DB_fetch_row($result);

$newmanufacturingflag = 0;

if ($myrow[2] == 0) {

$newmanufacturingflag = 1;

}

$sql = "UPDATE mrpcalendar SET manufacturingflag = '".$newmanufacturingflag."'

WHERE calendardate = '".$CalDate."'";

$ErrMsg = _('Cannot update the MRP Calendar');

$resultupdate = DB_query($sql,$ErrMsg);

prnMsg(_('The MRP calendar record for') . ' ' . $ChangeDate . ' ' . _('has been updated'),'success');

unset ($ChangeDate);

ShowInputForm($db,$ChangeDate);

// Have to update daynumber any time change a date from or to a manufacturing date

// Update daynumber. Set it so non-manufacturing days will have the same daynumber as a valid

// manufacturing day that precedes it. That way can read the table by the non-manufacturing day,

// subtract the leadtime from the daynumber, and find the valid manufacturing day with that daynumber.

$DayNumber = 1;

$sql = "SELECT * FROM mrpcalendar ORDER BY calendardate";

$result = DB_query($sql,$ErrMsg);

while ($myrow = DB_fetch_array($result)) {

if ($myrow['manufacturingflag'] == '1') {

$DayNumber++;

}

$CalDate = $myrow['calendardate'];

$sql = "UPDATE mrpcalendar SET daynumber = '" . $DayNumber . "'

WHERE calendardate = '" . $CalDate . "'";

$resultupdate = DB_query($sql,$ErrMsg);

} // End of while

} // End of function update()

function ShowDays(&$db) {//####LISTALL_LISTALL_LISTALL_LISTALL_LISTALL_LISTALL_LISTALL_####

// List all records in date range

$FromDate = FormatDateForSQL($_POST['FromDate']);

$ToDate = FormatDateForSQL($_POST['ToDate']);

$sql = "SELECT calendardate,

daynumber,

manufacturingflag,

DAYNAME(calendardate) as dayname

FROM mrpcalendar

WHERE calendardate >='" . $FromDate . "'

AND calendardate <='" . $ToDate . "'";

$ErrMsg = _('The SQL to find the parts selected failed with the message');

$result = DB_query($sql,$ErrMsg);

echo '

' . _('Date') . '' . _('Manufacturing Date') . '

$ctr = 0;

while ($myrow = DB_fetch_array($result)) {

$flag = _('Yes');

if ($myrow['manufacturingflag'] == 0) {

$flag = _('No');

}

printf('

%s%s%s',

ConvertSQLDate($myrow[0]),

_($myrow[3]),

$flag);

} //END WHILE LIST LOOP

echo '

';

echo '
';

unset ($ChangeDate);

ShowInputForm($db,$ChangeDate);

} // End of function ShowDays()

function ShowInputForm(&$db,&$ChangeDate) {//####DISPLAY_DISPLAY_DISPLAY_DISPLAY_DISPLAY_DISPLAY_#####

// Display form fields. This function is called the first time

// the page is called, and is also invoked at the end of all of the other functions.

if (!isset($_POST['FromDate'])) {

$_POST['FromDate']=date($_SESSION['DefaultDateFormat']);

$_POST['ToDate']=date($_SESSION['DefaultDateFormat']);

}

echo '


';

echo '';

echo '

echo '

' . _('From Date') . ':' . _('To Date') . ':' . _('Exclude The Following Days') . '' . _('Saturday') . ':' . _('Sunday') . ':' . _('Monday') . ':' . _('Tuesday') . ':' . _('Wednesday') . ':' . _('Thursday') . ':' . _('Friday') . ':

if (!isset($_POST['ChangeDate'])) {

$_POST['ChangeDate']=date($_SESSION['DefaultDateFormat']);

}

echo '

' . _('Change Date Status') . ':
';

} // End of function ShowInputForm()

include('includes/footer.inc');

?>

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值