"") {
//発注確定分
$intshowcart = 2;
} else {
//カート
$intshowcart = 1;
}
Testecho ("INTSHOWCART".$intshowcart);
//画面表示分け(カート表示か、注文表示)
if($intshowcart == 2) {
$strtitle = "発注訂正(確定分)";
$strsqlcartflg = " and cartflg = 1 ";
} else {
$strtitle = "発注入力(カート内容)";
$strsqlcartflg = " and cartflg = 0 ";
}
//1ページ数
if($_POST[pageset]=="") {
$pageset = 50;
} else {
$pageset = $_POST[pageset];
}
//レコードの指定
if ($_POST[pagenum] == "") {
$page = 1;
} else {
$page = (int)$_POST[pagenum];
}
//緊急出荷
if($_POST["quick"] == 1) {
$intquick = 1;
} else {
$intquick = 0; //通常
}
//センターコード
if ($userdata["kengen"] == 30) {
$centerid = $userdata["centerid"];
} elseif ($userdata["kengen"] == 50) {
$centerid = $userdata["centerid"];
} elseif ($_POST[tenpo] <>"") {
//納品先マスターから取得する
$data = dbselect("leadtime,shimetime,centerid,gyotaiid,picktimes","`".$company."shozokumaster`","shozokuid='".$_POST[tenpo]."'",-1,-1);
$centerid = $data[0][2];
} else {
//6304で店舗選択がない。エラー
$centerid = "";echo "ER5055";
}
PostData();
//発注締め時間の表記
if ((int)$userdata["hacchutime"] < 10) {
$shimestr = "00:0".$userdata["hacchutime"];
} elseif ((int)$userdata["hacchutime"]<100) {
$shimestr = "00:".substr($userdata["hacchutime"], 0, 2);
} elseif ((int)$userdata["hacchutime"]<1000) {
$shimestr = substr($userdata["hacchutime"], 0, 1).":".substr($userdata["hacchutime"], 1, 2);
} else {
$shimestr = substr($userdata["hacchutime"], 0, 2).":".substr($userdata["hacchutime"], 2, 2);
}
//出荷作業日の特定
if($userdata["hacchutime"] <= (int)date("Gi")) {
//締め時間を過ぎている時は翌々日
$operatedate = 2;
} else {
//締め時間前は翌日
$operatedate = 1;
}
Testecho ("centercode= $centerid operatedate= $operatedate ");
Testecho ("発注締時間shimetime= ".$userdata["hacchutime"]." / $shimestr Gi=".date("Gi"));
//メール用
$shohindata = dbselect("sm.shohinmei,sm.shohincd","`".$company."shohinmaster` AS sm inner join `".$company."shozokushohin` AS ts USING(shohincd)","ts.shozokuid='".$shozokuid."' AND sm.zaiko = 1 AND sm.shohin_kubun1 = 0 ",-1,-1);
$errcount = 0; //エラーカウント
$okcount = 0; //エラーカウント
$errmsg = ""; //エラーメッセージ
$stremail = "作業日:".date("Y/m/d",strtotime ("".$operatedate." day"))."\n"; //メールメッセージ
$stremail .= "納品先:".GetList($tenpodata,$shozokuid)."\n";
//発注処理
if (($_POST[update] <> "")){
$intPageNum = $pageset*($page - 1) + 1;
/*
入力無し 修正前データ有り ⇒削除
入力無し 修正前データ無し ⇒変更無し
入力有り 数値以外 ⇒変更無し
入力有り 数値 数値0 ⇒削除
入力有り 数値 制限値超え ⇒変更無し
入力有り 数値 修正前と異値 修正前無 ⇒新規
入力有り 数値 修正前と異値 修正前有 ⇒更新
入力有り 数値 修正前と同値 備考欄変更有り ⇒備考変更
入力有り 数値 修正前と同値 備考欄変更無し ⇒変更無し
*/
//カートフラグ
if($_POST["orderfix"] == 1) {
//新規で注文確定
$cartflg = 1;
} elseif($_POST["orderfix"] == 2) {
//注文確定訂正1
$cartflg = 1;
} else {
//カート
$cartflg = 0;
}
For ($y=0;$y<=($_POST[max]);$y++) {
if ($_POST{"shohin".$y} == "") break;
//商品コードがない場合スルー
if ($_POST{"amount".$y} == "") {
if ((int)$_POST{"amountold".$y} == 0) {
//1.旧データ無し&数量NULLは更新対象外とする
$strmode = "none";
Testecho ($y." 1.数量NULLスルー"); #debug
} else {
//2.削除 旧データが0以外で新データがNULL
$strmode = "delete";
Testecho ($y." 2.削除 "); #debug
}
} else {
if(Numchecker3($_POST{"amount".$y}) == "CHR") {
//3.数値欄に文字が入れられたらエラー。
$strmode = "none";
Testecho ($y." 3.数値以外"); #debug
$errmsg .= "No.".($y + $intPageNum)." 数値以外の入力[".$_POST{"amount".$y}."]により更新できない商品がありました。注文削除は0を入れてください。[".$_POST{"shohin".$y}."]
";$errcount++;
} else {
//数値の場合
if(Numchecker2($_POST{"amount".$y}) == 0) {
//4.削除 新データが0
$strmode = "delete";
Testecho ($y." 4.削除"); #debug
$stremail .="[0][取消]".GetList($shohindata,$_POST{"shohin".$y})." [前".$_POST{"amountold".$y}."]\n";
} elseif (Numchecker2($_POST{"amount".$y}) > 32000) { //32000以上の数値入力
//5.数値欄に不正数量が入れられたら何も更新しない。
$strmode = "none";
Testecho ($y." 5.不正数値"); #debug
$errmsg .= "No.".($y + $intPageNum)." 入力桁数を超える数値[".$_POST{"amount".$y}."]の入力により更新できない商品がありました。[".$_POST{"shohin".$y}."]
";$errcount++;
} elseif(Numchecker2($_POST{"amount".$y}) <> (int)$_POST{"amountold".$y}) {
//旧データと新データが異なる
if ((int)$_POST{"amountold".$y} > 0) {
//6.更新 旧データがあり、新データが異なる
$strmode = "update";
Testecho ($y." 6.更新"); #debug
$stremail .="[".$_POST{"amount".$y}."][変更]".GetList($shohindata,$_POST{"shohin".$y})." [前".$_POST{"amountold".$y}."]\n";
} else {
//7.新規 旧データ無し、新データが異なる
$strmode = "insert";
Testecho ($y." 7.新規"); #debug
$stremail .="[".$_POST{"amount".$y}."][新規]".GetList($shohindata,$_POST{"shohin".$y})."\n";
}
} elseif($_POST["orderfix"] == 1) {
//8新規で注文確定
$strmode = "update";
Testecho ($y." 8.新規でFLG更新、数量更新"); #debug
$stremail .="[".$_POST{"amount".$y}."][変更]".GetList($shohindata,$_POST{"shohin".$y})." [前".$_POST{"amountold".$y}."]\n";
} else {
//旧データ数値と新データ数値が同じ
if($_POST{"memo".$y} <> $_POST{"memoold".$y}){
//9.備考欄変更有り
$strmode = "updatememo";
Testecho ($y." 9.数値変更無し+備考欄変更有り=更新"); #debug
} else {
//10.備考欄変更無し
$strmode = "none";
Testecho ($y." 10.数値変更無し+備考欄変更無し=更新無し"); #debug
}
}
}
}
$strsql = "";
//テーブル更新
switch ($strmode) {
case "delete":
$strsql = "DELETE FROM `".$company."ordercart` WHERE ordercartid = '".$_POST{"id".$y}."' LIMIT 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." カート削除 $errcode ".$strsql); #debug
if($_POST["orderfix"] == 2) {
//■B 注文確定の数量変更
//注文明細データを削除
$strsql = "DELETE FROM `".$company."ordersheet` where ordercartid = '".(int)$_POST{"id".$y}."' limit 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 注文明細削除 $errcode ".$strsql); #debug
//■B 注文確定の数量変更
//注文明細データを削除
$strsql = "DELETE FROM `".$company."orderapplication` where ordercartid = '".(int)$_POST{"id".$y}."' limit 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 申請削除 $errcode ".$strsql); #debug
} else {
//■A カートから注文確定 関係なし
//■C カートの数量変更は 関係なし
}
break;
case "none":
// break; 日付変更の場合もあるので、全部更新する
case "update":
$memo = Eucjp($_POST{"memo".$y});
$memo = mysql_escape_string(mb_strcut($memo,0,60));
$strsql = "UPDATE `".$company."ordercart` SET cartqty=".Numchecker2($_POST{"amount".$y}).",operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY),memo='".$memo."',cartflg ='".$cartflg."', updater='".$userdata["tid"]."' where ordercartid = '".(int)$_POST{"id".$y}."' limit 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($strsql);
if($_POST["orderfix"] == 1) {
//■UPDATE A カートから注文確定
//カート→確定時に重複注文のチェック 同一納品先・同一商品・同一発注日が既に存在していたら数量をまとめる(存在しても該当データ以外では最大1行)
//同一データの格納
$datacheck = dbselect("ordercartid,cartqty","`".$company."ordercart`","shozokuid = '".$shozokuid."' and shohincd = '".$_POST{"shohin".$y}."' and centerid = '".$centerid."' and gyotaiid = '".$userdata["gyotaiid"]."' and quickflg = '".$intquick."' and operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY) and ordercartid <> '".$_POST{"id".$y}."'",-1,-1);
Testecho($strsqldbselect);
//2行あるときは、カート行を削除し確定行に追記する。注文データも書き換える
if (sizeof($datacheck) == 1) {
//カート行削除
$strsql = "DELETE FROM `".$company."ordercart` WHERE ordercartid = '".$_POST{"id".$y}."' LIMIT 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." カート削除 $errcode ".$strsql); #debug
//確定行に追加
$strsql = "UPDATE `".$company."ordercart` SET cartqty=".(Numchecker2($_POST{"amount".$y}) + (int)$datacheck[0][1]).", updater = '".$userdata["tid"]."' where ordercartid = '".$datacheck[0][0]."' limit 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 確定行更新 $errcode ".$strsql); #debug
if((int)$_POST{"applicationflg".$y} == 0) {
//注文明細データを更新(承認品以外)
$strsql = "UPDATE `".$company."ordersheet` SET orderqty = ".(Numchecker2($_POST{"amount".$y}) + (int)$datacheck[0][1]).", updater = '".$userdata["tid"]."' where ordercartid = '".$datacheck[0][0]."' limit 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 注文明細更新 $errcode ".$strsql); #debug
} else {
//承認商品は申請データの数量を更新
$strsql = "UPDATE `".$company."orderapplication` SET `cartqty` = ".(Numchecker2($_POST{"amount".$y}) + (int)$datacheck[0][1]).", updater = '".$userdata["tid"]."' where ordercartid = '".$datacheck[0][0]."' limit 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 申請データ修正 $errcode ".$strsql); #debug
}
} elseif((int)$_POST{"applicationflg".$y} == 0) {
//承認以外の商品で、確定データとの重複無しは既にcase直下のUPDATEでordercart更新終了
//注文データ(メインID)の存在を確認する
$datacheck = dbselect("ordermainid","`".$company."ordermain`","shozokuid = '".$shozokuid."' and centerid = '".$centerid."' and gyotaiid = '".$userdata["gyotaiid"]."' and quickflg = '".$intquick."' and operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY)",-1,-1);
Testecho($strsqldbselect);
if (sizeof($datacheck) == 1) {
//ordermainidを取得
$ordermain = $datacheck[0][0];
} else {
//ordermainid無し、注文データ(メイン)を作成
//注文主データを作成
$strsql = "INSERT INTO `".$company."ordermain` (shozokuid,centerid,gyotaiid,inputdatetime,deliverdate,operatedate,quickflg,creater,createdate) SELECT shozokuid,centerid,gyotaiid,now(),null,operatedate,quickflg,'".$userdata["tid"]."',now() FROM `".$company."ordercart` where ordercartid = '".(int)$_POST{"id".$y}."' limit 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
Testecho ($y." 新規注文メイン追加 $errcode ".$strsql); #debug
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
//ordermainidを取得
$datacheck = dbselect("max(ordermainid)","`".$company."ordermain`","creater='".$userdata["tid"]."' and operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY)",-1,-1);
$ordermain = $datacheck[0][0];
}
//注文明細データを追加
$strsql = "INSERT INTO `".$company."ordersheet` (ordermainid,orderqty,shohincd,creater,createdate,memo,ordercartid,staffid) SELECT '".$ordermain."',cartqty,shohincd,'".$userdata["tid"]."',now(),memo,ordercartid,null FROM `".$company."ordercart` where ordercartid = '".(int)$_POST{"id".$y}."' limit 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 新規注文明細追加 $errcode ".$strsql); #debug
} else {
//承認商品は申請データに追加
$strsql = "INSERT INTO `".$company."orderapplication` (`ordercartid`, `shozokuid`, `shohincd`, `centerid`, `gyotaiid`, `inputdate`, `operatedate`, `quickflg`, `cartqty`, `orderid`,`creater`, `createdate`) SELECT
`ordercartid`, `shozokuid`, `shohincd`, `centerid`, `gyotaiid`, `inputdate`, null, `quickflg`, `cartqty`, `orderid`,'".$userdata["tid"]."',now() FROM `".$company."ordercart` where ordercartid = '".(int)$_POST{"id".$y}."' limit 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 申請データ作成 $errcode ".$strsql); #debug
//
if ((int)$_POST{"applicationflg".$y} == 1) {
//承認Aパターン 1
$strsql ="UPDATE body_orderapplication as aa,body_application as a SET aa.manager = a.manager ,aa.authorizer = a.authorizer1 WHERE aa.shozokuid = a.shozokuid and ordercartid = '".(int)$_POST{"id".$y}."'";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 承認Aパターン $errcode ".$strsql); #debug
} else {
//承認Aパターン 2
$strsql ="UPDATE body_orderapplication as aa,body_application as a SET aa.manager = a.manager ,aa.authorizer = a.authorizer2 WHERE aa.shozokuid = a.shozokuid and ordercartid = '".(int)$_POST{"id".$y}."'";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 承認Bパターン $errcode ".$strsql); #debug
}
}
} elseif($_POST["orderfix"] == 2) {
//■UPDATE B 注文確定の数量変更
if((int)$_POST{"applicationflg".$y} == 0) {
//承認以外の商品
//注文データ(メインID)の存在を確認する(日付が変わっていたら取得出来ないはず)
$datacheck = dbselect("ordermainid","`".$company."ordermain`","shozokuid = '".$shozokuid."' and centerid = '".$centerid."' and gyotaiid = '".$userdata["gyotaiid"]."' and quickflg = '".$intquick."' and operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY)",-1,-1);
Testecho($strsqldbselect);
if (sizeof($datacheck) == 1) {
//ordermainidを取得
$ordermain = $datacheck[0][0];
} else {
//ordermainid無し、注文データ(メイン)を作成
//注文主データを作成
$strsql = "INSERT INTO `".$company."ordermain` (shozokuid,centerid,gyotaiid,inputdatetime,deliverdate,operatedate,quickflg,creater,createdate) SELECT shozokuid,centerid,gyotaiid,now(),null,operatedate,quickflg,'".$userdata["tid"]."',now() FROM `".$company."ordercart` where ordercartid = '".(int)$_POST{"id".$y}."' limit 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
Testecho ($y." 新規注文メイン追加 $errcode ".$strsql); #debug
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
//ordermainidを取得
$datacheck = dbselect("max(ordermainid)","`".$company."ordermain`","creater='".$userdata["tid"]."' and operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY)",-1,-1);
$ordermain = $datacheck[0][0];
}
//注文明細データを更新
$strsql = "UPDATE `".$company."ordersheet` SET ordermainid =".$ordermain.",orderqty = ".Numchecker2($_POST{"amount".$y}).", updater = '".$userdata["tid"]."' where ordercartid = '".(int)$_POST{"id".$y}."' limit 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 確定数量変更 $errcode ".$strsql); #debug
} else {
//承認商品は申請データを更新
$strsql = "UPDATE `".$company."orderapplication` SET `cartqty` = ".(Numchecker2($_POST{"amount".$y}) + (int)$datacheck[0][1]).", updater = '".$userdata["tid"]."' where ordercartid = '".(int)$_POST{"id".$y}."' limit 1";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();//if ($errcode==0) $okcount++;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 申請データ修正 $errcode ".$strsql); #debug
}
} else {
//■UPDATE C カートの数量変更
//確定データ無しは既にcase直下のUPDATEでcart更新終了
}
break;
case "updatememo":
/*該当ケースなし*/
break;
case "insert":
/*該当ケースなし*/
break;
default:
Testecho ($y."エラー"); #debug
}
}
}
//表示順の指定
if ($_POST[order] == "") {
$order = 1;
} else {
$order = (int)$_POST[order];
}
//検索用語
$strsql = "";
if ($sw<>"") {
$strsqlsearchword = " and searchword like '%".$sw."%'";
}
//サプライヤー選択
if ($_POST[maker]<>"") {
$strsqlmaker .= " and sm.makercode = '".$_POST[maker]."'";
}
//受注カートデータ
$strsqlorder="SELECT cart.ordercartid,cart.shohincd,cart.cartqty,cart.cartflg FROM `".$company."ordercart` AS cart WHERE cart.operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY) and cart.shozokuid='".$shozokuid."' ".$strsqlcartflg." and staffid is null and quickflg = '".$intquick."' ";
$strsqlorder="($strsqlorder) AS os";
//SELECT項目
$strsqlselsect = "sm.shohincd,mm.companyname,sm.shohinmei,sm.searchword,sm.kikaku,sm.irisuu,sm.aisuu,sm.juryo,os.cartqty,sm.zaiko,os.cartflg,sm.sell_end_date,sm.nisugata,os.ordercartid,TO_DAYS(DATE_ADD(CURDATE(),INTERVAL $operatedate DAY)) - TO_DAYS(sm.sell_end_date) as 'nouhincheck',sm.poplevel,ss.poplevel2,ss.nohinprice,sm.stockoutflg,sm.stockout_comein_date,sm.stockout_memo,sm.shohin_kubun2";
//商品マスタと受注のJOIN指定
$strsqljoin1 = "sm.shohincd = os.shohincd $strsqljoin";
//既注文のみ//発注確認
$strsqlall="INNER JOIN";
if ($userdata["kengen"]==50) {$title= "発注入力";}
//商品マスタをメインに、サプライヤーマスタ内部接続、発注カートテーブル外部接続で、発注日が指定日のリストを取り出す
$strsql2 =
"SELECT $strsqlselsect
FROM `".$company."shohinmaster` AS sm $strsqlall $strsqlorder ON sm.shohincd = os.shohincd,
`company` AS mm ,`".$company."shozokushohin` AS ss
WHERE sm.makercode = mm.companyid and ss.shozokuid = '".$shozokuid."' and sm.shohincd = ss.shohincd "." ORDER BY shohincd";
//mysqlで処理手順が変更されている 2011update
//select * from (`".$company."shohinmaster` LEFT JOIN `受注カートデータ`) LEFT JOIN 会社(サプライヤ)
//=select * from (`".$company."shohinmaster` LEFT JOIN (select 受注ID,受注明細ID,商品ID,受注数 FROM 受注,受注明細) as order) LEFT JOIN tenpomaster
//全数
$result=@mysql_query($strsql2,$my_con);
$maxrow=@mysql_num_rows($result);
mysql_sql_log2($strsql2,$_SERVER['SCRIPT_NAME'].":".__LINE__);
//表示分
$row=$maxrow;
//出荷ステータス
$codedata5 = dbselect("cname,code","`".$company."code`","codekind = 5","code",-1);
//欠品ステータス
$codedata7 = dbselect("cname,code","`".$company."code`","codekind = 7","code",-1);
//表示ボタン ON/OFF制御
if ($intshowcart == 2) {
$strbutton2 = " disabled";//本日注文分の訂正
} else {
$strbutton1 = " disabled";//カートを見る
}
?>