|
|
|
คือผมจะทำการ UPDATE Data ลง mssql 2012 ครับ ตอนนี้เงื่อนไขผมมี อยู่3 อันแต่ติดที่เงื่อนไขที่ 2 และ3 รบกวนช่วยดูให้ทีครับ |
|
|
|
|
|
|
|
คือผมจะทำการ UPDATE Data ลง mssql 2012 ครับ ตอนนี้เงื่อนไขผมมี อยู่3 อันแต่ติดที่เงื่อนไขที่ 2 และ3 รบกวนช่วยดูให้ทีครับ
1.Serial From ERP คือโจทย์ผม คือ จะต้อง update ค่า serial ที่ได้รับ จากอีก page แต่ที่ติดคือ
ถ้าผมเคยจอง serial 1และ2 ไว้ ของ job 1 และจอง serial 3 ไว้ ของ job2 แต่ตอนที่ผมจะ update job 1ผมส่งค่า serial 3หรือ4 มาอย่างใดอย่างนึง
ฉะนั้นมันต้องไป update serial 1หรือ2 ออกไปแล้วถ้าเกิด serial ที่เลือกมาถูกจองไว้กับ job อื่นแล้ว job อื่นก้ต้องย้ายไปจอง serial อื่นแทนแต่ถ้า ผมเลือก serial 1 และ2 ที่เคยจองไว้ปกติ ก็ไปupdate ที่ serial เดิม
2.No Serial ถ้าผมกด save มาโดยที่ไม่ได้ทำการเลือก serial เลย ตัวจำนวนของ item ของ job 1 ก็ต้องถูกไป reserve ไว้ที่ qty_reserve
แต่ถ้าผมเลือกมา serial มา 1 ตัว อีก1 ตัวไม่ได้เลือกมามันก็ต้องไปลบออกค่า จาก qty_reserveแต่ถ้าผมเลือก job 2 มาตัว qty_reserve มันจะต้องไป + เพิ่ม จากของเดิมเพราะมันอยู่ใน po เดียวกันตอนนี้ที่ผมเขียนมันดันไปลบออก
ช่วยแนะนำวิธีเขียนที่ครับตอนนี้เขียนงงมาก
Code (PHP)
////////////////////////////////////////////////////////////////////////Serial From ERP
foreach($_REQUEST['st_id'] as $key=>$value){
$st_id=$_REQUEST['st_id'][$key];
$st_name=$_REQUEST['st_name'][$key];
$serial_gen=$_REQUEST['serial_gen'][$key];
$project_name=$_REQUEST['project_name'][$key];
$model=$_REQUEST['model'][$key];
elseif($_REQUEST['input_q'][$key]!=''){
$serialerp=$_REQUEST['input_q'][$key];
$sqlsrv="SELECT * FROM joborder_stock.dbo.st_sn where serial = '".$_REQUEST['input_q'][$key]."'";
$params = array();
$options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmt = sqlsrv_query( $conn_stock, $sqlsrv , $params, $options );
$row_count = sqlsrv_num_rows( $stmt );
if($row_count=='0'){
?>
<script language="javascript" charset="tis-620">
alert("Data Incorrect <?=$_REQUEST['input_q'][$key]?>");
window.history.back();
</script>
<?
}////////////if incorret data
else{
echo $sqlnum="select top ".$row_count." id,* FROM joborder_stock.dbo.st_sn where project = '".$project_name."' and name = '".$st_name."' and location = '$job_stock' ";
$stmt = sqlsrv_query( $conn_stock, $sqlnum);
if($rowsrv = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
$modelerp= $rowsrv['model'];
$macerp= $rowsrv['mac_address'];
echo "<br>";
echo $rowsrv[serial]."===".$_REQUEST['input_q'][$key]."<br>";
$qtyck="SELECT * FROM joborder_stock.dbo.st_erp where po_num = '".$rowsrv['po_num']."' and po_line ='".str_replace(' ','',$rowsrv['po_line'])."' ";
$stqty = sqlsrv_query( $conn_stock, $qtyck );
if($rowqty = sqlsrv_fetch_array( $stqty, SQLSRV_FETCH_ASSOC) ) {
}
$old= $n+$ck[2];
$vterp= str_replace (' ','',$customer_name.$code."-".$st_name."-".$old);
$n++;
$qtyup =$rowqty[qty_use]+$row_count;
// "st_nameerp $value = ".$st_name."-".$modelerp."-".$serialerp."-".$macerp."-".$project_name."-"."<br>";
//////SQL query same serial
if($rowsrv[serial] == $_REQUEST['input_q'][$key]){
echo "same";
echo "<br>";
echo $sn = "update joborder_stock.dbo.st_sn set eqm_type='wait_install',last_update='$ms' where serial = '".$_REQUEST['input_q'][$key]."' and location ='$job_stock'";
// $result_sn =sqlsrv_query( $conn_stock, $sn);
}else{
//////SQL query another serial
echo "another";
echo "<br>";
echo $snx = "update joborder_stock.dbo.st_sn set location ='Central Warehouse',used=0,eqm_type='stock',last_update='$ms' where serial = '".$rowsrv[serial]."'";
echo "<br>";
// $result_snx =sqlsrv_query( $conn_stock, $snx);
echo $sny = "update joborder_stock.dbo.st_sn set location ='$job_stock',used=1,eqm_type='wait_install',last_update='$ms' where serial = '".$_REQUEST['input_q'][$key]."'";
// $result_sny =sqlsrv_query( $conn_stock, $sny);
echo "<br>";
}
///////SQL query st erp
$qty = "update joborder_stock.dbo.st_erp set qty_use='$qtyup' where po_num = '".$rowsrv['po_num']."' and po_line='".$rowsrv['po_line']."' ";
// $result_qty =sqlsrv_query( $conn_stock, $qty);
//////SQL query Eqm Tag
$sql_eqm = "INSERT INTO joborder_stock.dbo.eqm_tag (vt_tag, name, model, serial, type, order_no, install_date, exp_date, use_by) VALUES ('$vterp','$st_name','$modelerp','$serialerp','wait_install','$job_stock','$row[installation_date]','$row_wa[warranty_expire]','$user_id')";
// $result =sqlsrv_query( $conn_stock, $sql_eqm);
//////SQL query Eqm LOG
$sql_log = "INSERT INTO joborder_stock.dbo.eqm_log (name, serial, type, date, user_name, status) VALUES ('$st_name','$serialerp','wait_install','$ms','$user_id','A')";
// $result_log =sqlsrv_query( $conn_stock, $sql_log);
//////MySQL query
}//while
$sql1="insert into stock_history values(NULL,'$st_name','$modelerp','$serialerp','','$macerp','$location','$job_stock','$project_name','')";
//$result1 = mysql_query($sql1);
}//else correct data
}//elseif serial erp
////////////////////////////////////////////////////////////////////////No Serial
else{
//echo "st_name = ".$st_id."-".$st_name."-".$model."<br>";
//$patterns = array ('/"/','/ /','/”/','/%/','/-/','/@/');
//echo $patterns[2];
// $st_name=strtolower(preg_replace($patterns,"",$st_name));
$sqlnum="select count(*) as item, po_num,po_line, location FROM joborder_stock.dbo.st_sn where project = '".$project_name."' and name = '".$st_name."' and location = '".$job_stock."' and used = 1 group by po_num,po_line,location";
//echo "<br>" ;
$params = array();
$options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmtnosn = sqlsrv_query( $conn_stock, $sqlnum , $params, $options );
$row_countnosn = sqlsrv_num_rows( $stmtnosn );
while($rowsrv_nosn = sqlsrv_fetch_array( $stmtnosn, SQLSRV_FETCH_ASSOC) ) {
//echo "$st_name = ".$rowsrv_nosn[item]." ".$rowsrv_nosn[po_num]." ".$rowsrv_nosn[po_line]."<br>";
$qtyck="SELECT qty_use FROM joborder_stock.dbo.st_erp where po_num = '".$rowsrv_nosn['po_num']."' and po_line ='".str_replace(' ','',$rowsrv_nosn['po_line'])."' ";
$stqty = sqlsrv_query( $conn_stock, $qtyck );
if($rowqty = sqlsrv_fetch_array( $stqty, SQLSRV_FETCH_ASSOC) ) {
if($job_stock==$rowsrv_nosn[location]){
$num = $rowsrv_nosn[item]-$rowqty[qty_use];
}else{
$num = $rowsrv_nosn[item]+$rowqty[qty_use];
}
//////SQL query st erp
$qty = "update joborder_stock.dbo.st_erp set qty_reserve=$num where po_num = '".$rowsrv_nosn['po_num']."' and po_line='".$rowsrv_nosn['po_line']."' and project = '".$project_name."' and description = '".$st_name."'";
// echo "<br>" ;
$result_qty =sqlsrv_query( $conn_stock, $qty);
}////////////if loop
}////////////while count
//echo "No data"; */
}////////////else no serial
}////////////Close For loop
Tag : PHP, MySQL, Ms SQL Server 2012, JavaScript, Ajax, jQuery
|
|
|
|
|
|
Date :
2017-03-25 22:58:23 |
By :
wahahaboy |
View :
633 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เงื่อนไขเยอะขนาดนี่ไล่ยากนะครับ ลองใช้การ echo ดูค่าตัวแปรในแต่ล่ะ Statement ครับ
|
|
|
|
|
Date :
2017-03-26 23:14:05 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับเปลี่ยนวิธีคิดละ
|
|
|
|
|
Date :
2017-03-27 20:48:34 |
By :
wahahaboy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|