|
|
|
ช่วยน้องหน่อยค่ะ อยากทราบเกี่ยวการวนลูปตัดสต๊อกค่ะ กรณีต้องไปตัดหลายๆชิ้นใน 1 Row |
|
|
|
|
|
|
|
เป็นการให้เบิกยืมชุด ยืมไ้คั้งล่ะหลายๆชุด เลยเขียนไว้แบบนี้ค่ะ
โดยจะใส่ barcode ของชุด และให้ยืม accessories อื่นด้วย โดยจะต้องนำไปตัดสต๊อกของที่ยืมไปค่ะ โดยชุดจะไปตัด tb.smock_stock
ส่วนชิ้นอื่นๆจะไปตัดตาม id ที่เลือก tb.fbn_size จะต้องเขียนแบบไหนคะ
ขอตัวอย่างหรือคำแนะนำหน่อยนะคะ
Code (PHP)
<?php
session_start();
include("/lib/utility.php");
//include ("head.php");
//include ("head_login.php");
connect_db();
ini_set('display_errors', 1);
error_reporting(~0);
$strKeyword = null;
if(isset($_POST["txtKeyword"]))
{
$strKeyword = $_POST["txtKeyword"];
}
check_login("username", "login.php");
// Prepare Variable
$username = $_SESSION["username"];
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="jquery-1.11.1.min.js" type="text/javascript"></script>
<link rel="shortcut icon" href="stylesheet/img/devil-icon.png"> <!--Pemanggilan gambar favicon-->
<link rel="stylesheet" type="text/css" href="mos-css/mos-style.css">
<style type="text/css">
<!--
body {
background-color: #FFFFFF;
}
-->
</style>
<link rel="stylesheet" type="text/css" href="jquery.datetimepicker.css">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.datetimepicker.js"></script>
<script language="javascript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
</head>
<body>
<form action="phpMySQLAddSave.php" name="frmAdd" method="post">
<tr>
<td bgcolor="#F0FFF0"><p>จำนวนที่ยืม :
<select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
<?php
for($i=1;$i<=50;$i++)
{
if($_GET["Line"] == $i)
{
$sel = "selected";
}
else
{
$sel = "";
}
?>
<option value="<?php echo $_SERVER["PHP_SELF"];?>?Line=<?php echo $i;?>" <?php echo $sel;?>><?php echo $i;?></option>
<?php
}
?>
</select>
</p>
<table align ="center" width="534" border="1">
<tr bgcolor="#8BF2AB">
<th width="100"> <div align="center">Barcode</div></th>
<th width="100"> Type</th>
<th width="100"> <div align="center">Headcover</div></th>
<th width="100"> <div align="center">Smockbag</div></th>
<th width="100"> <div align="center">Shoebag </div></th>
</tr>
<?php
$line = $_GET["Line"];
if($line == 0){$line=1;}
for($i=1;$i<=$line;$i++)
{
?>
<tr>
<td><div align="center"><input type="text" id ="txtBarcode<?php echo $i;?>" name="txtBarcode<?php echo $i;?>" size="20" onkeyup="Inauto('txtBarcod<?php echo $i;?>','txtType<?php echo $i;?>','txtHead<?php echo $i;?>')" autocomplete="off"></div></td>
<td><input type="text" id ="txtType<?php echo $i;?>" name="txtType<?php echo $i;?>" size="20" autocomplete="off"></td>
<td><div align="center"><select name="txtSmockbag<?php echo $i;?>">
<option value="">-- select --</option>
<?php
$strSQL2 = "SELECT * FROM fbn_size where categories_id ='009' ORDER BY size_name ASC";
$objQuery2 = mysql_query($strSQL2) or die ("Error Query [".$strSQL2."]");
while($objResult2 = mysql_fetch_array($objQuery2))
{
if($objResult["size_name"] == $objResult2["size_name"])
{
$sel = "selected";
}
else
{
$sel = "";
}
?>
<option value="<?php echo $objResult2["id"];?>" <?php echo $sel;?>><?php echo $objResult2["size_name"];?></option>
<?php
}
?>
</select></div></td>
<td><div align="center"><select name="txtSmockbag<?php echo $i;?>">
<option value="">-- select --</option>
<?php
$strSQL2 = "SELECT * FROM fbn_size where categories_id ='006' ORDER BY size_name ASC";
$objQuery2 = mysql_query($strSQL2) or die ("Error Query [".$strSQL2."]");
while($objResult2 = mysql_fetch_array($objQuery2))
{
if($objResult["size_name"] == $objResult2["size_name"])
{
$sel = "selected";
}
else
{
$sel = "";
}
?>
<option value="<?php echo $objResult2["id"];?>" <?php echo $sel;?>><?php echo $objResult2["size_name"];?></option>
<?php
}
?>
</select></div></td>
<td align="right"><select name="txtShoebag<?php echo $i;?>">
<option value="">-- select --</option>
<?php
$strSQL2 = "SELECT * FROM fbn_size where categories_id ='007' ORDER BY size_name ASC";
$objQuery2 = mysql_query($strSQL2) or die ("Error Query [".$strSQL2."]");
while($objResult2 = mysql_fetch_array($objQuery2))
{
if($objResult["size_name"] == $objResult2["size_name"])
{
$sel = "selected";
}
else
{
$sel = "";
}
?>
<option value="<?php echo $objResult2["id"];?>" <?php echo $sel;?>><?php echo $objResult2["size_name"];?></option>
<?php
}
?>
</select></td>
</tr>
<?php
}
?>
</table>
<input type="submit" name="submit" value="submit" class="button1">
<input type="hidden" name="hdnLine" value="<?php echo $i;?>">
</form>
</body>
</html>
Tag : PHP, MySQL, Appserv
|
|
|
|
|
|
Date :
2019-05-22 15:00:31 |
By :
Pornwichian |
View :
743 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คหสต. นะครับ
ผมจะลองวิเคราะห์เล่นๆ ดูนะครับ
อย่างแรกผมจะตัด accessories ออกไปก่อนครับ
ผมจะทำฐานข้อมูลอยู่ 2 อย่างครับ
คือ
1.ฐานข้อมูลของ Smock_stork_db ครับ
ฐานข้อมูลนี้จะเป็นการเก็บข้อมูลของชุดครับ
ว่าชุดนี้ใช้ barcode อะไรมีจำนวนกี่ชุด
2.ฐานข้อมูลที่เก็บประวัติการยืมครับ(smock_stock) ก็อันที่คุณบอกว่ายืมได้หลายๆชุดนี้แหละครับ (ผมเด่าว่าเมื่อมีการยืมชุดตัวบาร์โค้ดเราจะเป็นคนคีย์ข้อมูลเองว่าชุดนี้ใช้บาร์โค้ดอะไร ก็คีย์ลงไป)
ต่อไปคุณก็แยกออกครับหน้ายืมก็ส่วนยืม ส่วนหน้าแสดงชุดก็อยู่หน้าแสดงชุด หรือจะเอาไว้หน้าเดียวกันก็ว่ากันไป
ขออธิบายเป็นสเตปนะครับ
1.สร้างหน้าแสดงข้อมูลสถานะของชุดครับ
โดยใช้ฐานข้อมูลของ Smock_stock_db
แล้วก็ดึงข้อมูลของ smock_stock_db
มันก็จะแสดง
1.1 รหัสบาร์โค้ด
1.2 จำนวนชุดทั้งหมดของร้าน สมุติ (20ชุด)
1.3 จำนวนชุดที่ถูกยืม สมุติ (2 ชุด)
วิธีแสดงข้อมูลตรงนี้
เงื่อนไข : ให้เอาข้อมูลของ smock_stock ที่ตรงกับบาร์โค้ดของ smock_stock_db และ smock_stock ต้องมีสถานะเป็น outstock
แล้วก็ num_rows ออกมาตามเงื่อนไข
ก็จะได้ออกมาเป็นตัวเลข
1.4 จำนวนชุดคงเหลือ สมุติ (18 ชุด)
ก็เอาจำนวนที่ถูกยืมลบด้วยจำนวนที่มีอยู่ทั้งหมด
จากกระบวนการก็จะสามารถทราบได้ว่า มีชุดเหลือกี่ชุดโดนยืมไปกี่ชุดครับ
และสามารถบันทึกการยืมได้เรื่อยๆ ส่วนที่ว่าทำยังไงให้ตอนที่บันทึกระบบแจ้งเตือนว่าไม่มีชุดแล้ว ลองไปศึกษาเองครับ
ถึงตอนสุดท้ายก็จะเป็นตอนที่เขาเอาชุดมาคืนครับ ก็เปลี่ยนสถานะในฐานข้อมูล smock_stock จาก Outstock ให้เป็น Instock ตัวเลขการ
คงเหลือของชุดก็จะถูกคำนวนเองครับ
เวลาที่มีชุดใหม่เพิ่มเข้ามาก็บันทึกลงใน Smock_stock_db ครับ
ของผมก็มีแนะนำประมาณนี้ ครับ รอท่านอื่น
|
|
|
|
|
Date :
2019-05-22 16:04:03 |
By :
nobetaking |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะบอกว่า การตัด stock แบบ multi user ตัดทีละหลายรายการ มันมีโอกาสผิดผลาดได้สูง
กรณีสินค้าหมดสต๊อค ถ้าทำการตัดสต๊อคที่ละรายการ
ควรมีตารางคิวของเบิกเพื่อที่จะได้ นำตารางคิวของเบิกไปตรวจสอบกับของใน stock
จะได้ตรวจสอบได้ว่ามีใครเบิกซ้ำซ้อนกันอยู่หรือเปล่า ถ้าไม่มี ก็ทำเบิกตามคิว ได้
ลำดับ การทำงาน
1 add สิ่งที่จะเบิก เข้าตาราง คิว
2 คิวรี่ หาตารางคิวที่เบิกก่อนรายการปัจจุบัน ลบออกจาราตารางของ เหลือของให้เราเบิกครบไหม ถ้าไม่ครบ ก็ทำการลบรายการเบิกหรือจะค้างไว้รอของครบ จะอย่างไรก็ว่าไป
3 ถ้ามีเหลือครบ ก็ทำเบิก มาร์คว่ารายการเบิกนั้นเบิกไปแล้ว หรือลบออกไป จะได้ไม่นำมาคำนวณซ้ำอีก
|
|
|
|
|
Date :
2019-05-22 17:20:03 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|