|
|
|
สอบถาม เรื่อง การออกรายงานชำระเงินค่ะ ยอดค้างชำระติดลบ |
|
|
|
|
|
|
|
ต้องดูโค้ด และ Query เท่านั้นครับ ถึงจะช่วยได้
|
|
|
|
|
Date :
2014-03-10 15:52:46 |
By :
kerb |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
if(($_GET["date1"])&&($_GET["date2"]) != "") //รับวันที่
{
$date1=$_GET['date1'];
$date2=$_GET['date2'];
$d1=substr($date1,0,2);
$d2=substr($date1,3,2);
$d3=substr($date1,6,7);
$d4=substr($date2,0,2);
$d5=substr($date2,3,2);
$d6=substr($date2,6,7);
$new_date1=$d3."-".$d2."-".$d1;
$new_date2=$d6."-".$d5."-".$d4;
$strSQL = "SELECT * FROM payments WHERE pay_date BETWEEN '".$new_date1."' AND '".$new_date2."'";
$objQuery = mysql_query($strSQL);
$row=mysql_num_rows($objQuery);
$nn=0;
while($objResult = mysql_fetch_array($objQuery))
{
$pay_date1=$objResult["pay_date"];
$new_est=substr($pay_date1,0,10);
}
$sql2="SELECT * from contract order by crt_id"; //รายละเอียดการทำสัญญา
$query2=mysql_query($sql2) or die(mysql_error());
while($result2 = mysql_fetch_array($query2))
{
$crt_id = $result2['crt_id'];
$cus_id = $result2['cus_id'];
$crt_price = $result2['crt_price'];
$total_time = $result2['crt_time'];
$sql_cus ="SELECT * from customer where cus_id='".$cus_id."'";
$qry_cus=mysql_query($sql_cus) or die(mysql_error());
while($result_cus= mysql_fetch_array($qry_cus))
{
$cus_name1=$result_cus["cus_name"];
$cus_surname1=$result_cus["cus_surname"];
$sql1="Select * From payments where crt_id='".$crt_id."' and pay_date BETWEEN '".$new_date1."'";
$sql1.=" AND '".$new_date2."' order by pay_id"; //เลขที่สัญญา
$qry_1=mysql_query($sql1) or die(mysql_error());
$rowp=mysql_num_rows($qry_1);
while($result_1= mysql_fetch_array($qry_1))
{
$pay_price=$result_1["pay_price"];
$pay_date=$result_1["pay_date"];
$new_date=substr($pay_date,0,10);
$amount += $pay_price;
$price = $crt_price - $amount; //ค้างชำระ
if($row>0)
{
?>
<tr>
<td align="center"><?=Datethai($new_date);?></td>
<td><div align="center"><?=$crt_id;?></div></td>
<td align="center"><?=$cus_name1." ".$cus_surname1;?></td>
<td align="center"><?=$pay_price;?></td>
<td align="center"><?=$price;?></td>
</tr>
<?php
$nn++;
}// if row>0
} // while pay
} //while cus
if($new_date1&& $new_date2 !="" && $row>0)
{
$sql_p="Select sum(pay_price) as total From payments where crt_id='".$crt_id."'"
$sql_p.=" and pay_date BETWEEN '".$new_date1."' AND '".$new_date2."'"; //เลขที่สัญญา
$qry_p=mysql_query($sql_p) or die(mysql_error());
while($result_p= mysql_fetch_array($qry_p))
{
$pay_price1=$result_p["total"];
if($pay_price1==0)
{
echo "";
}else{
?>
<tr>
<td colspan="3" align="right">
รวมเงินที่ต้องชำระทั้งสิ้น
</td>
<td align="center">
<?php echo "<span class='order-underline'>"."<b>".number_format($pay_price1,2,".",",")."<b>"."</span>";?>
</td>
<td>
</td>
</tr>
<?
} //else $payprce1 =0
} // if row>0
} //while sum payprice
}
}
}
?>
</table>
|
|
|
|
|
Date :
2014-03-10 18:24:04 |
By :
Livethai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
while($result2 = mysql_fetch_array($query2))
032.
{
$price =0; //เน้นตรงนี้เป็นการล้างค่าทุกครั้งที่เปลี่ยนเลขที่
033.
$crt_id = $result2['crt_id'];
034.
$cus_id = $result2['cus_id'];
035.
$crt_price = $result2['crt_price'];
036.
$total_time = $result2['crt_time'];
|
|
|
|
|
Date :
2014-03-10 23:50:18 |
By :
dekkuza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
while($result2 = mysql_fetch_array($query2))
{
$amount=0; //เน้นตรงนี้เป็นการล้างค่าทุกครั้งที่เปลี่ยนเลขที่
$crt_id = $result2['crt_id'];
$cus_id = $result2['cus_id'];
$crt_price = $result2['crt_price'];
$total_time = $result2['crt_time'];
ถ้าเริ่มเลขที่สัญญาใหม่ เอาตัวแปรที่สะสมเงินในแต่ละงวด($amount) ให้ค่า=0 ก่อน ผลลัพธ์ถูกต้องแล้วค่ะ
ขอบคุณสำหรับแนวทางนะคะ
|
ประวัติการแก้ไข 2014-03-11 08:41:23
|
|
|
|
Date :
2014-03-11 08:31:12 |
By :
Livethai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวอย่างรายงาน เบื้องต้น ง่ายฯ
***** มันต้องอย่างนี้ครับ
[x] ผมหวังว่าคุณจะ 'มองออก' และประยุกต์ใช้งานได้
|
|
|
|
|
Date :
2014-03-11 16:31:47 |
By :
love9713 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (JavaScript) Clients Print
window.print(); // แบบบนี้ผมไม่ใช้หรอกครับ
มันต้องอย่างนี้ ผ่านเวป TCP/IP RAW Clients/Server Print Real time.(ESC/P)
-- เครื่องพิมพ์ใบเสร็จ Clients อทิเช่น
--- POS.NET, etc...
-- เครื่องพิมพ์ etc
-- etc...
|
|
|
|
|
Date :
2014-03-11 16:43:16 |
By :
love9713 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#NO 7 อธิบายเพิ่มเติมเผื่อไม่เข้าใจ
ยกตัวอย่าง 8ven eleven สาขาหาดใหญ่ สั่งพิมพ์ใบเสร็จมาที่
ยกตัวอย่าง 8ven eleven เครื่องพิมพ์ สาขานครสวรรค์ (สาขาไหนก็ได้)
แม้แต่ Team 8ven eleven ทั้งหมด ทำได้หรือไม่? (IT + Out source เงินเดือนรวมกันเดือนละหลายล้าน)
ลองไปคิดดูครับ (ลับสมอง)
|
|
|
|
|
Date :
2014-03-11 16:52:17 |
By :
love9713 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
window.print();
// แบบบนี้ผมรู้ตั้งแต่ปี พ.ศ. 2004 แล้วครับ (สุดโบราณ)
|
|
|
|
|
Date :
2014-03-11 16:58:28 |
By :
love9713 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ คำแนะนำ No.5-No.7 เป็นอย่างสูงค่ะ คงจะต้องไปศึกษา
=> TCP/IP RAW Clients/Server Print Real time.(ESC/P)
-- เครื่องพิมพ์ใบเสร็จ Clients อทิเช่น
--- POS.NET, etc...
-- เครื่องพิมพ์ etc
-- etc...
|
|
|
|
|
Date :
2014-03-11 17:00:14 |
By :
Livethai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ไข #NO 9 // แบบบนี้ผมรู้ตั้งแต่ปี พ.ศ. 2004 แล้วครับ (สุดโบราณ)
เป็นดังนี้ ผมเลิกใช้หลังจากพระพุทธเจ้า เสด็จปรินิพพาน ไม่กี่ปีเองครับ
และจาก #NO 9 - ตรงนี้ ลองไปคิดดูครับ (ลับสมอง)
(ผมอธิบายไม่ได้หรอกครับ ถ้าผมทำไม่ได้ ไล่ตั้งแต่ #NO 5 - 9
Good Luck.
|
|
|
|
|
Date :
2014-03-11 17:04:16 |
By :
love9713 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|