= 1 ";
} else {
$strtitle = "発注(カート内容)";
$strsqlcartflg = " and cartflg = 0 ";
}
//1ページ数
if($_POST[pageset]=="") {
$pageset = 500;
} else {
$pageset = $_POST[pageset];
}
//レコードの指定
if ($_POST[pagenum] == "") {
$page = 1;
} else {
$page = (int)$_POST[pagenum];
}
//緊急出荷
if($_POST["quick"] == 1) {
$intquick = 1;
} else {
$intquick = 0; //通常
}
//センターコード
$centerid = $centerdata[0][1];
PostData();
//発注締め時間の表記
if ((int)$settingdata["order_shimetime_shozoku"] == 1) { //1:店舗Mから発注締め時間 0:業態Mから
$hacchutime = deselect("shimetime","`".$company."shozokumaster","shozokuid = '".$userdata[shozokuid]."'",-1,-1);
$hacchutime = (int)$hacchutime[0][0];
} else {
$hacchutime = (int)$userdata["hacchutime"];
}
if ((int)$hacchutime < 10) {
$shimestr = "00:0".$hacchutime;
} elseif ((int)$hacchutime<100) {
$shimestr = "00:".substr($hacchutime, 0, 2);
} elseif ((int)$hacchutime<1000) {
$shimestr = substr($hacchutime, 0, 1).":".substr($hacchutime, 1, 2);
} else {
$shimestr = substr($hacchutime, 0, 2).":".substr($hacchutime, 2, 2);
}
//出荷作業日の特定
if ($hacchutime == 0) {
//00:00は必ず翌日
$operatedate = date("Y-m-d ",strtotime ("1 day"));
$intstartday = 1;
} elseif($hacchutime <= (int)date("Gi")) {
//締め時間を過ぎている時は翌日
$operatedate = date("Y-m-d ",strtotime ("2 day"));
$intstartday = 1;
} else {
//締め時間前は当日
$operatedate = date("Y-m-d ",strtotime ("1 day"));
$intstartday = 0;
}
if($_POST["chgday"] <> "") {
$operatedate = $_POST["chgday"];
}
Testecho ("centercode= $centerid operatedate= $operatedate ");
Testecho ("発注締時間shimetime= ".$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='".$userdata[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,$userdata[shozokuid])."\n";
//発注処理
if (($_POST[update] <> "")){
$intPageNum = $pageset*($page - 1) + 1;
/*
入力無し 修正前データ有り ⇒削除
入力無し 修正前データ無し ⇒変更無し
入力有り 数値以外 ⇒変更無し
入力有り 数値 数値0 ⇒削除
入力有り 数値 制限値超え ⇒変更無し
入力有り 数値 修正前と異値 修正前無 ⇒新規
入力有り 数値 修正前と異値 修正前有 ⇒更新
入力有り 数値 修正前と同値 備考欄変更有り ⇒備考変更
入力有り 数値 修正前と同値 備考欄変更無し ⇒変更無し
*/
//カートフラグ
if($_POST["orderfix"] == 1) {
$cartflg = 1;
} elseif($_POST["orderfix"] == 2) {
//発注確定
$cartflg = 1;
} else {
//カートを修正しない 0(見るとき)
$cartflg = 0;
}
For ($y=0;$y<=($_POST[max]);$y++) {
if ($_POST{"shohin".$y} == "") break;
//商品コードがない場合スルー
if ($_POST{"amount".$y} == "") {
if ($_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++;
} else {
//8更新
$strmode = "update";
Testecho ($y." 8.更新、数量更新"); #debug
$stremail .="[".$_POST{"amount".$y}."][変更]".GetList($shohindata,$_POST{"shohin".$y})." [前".$_POST{"amountold".$y}."]\n";
}
}
}
$strsql = "";
//テーブル更新
switch ($strmode) {
case "delete":
$strsql = "DELETE FROM `".$company."ordercart` WHERE cartflg <2 and 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 ROW= ".mysql_affected_rows()." ".$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 ROW= ".mysql_affected_rows()." ".$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 ROW= ".mysql_affected_rows()." ".$strsql); #debug
} else {
//■A カートから発注確定 関係なし
//■C カートの数量変更は 関係なし
}
break;
case "none":
// break; 日付変更の場合もあるので、全部更新する
case "update":
//UPDATE 1 CART更新
if((int)$_POST["orderfix"] >= 0) {
//カートを見るとき以外は更新 cartflg=2承認済みは更新対象外
$memo = sqlinjection(Eucjp($_POST{"memo".$y}),-1);
$memo = mysql_escape_string(mb_strcut($memo,0,100));
if($_POST["mode"] == 2) {
//カート内
$stroperate = "NULL";//カート内の変更
} else {
if($_POST["orderfix"] =="1") {
$stroperate = "'".$_POST["chgday"]."'"; //カートからの確定
} else {
$stroperate = "'".$_POST{"operatedate".$y}."'"; //確定済み変更
}
}
$strsql = "UPDATE `".$company."ordercart` SET cartqty=".Numchecker2($_POST{"amount".$y}).",operatedate = ".$stroperate.",memo='".$memo."',cartflg ='".$cartflg."',fishoption ='".$_POST{"option".$y}."', updater='".$userdata["tid"]."' where cartflg <2 and 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." UPDATE1カート更新 $errcode ROW= ".mysql_affected_rows()." ".$strsql); #debug
//UPDATE 2 orderMAIN更新
//発注データ(メインID取得)
$datacheck = dbselect("ordermainid,count(ordermainid)","`".$company."ordermain`","shozokuid = '".$userdata[shozokuid]."' and centerid = '".$centerid."' and gyotaiid = '".$userdata["gyotaiid"]."' and operatedate = $stroperate","updatedate desc",-1);
if($datacheck[0][1] == 0) {
//発注データ(メイン)更新 shozokuidとoperatedateでキーではないため
$strsql = "INSERT INTO `".$company."ordermain` (shozokuid,centerid,gyotaiid,inputdatetime,deliverdate,operatedate,brand,creater,createdate) values ('".$userdata["shozokuid"]."','".$centerid."' ,'".$userdata["gyotaiid"]."',now(), $stroperate ,$stroperate,'".$userdata["brand"]."','".$userdata["tid"]."',now()) ON DUPLICATE KEY UPDATE updater = '".$userdata["tid"]."' ";
$result=mysql_query($strsql,$my_con);
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." UPDATE2 ordermain更新 $errcode ROW= ".mysql_affected_rows()." ".$strsql); #debug
$datacheck = dbselect("ordermainid,count(ordermainid)","`".$company."ordermain`","shozokuid = '".$userdata[shozokuid]."' and centerid = '".$centerid."' and gyotaiid = '".$userdata["gyotaiid"]."' and operatedate = $stroperate","updatedate desc",-1);
}
//UPDATE 3 ordersheet更新
//発注データ(明細)更新
//明細削除
$strsql = "DELETE FROM `".$company."ordersheet` WHERE ordercartid = '".(int)$_POST{"id".$y}."' limit 1";
$result=mysql_query($strsql,$my_con);
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." UPDATE2 ordesheet削除 $errcode ROW= ".mysql_affected_rows()." ".$strsql); #debug
//明細追加
$strsql = "INSERT INTO `".$company."ordersheet` (ordermainid,orderqty,shohincd,creater,createdate,memo,memo2,ordercartid,staffid,orderprice) SELECT '".$datacheck[0][0]."',cartqty,shohincd,'".$userdata["tid"]."',now(),memo,fishoption,ordercartid,null,'".$_POST{"price".$y}."' FROM `".$company."ordercart` where ordercartid = '".(int)$_POST{"id".$y}."' limit 1";
$result=mysql_query($strsql,$my_con);
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." UPDATE2 ordesheet追加 $errcode ROW= ".mysql_affected_rows()." ".$strsql); #debug
}
break;
case "updatememo":
/*該当ケースなし*/
break;
case "insert":
/*該当ケースなし*/
break;
default:
Testecho ($y."エラー"); #debug
}
}
//発注メモを更新
if($_POST["chgday"] <> "") {
// $strsql = "INSERT INTO `".$company."ordermemo` (shozokuid,centerid,gyotaiid,operatedate,memo,creater,createdate) values ('".$shozokuid."' ,'".$centerid."','".$userdata["gyotaiid"]."','".$_POST["chgday"]."','".sqlinjection($_POST[ordermemo],-1)."', '".$userdata["tid"]."',now()) ON DUPLICATE KEY UPDATE memo ='".sqlinjection($_POST[ordermemo],-1)."',updater='".$userdata["tid"]."'"; //UK + PKでうまくいかない
$strsql = "DELETE FROM `".$company."ordermemo` WHERE shozokuid ='".$shozokuid."' AND centerid = '".$centerid."' AND gyotaiid = '".$userdata["gyotaiid"]."' AND operatedate ='".$_POST["chgday"]."'";
$result=mysql_query($strsql,$my_con);
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 注文メモ登録 $errcode ROW= ".mysql_affected_rows()." ".$strsql); #debug
$strsql = "INSERT INTO `".$company."ordermemo` (shozokuid,centerid,gyotaiid,operatedate,memo,creater,createdate) values ('".$shozokuid."' ,'".$centerid."','".$userdata["gyotaiid"]."','".$_POST["chgday"]."','".sqlinjection($_POST[ordermemo],-1)."', '".$userdata["tid"]."',now())";
$result=mysql_query($strsql,$my_con);
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 注文メモ登録 $errcode ROW= ".mysql_affected_rows()." ".$strsql); #debug
}
//暫定
/* $ckdata = dbselect("min(ordercartid) as mi,ordermainid,count(ordercartid) as cnt, max(ordercartid) as ma,shohincd", "`cool_ordersheet`","ordercartid > 0 and createdate >'2013-03-05' group by shohincd ,ordermainid having cnt >1",-1,-1);
$n = sizeof($ckdata);
Testecho ($y." 暫定 $n 件 ".$strsqldbselect); #debug
if($n > 0 ) {
for ($pi = 0; $pi < $n; $pi++) {
$str = " DELETE FROM cool_ordersheet where ordercartid =".$ckdata[$pi][0]." and ordermainid=".$ckdata[$pi][1]." limit 1;";
// $result=mysql_query($str,$my_con);
mysql_sql_log($strsql,mysql_affected_rows(),$_SERVER['SCRIPT_NAME'].":".__LINE__);
Testecho ($y." 暫定2 $errcode ROW= ".mysql_affected_rows()." ".$str); #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]."'";
}
if($_POST["mode"] == "2") {
//カート内更新
} elseif($_POST["chgday"] =="") { //日付の指定がない
$strsqldate =" cart.operatedate BETWEEN DATE_ADD(CURDATE(),INTERVAL 1 DAY) AND DATE_ADD(CURDATE(),INTERVAL 12 DAY) AND ";
} else {
$strsqldate = " cart.operatedate = '".$_POST["chgday"]."' AND ";
}
//受注カートデータ
$strsqlorder="SELECT cart.ordercartid,cart.shohincd,cart.cartqty,cart.cartflg,cart.fishoption,cart.memo,cart.operatedate FROM `".$company."ordercart` AS cart WHERE ".$strsqldate."cart.shozokuid='".$userdata[shozokuid]."' ".$strsqlcartflg." ";
$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.kikaku,sm.shohin_kubun5,concat('1',shohin_midint1,shohin_midint2,shohin_midint3,shohin_midint4,shohin_midint5) as optionflg,os.ordercartid,TO_DAYS('".$operatedate."') - 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,os.fishoption,os.memo,os.operatedate,sm.shohin_string2";
//商品マスタと受注の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 = '".$userdata[shozokuid]."' and sm.shohincd = ss.shohincd "." ORDER BY operatedate,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;
//魚カテゴリー
$codedata107 = dbselect("cname,code","`".$company."code`","codekind = 107","code",-1);
//オプション
$codedata104 = dbselect("cname,code","`".$company."code`","codekind = 104","codeid",-1);
//連絡欄
//$memodata = dbselect("memo,ordermemoid","`".$company."ordermemo`","shozokuid = '".$shozokuid."' and operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY)",-1,-1);
$memodata = dbselect("memo,ordermemoid","`".$company."ordermemo`","shozokuid = '".$shozokuid."' and operatedate = '".$operatedate."'",-1,-1);
Testecho($strsqldbselect);
//表示ボタン ON/OFF制御
if ($intshowcart == 2) {
$strbutton2 = " disabled";//本日発注分の訂正
} else {
$strbutton1 = " disabled";//カートを見る
}
//カートの情報取得(カート内分、発注確定分)
$cartdata["cart"] = dbselect("count(cart.ordercartid),sum(cart.cartqty),sum(ss.nohinprice * cart.cartqty)","`".$company."shohinmaster` AS sm INNER JOIN `".$company."ordercart` AS cart USING(shohincd),`".$company."shozokushohin` AS ss","ss.shozokuid = cart.shozokuid and cartflg = 0 and ss.shohincd = cart.shohincd and (cart.operatedate is null or cart.operatedate >=DATE_ADD(CURDATE(),INTERVAL $intstartday DAY)) and cart.shozokuid= '".$userdata[shozokuid]."' ",-1,1);
Testecho($strsqldbselect);
$cartdata["kakutei"] = dbselect("count(cart.ordercartid),sum(cart.cartqty),sum(ss.nohinprice * cart.cartqty)","`".$company."shohinmaster` AS sm INNER JOIN `".$company."ordercart` AS cart USING(shohincd),`".$company."shozokushohin` AS ss","ss.shozokuid = cart.shozokuid and cartflg >= 1 and ss.shohincd = cart.shohincd and cart.operatedate >= DATE_ADD(CURDATE(),INTERVAL $intstartday DAY) and cart.shozokuid= '".$userdata[shozokuid]."'",-1,1);
Testecho($strsqldbselect);
?>
![]() | |
![]() | |