|
@ -302,8 +302,7 @@ foreach ($res as $data) { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
// getMI($id); |
|
|
// getMI($id); |
|
|
?> |
|
|
?> |
|
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> |
|
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> |
|
@ -317,28 +316,40 @@ foreach ($res as $data) { |
|
|
return num; |
|
|
return num; |
|
|
} |
|
|
} |
|
|
let total_mi = 0; |
|
|
let total_mi = 0; |
|
|
|
|
|
|
|
|
function getMI(id) { |
|
|
function getMI(id) { |
|
|
var formdata = new FormData(); |
|
|
var formdata = new FormData(); |
|
|
formdata.append('pa', id); |
|
|
formdata.append('pa', id); |
|
|
|
|
|
// formdata.append('user_id', <?= $user_id ?>); |
|
|
var xhr = new XMLHttpRequest(); |
|
|
var xhr = new XMLHttpRequest(); |
|
|
xhr.onreadystatechange = function() { |
|
|
xhr.onreadystatechange = function() { |
|
|
if (this.readyState == 4 && this.status == 200) { |
|
|
if (this.readyState == 4 && this.status == 200) { |
|
|
data = JSON.parse(this.responseText); |
|
|
data = JSON.parse(this.responseText); |
|
|
|
|
|
console.log('123'); |
|
|
|
|
|
|
|
|
//console.log(data);return false; |
|
|
//console.log(data);return false; |
|
|
if (data.st == 'err') { |
|
|
if (data.st == 'err') { |
|
|
|
|
|
console.log('123'); |
|
|
|
|
|
|
|
|
//alert(data.err); |
|
|
//alert(data.err); |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
|
|
|
// console.log(data.content); |
|
|
Object.keys(data.content).forEach(function(k) { |
|
|
Object.keys(data.content).forEach(function(k) { |
|
|
console.log('k=>', k); |
|
|
console.log('k=>', k); |
|
|
|
|
|
// console.log(data.content); |
|
|
//console.log(data.content[k][0]); |
|
|
//console.log(data.content[k][0]); |
|
|
// 有值表示先前已寫入MI |
|
|
// 有值表示先前已寫入MI |
|
|
if ($("#tb1").find("input[name=mi_fix]").eq(k).val() == "") { |
|
|
if ($("#tb1").find("input[name=mi_fix]").eq(k).val() == "") { |
|
|
// console.log($("#tb1").find("input[name=mi_fix]").eq(k).val(commafy(data.content[k][0]))); |
|
|
|
|
|
|
|
|
// $("#tb1").find("input[name=mi_fix]").eq(k).val(commafy(data.content[k][0])); |
|
|
let a = data.content[k][0] + data.content[k][19][1]; |
|
|
let a = data.content[k][0] + data.content[k][19][1]; |
|
|
$("#tb1").find("input[name=mi_fix]").eq(k).val(commafy(a)); |
|
|
$("#tb1").find("input[name=mi_fix]").eq(k).val(commafy(a)); |
|
|
} |
|
|
} |
|
|
$("#tb1").find("input[name=mi_fix]").eq(k).keyup(); |
|
|
console.log('123'); |
|
|
|
|
|
|
|
|
|
|
|
let a = data.content[k][0] + data.content[k][19][1]; |
|
|
|
|
|
$("#tb1").find("input[name=mi_fix]").eq(k).val(commafy(a)); |
|
|
var mihtml = ""; |
|
|
var mihtml = ""; |
|
|
total_mi = 0; |
|
|
total_mi = 0; |
|
|
mihtml += "<h5>電梯設備</h5>"; |
|
|
mihtml += "<h5>電梯設備</h5>"; |
|
@ -353,40 +364,39 @@ foreach ($res as $data) { |
|
|
mihtml += "以上合計:" + commafy(data.content[k][12]) + "/台"; |
|
|
mihtml += "以上合計:" + commafy(data.content[k][12]) + "/台"; |
|
|
mihtml += "<hr>"; |
|
|
mihtml += "<hr>"; |
|
|
mihtml += "<h5>OPTION</h5>"; |
|
|
mihtml += "<h5>OPTION</h5>"; |
|
|
total_mi = total_mi + data.content[k][12]; |
|
|
total_mi = total_mi + data.content[k][12]; |
|
|
console.log(data.content[k][12]); |
|
|
console.log(data.content[k][12]); |
|
|
Object.keys(data.content[k][14]).forEach(function(m) { |
|
|
Object.keys(data.content[k][14]).forEach(function(m) { |
|
|
if (data.content[k][14][m][0] != '') { |
|
|
if (data.content[k][14][m][0] != '') { |
|
|
mihtml += "<li>" + data.content[k][14][m][0]+ ":" + commafy(data.content[k][14][m][1]) + "</li>"; |
|
|
mihtml += "<li>" + data.content[k][14][m][0] + ":" + commafy(data.content[k][14][m][1]) + "</li>"; |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
Object.keys(data.content[k][16]).forEach(function(m) { |
|
|
Object.keys(data.content[k][16]).forEach(function(m) { |
|
|
if (data.content[k][16][m][0] != '') { |
|
|
if (data.content[k][16][m][0] != '') { |
|
|
mihtml += "<li>" + data.content[k][16][m][0]+ ":" + commafy(data.content[k][16][m][1]) + "</li>"; |
|
|
mihtml += "<li>" + data.content[k][16][m][0] + ":" + commafy(data.content[k][16][m][1]) + "</li>"; |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
Object.keys(data.content[k][18]).forEach(function(m) { |
|
|
Object.keys(data.content[k][18]).forEach(function(m) { |
|
|
mihtml += "<li>" + data.content[k][18][m][0]+ ":" + commafy(data.content[k][18][m][1]) + "</li>"; |
|
|
mihtml += "<li>" + data.content[k][18][m][0] + ":" + commafy(data.content[k][18][m][1]) + "</li>"; |
|
|
}); |
|
|
}); |
|
|
mihtml += "<li>" + data.content[k][19][0] + ":" + commafy(data.content[k][19][1]) + "</li>"; |
|
|
mihtml += "<li>" + data.content[k][19][0] + ":" + commafy(data.content[k][19][1]) + "</li>"; |
|
|
mihtml += "以上合計:" + commafy(data.content[k][13]) + "<br>"; |
|
|
mihtml += "以上合計:" + commafy(data.content[k][13]) + |
|
|
total_mi = total_mi + data.content[k][13]; |
|
|
"<br>"; |
|
|
console.log(data.content[k][13]); |
|
|
|
|
|
$("#tb1").find("tr[name=facil_templ2]").eq(k).find('td').eq(1).html(mihtml); |
|
|
$("#tb1").find("tr[name=facil_templ2]").eq(k).find('td').eq(1).html(mihtml); |
|
|
//$("#tb1").find("input[name=mi_fix]").eq(k).closest('td').append(mihtml); |
|
|
//$("#tb1").find("input[name=mi_fix]").eq(k).closest('td').append(mihtml); |
|
|
document.getElementsByClassName('total_mi_fix')[k].value =commafy(total_mi) |
|
|
document.getElementsByClassName('total_mi_fix')[k].value = commafy(total_mi) |
|
|
// document.getElementsByClassName('item_price_ct')[k].value =commafy(total_mi) |
|
|
// document.getElementsByClassName('item_price_ct')[k].value =commafy(total_mi) |
|
|
document.getElementsByClassName('gross_profit')[k].value =commafy(Number(document.getElementsByClassName('item_price_ct')[k].value.replace(/[,]+/g, "")) - total_mi) |
|
|
document.getElementsByClassName('gross_profit')[k].value = commafy(Number(document.getElementsByClassName('item_price_ct')[k].value.replace(/[,]+/g, "")) - total_mi) |
|
|
document.getElementsByClassName('gross_profit_rate')[k].value =Math.round((Number(document.getElementsByClassName('gross_profit')[k].value.replace(/[,]+/g, ""))/Number(document.getElementsByClassName('item_price_ct')[k].value.replace(/[,]+/g, ""))*100)*10)/10 |
|
|
document.getElementsByClassName('gross_profit_rate')[k].value = Math.round((Number(document.getElementsByClassName('gross_profit')[k].value.replace(/[,]+/g, "")) / Number(document.getElementsByClassName('item_price_ct')[k].value.replace(/[,]+/g, "")) * 100) * 10) / 10 |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
xhr.open('POST', 'pricereview_mi-api.php', true); |
|
|
xhr.open('POST', 'pricereview_mi-api.php', true); |
|
|
xhr.send(formdata); |
|
|
xhr.send(formdata); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$(function() { |
|
|
$(function() { |
|
|
<?php if ($viewmi) { ?> |
|
|
<?php if ($viewmi) { ?> |
|
|
getMI('<?php echo $id; ?>'); |
|
|
getMI('<?php echo $id; ?>'); |
|
@ -423,22 +433,19 @@ foreach ($res as $data) { |
|
|
$("#specModal .modal-body").html(plink); |
|
|
$("#specModal .modal-body").html(plink); |
|
|
$("#specModal").modal('show'); |
|
|
$("#specModal").modal('show'); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
}); |
|
|
}); |
|
|
$('#tb1').on('keyup', 'input[name=mi_fix]', function() { |
|
|
$('#tb1').on('keyup', 'input[name=mi_fix]', function() { |
|
|
|
|
|
// console.log($(this).val); |
|
|
$(this).val($(this).val().replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",")); |
|
|
$(this).val($(this).val().replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",")); |
|
|
// var mf = $(this).val().replace(/[,]+/g, ""); |
|
|
// var mf = $(this).val().replace(/[,]+/g, ""); |
|
|
var mf = $(this).closest('td').parent().find('input[name=mi_fix]').val().replace(/[,]+/g, ""); |
|
|
var mf = $(this).closest('td').parent().find('input[name=mi_fix]').val().replace(/[,]+/g, ""); |
|
|
var ct = $(this).closest('td').parent().find('input[name=item_price_ct]').val().replace(/[,]+/g, ""); |
|
|
var ct = $(this).closest('td').parent().find('input[name=item_price_ct]').val().replace(/[,]+/g, ""); |
|
|
console.log(mf); |
|
|
|
|
|
console.log(ct); |
|
|
|
|
|
console.log(ct - mf); |
|
|
|
|
|
|
|
|
|
|
|
$(this).closest('td').parent().find('input[name=gross_profit]').val(commafy(ct - mf)); |
|
|
$(this).closest('td').parent().find('input[name=gross_profit]').val(commafy(ct - mf)); |
|
|
if (ct == 0) $(this).closest('td').parent().find('input[name=gross_profit_rate]').val(0.0); |
|
|
if (ct == 0) $(this).closest('td').parent().find('input[name=gross_profit_rate]').val(0.0); |
|
|
else $(this).closest('td').parent().find('input[name=gross_profit_rate]').val((((ct - mf) / ct) * 100).toFixed(1)); |
|
|
else $(this).closest('td').parent().find('input[name=gross_profit_rate]').val((((ct - mf) / ct) * 100).toFixed(1)); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$('button[name=status]').click(function() { |
|
|
$('button[name=status]').click(function() { |
|
|
var itemNoArr = []; |
|
|
var itemNoArr = []; |
|
@ -488,9 +495,8 @@ foreach ($res as $data) { |
|
|
$('#tb5').on('keyup', 'input[name=final_price_total]', function() { |
|
|
$('#tb5').on('keyup', 'input[name=final_price_total]', function() { |
|
|
$(this).val(commafy($(this).val())); |
|
|
$(this).val(commafy($(this).val())); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
</script> |
|
|
</script> |
|
|
<style> |
|
|
<style> |
|
|
.container { |
|
|
.container { |
|
@ -557,11 +563,11 @@ foreach ($res as $data) { |
|
|
<th>數量</th> |
|
|
<th>數量</th> |
|
|
<th>複價</th> |
|
|
<th>複價</th> |
|
|
<?php if ($viewmi) { ?> |
|
|
<?php if ($viewmi) { ?> |
|
|
<th>業務部MI(台)</th> |
|
|
<th>業務部MI</th> |
|
|
<th>售價(台)</th> |
|
|
<th>售價</th> |
|
|
<!--<th>價審%</th> |
|
|
<!--<th>價審%</th> |
|
|
<th>配賦(含稅)</th>--> |
|
|
<th>配賦(含稅)</th>--> |
|
|
<th>利潤(台)</th> |
|
|
<th>利潤</th> |
|
|
<th>利潤率(%)</th> |
|
|
<th>利潤率(%)</th> |
|
|
<?php } ?> |
|
|
<?php } ?> |
|
|
</tr> |
|
|
</tr> |
|
@ -573,16 +579,16 @@ foreach ($res as $data) { |
|
|
foreach ($item_arr as $item_no => $val) { |
|
|
foreach ($item_arr as $item_no => $val) { |
|
|
$item_amt_A_all += $val["item_price_bp"]; |
|
|
$item_amt_A_all += $val["item_price_bp"]; |
|
|
if ($viewmi) { |
|
|
if ($viewmi) { |
|
|
// for ($i = 0; $i < $val["item_qty"]; $i++) { |
|
|
for ($i = 0; $i < $val["item_qty"]; $i++) { |
|
|
?> |
|
|
?> |
|
|
<tr name="facil_templ"> |
|
|
<tr name="facil_templ"> |
|
|
<td><?php echo $idx; ?><input type="hidden" name="item_no" value="<?php echo $item_no; ?>"><input type="hidden" name="sub_item_id" value="<?php if (isset($val["sub_item_id"])) echo implode("@", $val["sub_item_id"]); ?>"></td> |
|
|
<td><?php echo $idx; ?><input type="hidden" name="item_no" value="<?php echo $item_no; ?>"><input type="hidden" name="sub_item_id" value="<?php if (isset($val["sub_item_id"])) echo implode("@", $val["sub_item_id"]); ?>"></td> |
|
|
<td nowrap><a href="" data-toggle="modal"><?= $val["item_spec"]; ?> [規調]</a></td> |
|
|
<td nowrap><a href="" data-toggle="modal"><?= $val["item_spec"]; ?> [規調]</a></td> |
|
|
<td><input type="text" name="item_unit_price" class="form-control dollar-right" size="8" value="<?= number_format($val["item_unit_price"]); ?>"></td> |
|
|
<td><input type="text" name="item_unit_price" class="form-control dollar-right" size="8" value="<?= number_format($val["item_unit_price"]); ?>"></td> |
|
|
<td><input type="text" name="item_qty" class="form-control" size="2" value="<?php echo $val["item_qty"]; ?>"></td> |
|
|
<td><input type="text" name="item_qty" class="form-control" size="2" value="1"></td> |
|
|
<td><input type="text" name="item_price_bp" class="form-control dollar-right" size="9" value="<?= number_format($val["item_unit_price"] * $val["item_qty"]); ?>"></td> |
|
|
<td><input type="text" name="item_price_bp" class="form-control dollar-right" size="9" value="<?= number_format($val["item_unit_price"]); ?>"></td> |
|
|
<td><input type="text" name="mi_fix" class="form-control dollar-right total_mi_fix" size="9" value="<?php echo ($val["mi_fix"]) ? number_format($val["mi_fix"] +$data["special_fee"] ) : ""; ?>" disabled></td> |
|
|
<td><input type="text" name="mi_fix" class="form-control dollar-right" size="9" value="<?php echo ($val["mi_fix"]) ? number_format($val["mi_fix"]) : ""; ?>" disabled></td> |
|
|
<td><input type="text" name="item_price_ct" class="form-control dollar-right item_price_ct" size="9" value="<?= number_format($val["item_price_ct"] / $val["item_qty"]); ?>"></td> |
|
|
<td><input type="text" name="item_price_ct" class="form-control dollar-right" size="9" value="<?= number_format($val["item_price_ct"] / $val["item_qty"]); ?>"></td> |
|
|
<!--<td><input type="text" name="item_price" class="form-control dollar-right" size="8" value="<?php echo ($val["item_price"]) ? number_format($val["item_price"]) : ""; ?>"></td>
|
|
|
<!--<td><input type="text" name="item_price" class="form-control dollar-right" size="8" value="<?php echo ($val["item_price"]) ? number_format($val["item_price"]) : ""; ?>"></td>
|
|
|
<td><input type="text" name="pv_rate" class="form-control" size="1" value="<?= $val["pv_rate"]; ?>"></td> |
|
|
<td><input type="text" name="pv_rate" class="form-control" size="1" value="<?= $val["pv_rate"]; ?>"></td> |
|
|
<td><input type="text" name="allocate" class="form-control" size="6" value="<?= $val["allocate"]; ?>"></td>--> |
|
|
<td><input type="text" name="allocate" class="form-control" size="6" value="<?= $val["allocate"]; ?>"></td>--> |
|
@ -595,7 +601,7 @@ foreach ($res as $data) { |
|
|
<td colspan="4"></td> |
|
|
<td colspan="4"></td> |
|
|
</tr> |
|
|
</tr> |
|
|
<?php |
|
|
<?php |
|
|
//} #item_qty end. |
|
|
} #item_qty end. |
|
|
} else { |
|
|
} else { |
|
|
?> |
|
|
?> |
|
|
<tr name="facil_templ"> |
|
|
<tr name="facil_templ"> |
|
@ -980,7 +986,7 @@ foreach ($res as $data) { |
|
|
</div> |
|
|
</div> |
|
|
<div> |
|
|
<div> |
|
|
<label for="price_rate">價率%(B/A)</label> |
|
|
<label for="price_rate">價率%(B/A)</label> |
|
|
<input type="text" name="price_rate" id="price_rate" value="<?php echo number_format((int)$data["price_total"]/(int)$data["price_lowest"] * 100, 1); ?>"> |
|
|
<input type="text" name="price_rate" id="price_rate" value="<?php echo number_format((int)$data["price_total"] / (int)$data["price_lowest"] * 100, 1); ?>"> |
|
|
</div> |
|
|
</div> |
|
|
<div> |
|
|
<div> |
|
|
<label for="price_broken">破價(台)</label> |
|
|
<label for="price_broken">破價(台)</label> |
|
|