"") { //納品先コード、納品先名称検索
$shop = $_POST[shop];
$strsqlshop = "search like '%".mb_convert_encoding($shop, "UTF-8", "UTF-8")."%'"; //UTF-8に変換して入れる
$tenpodata2 = dbselect("shozokuname,shozokuid","`".$company."shozokumaster`",$strsqlshop,"shozokuid",-1);
if(sizeof($tenpodata2)==1) {
$shozokuid = $tenpodata2[0][1];
$tenpoinputnew =$tenpodata2[0][1];
} else {
$shozokuid = "";
$tenpodata = $tenpodata2 ;
}
} else {
$strsqlshop = -1;
}
//1ページ数
if($_POST[pageset]=="") {
$pageset = 30;
} 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 {
$centerid = "";
}
}
PostData();
//表示順番リスト
$orderlist = array(array("注文頻度","1"),array("本部標準","2"));
//検索処理
$sw = $_POST[searchword];
Testecho($sw);
$sw = mb_convert_kana($sw,'KV'); //全て全角へ変換
Testecho("検索語:".$sw);
//緊急出荷
if($_POST["quick"] == 1) {
$intquick = 1;
} else {
$intquick = 0; //通常
}
//発注締め時間の表記
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 = 1;
} else {
//締め時間前は当日
$operatedate = 0;
}
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 ⇒削除
入力有り 数値 制限値超え ⇒変更無し
入力有り 数値 修正前と異値 修正前無 ⇒新規
入力有り 数値 修正前と異値 修正前有 ⇒更新
入力有り 数値 修正前と同値 備考欄変更有り ⇒備考変更
入力有り 数値 修正前と同値 備考欄変更無し ⇒変更無し
*/
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";
}
} else {
//旧データ数値と新データ数値が同じ
if($_POST{"memo".$y} <> $_POST{"memoold".$y}){
//8.備考欄変更有り
$strmode = "updatememo";
Testecho ($y." 8.数値変更無し+備考欄変更有り=更新"); #debug
} else {
//9.備考欄変更無し
$strmode = "none";
Testecho ($y." 9.数値変更無し+備考欄変更無し=更新無し"); #debug
}
}
}
}
$strsql = "";
//テーブル更新
switch ($strmode) {
case "none":
break;
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 ($strsql);
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}).",memo='".$memo."', 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);
break;
case "updatememo":
$memo = Eucjp($_POST{"memo".$y});
$memo = mysql_escape_string(mb_strcut($memo,0,60));
$strsql = "UPDATE `".$company."ordercart` SET memo='".$memo."', 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);
break;
case "insert":
$memo = Eucjp($_POST{"memo".$y});
$memo = mysql_escape_string(mb_strcut($memo,0,60));
$strsql = "INSERT INTO `".$company."ordercart`
(shozokuid, shohincd,centerid,gyotaiid,inputdate,operatedate,quickflg,cartqty,memo,creater,createdate) values
('".$shozokuid."','".$_POST{"shohin".$y}."','".$centerid."','".$userdata["gyotaiid"]."',CURDATE(),DATE_ADD(CURDATE(),INTERVAL $operatedate DAY),".$intquick.",'".Numchecker2($_POST{"amount".$y})."','".$memo."','".$userdata["tid"]."',now())";
$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);
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]."'";
}
//商品のリストを取り出す(shohin in 句用&総合計数用)
$strsql1 = "SELECT sm.shohincd FROM `".$company."shohinmaster` AS sm inner join `".$company."shozokushohin` AS ts USING(shohincd) WHERE (sm.sell_end_date is null OR sm.sell_end_date >= DATE_ADD(CURDATE(),INTERVAL $operatedate DAY)) AND (sm.sell_start_date is null OR sm.sell_start_date <= DATE_ADD(CURDATE(),INTERVAL $operatedate DAY)) AND ts.shozokuid='$shozokuid' and sm.zaiko=1 and sm.gyotaiid='".$userdata["gyotaiid"]."' AND sm.shohin_kubun1 = 0 ".$strsqlsearchword.$strsqlmaker;
//表示順
if ($order == 1) {
//人気順(納品先別)
$strsqlorderby = " order by poplevel2 desc,sm.shohincd";
$strsql1 .=" order by poplevel2 desc";
} else {
//人気順(商品別)
$strsqlorderby = " order by poplevel desc,sm.shohincd";
$strsql1 .=" order by poplevel desc";
}
//受注カートデータ
$strsqlorder="SELECT cart.ordercartid,cart.shohincd,cart.cartqty,cart.cartflg,cart.operatedate FROM `".$company."ordercart` AS cart WHERE cart.operatedate = DATE_ADD(CURDATE(),INTERVAL $operatedate DAY) and cart.shozokuid='".$shozokuid."' and cartflg = 0 and quickflg = '".$intquick."' ";
$strsqlorder="($strsqlorder) AS oc";
//SELECT項目
$strsqlselsect = "sm.shohincd,mm.companyname,sm.shohinmei,sm.searchword,sm.kikaku,sm.irisuu,sm.aisuu,sm.juryo,oc.cartqty,sm.zaiko,oc.cartflg,sm.sell_end_date,sm.nisugata,oc.ordercartid,TO_DAYS(DATE_ADD(CURDATE(),INTERVAL $operatedate DAY)) - TO_DAYS(sm.sell_end_date) as 'nouhincheck',oc.operatedate,sm.poplevel,ss.poplevel2,ss.nohinprice,sm.stockoutflg,sm.stockout_comein_date,sm.stockout_memo";
//商品マスタと受注のJOIN指定
$strsqljoin1 = "sm.shohincd = oc.shohincd $strsqljoin";
//既注文のみ//発注確認
if($_POST[all]=="1") {
$title="受注入力";
$strsqlall="INNER JOIN";
} else {
$title="受注入力";
$strsqlall="LEFT JOIN";
//データ取得数
$limit = " LIMIT ".($pageset*($page - 1)).",$pageset";
}
if ($userdata["kengen"]==50) {$title= "発注入力";}
//商品マスタをメインに、サプライヤーマスタ内部接続、発注カートテーブル外部接続で、発注日が指定日のリストを取り出す
$strsql2 =
"SELECT $strsqlselsect
FROM `".$company."shohinmaster` AS sm $strsqlall $strsqlorder ON sm.shohincd = oc.shohincd,
`company` AS mm ,`".$company."shozokushohin` AS ss
WHERE sm.makercode = mm.companyid and ss.shozokuid = '".$shozokuid."' and sm.shohincd = ss.shohincd and ".dbselectin($strsql1.$limit," sm.shohincd in ").$strsqlorderby;
//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
//カートの情報取得(カート内分、注文確定分)
$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.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.shozokuid= '".$shozokuid."' and cartflg = 1 and quickflg = '".$intquick."' ",-1,1);
Testecho($strsqldbselect);
//全数
If ($_POST[all]=="1") {//既注文のみ
$result=@mysql_query($strsql2,$my_con);
$maxrow=@mysql_num_rows($result);
} else {
$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);
$row=@mysql_num_rows($result);
mysql_sql_log2($strsql2,$_SERVER['SCRIPT_NAME'].":".__LINE__);
//出荷ステータス
$codedata5 = dbselect("cname,code","`".$company."code`","codekind = 5","code",-1);
//欠品ステータス
$codedata7 = dbselect("cname,code","`".$company."code`","codekind = 7","code",-1);
?>