'' ) {
$shozokuid = $_POST["shop_code"];
}
//画面モード
if($_POST[mode] == 1) {
//発注確定分
$intshowcart = 2;
} elseif($_POST[mode] == 2) {
//カート
$intshowcart = 1;
} elseif($_POST[orderfix] <> "") {
//発注確定分
$intshowcart = 2;
} else {
//カート
$intshowcart = 1;
}
Testecho ("INTSHOWCART".$intshowcart);
//画面表示分け(カート表示か、発注表示)
if($intshowcart == 1) {
$strtitle = "発注(カート内容)";
$strsqlcartflg = " and cartflg = 0 ";
} else {
$strtitle = "発注(確定分)";
$strsqlcartflg = " and cartflg = 1 ";
}
// 1ページ数
if( $_POST[pageset] == "" ) {
$pageset = 1000;
} else {
$pageset = $_POST[pageset];
}
// レコードの指定
if ( $_POST[pagenum] == "") {
$page = 1;
} else {
$page = (int)$_POST[pagenum];
}
//センターコード
if ($userdata["kengen"] == 30) {
$centerid = $userdata["centerid"];
} elseif ($userdata["kengen"] == 50) {
$centerid = $userdata["centerid"];
} else {
//納品先を指定した場合
if ($_POST[tenpo] <>"") { //納品先マスターから取得する
$data = dbselect("leadtime,shimetime,centerid,gyotaiid,picktimes","`".$company."shozokumaster`","shozokuid='".$_POST[tenpo]."'",-1,-1);
$centerid = $data[0][2];
} else {
//6301で店舗選択がない。エラー
$centerid = "";
}
}
// デバッグ用の出力
PostData();
// セラピストコードの検索処理
$sw = $_POST[searchword];
Testecho( $sw );
//緊急出荷
if ( $_POST["quick"] == 1) {
$intquick = 1;
} else {
$intquick = 0; //通常
}
//出荷作業日の特定
if($userdata["hacchutime"] == 0) {
//00:00は必ず翌日
$operatedate = 1;
} elseif($userdata["hacchutime"] <= (int)date("Gi")) {
//締め時間を過ぎている時は翌日
$operatedate = 1;
} else {
//締め時間前は当日
$operatedate = 0;
}
Testecho ("centercode= $centerid operatedate= $operatedate ");
Testecho ("発注締時間shimetime= ".$userdata["hacchutime"]." / $shimestr Gi=".date("Gi"));
$errcount = 0; //エラーカウント
$okcount = 0; //エラーカウント
$errmsg = ""; //エラーメッセージ
$stremail = "作業日:".date("Y/m/d",strtotime ("".$operatedate." day"))."\n"; //メールメッセージ
$stremail .= "納品先:" . GetList( $tenpodata, $shozokuid ) . "\n";
$staff_code = $_POST[staff_code]; //staff id
$staff_name = $_POST[staff_name]; //staff name
$staff_sex = $_POST[staff_sex];
$shop_name = $_POST[shop_name];
$control_id = $_POST[control_id];
//print_r( $_POST );
//発注処理
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{"flg".$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 {
$strmode = "none";
Testecho ($y." 80.更新無し"); #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
} else {
//■A カートから発注確定 関係なし
//■C カートの数量変更は 関係なし
}
break;
case "none":
// break; 日付変更の場合もあるので、全部更新する
case "update":
$strsql = "UPDATE `".$company."ordercart` SET cartqty=".Numchecker2($_POST{"amount".$y}).",operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY),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}."' and staffid ='".$_POST{"staff".$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
//発注明細データを更新
$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 {
//確定データとの重複無しは既に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) ;
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,staffid 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
}
} elseif($_POST["orderfix"] == 2) {
//■UPDATE B 発注確定の数量変更
//発注データ(メイン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) ;
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
Testecho ($strsql);
} else {
//■UPDATE C カートの数量変更
//確定データ無しは既にcase直下のUPDATEでcart更新終了
}
break;
case "insert":
$strsql = "INSERT INTO `".$company."ordercart`
(shozokuid,shohincd,staffid,centerid,gyotaiid,inputdate,operatedate,quickflg,cartqty,cartflg,creater,createdate) values
('".$shozokuid."','".$_POST{"shohin".$y}."','".$_POST[staffid]."','".$centerid."','".$userdata["gyotaiid"]."',CURDATE(),DATE_ADD(CURDATE(),INTERVAL $operatedate DAY),".$intquick.",'".Numchecker2($_POST{"amount".$y})."','".$cartflg."','".$userdata["tid"]."',now())";
$result=mysql_query($strsql,$my_con);
$errcode =mysql_errno();if ($errcode==0) ;
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($strsql);
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]."'";
}
$hit_flg = 0; // Default
if ( $control_id == 2 ) {
//商品のリストを取り出す(shohin in 句用&総合計数用)
$strsql1 = "SELECT cart.shohincd FROM `" . $company . "ordercart` AS cart WHERE cart.operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY) and cart.staffid != '' and cart.shozokuid = '" . $shozokuid . "' and cart.cartflg = 0";
//受注カートデータ
$strsqlorder="SELECT cart.ordercartid,cart.shohincd,cart.staffid,cart.cartqty,cart.cartflg FROM `".$company."ordercart` AS cart WHERE operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY) and cart.staffid != '' and cart.shozokuid= '".$shozokuid."' and cartflg = 0 and quickflg = '".$intquick."' ";
} else {
//商品のリストを取り出す(shohin in 句用&総合計数用)
$strsql1 = "SELECT cart.shohincd FROM `" . $company . "ordercart` AS cart WHERE cart.operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY) and cart.staffid != '' and cart.shozokuid = '" . $shozokuid . "' and cart.cartflg = 1";
//受注カートデータ
$strsqlorder="SELECT cart.ordercartid,cart.shohincd,cart.staffid,cart.cartqty,cart.cartflg FROM `".$company."ordercart` AS cart WHERE operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY) and cart.staffid != '' and cart.shozokuid= '".$shozokuid."' and cartflg = 1 and quickflg = '".$intquick."' ";
}
$strsqlorder="($strsqlorder) AS os";
//SELECT項目
$strsqlselsect = "sm.shohincd, sm.shohinmei, sm.kikaku, ss.nohinprice, os.ordercartid, os.cartqty, os.cartflg, os.staffid, st.staff_name ";
$strsqlall="INNER JOIN";
$title= "制服関連発注(カート)";
//商品マスタをメインに、サプライヤーマスタ内部接続、発注カートテーブル外部接続で、発注日が指定日のリストを取り出す
$strsql2 =
"SELECT $strsqlselsect
FROM `".$company."shohinmaster` AS sm $strsqlall $strsqlorder ON sm.shohincd = os.shohincd,
`company` AS mm ,`".$company."shozokushohin` AS ss , `".$company."staff` AS st
WHERE sm.makercode = mm.companyid and ss.shozokuid = '".$shozokuid."' and os.staffid = st.staffid and sm.shohincd = ss.shohincd and ".dbselectin($strsql1.$limit," sm.shohincd in ")." ORDER BY staffid,sm.shohincd";
//カートの情報取得(カート内分、発注確定分)
//$cartdata["cart"] = dbselect("count(distinct(sm.shohincd)),sum(cart.cartqty),sum(sm.price_sell * cart.cartqty)","`".$company."shohinmaster` AS sm INNER JOIN `".$company."ordercart` AS cart USING(shohincd)","cart.operatedate =DATE_ADD(CURDATE(),INTERVAL $operatedate DAY) and cart.staffid != '' and cart.shozokuid= '".$shozokuid."' and cartflg = 0 and quickflg = '".$intquick."' ",-1,1);
//Testecho($strsqldbselect);
//$cartdata["kakutei"] = dbselect("count(distinct(sm.shohincd)),sum(cart.cartqty),sum(sm.price_sell * cart.cartqty)","`".$company."shohinmaster` AS sm INNER JOIN `".$company."ordercart` AS cart USING(shohincd)","cart.operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY) and cart.staffid != '' and cart.shozokuid= '".$shozokuid."' and cartflg = 1 and quickflg = '".$intquick."' ",-1,1);
//Testecho($strsqldbselect);
//全数
$result=@mysql_query($strsql1,$my_con);
$maxrow=@mysql_num_rows($result);
mysql_sql_log2($strsql1,$_SERVER['SCRIPT_NAME'].":".__LINE__);
$result=@mysql_query($strsql2,$my_con);
$maxrow=@mysql_num_rows($result);
mysql_sql_log2($strsql2,$_SERVER['SCRIPT_NAME'].":".__LINE__);
//表示分
$row=$maxrow;
//表示ボタン ON/OFF制御
if ($control_id == 3) {
$strbutton2 = " disabled";//本日発注分の訂正
} else {
$strbutton1 = " disabled";//カートを見る
}
?>