".$userdata["gname"]." ".$systemname."\n"; ?> \n"; //$val = trim($val); //$val=str_replace("'","",$val); //$val=str_replace("\"","",$val); //$val=str_replace("\\","",$val); //$val = htmlspecialchars($val); //$val = str_replace("\t"," ",$val); //echo "\n"; } echo "アクセス制御コードcketoken2=".$_SESSION[cketoken]."
"; echo "
$"."userdata
"; var_dump($userdata); echo "
SCRIPTNAME=".$_SERVER['SCRIPT_NAME']; // echo "
$"."companydata
"; // var_dump($companydata); echo "
$"."centerdata
"; var_dump($centerdata); echo "
$"."gyotaidata
"; var_dump($gyotaidata); // echo "
$"."makerdata
"; // var_dump($makerdata); // echo "
$"."tenpodata
"; // var_dump($tenpodata); echo "
$"."settingdata
"; var_dump($settingdata); } } /*------------------------------------------------------------ * 関数名 : IsInt() * 返却値 : TRUE/FALSE * 引数 : (1) i: 調べたい変数 * 説明 : ※正の整数のみOKとする *------------------------------------------------------------ */ function IsInt($var) { if ( !strlen($var) ) { return( FALSE ); } return( ereg( "[^0-9]", $var ) ? FALSE : TRUE ); } /*------------------------------------------------------------ * 関数名 : IsHankaku() * 返却値 : TRUE/FALSE * 引数 : (1) i: 調べたい変数 * 説明 : 文字列が半角英数か調べる * 説明 : 全部半角英数のみOKとする *------------------------------------------------------------ */ function IsHankaku($str) { if ( !strlen($str) ) { return( FALSE ); } return( ereg( "[^\x20-\x7E]", $str ) ? FALSE : TRUE ); } /*------------------------------------------------------------------- * 関数名 : dbselect() * 返却値 : select結果格納エリア(配列) * 引数 : カラム(文字列・全部*) * : テーブル(文字列) * : where句(文字列)(指定無し:-1) * : order句(文字列)(指定無し:-1) * : 読みこみサイズ (全レコード:-1) * 説明 : データをDBより取得して、配列に入れる *------------------------------------------------------------------- */ function dbselect( $cln , /*clumn*/ $tbl , /*table*/ $strwhere , /*where*/ $strorder , /*where*/ $recordsize) /*サイズ*/ { global $my_con; global $strsqldbselect; $strsql ="select ".$cln." from ".$tbl; if ($strwhere!=-1) { #echo "strwhere=".$strwheree."
\n"; $strsql .= " where ".$strwhere; } if ($strorder!=-1) { #echo "strorder=".$strorder."
\n"; $strsql .= " order by ".$strorder; } if ($recordsize!=-1) { #echo "recordsize=".$recordsize."
\n"; $strsql .= " limit ".$recordsize; } //echo " ------------------\n".$strsql."\n--------------------- \n"; $strsqldbselect = " ------------------\n".$strsql."\n--------------------- \n"; $result=@mysql_query($strsql,$my_con); mysql_sql_log2($strsql,$_SERVER['SCRIPT_NAME'].":".__LINE__); $row=@mysql_num_rows($result); $i=0;$j=0; while ($i<$row) { $data=@mysql_fetch_row($result); $cnt=sizeof($data); while ($j<$cnt) { $list[$i][$j] = $data[$j]; $j++; } $j=0; $i++; } return $list; } /*------------------------------------------------------------ * 関数名 : PrintSelectList() * 返却値 : なし * 引数 : (1) i: プルダウンリストの配列 * [i][0]表示文字列[i][1]value コード値は2番目 * : (2) i: リストの中でどれをSelectedにするか(配列要素番号) * : (3) i: 行頭スペース数 * 説明 : 指定されたものをSelectedにしてプルダウン表示 *------------------------------------------------------------ */ function PrintSelectList( $list, $selected, $spaceNo ) { for($space=" ", $pi=1; $pi < $spaceNo; $pi++) { $space .= " "; } $n = sizeof($list); if($n>0) { for ($pi = 0; $pi < $n; $pi++) { $str = $space."\n"; echo $str; } } else { echo ""; } } /*------------------------------------------------------------ * 関数名 : PrintSelectList2() * 返却値 : なし * 引数 : (1) i: プルダウンリストの配列 * [i][0]表示文字列[i][1]value コード値は2番目 * : (2) i: リストの中でどれをSelectedにするか(配列要素番号) * : (3) i: 行頭スペース数 * 説明 : 指定されたものをSelectedにしてプルダウン表示(コード表示付) * 用法 : echoでなく、変数で戻したい場合は$intPrintSelectList2 = 1で設定する *------------------------------------------------------------ */ function PrintSelectList2( $list, $selected, $spaceNo ) { global $intPrintSelectList2; for($space=" ", $pi=1; $pi < $spaceNo; $pi++) { $space .= " "; } $n = sizeof($list); if($n>0) { for ($pi = 0; $pi < $n; $pi++) { $str = $space."\t\t\n"; if ($intPrintSelectList2 == 1) { $strHTML .= $str; } else { echo $str; } } } else { // echo "\t\t\n"; } if ($intPrintSelectList2 == 1) { return $strHTML ; } else { } } /*------------------------------------------------------------ * 関数名 : PrintSelectPageset() * 返却値 : なし(HTML) * 引数 : 初期制御数 * 説明 : 画面に表示するページ数のSELECT文を発行する * 用法 : *------------------------------------------------------------ */ function PrintSelectPageset( $selected) { $list = array(10,20,30,50,100,200); echo "\n"; echo "表示件数
\n"; echo "\n"; echo "
\n"; } /*------------------------------------------------------------ * 関数名 : PrintList() * 返却値 : なし * 引数 : (1) i: プルダウンリストの配列 * [i][0]表示文字列[i][1]value * : (2) i: リストの中でどれをSelectedにするか(配列要素番号) * : (3) i: 行頭スペース数 * 説明 : 指定されたものPRINT表示 *------------------------------------------------------------ */ function PrintList( $list, $selected, $spaceNo ) { for($space=" ", $i=1; $i < $spaceNo; $i++) { $str .= " "; } $n = sizeof($list); for ($i = 0; $i < $n; $i++) { if($list[$i][1] == $selected) { $str .= $list[$i][0] ; echo $str; break; } } } /*------------------------------------------------------------ * 関数名 : PrintList2() * 返却値 : なし * 引数 : (1) i: プルダウンリストの配列 * [i][0]表示文字列[i][1]value * : (2) i: リストの中でどれをSelectedにするか(配列要素番号) * : (3) i: どの配列何番目か 0以上 * 説明 : 指定されたものPRINT表示 *------------------------------------------------------------ */ function PrintList2( $list, $selected, $num ) { $n = sizeof($list); for ($i = 0; $i < $n; $i++) { if($list[$i][1] == $selected) { $str .= $list[$i][$num] ; echo $str; break; } } } /*------------------------------------------------------------ * 関数名 : PrintList3() * 返却値 : なし * 引数 : (1) i: プルダウンリストの配列 * [i][0]表示文字列[i][1]value * : (2) i: リストの中でどれをSelectedにするか(配列要素番号) * : (3) i: 行頭スペース数 * 説明 : 指定されたものPRINT表示(コードつき) *------------------------------------------------------------ */ function PrintList3( $list, $selected, $spaceNo ) { for($space=" ", $i=1; $i < $spaceNo; $i++) { $str .= " "; } $n = sizeof($list); for ($i = 0; $i < $n; $i++) { if($list[$i][1] == $selected) { $str .= $list[$i][0] ; echo $str." (".$list[$i][1].")"; break; } } } /*------------------------------------------------------------ * 関数名 : GetList() * 返却値 : 選択文字列 * 引数 : (1)array: プルダウンリストの配列 * [i][0]表示文字列[i][1]value * : (2) i: リストの中でどれを返却するか。value値 * 説明 : 指定された文字列で返却 *------------------------------------------------------------ */ function GetList( $list, $selected) { return GetListData($list,$selected,0); } /*------------------------------------------------------------ * 関数名 : GetList2() * 返却値 : 選択文字列 * 引数 : (1)array: プルダウンリストの配列 * [i][0]表示文字列[i][1]value * : (2) i: リストの中でどれを返却するか。value値 * 説明 : 指定された文字列で返却・無い場合は元値を返却 *------------------------------------------------------------ */ function GetList2( $list, $selected) { if (GetListData($list,$selected,0)) { return GetListData($list,$selected,0); } else { return $selected; } } /*------------------------------------------------------------ * 関数名 : GetListData() * 返却値 : 選択文字列 * 引数 : (1) array: プルダウンリストの配列 * [i][0]表示文字列[i][1]value,[i][2]value,[i][3]value.... * : (2) i: リストの中でどれを返却するか。value値 * : (3) j: リストの中でどれの項目を返却するか。 * 説明 :(3)で指定された値 *------------------------------------------------------------ */ function GetListData( $list, $selected, $no) { $n = sizeof($list); for ($i = 0; $i < $n; $i++) { if($list[$i][1] == $selected) { return $list[$i][$no] ; break; } } } /*------------------------------------------------------------ * 関数名 : CheckEmail * 返却値 : true - 正しいメールアドレスの場合 * false - 正しくないメールアドレスの場合 * 引数 : (1) i:文字列 * 説明 : メールアドレスチェックを行なう。 *------------------------------------------------------------ */ function CheckEmail($str) { #@で分解できたらOK $list1=explode("@",$str); if (sizeof($list1)!=2) { return false; } #ドメインがドットで分解できたらOK $list2=explode(".",$list1[1]); if (sizeof($list2)<2) { return false; } return true; } /*------------------------------------------------------------ * 関数名 : PrintSelectDay() * 返却値 : なし * 引数 : (1) int: 開始日付の本日よりの経過日数 * 引数 : (2) int: 終了日付の本日よりの経過日数 * : (3) str: サブミットするとび先のPHPファイル名 -1はサブミットしない * : (4) int: 選ばれたデフォルトの経過日数(整数) * : (5) str: 表示する文字列 * 説明 : 日付をSELECTリストとしてPRINTする。デフォルト日付は整数値で指定。value値は経過日数。 * 使用例 : PrintSelectDay(-5,5,"0100.php",$_POST[chgday],"日付
") * 使用例 : PrintSelectDay(-5,10,-1,$orderdate,"入庫日
"); *------------------------------------------------------------ */ function PrintSelectDay( $startdate, $enddate, $filename, $selected, $word){ if ($filename == -1){ echo $word."\n"; echo "\n"; } for ($i = $startdate; $i < $enddate; $i++) { if ($i==0) { $word=" 本日";} else {$word="";} if ($i==(int)$selected) { //一致したら選択済みとする echo "\n"; } else { //$weeday = (int)date("w",strtotime ("".$i." day")); //0sun,1Mon,2Tue...6Sat //if ($weeday==0 or $weeday==2 or $weeday==5) { } else { //日、火曜、金曜は納品無し echo "\n"; //} } } echo "\n"; if ($filename <> -1){ echo "\n"; } } /*------------------------------------------------------------ * 関数名 : PrintSelectDay2() 納品日の曜日限定 * 返却値 : なし * 引数 : (1) int: 開始日付の本日よりの経過日数 * 引数 : (2) int: 終了日付の本日よりの経過日数 * : (3) str: サブミットするとび先のPHPファイル名 -1はサブミットしない -2は","1111000") *------------------------------------------------------------ */ function PrintSelectDay2( $startdate, $enddate, $filename, $selected, $word, $youbi){ global $startarray; if ($filename == -2){ } elseif ($filename == -1){ echo $word."\n"; echo "\n"; } for ($i =0; $i < sizeof($startarray); $i++) { if ($startarray[$i][1] == $selected) { //一致したら選択済みとする echo ""; } else { echo ""; } } for ($i = $startdate; $i < $enddate; $i++) { if ($i==0) { $word=" 本日";} else {$word="";} //$wordは使い回し $weeday = (int)date("w",strtotime ("".$i." day")); //0sun,1Mon,2Tue...6Sat $okflg = substr($youbi, $weeday, 1); //表示曜日データから、目的の曜日の値をセットする if ((int)$okflg==1) { //取り出した曜日が1:ONなら表示する。 if ($i == $selected) { //一致したら選択済みとする echo "\n"; } else { echo "\n"; } } } echo "\n"; if ($filename >-1){ echo "\n"; } } /*------------------------------------------------------------ * 関数名 : PrintSelectDay3() 納品日の曜日限定 * 返却値 : なし * 引数 : (1) int: 開始日付の本日よりの経過日数 * 引数 : (2) int: 終了日付の本日よりの経過日数 * : (3) str: サブミットするとび先のPHPファイル名 -1はサブミットしない * : (4) int: 選ばれたデフォルトの経過日数 * : (5) str: 表示する文字列 * 説明 : 日付をSELECTリストとしてPRINTする。日、火曜、金曜は納品無しバージョン(暫定2007年)。value値は経過日数。 * 使用例 : PrintSelectDay3(-5,5,"0100.php",$_POST[chgday],"日付
") *------------------------------------------------------------ */ function PrintSelectDay3( $startdate, $enddate, $filename, $selected, $word){ if ($filename == -1){ echo $word."\n"; echo "\n"; } for ($i = $startdate; $i < $enddate; $i++) { if ($i==0) { $word=" 本日";} else {$word="";} $weeday = (int)date("w",strtotime ("".$i." day")); //0sun,1Mon,2Tue...6Sat if ($weeday==0 or $weeday==2 or $weeday==5) { } else { //日、火曜、金曜は納品無し if ($i==(int)$selected) { //一致したら選択済みとする echo "\n"; } else { echo "\n"; } } } echo "\n"; if ($filename <> -1){ echo "\n"; } } /*------------------------------------------------------------ * 関数名 : PrintSelectDay4() DBから取り出した日付の変更のための日付リストの表示 * 返却値 : なし * 引数 : (1) int: 開始日付の本日よりの経過日数 * 引数 : (2) int: 終了日付の本日よりの経過日数 * : (3) str: サブミットするとび先のPHPファイル名 -1はサブミットしない * : (4) str: デフォルトで表示する日付 * : (5) str: 表示する文字列 * 説明 : 日付をSELECTリストとしてPRINTする。デフォルト日付は日付値で指定。value値は日付型YYYY-MM-DD。 * 使用例 : PrintSelectDay4(-5,5,"100.php",$_POST[chgday],"日付
") * 使用例 : PrintSelectDay4(-5,5,-1,"2007-1-1","日付
") * 使用例 : PrintSelectDay4(-5,5,-1,data(0),"日付
") *------------------------------------------------------------ */ function PrintSelectDay4( $startdate, $enddate, $filename, $selected, $word){ if ($selected == "") { //デフォルト日付が無い場合は0日(当日とする) $date_diff = 0; } else { //日付がある場合は日付差分をセットする $date_diff = (int)(strtotime($selected)-strtotime(date('y-m-d'))) / 86400; } if ($filename == -1){ echo $word."\n"; echo "\n"; } for ($i = $startdate; $i < $enddate; $i++) { if ($i==0) { $word=" 本日";} else {$word="";} //本日の場合は本日を入れる。$wordは使い回し if ($i==$date_diff) { //一致したら選択済みとする echo "\n"; } else { echo "\n"; } } echo "\n"; if ($filename <> -1){ echo "\n"; } } /*------------------------------------------------------------ * 関数名 : PrintSelectDay5() DBから取り出した日付の変更のための日付リストの表示(サブミット先指定) * 返却値 : なし * 引数 : (1) int: 開始日付の本日よりの経過日数 * 引数 : (2) int: 終了日付の本日よりの経過日数 * : (3) str: 変数名 * : (4) str: デフォルトの日付YYYY-MM-DD形式 * : (5) str: 表示する文字列 * : (6) str: サブミットするとび先のPHPファイル名 -1はサブミットしない * 説明 : 日付をSELECTリストとしてPRINTする。デフォルト日付は日付値で指定。value値は日付型YYYY-MM-DD。 * 使用例 : PrintSelectDay5(-5,5,"startdate",$_POST[startdate],"開始日付
",-1) *------------------------------------------------------------ */ function PrintSelectDay5( $startdate, $enddate, $submitname, $selected, $word, $filename){ global $startarray,$stronchange; //日付指定無しは本日とする if ($selected=="") { $selected = date("Y-m-d"); } //ファイル名がない場合=1は、サブミットしない if ($filename == -1){ echo $word."\n"; echo ">\n"; } else { echo "
\n"; echo $word."\n"; echo "\n"; if ($filename <= -1){ } else { echo "
\n"; } } /*------------------------------------------------------------ * 関数名 : PrintSelectDay6() DBから取り出した日付の変更のための日付リストの表示(サブミット先指定/サブミットFORM指定) * 返却値 : なし * 引数 : (1) int: 開始日付の本日よりの経過日数 * 引数 : (2) int: 終了日付の本日よりの経過日数 * : (3) str: 変数名 * : (4) str: デフォルトの日付YYYY-MM-DD形式 * : (5) str: 表示する文字列 * : (6) str: サブミットするとび先のPHPファイル名 -1はサブミットしない * : (7) str: サブミットするFORM名 -1はデフォルト * 説明 : 日付をSELECTリストとしてPRINTする。デフォルト日付は日付値で指定。value値は日付型YYYY-MM-DD。 * 使用例 : PrintSelectDay6(-5,5,"startdate",$_POST[startdate],"開始日付
",-1) *------------------------------------------------------------ */ function PrintSelectDay6( $startdate, $enddate, $submitname, $selected, $word, $filename, $change){ //日付指定無しは本日とする if ($selected=="") { $selected = date("Y-m-d"); } //-1は、サブミットしない if ($filename == -1){ echo $word."\n"; echo "\n"; } else { echo "
\n"; echo $word."\n"; echo "\n"; if ($filename <> -1){ echo "
\n"; } } /*------------------------------------------------------------ * 関数名 : SecurityCheck() * 返却値 : HTML * 引数 : なし * 説明 : クッキーがあるかチェックし、クッキーにユーザー情報を再セットする * 使用例 : SecurityCheck(); *------------------------------------------------------------ */ function SecurityCheck(){ global $my_con,$timeoutmin,$userdata; // if ($_COOKIE[cketoken]<>"") { //アクセスコードとセッションが一致する場合 if ($_SESSION[cketoken]<>"") { //アクセスコードとセッションが一致する場合 //アクセスコード取得 $acd = dbselect("TO_DAYS(now()) - TO_DAYS(updatetime),TIME_TO_SEC(now()) - TIME_TO_SEC(updatetime),tid","usermaster","accesscode='$_SESSION[cketoken]' and sessionid='".$_COOKIE["PHPSESSID"]."'",-1,-1); if (($acd[0][0]== 0) and ($acd[0][1] < (int)$timeoutmin)){ //日程経過が0日で規定秒以内ならOK $SecurityChecker = 0; //クッキーセット、ロールデータセット CookieSetup( "" ,2); //各データを変数にセットする DataSet(); } else { $SecurityChecker = 555; } } elseif ($_COOKIE[PHPSESSID] == "") { // セッションIDがない場合 $SecurityChecker = 4980; /* $msg2 .="━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"; $msg2 .="[日時 曜日] ".strftime ("%G/%m/%d (%a) %T",time())."\n"; $msg2 .="[アドレス ] ".$_SERVER["REMOTE_ADDR"]."\n"; $msg2 .="[ホスト  ] ".gethostbyaddr($_SERVER["REMOTE_ADDR"])."\n"; $msg2 .="[ブラウザー] ".$_SERVER["HTTP_USER_AGENT"]."\n"; $msg2 .="[遷移元URI ] ".$_SERVER["HTTP_REFERER"]."\n"; $msg2 .="[session_id() ] ".session_id()."\n"; $msg2 .="[COOKIE cketoken] ".$_COOKIE["cketoken"]."\n"; $msg2 .="[COOKIE SESSION CKETOKEN] ".$_SESSION["cketoken"]."\n"; $msg2 .="[COOKIE PHPSESSID] ".$_COOKIE["PHPSESSID"]."\n"; $msg2 .="[SecurityChecker] ".$SecurityChecker."\n"; $msg2 .= "\n========================================================\n"; $msg2 .=$mail2; $fromname = mb_encode_mimeheader(mb_convert_encoding("LogiGate自動",'UTF-8','auto')); $fromto2 = "FROM:$fromname\nBCC:tohyama@eship.co.jp\nX-mailer:PHP5"; $subject = "ER".strftime ("%G-%m-%d",time())." LogiGateログインテスト ID:".$accessid; mb_send_mail("info-logigate@logigate.jp",$subject,$msg2,$fromto2);*/ } else { $SecurityChecker = 1782; /* $msg2 .="━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"; $msg2 .="[日時 曜日] ".strftime ("%G/%m/%d (%a) %T",time())."\n"; $msg2 .="[アドレス ] ".$_SERVER["REMOTE_ADDR"]."\n"; $msg2 .="[ホスト  ] ".gethostbyaddr($_SERVER["REMOTE_ADDR"])."\n"; $msg2 .="[ブラウザー] ".$_SERVER["HTTP_USER_AGENT"]."\n"; $msg2 .="[遷移元URI ] ".$_SERVER["HTTP_REFERER"]."\n"; $msg2 .="[session_id() ] ".session_id()."\n"; $msg2 .="[COOKIE cketoken] ".$_COOKIE["cketoken"]."\n"; $msg2 .="[COOKIE SESSION CKETOKEN] ".$_SESSION["cketoken"]."\n"; $msg2 .="[COOKIE PHPSESSID] ".$_COOKIE["PHPSESSID"]."\n"; $msg2 .="[SecurityChecker] ".$SecurityChecker."\n"; $msg2 .= "\n========================================================\n"; $msg2 .=$mail2; $fromname = mb_encode_mimeheader(mb_convert_encoding("LogiGate自動",'UTF-8','auto')); $fromto2 = "FROM:$fromname\nBCC:tohyama@eship.co.jp\nX-mailer:PHP5"; $subject = "ER".strftime ("%G-%m-%d",time())." LogiGateログインテスト ID:".$accessid; mb_send_mail("info-logigate@logigate.jp",$subject,$msg2,$fromto2);*/ } if($SecurityChecker > 0) { $strsql = "INSERT INTO loginhistory (kubun,tid,name,userroleid,logindatetime,ip) values('OUT','".$userdata["tid"]."','".$userdata["name"]."','".$userdata["userroleid"]."',NOW(),'".$_SERVER["REMOTE_ADDR"]."')"; $result=mysql_query($strsql,$my_con); mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__); setcookie("cketoken"); setcookie("ckeselect"); setcookie("testmode"); myclose(); echo "\n"; echo "\n"; echo "ログアウトしました $SecurityChecker\n"; echo "\n"; echo "\n"; echo "\n"; // echo "ERROR #".$SecurityChecker; echo "ログアウト状態です。

ログイン後無操作状態が一定時間経過したため
自動ログアウトされました。

引き続きご利用の際には、
「再ログイン」をクリックしてください。

もし更新時にこの画面が出た場合は、最後の更新作業は無効となりました。再度ログイン後に改めて更新して下さい。



\n"; echo "CODE #".$SecurityChecker; echo "\n\n"; exit; } } /*------------------------------------------------------------ * 関数名 : CookieSetup() * 返却値 : Cookie,内部変数 * 引数 : アクセスコード,フラグ(1=ログイン,2=更新) * 説明 : ユーザーIDより、Cookieにアクセスコードと業態コードを書き込む&ユーザー情報をセットする * 使用例 : CookieSetup($accesstoken,1); * 使用例 : CookieSetup( "" ,2); *------------------------------------------------------------ */ Function CookieSetup($accesstoken,$flg){ global $my_con,$timeoutmin,$userdata,$company,$companysetuzoku; //ユーザーマスター、ロールデータの取得 if($flg == 1) { $usermaster = dbselect("tid,companyid,shozokuid,accesscode,name,companyname,infoedit,email","usermaster as u INNER JOIN company USING(companyid)","accesscode='".$accesstoken."' AND sessionid='".$_COOKIE["PHPSESSID"]."'",-1,-1); $roledata = dbselect("userroleid,u.companyid,gyotaiid,kengen","userrole as u INNER JOIN rolemaster USING(roleid,companyid)","tid='".$usermaster[0][0]."'","roleid",-1); } else { //不正アクセス防止アクセスコード作成 mt_srand(microtime()*100000); $accesstoken = md5(uniqid(mt_rand(),1)); //アクセスコード更新 //2012OUT $strsql = "UPDATE usermaster set accesscode = '$accesstoken', updatetime=now(),sessionid='".$_COOKIE["PHPSESSID"]."' where accesscode='".$_SESSION[cketoken]."' limit 1"; //二重送信時に強制OUTしてしまうため $strsql = "UPDATE usermaster set updatetime=now(),sessionid='".$_COOKIE["PHPSESSID"]."' where accesscode='".$_SESSION[cketoken]."' limit 1"; $result=mysql_query($strsql,$my_con); mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__); //2012OUT $usermaster = dbselect("tid,companyid,shozokuid,accesscode,name,companyname,infoedit,email","usermaster as u INNER JOIN company USING(companyid)","accesscode='".$accesstoken."' AND sessionid='".$_COOKIE["PHPSESSID"]."'",-1,-1); $usermaster = dbselect("tid,companyid,shozokuid,accesscode,name,companyname,infoedit,email","usermaster as u INNER JOIN company USING(companyid)","accesscode='".$_SESSION[cketoken]."' AND sessionid='".$_COOKIE["PHPSESSID"]."'",-1,-1); $roledata = dbselect("userroleid,u.companyid,gyotaiid,kengen,roleid,startpage","userrole as u INNER JOIN rolemaster USING(roleid,companyid)","tid='".$usermaster[0][0]."'","u.roleid",-1); } setcookie("cketoken",$usermaster[0][3],time() + $timeoutmin); //アクセス防止マーカー $_SESSION[cketoken] = $usermaster[0][3]; //アクセス防止マーカー // setcookie("ckeselect",$roledata[0][0],time() + $timeoutmin); //ロールID(デフォルトは権限が一番上) // setcookie("testmode"); //テストモード終了 // setcookie("testmode","1",time()+7200); //テストモード開始 //ユーザー情報セット $userdata["tid"] = $usermaster[0][0]; //ユーザーID $userdata["companyid"] = $usermaster[0][1]; //所属会社ID $userdata["shozokuid"] = $usermaster[0][2]; //配送先ID $userdata["name"] = $usermaster[0][4]; //ユーザ名 $userdata["companyname"] = $usermaster[0][5]; //所属会社名 $userdata["infoedit"] = $usermaster[0][6]; //情報掲示板編集権限 $userdata["email"] = $usermaster[0][7]; //Email $userdata["userroleid"] = $roledata[0][0]; //ユーザ名 $userdata["hcompanyid"] = $roledata[0][1]; //本社ID $company = $roledata[0][1].$companysetuzoku; //本社ID=DatabaseTable名 $userdata["gyotaiid"] = $roledata[0][2]; //業態ID $userdata["kengen"] = $roledata[0][3]; //権限 $userdata["roleid"] = $roledata[0][4]; //roleid $userdata["startpage"] = $roledata[0][5]; //startpage 通常0100.phpからの変更 //業態情報 $gdata = dbselect("honbuid,gname,logo,hacchutime,nohinweek,comeinweek","`".$company."gyotai`","gyotaiid='".$userdata["gyotaiid"]."'",-1,-1); $userdata["honbuid"] = $gdata[0][0]; //本部ID $userdata["gname"] = $gdata[0][1]; //業態名 $userdata["logo"] = $gdata[0][2]; //LOGOのURL $userdata["hacchutime"] = $gdata[0][3]; //発注締め時間 $userdata["nohinweek"] = $gdata[0][4]; //納品可能曜日 $userdata["comeinweek"] = $gdata[0][5]; //入荷可能曜日 $sdata = dbselect("shozokuname","`".$company."shozokumaster`","shozokuid='".$userdata[shozokuid]."'",-1,-1); $userdata["shozokuname"] = $sdata[0][0]; //所属名 } /*------------------------------------------------------------ * 関数名 : Numchecker() * 返却値 : 数字 * 引数 : 調べたい数字 * 説明 : 全角数字が指定されたら数値で返す。数値、全角数値以外は0で返す * 使用例 : A = Numchecker($_POST[amount]) +5; *------------------------------------------------------------ */ Function Numchecker($cknumber){ if ($cknumber == "") { //何も無しなら0で返す return 0; } else { $cknumber = mb_convert_kana($cknumber,"n"); if ((int)$cknumber > 0 ) { return (int)$cknumber; //マイナス以外の数字なら数値で返す } else { return 0; //数値でないなら0で返す } } } /*------------------------------------------------------------ * 関数名 : Numchecker2() * 返却値 : 数字 * 引数 : 調べたい数字 * 説明 : 全角数字が指定されたら数値で返す。数値、全角数値以外はNO-MATCHで返す * 使用例 : amout2 = Numchecker2($_POST[amount]); *------------------------------------------------------------ */ Function Numchecker2($cknumber){ if ($cknumber == "") { //何も無しならNO-MATCHで返す return "NO-MATCH"; } else { $cknumber = mb_convert_kana($cknumber,"n"); if ((int)$cknumber >= 0 ) { return $cknumber; //マイナス以外の数字なら数値で返す } elseif ((int)$cknumber < 0 ) { return $cknumber; //マイナス数字なら数値で返す } else { return "NO-MATCH"; //数値でないならNO-MATCHで返す } } } /*------------------------------------------------------------ * 関数名 : Numchecker3() * 返却値 : 文字列 * 引数 : 調べたい数字 * 説明 : 全角数字が指定されたらNUMで返す。数値、全角数値以外はCHRで返す * 使用例 : Numchecker3($_POST[amount]); *------------------------------------------------------------ */ Function Numchecker3($cknumber){ if ($cknumber == "") { //何も無しならCHRで返す return "CHR"; } else { $cknumber = mb_convert_kana($cknumber,"n"); if (is_numeric($cknumber)) { return "NUM"; //数字ならNUMで返す } else { return "CHR"; //数値でないならCHRで返す } } } /*------------------------------------------------------------ * 関数名 : Logout() * 返却値 : HTML * 引数 : なし * 説明 : クッキーをリセットして、index.htmlに戻る * 使用例 : Logout(); *------------------------------------------------------------ */ function Logout(){ global $my_con,$userdata; $strsql = "INSERT INTO loginhistory (kubun,tid,name,kengen,honbu,gyotai,tenpo,logindatetime,ip) values('OUT','".$userdata["tid"]."','".$userdata["name"]."','".$userdata["kengen"]."','".$userdata["honbuid"]."', '".$userdata["gyotaiid"]."','".$userdata["shozokuid"]."',NOW(),'".$_SERVER["REMOTE_ADDR"]."')"; $result=mysql_query($strsql,$my_con); mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__); setcookie("testmode"); setcookie("ckeselect"); setcookie("ckeken"); setcookie("ckename"); setcookie("ckehonbu"); setcookie("ckegyotai"); setcookie("cketenpo"); setcookie("ckecenter"); setcookie("ckemaker"); setcookie("ckecompanyid"); setcookie("cketradex"); setcookie("cketenponame"); setcookie("cketcenter"); setcookie("ckeshime"); setcookie("cketoken"); setcookie("testmode"); //テストモード切替 setcookie("ckelead"); //リードタイム設定 setcookie("ckeshime"); //締め時間設定 setcookie("ckecen"); //利用センター設定 setcookie("ckecenterdayexe"); //センター発注締め処理用 15分置きにチェックする setcookie("ckecenterpastdayexe"); //発注締め処理 /* echo "\n"; echo "\n"; echo "$systemname\n"; echo "\n"; echo "\n"; echo "\n"; echo "ログアウトしました。

\n"; echo "\n\n"; myclose(); exit; */ } /*------------------------------------------------------------ * 関数名 : Eucjp() * 返却値 : EUCに変換された文字列 * 引数 : EUCに変換する文字列 * 使用例 : *------------------------------------------------------------ */ Function Eucjp($chara){ mb_language("Japanese"); if ($chara == "") { //何も無しなら空文字で返す return ""; } else { return mb_convert_encoding(trim($chara),"UTF-8","auto"); } } /*------------------------------------------------------------ * 関数名 : Eucsjis() * 返却値 : EUCに変換された文字列 * 引数 : EUCに変換する文字列 * 使用例 : *------------------------------------------------------------ */ Function Eucsjis($chara){ if ($chara == "") { //何も無しなら空文字で返す return ""; } else { return mb_convert_encoding(trim($chara),"UTF-8","SJIS-win"); } } /*------------------------------------------------------------ * 関数名 : Sjis() * 返却値 : SJISに変換された文字列 * 引数 : EUC文字列 * 使用例 : *------------------------------------------------------------ */ Function Sjis($chara){ if ($chara == "") { //何も無しなら空文字で返す return ""; } else { $chara = str_replace("㈱","(株)",$chara); return mb_convert_encoding($chara,"SJIS-win","UTF-8"); } } /*------------------------------------------------------------------- * 関数名 : ShowNavBar2() * 返却値 : PRINT出力(返却値なし) * 引数 : 全件数、単位数、現在のページ、テーブル幅 * 説明 : ページ移動のヘッダ表示する * ShowNavBar2($data3[0][0],20,$page,550); *------------------------------------------------------------------*/ function ShowNavBar2($zenken,$size,$page,$width,$order) { if (Numchecker($zenken)> 0) { print "

\n"; print "\t
\n"; #ページ数指定なしは1 if ($page == "") $page=1; #最大頁数 $maxpage = ceil($zenken/$size); #XX~#XXを表示 print "".($size * ($page - 1) + 1)."-"; if ($page == $maxpage) { #最終ページだったら print $zenken ." "; } Else { print ($size * $page).""; } #1.X頁中X頁目を表示(全X件) #print "".$page ."/".$maxpage ."頁目を表示(全 ".$zenken." 件ありました)"; #print "(Total ".$zenken." )"; #print " of ".$zenken.""; # 1-50 of 72 print " / ".$zenken.""; # 1-50 / 72 print "\n\t
\n\t
\n"; #2.<< 前の10件 1 2 3 4 5 次の6件>> if ($page > 1) { #現在ページが2ページ以上だったら「前の件数」を表示 print " "; print "|<< 前の " . $size . " 件 | "; } $iLoop=1; //echo "Page."; while ($iLoop <= $maxpage) { if ($iLoop == $page) { if ($maxpage>1) { //1ページしかない場合は表示しない print " " . $iLoop. ""; } } Else { print " ".$iLoop . " \n"; } $iLoop++; } if ($page != $maxpage) { #現在ページが最終ページでなかったら「次の件数」を表示 print " | "; if ($size > ($zenken - ($page * $size))) { #一番最後の件分の計算処理 $iNextPerPage = $zenken - ($page * $size); print " "; print " 次の " . $iNextPerPage . " 件>>|
\n"; } Else { #一番最後以外は、既定数分 $iNextPerPage = $size; print " "; print " 次の " . $iNextPerPage . " 件>>
\n"; } } print "\n\t
\n"; print "
\n"; } } /*------------------------------------------------------------------- * 関数名 : ShowNavBar3() * 返却値 : PRINT出力(返却値なし) * 引数 : 全件数、単位数、現在のページ、テーブル幅 * 説明 : ページ移動のヘッダ表示する * ShowNavBar3($data3[0][0],20,$page,550); *------------------------------------------------------------------*/ function ShowNavBar3($zenken,$size,$page,$width,$order) { global $strShowNavBar,$strAddJavascript,$strButtonName; if ($strShowNavBar == "") {$strShowNavBar = "更新";}; if ($strButtonName == "") {$strButtonName = "update";}; if (Numchecker($zenken)> 0) { print "\n"; print "\n\n\n"; print "
"; #ページ数指定なしは1 if ($page == "") $page=1; #最大頁数 $maxpage = ceil($zenken/$size); #XX~#XXを表示 print "".($size * ($page - 1) + 1)."-"; if ($page == $maxpage) { #最終ページだったら print $zenken ." "; } Else { print ($size * $page).""; } #1.X頁中X頁目を表示(全X件) #print "".$page ."/".$maxpage ."頁目を表示(全 ".$zenken." 件ありました)"; #print "(Total ".$zenken." )"; #print " of ".$zenken.""; # 1-50 of 72 print " / ".$zenken.""; # 1-50 / 72 print "\n"; #2.<< 前の10件 1 2 3 4 5 次の6件>> if ($page > 1) { #現在ページが2ページ以上だったら「前の件数」を表示 print " "; print "|<< 前の " . $size . " 件 | "; } $iLoop=1; //echo "Page."; while ($iLoop <= $maxpage) { if ($iLoop == $page) { if ($maxpage>1) { //1ページしかない場合は表示しない print " " . $iLoop. ""; } } Else { print " ".$iLoop . " \n"; } $iLoop++; } if ($page != $maxpage) { #現在ページが最終ページでなかったら「次の件数」を表示 print " | "; if ($size > ($zenken - ($page * $size))) { #一番最後の件分の計算処理 $iNextPerPage = $zenken - ($page * $size); print " "; print " 次の " . $iNextPerPage . " 件>>|
\n"; } Else { #一番最後以外は、既定数分 $iNextPerPage = $size; print " "; print " 次の " . $iNextPerPage . " 件>>
\n"; } } print ""; print "
\n
\n"; } } /*------------------------------------------------------------ * 関数名 : Logintitle() * 返却値 : HTML文字列 * 引数 : なし * 使用例 : *------------------------------------------------------------ */ Function Logintitle(){ } /*------------------------------------------------------------ * 関数名 : Menu() * 返却値 : HTML文字列 * 引数 : ページタイトル * 使用例 : *------------------------------------------------------------ */ Function Menu($strpagetitle){ global $functiondata,$userdata; if ($userdata["shozokuname"] == $userdata["name"]) { $userloginname = ""; } else { $userloginname = $userdata["shozokuname"]; } $frag=2; FunctionDataSet(); for ($pi = 0; $pi < sizeof($functiondata); $pi++) { if(($pi>0) and ($functiondata[$pi][3] <> $kubun)) { $main .=" \n\n"; $frag++; } if($functiondata[$pi][3] <> $kubun) { $header .= "
  • ".$functiondata[$pi][2]."
  • \n"; $main .= "
    \n"; } $kubun = $functiondata[$pi][3]; $main .= " ".$functiondata[$pi][0]."\n"; } echo "
    \n"; echo " \n"; echo $main; echo "
    \n"; echo "
    \n"; } /*------------------------------------------------------------ * 関数名 : Menu3() * 返却値 : HTML文字列 * 引数 : ページタイトル * 使用例 : *------------------------------------------------------------ */ Function Menu3($strfilename){ global $functiondata,$userdata; if ($userdata["shozokuname"] == $userdata["name"]) { $userloginname = ""; } else { $userloginname = $userdata["shozokuname"]; } $frag=2; FunctionDataSet(); for ($pi = 0; $pi < sizeof($functiondata); $pi++) { if(($pi>0) and ($functiondata[$pi][3] <> $kubun)) { $main .=" \n\n"; $frag++; } if($functiondata[$pi][3] <> $kubun) { $header .= "
  • ".$functiondata[$pi][2]."
  • \n"; $main .= "
    \n"; } $kubun = $functiondata[$pi][3]; if ($strfilename==$functiondata[$pi][1]) { $main .= " ".$functiondata[$pi][0]."\n"; $mainfrag = $frag; } else { $main .= " ".$functiondata[$pi][0]."\n"; } } echo "
    \n"; echo "
      \n"; echo $header; echo "
    • \n"; echo "
    \n"; echo $main; echo "
    \n"; echo "
    \n"; echo "

    "; } /*------------------------------------------------------------ * 関数名 : Menu4() * 返却値 : HTML文字列 * 引数 : ページタイトル * 使用例 : *------------------------------------------------------------ */ Function Menu4($strfilename){ global $functiondata,$userdata; $strfilename = substr(strrchr($strfilename, "/"), 1); if ($userdata["shozokuname"] == $userdata["name"]) { $userloginname = ""; } else { $userloginname = $userdata["shozokuname"]; } $frag=2;$j = 1; FunctionDataSet(); for ($pi = 0; $pi < sizeof($functiondata); $pi++) { if(($pi>0) and ($functiondata[$pi][3] <> $kubun)) { $main .=" \n

    \n"; $frag++;$j = 1; } if($functiondata[$pi][3] <> $kubun) { $header .= "
  • ".$functiondata[$pi][2]."
  • \n"; $main .= "
    \n"; } $kubun = $functiondata[$pi][3]; if ($strfilename==$functiondata[$pi][1]) { $main .= " ".$functiondata[$pi][0]."\n"; $mainfrag = $frag; } else { $main .= " ".$functiondata[$pi][0]."\n"; } if ($j > 3) { $main .= "
    \n";$j = 0; } $j++; } echo "\n"; echo "

    ▲このページの先頭へ"; echo "

    "; // echo "

    "; echo "

    \n"; echo "
      \n"; echo $header; echo "
    • \n"; echo "
    \n"; echo $main; echo "
    \n"; echo "
    \n"; echo ""; echo "
    \n"; echo "
    \n"; } /*------------------------------------------------------------ * 関数名 : Honbutitle() * 返却値 : HTML文字列 * 引数 : なし * 使用例 : *------------------------------------------------------------ */ Function Honbutitle(){ } /*------------------------------------------------------------ * 関数名 : Honbutitle2() * 返却値 : HTML文字列 * 引数 : なし * 使用例 : *------------------------------------------------------------ */ Function Honbutitle2($strpagetitle){ } /*------------------------------------------------------------ * 関数名 : Honbutitle3() * 返却値 : HTML文字列 * 引数 : ページタイトル、ファイル名 * 使用例 : menu4と対で使用する *------------------------------------------------------------ */ Function Honbutitle3($strpagetitle,$strfilename){ global $userdata; $strfilename = substr(strrchr($strfilename, "/"), 1); if ($userdata["companyname"] ==$userdata["shozokuname"]) { $userloginname = ""; } else { $userloginname = $userdata["shozokuname"]." "; } echo "
    \n"; echo "
    \n"; // echo $userdata["honshaname"]." ".$userdata["gname"]."\n"; echo "\n"; if (FunctionUseCheck("5000")) { echo "\n"; } echo "
    \n"; echo "
    "; if(($userdata["roleid"] <> 4) and ($userdata["roleid"] <> 7) and ($userdata["roleid"] <> 10) and ($userdata["roleid"] <> 11) ){ echo $userdata["companyname"].":"; } echo $userloginname.$userdata["name"]." \n"; echo "
    ".date("Y/m/d A G:i:s")."
    \n"; echo "
    \n"; echo "
    ".$strpagetitle."
    \n"; } /*------------------------------------------------------------ * 関数名 : Testecho() * 返却値 : プリント * 引数 : 文字列 * 説明 : Debugモードであれば出力する。 *------------------------------------------------------------ */ function Testecho($string) { // グローバル宣言をする global $HTTP_COOKIE_VARS; if ($_COOKIE[testmode]=="1") { echo "
    \n"; echo $string."
    \n"; } } /*------------------------------------------------------------ * 関数名 : Testecho2() * 返却値 : プリント * 引数 : 文字列,変数名 * 説明 : Debugモードであれば出力する。 *------------------------------------------------------------ */ function Testecho2($string,$string2) { Testecho("SQL $".$string2."=".$string); } /*------------------------------------------------------------ * 関数名 : Testecho3() * 返却値 : プリント * 引数 : 文字列,フラグ(1:通常 2:TD 3:TH) * 説明 : システム解析用 *------------------------------------------------------------ */ function Testecho3($string,$flg) { global $userdata; if ($userdata["kengen"] < 20 ) { switch($flg) { case 1: echo "
    \n"; echo $string."
    \n"; break; case 2: echo "".$string."\n"; break; case 3: echo "".$string."\n"; break; } } } /*------------------------------------------------------------------- * 関数名 : dbselectin() * 返却値 : select結果のコード列(文字列) * 引数 : SELECT文 * 引数 : IN 句 * 説明 : where句の IN節で入力値の値を返す。サブクエリーが使えないv4.1未満対策用、必ずカラムは1個のみ指定何も無い時は空文字返却 * 使用例 : dbselectin("SELECT code from data","and sm.shohincd in ") *------------------------------------------------------------------- */ function dbselectin( $strsql, /*select文*/ $strsql2 /*IN句*/) { global $my_con; $result=@mysql_query($strsql,$my_con); $row=@mysql_num_rows($result); $i=0; $wherein = $strsql2." ("; while ($i<$row) { $data=@mysql_fetch_row($result); $wherein .= "'".$data[0]."'"; if ($i<($row -1)) { $wherein .= ","; } $i++; } $wherein .= ") "; if ($row==0) $wherein =" and 1=2 "; return $wherein; } /*------------------------------------------------------------ * 関数名 : Chkdate() * 返却値 : TRUE/FALSE * 引数 : (1) i: 調べたい日付 * 説明 : 正しい日付のみTUREとする *------------------------------------------------------------ */ function Chkdate($var) { $data = explode("/",$var); $data2 = explode("-",$var); if ($var=="0000-00-00") return false; if (strlen($var)<8) { return false; } elseif(sizeof($data)==3) { if (checkdate($data[1],$data[2],$data[0])) { return true; } else { return false; } } elseif (sizeof($data2)==3) { if (checkdate($data2[1],$data2[2],$data2[0])) { return true; } else { return false; } } elseif (checkdate(substr($var,4,2),substr($var,6,2),substr($var,0,4))) { return true; } else { return false; } } /*------------------------------------------------------------ * 関数名 : ChkdateB() * 返却値 : TRUE/FALSE * 引数 : (1) i: 調べたい日付 * 引数 : (2) i: チェックするかしないか 1する 2しない * 説明 : 正しい日付のみTUREとする!(ChkdateB($_POST{"shomi".$y},$shomiflg) * 商品マスタのshomiflg 0:期限管理不要 1:賞味期限 2:製造年月日管理 3:入庫日管理 *------------------------------------------------------------ */ function ChkdateB($var,$flg) { if ($flg==0) { return true; } else { return Chkdate($var); } } /*------------------------------------------------------------ * 関数名 : Chkdate2() * 返却値 : 0:実存/1:実存無し * 引数 : (1) i: 調べたい日付 * 説明 : 正しい日付のみTUREとする *------------------------------------------------------------ */ function Chkdate2($var) { $data = explode("/",$var); $data2 = explode("-",$var); if ($var=="0000-00-00") return 1; if(sizeof($data)==3) { if (checkdate($data[1],$data[2],$data[0])) { return 0; } else { return 1; } } elseif (sizeof($data2)==3) { if (checkdate($data2[1],$data2[2],$data2[0])) { return 0; } else { return 1; } } else { if (checkdate(substr($var,4,2),substr($var,6,2),substr($var,0,4))) { return 0; } else { return 1; } } } /*------------------------------------------------------------ * 関数名 : ShimeSet1() * 返却値 : なし * 引数 : 本日よりの日付0は本日 * 説明 : 本日の締め処理を実行しているかどうかを調べて、実行無しなら実行する。 ここで行う締め処理とは 1)ステータステーブルに締め履歴に更新し、発注データのフラグを発注締めのフラグ1に更新することである。 2)入荷予定で入庫実績確定されていないデータを未入荷で確定させる(業態マスターにセットされている時間以後に前日分は確定させる) * および通過型の商品はサマリーして、入庫データに挿入する。 * 使用例 : ShimeSet1(); *------------------------------------------------------------ */ function ShimeSet1($intday){ global $HTTP_POST_VARS; global $my_con; global $company,$companysetuzoku,$strsqldbselect; //ステータスデータ作成 MakeStatusData($intday); //未来日は処理しない if($intday<=0) { //受注データに作業日をセット OperateDateSet($intday); if($intday==0){ //本日なら、現在時刻が発注締め時間を過ぎているセンターのリスト $where = "operatedate=CURDATE() AND hacchutime <= ".date(Gi)." AND status < 2 GROUP BY gyotaiid,centerid"; $list = dbselect("st.gyotaiid,st.centerid","`".$company."gyotai` INNER JOIN `".$company."status` AS st USING ( `gyotaiid` ) ",$where,-1,-1); } else { //過去日なら、ステータスデータがまだ未処理となっているセンターのリスト $where = "operatedate=DATE_ADD(CURDATE(),INTERVAL $intday DAY) GROUP BY gyotaiid,centerid"; $list = dbselect("gyotaiid,centerid","`".$company."status`",$where,-1,-1); $strsql = "UPDATE `".$company."ordermain` as main ,`".$company."ordersheet` as sheet SET orderid_flg = 2 WHERE main.ordermainid = sheet.ordermainid and gyotaiid='".$list[$p][0]."' and centerid='".$list[$p][1]."' and orderid_flg = 1 and operatedate =DATE_ADD(CURDATE(),INTERVAL $intday DAY)"; $result=@mysql_query($strsql,$my_con); mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__); Testecho ("発注締めが受注明細データに実施されました。".$errcode." ".$strsql."\n
    "); #debug } for ($p = 0; $p < sizeof($list); $p++) { $strsql = "UPDATE `".$company."ordermain` SET checkedflg=2 WHERE gyotaiid='".$list[$p][0]."' and centerid='".$list[$p][1]."' and checkedflg=1 and operatedate =DATE_ADD(CURDATE(),INTERVAL $intday DAY)"; $result=@mysql_query($strsql,$my_con); mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__); Testecho ("発注締めが受注データに実施されました。".$errcode." ".$strsql."\n
    "); #debug $strsql = "UPDATE `".$company."status` SET status=1 WHERE status=0 AND gyotaiid='".$list[$p][0]."' AND centerid='".$list[$p][1]."' AND operatedate =DATE_ADD(CURDATE(),INTERVAL $intday DAY)"; $result=@mysql_query($strsql,$my_con); mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__); Testecho ("発注締めがステータスデータに実施されました。".$errcode." ".$strsql."\n
    "); #debug //chekedflg=1の発注締め済みデータに対して、流通型があれば、サマリーして、賞味期限0000-00-00として、センターの入庫予定データに+1日付で追加する。 $strsql = "INSERT into comeindata(honbuid,centercode,shohincd,comeindate,passqty,comeinflg,creater,createdate) SELECT os.honbuid,os.centercode,os.shohincd,DATE_ADD(CURDATE(),INTERVAL 0 DAY),sum(os.orderqty) AS passqty ,-1 ,'SYSTEM',now() FROM ordersheet AS os INNER JOIN shohinmaster AS sm USING(honbuid,shohincd) WHERE orderdate = CURDATE() and checkedflg = 1 and ryutu_type = 2 GROUP BY honbuid,shohincd,centercode"; /*$result=@mysql_query($strsql,$my_con);*/ //Testecho ("通過型発注が入庫に追加されました。".$errcode." ".$strsql."\n
    "); #debug } } //入庫予定の未確定分の確定処理 $list2 = dbselect("companyid,hcompanyid,comeinfittime","`usecenter`",-1,-1,-1); //処理確定時間リスト for ($p = 0; $p < sizeof($list2); $p++) { $strsql = "UPDATE `".$list2[$p][1].$companysetuzoku."comeindata` SET comeinflg = 1 WHERE comeinflg = 0 and centerid ='".$list2[$p][0]."' and comeindate < "; if(date(Gi) < $list2[$p][2]) { //処理時間前は前々日まで確定 $strsql .= "DATE_ADD(CURDATE(),INTERVAL -1 DAY)"; } else { //処理時間前は前日まで確定 $strsql .= "CURDATE()"; } $result=@mysql_query($strsql,$my_con); mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__); Testecho ("入荷締めが入荷予定データに実施されました。".$errcode." ".$strsql."\n
    "); #debug } } /*------------------------------------------------------------ * 関数名 : ShimeSet2() * 返却値 : なし * 引数 : 何日前までをデータを処理するか * 説明 : 昨日までの締め処理を実行しているかどうかを調べて、実行無しなら一日単位で過去日付から順に実行する。 * 使用例 : Centerdayset2(5); *------------------------------------------------------------ */ function ShimeSet2($start){ global $HTTP_POST_VARS; global $my_con; //昨日までのデータチェック $start = 0 - $start; For ($a=$start;$a<0;$a++) { ShimeSet1($start); } } /*------------------------------------------------------------ * 関数名 : PrintSelectList1() * 返却値 : なし(プリント) * 引数 : デフォルト値 * 説明 : 掲示非掲示をSELECTリストとしてPRINTする。デフォルトを選択できる。 * 使用例 : PrintSelectList1(1); *------------------------------------------------------------ */ function PrintSelectList1($defaultnum){ echo ""; } /*------------------------------------------------------------ * 関数名 : IntervalDay() * 返却値 : 経過日付または日付 * 引数 : (1) int:対象となる月の経過月数 * : (2) int:返却希望日(1:月初 2:月末) * : (3) int:返却希望型(1:日付 2:経過日数) * 説明 : 対象の月の月初の日付、末日の日付または、月初の本日からの経過日数または月末の経過日数を返却する。 * 使用例 : IntervalDay(-1,2,1); 前月の月末の経過日数 *------------------------------------------------------------ */ Function IntervalDay( $target, $intday, $inttype){ //$target = -9 ; //対象となる月 前月なら-1 if ($intday==1) { //月初 $targetmonth = $target." month"; } else { //月末は対象月+1 $targetmonth2 = $target." month"; $target = $target + 1; //対象となる次の月 $targetmonth = $target." month"; } if ($inttype==1) { if ($intday==1) { //対象月の1日 //echo strtotime ($targetmonth); return(date("Y-m-01",strtotime (date("Y-m-01")." ".$targetmonth))); } else { //対象月の末日 +1日した年月日から-1日する //echo strtotime ($targetmonth);echo "
    "; //return(date("Y-m-d",strtotime("-1 day",strtotime (date("Y/m/1",strtotime ($targetmonth))))); //return(date("Y/m/1",strtotime ($targetmonth))); //$a = date("Y/m/1",strtotime ($targetmonth)); //return(date("Y-m-d",strtotime("-1 day",strtotime ($a)))); //return(date("Y-m-d",strtotime("-1 day",strtotime (date("Y/m/1",strtotime ($targetmonth)))))); return(date("Y-m-t",(strtotime (date("Y-m-01")." ".$targetmonth2)))); } } else { //対象となる月の1日 $month1 = (int)date("m",strtotime ($targetmonth)); //本日 $month2 = (int)date("m",strtotime ("now")); if ($month1<=$month2) { //前の月のほうが月数が小さい X月1日の経過日付は? X月前の1日の通産日-現在の通産日=マイナスの何日前 $passday = date("z",strtotime(date("Y/m/1",strtotime ($targetmonth)))) - date("z"); } else { //前の月のほうが月数が大きい X月1日の経過日付は? X月前の1日の通産日-(現在の通産日+X月前の年の一年間(12/31)の通産日)=マイナスの何日前 $passday = date("z",strtotime(date("Y/m/1",strtotime ($targetmonth)))) - date("z") - date("z",strtotime(date("Y/12/31",strtotime ("-1 year")))); } if ($intday==1) { //対象月の1日 return($passday); } else { //対象月の末日は、対象次月の日より1日少ない return(($passday-1)); } } } /*------------------------------------------------------------ * 関数名 : IntervalDate() * 返却値 : 差分日数 日付1が新しいならプラス値 * 引数 : (1) str:日付1 * : (2) str:日付2 * 説明 : 日付1と日付2の日数差分を返却する。日付1-日付2 * 使用例 : IntervalDate("2005-1-1","2004-1-1"); * 使用例 : IntervalDate("2005/1/1","2004/1/1"); *------------------------------------------------------------ */ Function IntervalDate( $strdate1, $strdate2){ $strdate1 = str_replace("-","/",$strdate1); $strdate2 = str_replace("-","/",$strdate2); return((date("U",strtotime(date($strdate1))) - date("U",strtotime(date($strdate2))))/43200); } /*------------------------------------------------------------ * 関数名 : PrintCheckbox() * 返却値 : なし * 引数 : (1) array:表示名称、コードの2次元リスト * : (2) array:コードの1次元リスト デフォルトはarray("0,"0","0")の形で渡す * : (2) str:変数名 * : (2) str:タイプ(1:チェックリストボックス表示、2:リスト値) * 説明 : テーブルリストと、回答リストの2つを渡し、チェックリストボックスか、値をプリントする。ただしリストはコード昇順であること。 * 使用例 : PrintCheckbox($codetabledata,$code,"code",2); 温度帯の表示 * 使用例 : IPrintCheckbox($codetabledata,array("1","2","3"),"code",1); *------------------------------------------------------------ */ function PrintCheckbox( $list, $selectedlist, $name, $type){ $n = sizeof($list); $m = sizeof($selectedlist); for ($i = $j = 0; $i < $n; $i++) { if($list[$i][1] == $selectedlist[$j]) { $str = "checked"; $str2 .= $list[$i][0]." "; $j++; } else { $str = ""; } if ($type==1) { echo "".$list[$i][0]."
    "; } } if ($type==2) { echo $str2; } } /*------------------------------------------------------------ * 関数名 : UpdateShohinLevel() * 返却値 : なし * 引数 : (1) str:対象本部会社名 * 引数 : (2) int:対象テーブル1=所属商品マスター、2=商品マスター * 説明 : 対象の本部会社の商品順位リストから1個づつ、1=所属商品マスター、2=商品マスターの順位カラムを更新する。 * 使用例 : UpdateShohinLevel($company,1); *------------------------------------------------------------ */ function UpdateShohinLevel( $targetcompany,$targettable){ global $my_con; //DB接続 if($targettable == 1) { $strsql = "SELECT sum( shukkaqty) as qty, shozokuid, shohincd FROM `".$targetcompany."salesdetail` WHERE createdate > DATE_ADD(CURDATE(),INTERVAL -180 DAY) GROUP BY shozokuid, shohincd"; $result=mysql_query($strsql,$my_con); Testecho ("順位設定
    ".$strsql); #debug $i=1; while ($data = mysql_fetch_array($result)){ $strsql = "UPDATE `".$targetcompany."shozokushohin` SET poplevel2 = '".$data["qty"]."' WHERE shozokuid='".$data["shozokuid"]."' and shohincd = '".$data["shohincd"]."'"; $result2=mysql_query($strsql,$my_con); Testecho ("順位設定$i
    ".$strsql); #debug $i++; } } else { $strsql = "SELECT sum( shukkaqty) as qty, shohincd FROM `".$targetcompany."salesdetail` WHERE createdate > DATE_ADD(CURDATE(),INTERVAL -180 DAY) GROUP BY shohincd"; $result=mysql_query($strsql,$my_con); $i=1; while ($data = mysql_fetch_array($result)){ $strsql = "UPDATE `".$targetcompany."shohinmaster` SET poplevel = '".$data["qty"]."' WHERE shohincd = '".$data["shohincd"]."'"; $result2=mysql_query($strsql,$my_con); Testecho ("順位設定$i
    ".$strsql); #debug $i++; } } } /*------------------------------------------------------------ * 関数名 : DatabaseAllBackup() * 返却値 : なし * 引数 : なし * 説明 : 接続先のデータベースを全てバックアップする。 * 使用例 : DatabaseAllBackup(); *------------------------------------------------------------ */ function DatabaseAllBackup(){ //include "class_mysqldump.php";includeされていること global $my_con,$datalocation,$hostname,$databasenaming,$hostid,$hostpass,$company,$userdata; myclose(); //バックアップファイル名 $filename = $datalocation."backupdata/allbackupdata_".$company.date("Ymd-Gis").".txt"; //データバックアップ $command = "mysqldump --default-character-set=binary ".$databasenaming." --host=".$hostname." --user=".$hostid." --password=".$hostpass." > ".$filename; system($command); //バックアップクラス作成 //$dump = new MySQLDump($hostname, $hostid,$hostpass,2); //構造作成 //$dump->dumpDatabaseStructure($databasenaming, $filename); //データバックアップ //$dump->dumpDatabaseData($databasenaming, $filename); myopen(); //バックアップ履歴に保存する $filesize = filesize($filename); $strsql ="INSERT INTO backuphistory(executedate,filename,filesize,creater,createdate) VALUES (CURDATE(),'$filename',$filesize,'".$userdata["tid"]."',now())"; $result=@mysql_query($strsql,$my_con); Testecho($strsql); //debug } /*------------------------------------------------------------ * 関数名 : LeadTimeShift() * 返却値 : 1日曜有り、0日曜無し * 引数 : リード日、納品日 * 説明 : //リードタイム中に日曜が含まれていたら、リードタイム日を一日延ばすために1を返す * 使用例 : $orderda += LeadTimeShift($leadtime); *------------------------------------------------------------ */ Function LeadTimeShift($startday,$endday) { //納品日と発注日の間に日曜が含まれていたら、発注日を1日マイナスにする。リードタイム日を一日延ばす。 for ($iii= $startday; $iii <=$endday; $iii++) { $weeday = (int)date("w",strtotime ("".$iii." day")); //0sun,1Mon,2Tue...6Sat 納品の曜日 if ((int)$weeday==0) { return(-1); } } return(0); } /*------------------------------------------------------------ * 関数名 : CodeMaker() * 返却値 : 暗号値 * 引数 : 1:ID用POST変数(週変り)、2:PASS用POST変数 3:PASS用受け取りPOST変数(1時間ズレ) 4~5:日変わり変数(日で変る) 6~8:ダミーランダム変数(毎回違う) * 説明 : ログイン用暗号変数を作成する。 * 使用例 : CodeMaker(1) * POSTするときCodeMaker(1)を変数名とする; 受け取るとき$_POST{CodeMaker(1)} * POSTするときCodeMaker(2)を変数名とする; 受け取るとき$_POST{CodeMaker(2)}か$_POST{CodeMaker(3)}で受け取る *------------------------------------------------------------ */ function CodeMaker($type){ srand((double)microtime()*1000000); $init1 = rand (12509,91955); $init2 = rand (20659,81533); $initword = array("XLS","RAT","ABS","CTC","LAX", "OCT","DVD","JAN","NPN","ROW", "KIX","FUK","PRO","NBA","JAL", "NYC","BOB","CDR","ETC","ALC", "NRT","SWF","EPS","STS","TYO", "PNG","IMG","POP","FRI","SUN"); $identify2 = 28093 + $init2; $identify = $initword[($init1%30)].$identify2; $init0= 15 + (date("w",strtotime ("+6 day")))*6 ; $weekdate = date("w",strtotime ("+0 day")).date("Ymd"); $word = $initword[(int)$weekdate%30].$weekdate; $id = "z".substr(md5($word), 3, 10); //echo $id; $timecode1 = date("G") * $init0; //時刻を表す数字 $timecode2 = (date("G")-1) * $init0; //1時間前の時刻を表す数字 受信時 $pass = substr(crypt($word,$initword[date("w",strtotime ("+5 day"))]), 3, 7); $daypass = crc32($initword[date("w",strtotime ("+2 day"))]); $daypass2 = substr(crc32($initword[date("w",strtotime ("+2 day"))]),3,10); //mt_srand(microtime()*100000); $post1 = substr(md5($timecode1.$pass),3,10); $post2 = substr(md5($timecode2.$pass),3,10); $daypass = substr(md5($daypass),3,10); $daypass2 = substr(md5($daypass2),3,10); Switch($type) { case 1: return $id;break; case 2: return $post1;break; case 3: return $post2;break; case 4: return $daypass;break; case 5: return $daypass2;break; case 6: return $identify;break; case 7: return $identify2;break; case 8: return $rndpass;break; default: return $rndpass2;break; //$_POST{$id}; $_POST{CodeMaker(1)} //$_POST{$timecode1.$pass}; $_POST{CodeMaker(2)} //$_POST{$timecode2.$pass}; $_POST{CodeMaker(3)} } } /*------------------------------------------------------------ * 関数名 : CentercodeRestoration101() * 返却値 : なし * 引数 : なし * 説明 : ordertableに101以外のセンターコードが入っていた場合は、101でないレコードのデータをLOGに出し * 使用例 : CentercodeRestoration101(); *------------------------------------------------------------ */ function CentercodeRestoration101(){ global $my_con,$datalocation; //DB接続 //オーダーテーブルのセンターコードに101でないものが入っていないかを //確認する。101でない数を確認。 $data101 = dbselect("count(orderid)","ordersheet","centercode!=101",-1,-1); $datacount = (int)$data101[0][0]; if ($datacount==0) { //件数はゼロなので対処無し //exit; } else { //件数は有り対処開始 //バックアップログ取得 $strsql = "SELECT * INTO OUTFILE '".$datalocation."backupdata/CenterCodeError".$_COOKIE[ckehonbu]."-".$_COOKIE[cketradex]."-".date("YmdGi").".csv' FIELDS TERMINATED BY ',' optionally enclosed by '\"' FROM ordersheet where centercode!='101'"; $result=@mysql_query($strsql,$my_con); Testecho($strsql); //debug //センターコード101以外を101に強制変更 $strsql = "UPDATE ordersheet SET centercode=101,centername='SIMS共配センター' where centercode!=101"; $result=@mysql_query($strsql,$my_con); Testecho($strsql); //debug //メール送信 $msg2 = "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"; $msg2 .= "SIMSアラート インフォメーション \n"; $msg2 .= "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"; $msg2 .= "注文テーブル ordersheetにセンターコードが101だったデータが\n"; $msg2 .= "$datacount 件ありました。\n"; $msg2 .= "このため、強制的に101に変更する注文締処理を行いました。\n詳細はログに記録されました。\n"; $msg2 .="━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n"; $msg2 = mb_convert_encoding($msg2, "iso-2022-jp", "UTF-8"); //メール送信コードに変換 $fromto = "FROM:\"TRADEX-SYSTEM\"\nBCC:websystem@yahoo.co.jp\nX-mailer:PHP4"; mail("kmogi@eship.co.jp","SYSTEM AUTO ALART",$msg2,$fromto); } } /*------------------------------------------------------------ * 関数名 : mysql_sql_log() * 返却値 : なし * 引数 : (1) str:実行SQL * : (2) int:実行結果影響行 * : (3) str:実行ファイル名 * 説明 : 更新実行されたSQLを保管する * 使用例 : mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__); * mysql_queryの実行後にエラーではない句に投入する *------------------------------------------------------------ */ function mysql_sql_log($strsql,$affected_rows,$page) { global $datalocation,$databasenaming,$userdata; /* //$fp = @fopen($datalocation.date("Ymd-G").".sql", "a") or die("Error!!n"); $fp = @fopen($datalocation."/sql_logs/sql_".$databasenaming."_".date("Ymd")."_".$userdata[tid].".sql", "a") or die("Error!!n"); $strsql = ereg_replace("[\t|\r|\n]"," ",$strsql); $strsql = str_replace("now()","'".date("Y-m-d G:i:s")."'",$strsql); $strsql = str_replace("CURDATE()","'".date("Y-m-d")."'",$strsql); //now()はCURDATE()はSQLを入れ替えしておく //SQL 時間 影響行(結果更新無しは0) スクリプト実行ファイル fputs($fp, $strsql.";\t".date("Y-m-d G:i:s")."\t".$affected_rows."\t".$page."\n"); fclose($fp); */ return(0); } /*------------------------------------------------------------ * 関数名 : mysql_sql_log2() * 返却値 : なし * 引数 : (1) str:実行SQL(SELECT文) * : (2) str:実行ファイル名 * 説明 : データ取得実行されたSQLを保管する * 使用例 : mysql_sql_log2($strsql,$_SERVER['SCRIPT_NAME'].":".__LINE__); * mysql_queryの実行後にエラーではない句に投入する *------------------------------------------------------------ */ function mysql_sql_log2($strsql,$page) { global $datalocation,$databasenaming,$userdata; //$fp = @fopen($datalocation.date("Ymd-G").".sql", "a") or die("Error!!n"); /* $fp = @fopen($datalocation."/sql_logs/sql_".$databasenaming."_".date("Ymd")."_select_".$userdata[tid].".sql", "a") or die("Error!!n"); $strsql = ereg_replace("[\t|\r|\n]"," ",$strsql); $strsql = str_replace("now()","'".date("Y-m-d G:i:s")."'",$strsql); $strsql = str_replace("CURDATE()","'".date("Y-m-d")."'",$strsql); //now()はCURDATE()はSQLを入れ替えしておく //SQL 時間 影響行(結果更新無しは0) ユーザーID スクリプト実行ファイル fputs($fp, $strsql.";\t".date("Y-m-d G:i:s")."\t".$page."\n"); fclose($fp); */ return(0); } /*------------------------------------------------------------ * 関数名 : printlotnum() * 返却値 : Print文 * 引数 : (1) str:ログナンバー * 説明 : 渡されたログナンバーにハイフン付でプリントする * 使用例 : printlotnum('10250167'); *------------------------------------------------------------ */ function printlotnum($lotnum) { if ((int)$lotnum==0) { return(0); } else { print (int)($lotnum/10000); print "-"; print (int)(($lotnum % 10000) / 100); print "-"; print (int)(($lotnum % 10000) % 100); return(0); } } /*------------------------------------------------------------ * 関数名 : returnlotnum() * 返却値 : ハイフン付のロット番号 * 引数 : (1) str:ログナンバー * 説明 : 渡されたログナンバーにハイフン付でプリントする * 使用例 : returnlotnum('10250167'); *------------------------------------------------------------ */ function returnlotnum($lotnum) { if ((int)$lotnum==0) { return(0); } else { $str = (int)($lotnum/10000); $str .= "-"; $str .= (int)(($lotnum % 10000) / 100); $str .= "-"; $str .= (int)(($lotnum % 10000) % 100); return($str); } } /*------------------------------------------------------------ * 関数名 : locationcheck() * 返却値 : 1:実在 0:実在しない * 引数 : ロケーション番号 * 説明 : ロケーションが実在するかをチェックする * 使用例 : locationcheck('240-05-05'); *------------------------------------------------------------ */ function locationcheck($location) { //ロケーションテーブルを確認する $locationdata = dbselect("count(loccode)","location","loccode='".$location."'",-1,-1); return($locationdata[0][0]); } /*------------------------------------------------------------ * 関数名 : lookuplocation() * 返却値 : ロケーション:実在する場合 空文字:実在しない or 固定ロケでない * 引数 : 商品コード,センターコード、予備 * 説明 : 商品コードより固定ロケーションを返却 * 使用例 : lookuplocation($data["shohincd"],$data["centercode"],1); *------------------------------------------------------------ */ function lookuplocation($scd,$cd,$data) { global $userdata; //商品マスタを参照する $locationdata = dbselect("loccode","shohinlocation","honbuid = '".$userdata["honbuid"] ."' and shohincd='".$scd."' and centercode='".$cd."' and freeloc=1",-1,-1); return($locationdata[0][0]); } /*------------------------------------------------------------ * 関数名 : PrintShomi() * 返却値 : なし(HTML) * 引数 : 商品マスタのshomiflg値 * 引数 : 簡易表示無し1,簡易表示有り0 SJISフル表記2 フル表記B3 echo無し 4 * 説明 : 商品の賞味期限管理方法を画面に表示する * 用法 : *------------------------------------------------------------ */ function PrintShomi( $flg,$flg2) { if ($flg2==0) { Switch($flg) { case 1: echo "賞"; break; case 2: echo "製"; break; case 3: echo "入"; break; case 4: echo "出"; break; default: echo "?"; } } elseif ($flg2==1) { Switch($flg) { case 1: echo "賞味期限"; break; case 2: echo "製造日"; break; case 3: echo "入荷日"; break; case 4: echo "出荷日"; break; default: echo "不明"; } } elseif ($flg2==2) { Switch($flg) { case 1: echo "\"".Sjis("賞味期限")."\","; break; case 2: echo "\"".Sjis("製造日")."\","; break; case 3: echo "\"".Sjis("入荷日")."\","; break; case 4: echo "\"".Sjis("出荷日")."\","; break; default: echo "\"".Sjis("不明")."\","; } } elseif ($flg2==3) { Switch($flg) { case 1: echo "賞味期限"; break; case 2: echo "製造日"; break; case 3: echo "入荷日"; break; case 4: echo "納品日"; break; default: echo "不明"; } } elseif ($flg2==4) { Switch($flg) { case 1: return "賞味期限"; break; case 2: return "製造日"; break; case 3: return "入荷日"; break; case 4: return "納品日"; break; default: return "不明"; } } elseif ($flg2==5) { Switch($flg) { case 1: return "賞"; break; case 2: return "製"; break; case 3: return "入"; break; case 4: return "納"; break; default: return "不明"; } } } /*------------------------------------------------------------ * 関数名 : PrintRyutuType() * 返却値 : なし(HTML) * 引数 : 在庫型1 通過型2 * 説明 : 商品流通型を画面に表示する * 用法 : *------------------------------------------------------------ */ function PrintRyutuType( $flg,$flg2) { Switch($flg) { case 1: echo "DC"; break; case 2: echo "TC"; break; default: echo "不明"; } } /*------------------------------------------------------------ * 関数名 : PrintComeinFlg() * 返却値 : なし(プリント) * 引数 : 変数名、デフォルト * 説明 : 入荷区分をSELECTリストとしてPRINTする。デフォルトを選択できる。 * 使用例 : PrintComeinFlg("kubun".$j",$data[kubun]); *------------------------------------------------------------ */ function PrintComeinFlg($flg1,$flg2){ echo "\n"; } /*------------------------------------------------------------ * 関数名 : PrintComeinFlg2() * 返却値 : なし(プリント) * 引数 : 変数名、デフォルト * 説明 : 入荷区分をSELECTリストとしてPRINTする。デフォルトを選択できる。 * 使用例 : PrintComeinFlg2($data[kubun]); *------------------------------------------------------------ */ function PrintComeinFlg2($flg1){ Switch($flg1) { case 1: echo "通常入荷\n"; break; case 2: echo "緊急入荷\n"; break; case 3: echo "入荷訂正"; break; case 4: echo "直送"; break; default: echo "その他"; } } /*------------------------------------------------------------ * 関数名 : DataSet() * 返却値 : なし(変数代入) * 引数 : なし * 説明 : 業態、センター、サプライヤー、納品先のデータをセットする * 使用例 : DataSet(); *------------------------------------------------------------ */ function DataSet(){ global $company,$centerdata,$gyotaidata,$makerdata,$tenpodata,$companydata,$codedata,$deliverydata,$userdata,$strsqldbselect,$settingdata; //センター if ($userdata["kengen"]==30) { $centerdata = dbselect("c.companyname,c.companyid,u.centershimetimeDC,u.centershimetimeTC,c.postcode,c.address1,c.address2,c.tel,c.fax,c.address3,u.ordershimetime","company as c,usecenter as u","c.companyid = u.companyid AND u.gyotaiid='".$userdata["gyotaiid"]."' AND hcompanyid = '".$userdata["hcompanyid"]."' AND c.companyid = '".$userdata["companyid"]."'","c.companyid",-1); } else { $centerdata = dbselect("c.companyname,c.companyid,u.centershimetimeDC,u.centershimetimeTC,c.postcode,c.address1,c.address2,c.tel,c.fax,c.address3,u.ordershimetime","company as c,usecenter as u","c.companyid = u.companyid AND u.gyotaiid='".$userdata["gyotaiid"]."' AND hcompanyid = '".$userdata["hcompanyid"]."'","c.companyid",-1); } //配送業者 if ($userdata["kengen"]==60) { $deliverydata = dbselect("companyname,companyid,namedetail","company","companykind=60 AND companyid='".$userdata["companyid"]."'","companyid",-1); } else { $deliverydata = dbselect("companyname,companyid,namedetail","company","companykind=60","companyid",-1); } //サプライヤーリスト if ($userdata["kengen"] == 40) { //サプライヤーは自分だけ $makerdata = dbselect("companyname,companyid,tel,fax","company","companykind=40 AND companyid='".$userdata["companyid"]."'",-1,-1); //ユーザー情報セット $userdata["centerid"] = $userdata["companyid"]; } else { $makerdata = dbselect("companyname,companyid,tel,fax","company","companykind=40","companyid",-1); } //納品先データの取得 if ($userdata["kengen"] == 50) { $tenpodata = dbselect("shozokuname,shozokuid,gyotaiid,centerid","`".$company."shozokumaster`","shozokuid='".$userdata["shozokuid"]."'","shozokuid",-1); //ユーザー情報セット $userdata["centerid"] = $tenpodata[0][3]; } else { $tenpodata = dbselect("shozokuname,shozokuid,gyotaiid,centerid","`".$company."shozokumaster`",-1,"shozokuid",-1); } //会社データの取得 $companydata = dbselect("companyname,companyid","company",-1,"companyid",-1); $userdata["honshaname"] = GetList($companydata,$userdata["hcompanyid"]); //本社名称 //業態リスト if ($userdata["kengen"]==30) { //センター $gyotaidata = dbselect("gname,g.gyotaiid,hacchutime,nohinweek","`".$company."gyotai` as g,usecenter as u","g.gyotaiid = u.gyotaiid AND hcompanyid = '".$userdata["hcompanyid"]."' AND companyid = '".$userdata["companyid"]."'","gyotaiid",-1); } elseif ($userdata["kengen"]==50) { //納品先 $gyotaidata = dbselect("gname,g.gyotaiid,hacchutime,nohinweek","`".$company."gyotai` as g,`".$company."shozokumaster` as s","g.gyotaiid = s.gyotaiid AND shozokuid = '".$userdata["shozokuid"]."'","gyotaiid",-1); } else { $gyotaidata = dbselect("gname,g.gyotaiid,hacchutime,nohinweek","`".$company."gyotai` as g","gyotaiid='".$userdata["gyotaiid"]."'","gyotaiid",-1); } //温度帯 $codedata = dbselect("cname,code","`".$company."code`","codekind=1","code",-1); //設定データ $data = dbselect("settingid,setting_flg","`setting`",-1,-1,-1); $i = 0; while ($i < count($data)) { $settingdata[$data[$i][0]] = $data[$i][1]; $i++; } } /*------------------------------------------------------------ * 関数名 : FunctionDataSet() * 返却値 : 変数代入 * 引数 : ユーザー名(COOKIE) * 説明 : ユーザーが使える画面名、プログラム名をセットする * 使用例 : FunctionDataSet(); *------------------------------------------------------------ */ function FunctionDataSet(){ global $functiondata,$userdata; $functiondata = dbselect("functionname,pgname,kubunname,kubun","userrole as u,rolefunction as r,function as f","u.roleid=r.roleid AND r.functionid=f.functionid AND u.userroleid='".$userdata["userroleid"]."' AND dispmenu = '1'","kubun,level,f.functionid",-1); } /*------------------------------------------------------------ * 関数名 : FunctionCheck() * 返却値 : True/False * 引数 : 機能ID、ユーザー名(COOKIE) * 説明 : ユーザーが使える画面名、プログラム名をセットする * 使用例 : FunctionCheck('0100'); *------------------------------------------------------------ */ function FunctionCheck($funcid){ /* $functiondata = dbselect("functionname,pgname","userrole,rolefunction,`function`","userrole.roleid=rolefunction.roleid AND rolefunction.functionid=function.functionid AND tid='".$userdata["kengen"]."' AND rolefunction.functionid='".$funcid."'","kubun,level,f.functionid",-1); if (sizeof($functiondata)==1) { return True; } else { return False; } */ } /*------------------------------------------------------------ * 関数名 : PrintStatusArrow() * 返却値 : なし(HTML) * 引数 : (1) int: ステップ総数 * : (2) int: 実行ステップ数 * 説明 : 進捗状況を矢印のHTMLで出力 *------------------------------------------------------------ */ function PrintStatusArrow( $total, $selected) { for ($i = 1; $i <= $total; $i++) { if ($i<=$selected) { echo ""; } else { echo ""; } } } /*------------------------------------------------------------ * 関数名 : PrintHikiateStatus() * 返却値 : なし(HTML) * 引数 : (1) int: ステップ総数 * 引数 : (2) int: statusテーブルのstatus * 説明 : 文字で出力 *------------------------------------------------------------ */ function PrintHikiateStatus( $total, $selected) { PrintStatusArrow($total,$selected); echo "

    \n"; Switch($selected) { case 0: echo "受注中\n"; break; case 1: echo "1. 受注締め済・受注承認待ち\n"; break; case 2: echo "2. 受注承認済・仮引当待ち\n"; break; case 3: echo "3. 仮引当済・欠品対応待ち\n"; break; case 4: echo "4. 欠品対応済・出荷確定待ち\n "; break; case 5: echo "5. 出荷確定済・引当確定待ち\n"; break; case 6: echo "6. 引当確定済\n"; break; default: echo "7. 出荷確定済\n"; } } /*------------------------------------------------------------ * 関数名 : MakeStatusData() * 返却値 : なし * 引数 : (1) int: 本日からの日付0は本日 * 説明 : $company.statusデータを作成する *------------------------------------------------------------ */ function MakeStatusData( $int) { global $my_con,$company; //DB接続 $int = (int)$int; //14日前からデータを作成する for($str="", $pi=-14; $pi <= $int; $pi++) { $str ="operatedate=DATE_ADD(CURDATE(),INTERVAL $pi DAY)"; //データがなければステータスデータにデータ挿入 $statusdata = dbselect("count(statusid)","`".$company."status`",$str." GROUP BY operatedate",-1,-1); if ((int)$statusdata[0][0]==0) { $strsql ="INSERT INTO `".$company."status` (operatedate,gyotaiid,centerid,picktimes) SELECT DATE_ADD(CURDATE(),INTERVAL $pi DAY),gyotaiid,centerid,picktimes FROM `".$company."shozokumaster` GROUP BY gyotaiid,centerid,picktimes"; $result=mysql_query($strsql,$my_con); Testecho ($strsql); #debug mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__); } } } /*------------------------------------------------------------ * 関数名 : DataUpdate() * 返却値 : なし * 引数 : (1) str: 対象テーブル名 * 引数 : (2) str: キー項目名 * 引数 : (3) str: キー * 引数 : (4) str: 対象項目名 * 引数 : (5) str: 更新内容 * 説明 : 対象テーブルの指定キーの対象項目を更新する valueには''を使用時につける * 使用例 : DataUpdate("$company.status","statusid",$_POST[id],"grosstime","now()"); *------------------------------------------------------------ */ function DataUpdate( $table, $key, $keyvalue, $columun, $value) { global $my_con; //DB接続 $strsql ="UPDATE `$table` SET `$columun` = $value WHERE `$key`=$keyvalue LIMIT 1"; $result=mysql_query($strsql,$my_con); Testecho ($strsql); #debug mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__); } /*------------------------------------------------------------ * 関数名 : OperateDateSet() * 返却値 : なし * 引数 : 本日よりの日付0は本日 * 説明 : 発注データに作業日をセットする * 使用例 : OperateDateSet(0); *------------------------------------------------------------ */ function OperateDateSet($intday){ global $HTTP_POST_VARS; global $my_con; global $company; $intday2 = $intday + 1; $strsql = "UPDATE `".$company."ordermain` SET operatedate=DATE_ADD(CURDATE(),INTERVAL $intday DAY) WHERE operatedate is null AND deliverdate=DATE_ADD(CURDATE(),INTERVAL $intday2 DAY)"; $result=@mysql_query($strsql,$my_con); mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__); // Testecho ("作業日セットが実施されました。".$errcode." ".$strsql."\n
    "); #debug } /*------------------------------------------------------------ * 関数名 : PrintMsg() * 返却値 : echo文 * 引数 : エラーメッセージ,OKメッセージ,横幅(pix) * 説明 : エラーメッセージを色つきで表示する * 使用例 : PrintMsg($msgerr,$msgok,200); *------------------------------------------------------------ */ function PrintMsg($err,$ok,$width){ if(strlen($err)>0) { echo "

    ".$err."
    "; } elseif(strlen($ok)>0) { echo "
    ".$ok."
    "; } } /*------------------------------------------------------------ * 関数名 : PrintSelectListB() * 返却値 : echo文(SELECT) * 引数 : (1) i: プルダウンリストの配列 * [i][0]表示文字列[i][1]value コード値は2番目 * : (2) i: リストの中でどれをSelectedにするか(配列要素番号) * : (3) i: 行頭スペース数 * 説明 : 日付、日付、件数の配列からSELECT句を生成する 値は本日よりの経過日数 * 使用例 : PrintSelectListB($comeindata,$_POST[chgday],0); $comeindataはSELECT date,date,count(id)の配列 配列3番目の件数は無くても良い * 生成例 : *------------------------------------------------------------ */ function PrintSelectListB( $list, $selected, $spaceNo ) { for($space=" ", $pi=1; $pi < $spaceNo; $pi++) { $space .= " "; } $n = sizeof($list); for ($pi = 0; $pi < $n; $pi++) { $interval = date_diff($list[$pi][1],date("Y-m-d")); $str = $space.""; $str .= $list[$pi][1]; if((int)$list[$pi][2]>0) $str .= " (".$list[$pi][2]."件)"; if($interval["days"]==0) $str .= " 本日"; $str .= "\n"; echo $str; } } /*------------------------------------------------------------ * 関数名 : date_diff() * 返却値 : array 連想配列 * 引数 : (1) str:"YYYY-MM-DD" * : (2) str:"YYYY-MM-DD" * 説明 : (1)(2)の日付差分を返す PHP5.3より標準機能として装備するため5.3>ver用 * 使用例 : $interval = date_diff($list[$pi][1],date("Y-m-d")); 現在との時差 $interval["dayes"] : (int)5 *------------------------------------------------------------ */ function date_diff($d1, $d2){ $d1 = (is_string($d1) ? strtotime($d1) : $d1); $d2 = (is_string($d2) ? strtotime($d2) : $d2); $diff_secs = abs($d1 - $d2); $base_year = min(date("Y", $d1), date("Y", $d2)); $diff = mktime(0, 0, $diff_secs, 1, 1, $base_year); $result = array( "years" => date("Y", $diff) - $base_year, "months_total" => (date("Y", $diff) - $base_year) * 12 + date("n", $diff) - 1, "months" => date("n", $diff) - 1, "days_total" => floor($diff_secs / (3600 * 24)), "days" => date("j", $diff) - 1, "hours_total" => floor($diff_secs / 3600), "hours" => date("G", $diff), "minutes_total" => floor($diff_secs / 60), "minutes" => (int) date("i", $diff), "seconds_total" => $diff_secs, "seconds" => (int) date("s", $diff) ); if (($d1 - $d2)<0) { $result["days"] = -$result["days"]; $result["months"] = -$result["months"]; $result["hours"] = -$result["hours"]; } return $result; } /*------------------------------------------------------------ * 関数名 : InputItem() * 返却値 : なし(HTML出力) * 引数 : A.int:出力データ区分(1センター/2納品先/3サプライヤー/4温度帯/5配送/6会社/7業態/8商品) B.int:自動サブミット(1ON/2OFF) C.str:FORM名(-1:sww(デフォルト)/自動サブミットON時はその値) D.int:選択してください表記(1ON/2OFF) E.int:デフォルト値(1.POST使用/2.変数渡し) F.str:デフォルト値(-1:なし/デフォルト値=2のとき) G.int:全ての表示(1:有り/2:無し) * 説明 : INPUTのブロックをHTML出力する * 使用例 : InputItem(1,1,-1,2,1,-1,1); //センター InputItem(2,1,-1,2,2,$shozokuid,1); //納品先 InputItem(3,1,-1,2,1,-1,1); //サプライヤー InputItem(4,1,-1,2,1,-1,1); //温度帯 *------------------------------------------------------------ */ function InputItem( $datakubun, $autosubmit, $formname, $pleaseselect, $defalutkubun, $defaltvalue, $dispall){ global $HTTP_POST_VARS,$centerdata,$gyotaidata,$makerdata,$tenpodata,$companydata,$codedata,$deliverydata,$userdata,$shohindata; //A.出力データ区分(1センター/2納品先/3サプライヤー/4温度帯/5配送/6会社/7業態) Switch($datakubun) { case 1: $strtitle = "センター"; $strpostname = "center"; $setdata = $centerdata; if($userdata["kengen"] == 30) { echo ""; return; } elseif(sizeof($centerdata) == 1) { echo ""; return; } break; case 2: $strtitle = "納品先"; $strpostname = "tenpo"; $setdata = $tenpodata; if ($userdata["kengen"] == 50) { echo ""; return; } elseif(sizeof($tenpodata) == 1) { echo ""; return; } break; case 3: $strtitle = "サプライヤー"; $strpostname = "maker"; $setdata = $makerdata; if ($userdata["kengen"] == 40) { echo ""; return; } elseif(sizeof($makerdata) == 1) { echo ""; return; } break; case 4: $strtitle = "温度帯"; $strpostname = "code"; $setdata = $codedata; break; case 5: $strtitle = "配送"; $strpostname = "deliver"; $setdata = $deliverydata; if ($userdata["kengen"] == 50) { echo ""; return; } break; case 6: $strtitle = "会社"; $strpostname = "com"; $setdata = $companydata; break; case 7: $strtitle = "業態"; $strpostname = "gyotai"; $setdata = $gyotaidata; break; case 8: $strtitle = "商品"; $strpostname = "shohincd"; $setdata = $shohindata; break; default: break; } //E.F.デフォルト値(1.POST使用/2.変数渡し) if($defalutkubun == 1) { $defaltvalue = $_POST{$strpostname}; } else { //$defaltvalue = $defaltvalue; } //HTML出力開始 echo " \n"; echo " $strtitle
    \n"; //C.FORM名(-1:sww/自動サブミットON時はその値) if($formname == -1) { $formname = "sww"; } //納品先リストだけ抽出機能有り if ($datakubun == 2) { echo "\n"; } elseif($datakubun == 8) { echo "\n"; } //B.自動サブミット(1ON/2OFF) echo " \n"; echo "
    \n"; } /*------------------------------------------------------------ * 関数名 : showSearchbox() * 返却値 : HTML出力 * 引数 : (1) str:デフォルト表示の文字Value (2) int:自動サブミット(1ON/2OFF) (3) str:FORM名(-1:sww(デフォルト)/自動サブミットON時はその値) * 説明 : 商品検索のINPUT BOXを出力 * 使用例 : showSearchbox($sw,1,-1); //商品検索 *------------------------------------------------------------ */ function showSearchbox( $sw, $autosubmit, $formname){ //3.FORM名(-1:sww/自動サブミットON時はその値) if($formname == -1) { $formname = "sww"; } echo "\t\n"; echo "\t商品検索
    \n"; //2.自動サブミット(1ON/2OFF) echo "\t\n"; } else { echo ">\n"; } echo "\t
    \n"; } /*------------------------------------------------------------ * 関数名 : showSearchBotton() * 返却値 : HTML出力 * 引数 : (1) str:ボタン文字(-1:デフォルト'検索表示'/またはその文字) (2) str:FORM名(-1:sww(デフォルト)/自動サブミットON時はその値) (3) str:予備 * 説明 : 商品検索の検索ボタンを出力 * 使用例 : showSearchBotton(-1,-1,-1); //検索ボタン *------------------------------------------------------------ */ function showSearchBotton( $str1, $formname, $str3){ if($str1 == -1) { $str1 = "検索"; } //3.FORM名(-1:sww) if($formname == -1) { $formname = "sww"; } echo "\t\n"; echo "\t
    \n"; echo "\t"; echo "\t
    \n"; } /*------------------------------------------------------------ * 関数名 : FunctionUseCheck * 返却値 : true - 使用可能 * false - 使用不可 * 引数 : (1) str:機能ID * 説明 : その機能IDが利用ユーザーが使用可能かをチェックする * 使用例 : FunctionUseCheck('0100'); *------------------------------------------------------------ */ function FunctionUseCheck($strfunction) { global $userdata,$strsqldbselect; $data = dbselect("count(rolefunctionid)","`rolefunction`","roleid = '".$userdata["roleid"]."' and functionid like '".$strfunction."%' and companyid = '".$userdata["hcompanyid"]."'",-1,-1); if ($data[0][0] == 0) { return false; } else { return true; } } function FunctionUseCheck2(){ global $userdata,$strsqldbselect; $test = explode(".",$_SERVER['SCRIPT_NAME']); $test = explode("/",$test[0]); if(!FunctionUseCheck($test[2])) { echo ""; echo ""; title(); echo ""; echo ""; Logout(); echo "ログアウトします。
    同一IDを同時に使用した、または、利用できない領域を参照しました。
    このままお待ちください。"; echo "not available "; echo $_SERVER['SCRIPT_NAME'].$test[2]; var_dump($userdata); echo ""; echo ""; exit; } } /*------------------------------------------------------------ * 関数名 : MailSendMsg * 返却値 : なし(メール送信) * 引数 : (1) str:メール本文 * 引数 : (2) str:メールタイトル * 引数 : (3) int:1:送信 * 説明 : メールをログインユーザーに送信する * 使用例 : MailSendMsg($stremail,"注文確認メール",1);//メール送信 *------------------------------------------------------------ */ function MailSendMsg( $stremail, $subject, $flg) { global $userdata; if($flg == 1) { //$strmsg = "".strftime ("%G/%m/%d (%a) %T",time())."\n"; //$strmsg .= $stremail; $fromname = mb_encode_mimeheader(mb_convert_encoding("LogiGate自動",'UTF-8','auto')); //$fromto = "FROM:$fromname\nBCC:info-logigate@eship.co.jp\nX-mailer:PHP5"; //mb_send_mail($userdata["email"],$subject.strftime("%G/%m/%d",time()),$strmsg,$fromto); MailSendMessage($stremail,$subject,$userdata["email"],$fromname,"info-logigate@eship.co.jp",1); } } /*------------------------------------------------------------ * 関数名 : MailSendMessage * 返却値 : なし(メール送信) * 引数 : (1) str:メール本文 * 引数 : (2) str:メールタイトル * 引数 : (3) str:メール送信先メールアドレス * 引数 : (4) str:メール送信元名称 * 引数 : (5) str:メール送信元メールアドレス * 引数 : (6) int:1:予備フラグ * 説明 : メールをログインユーザーに送信する * 使用例 : MailSendMessage($strmassage,$subject,$userdata["email"],$fromname,"info-logigate@eship.co.jp",1); *------------------------------------------------------------ */ function MailSendMessage( $stremail, $subject, $toaddress, $fromname, $fromaddress, $flg) { $strmsg = "".strftime ("%G/%m/%d (%a) %T",time())."\n"; $strmsg .= $stremail; $fromto = "FROM:$fromname<".$fromaddress.">\nBCC:info-logigate@eship.co.jp\nX-mailer:PHP5"; mb_send_mail($toaddress,$subject.strftime("%G/%m/%d",time()),$strmsg,$fromto); } /*------------------------------------------------------------ * 関数名 : gengo * 返却値 : 元号年 * 引数 : (1) int:西暦 * 引数 : (2) int:1:年のみ、2:元号付き * 説明 : 西暦より元号を作成する * 使用例 : Gengo(date("Y",1); *------------------------------------------------------------ */ function Gengo( $intyear, $intflg){ $gengo = array("平成", "昭和", "大正", "明治"); $gengo_year = array(1988, 1925, 1911, 1867); foreach($gengo_year as $key=>$val) { if ($intyear > $val) { if($intflg == 1) { return($intyear - $val); } else { return $gengo[$key].($intyear - $val)."年"; } } } return 0; } /*------------------------------------------------------------ * 関数名 : sqlinjection * 返却値 : インジェクション対策された値 * 引数 : (1) str:POSTされた値 * 引数 : (2) str:予備 * 説明 : POSTされた値をインジェクション対策する * 使用例 : sqlinjection($_POST["memo"],-1); *------------------------------------------------------------ */ function sqlinjection( $string, $yobi) { $string = trim($string); $string = str_replace("'","’",$string); $string = str_replace("\"","",$string); $string = str_replace("%","%",$string); $string = htmlspecialchars($string); $string = stripslashes($string); $string = mysql_real_escape_string($string); return $string; } /*------------------------------------------------------------ * 関数名 : showStaffSearchbox() * 返却値 : HTML出力 * 引数 : (1) str:デフォルト表示の文字Value (2) int:自動サブミット(1ON/2OFF) (3) str:FORM名(-1:sww(デフォルト)/自動サブミットON時はその値) * 説明 : セラピスト検索のINPUT BOXを出力 * 使用例 : showStaffSearchbox($sw,1,-1); //商品検索 *------------------------------------------------------------ */ function showStaffSearchbox( $sw, $autosubmit, $formname){ global $userdata,$staff_data; //3.FORM名(-1:sww/自動サブミットON時はその値) if($formname == -1) { $formname = "sww"; } echo "\t\n"; if($userdata["roleid"] == 7) { echo "\tセラピストコード
    \n"; } else { echo "\tセラピストコード/氏名
    \n"; } //2.自動サブミット(1ON/2OFF) echo "\t\n"; } else { echo ">\n"; } if((sizeof($staff_data) > 1 ) and ($userdata["roleid"] <> 7) and ($sw <> "")) { echo " \n"; } echo "\t
    \n"; } ?>