Merge pull request 'V20260210' (#193) from V20260210 into main
Reviewed-on: #193
This commit was merged in pull request #193.
This commit is contained in:
@@ -41,6 +41,14 @@
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
#itemListTable .item-quantity,
|
||||
#itemListTable .item-unit-price,
|
||||
#itemListTable .item-supply-price,
|
||||
#itemListTable .item-vat,
|
||||
#itemListTable .item-total-amount {
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
// 품목 관리 변수
|
||||
@@ -166,7 +174,10 @@
|
||||
|
||||
// 번호 재정렬
|
||||
fn_reorderItems();
|
||||
|
||||
|
||||
// 합계 재계산
|
||||
fn_calculateTotal();
|
||||
|
||||
// 품목이 없으면 메시지 표시
|
||||
if($("#itemListBody tr.item-row").length == 0) {
|
||||
$("#itemListBody").html('<tr id="noItemRow"><td colspan="11" style="text-align:center; padding:30px; color:#999;">품목 추가 버튼을 클릭하여 품목을 등록하세요.</td></tr>');
|
||||
@@ -200,16 +211,33 @@
|
||||
// 총액 계산
|
||||
var totalAmount = supplyPrice + vat;
|
||||
$("#" + itemId + " .item-total-amount").val(addComma(totalAmount));
|
||||
fn_calculateTotal();
|
||||
}
|
||||
|
||||
|
||||
// 부가세 직접 입력 시 총액만 재계산
|
||||
function fn_calculateTotalFromVat(itemId) {
|
||||
var supplyPrice = parseFloat(removeComma($("#" + itemId + " .item-supply-price").val())) || 0;
|
||||
var vat = parseFloat(removeComma($("#" + itemId + " .item-vat").val())) || 0;
|
||||
|
||||
|
||||
// 총액 계산
|
||||
var totalAmount = supplyPrice + vat;
|
||||
$("#" + itemId + " .item-total-amount").val(addComma(totalAmount));
|
||||
fn_calculateTotal();
|
||||
}
|
||||
|
||||
// 품목 합계 계산
|
||||
function fn_calculateTotal() {
|
||||
var totalQty = 0, totalSupply = 0, totalVat = 0, totalAmount = 0;
|
||||
$(".item-row").each(function() {
|
||||
totalQty += parseFloat(removeComma($(this).find(".item-quantity").val())) || 0;
|
||||
totalSupply += parseFloat(removeComma($(this).find(".item-supply-price").val())) || 0;
|
||||
totalVat += parseFloat(removeComma($(this).find(".item-vat").val())) || 0;
|
||||
totalAmount += parseFloat(removeComma($(this).find(".item-total-amount").val())) || 0;
|
||||
});
|
||||
$("#totalQuantity").text(addCommaInt(totalQty));
|
||||
$("#totalSupplyPrice").text(addComma(totalSupply));
|
||||
$("#totalVat").text(addComma(totalVat));
|
||||
$("#totalTotalAmount").text(addComma(totalAmount));
|
||||
}
|
||||
|
||||
// 기존 품목 데이터 로드 (결재완료 시 ESTIMATE_TEMPLATE_ITEM, 아니면 CONTRACT_ITEM)
|
||||
@@ -335,6 +363,8 @@
|
||||
id: itemId
|
||||
});
|
||||
}
|
||||
// 품목 로드 완료 후 합계 계산
|
||||
fn_calculateTotal();
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
@@ -537,6 +567,17 @@
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr id="totalRow" style="background:#f5f5f5; font-weight:bold;">
|
||||
<td colspan="5" style="text-align:center; padding:8px; border:1px solid #ddd;">Total</td>
|
||||
<td style="text-align:right; padding:8px; border:1px solid #ddd;" id="totalQuantity">0</td>
|
||||
<td style="padding:8px; border:1px solid #ddd;"></td>
|
||||
<td style="text-align:right; padding:8px; border:1px solid #ddd;" id="totalSupplyPrice">0.00</td>
|
||||
<td style="text-align:right; padding:8px; border:1px solid #ddd;" id="totalVat">0.00</td>
|
||||
<td style="text-align:right; padding:8px; border:1px solid #ddd;" id="totalTotalAmount">0.00</td>
|
||||
<td style="padding:8px; border:1px solid #ddd;"></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -2770,13 +2770,13 @@ public class ApprovalService {
|
||||
for(Map item : itemList){
|
||||
item = CommonUtils.toUpperCaseMapKey(item);
|
||||
html.append("<tr>");
|
||||
html.append("<td ").append(TD_ITEM).append(" style='border:1px solid #333;text-align:center;font-size:9pt;padding:4px;'>").append(no++).append("</td>");
|
||||
html.append("<td style='border:1px solid #333;text-align:center;font-size:9pt;padding:4px;'>").append(no++).append("</td>");
|
||||
html.append("<td ").append(TD_ITEM).append(">").append(escapeHtml(CommonUtils.checkNull(item.get("DESCRIPTION")))).append("</td>");
|
||||
html.append("<td ").append(TD_ITEM).append(">").append(escapeHtml(CommonUtils.checkNull(item.get("SPECIFICATION")))).append("</td>");
|
||||
html.append("<td ").append(TD_ITEM).append(" style='border:1px solid #333;text-align:right;font-size:9pt;padding:4px;'>").append(formatNumber(CommonUtils.checkNull(item.get("QUANTITY")))).append("</td>");
|
||||
html.append("<td ").append(TD_ITEM).append(" style='border:1px solid #333;text-align:center;font-size:9pt;padding:4px;'>").append(escapeHtml(CommonUtils.checkNull(item.get("UNIT")))).append("</td>");
|
||||
html.append("<td ").append(TD_ITEM).append(" style='border:1px solid #333;text-align:right;font-size:9pt;padding:4px;'>").append(formatDecimalNumber(CommonUtils.checkNull(item.get("UNIT_PRICE")))).append("</td>");
|
||||
html.append("<td ").append(TD_ITEM).append(" style='border:1px solid #333;text-align:right;font-size:9pt;padding:4px;'>").append(formatDecimalNumber(CommonUtils.checkNull(item.get("AMOUNT")))).append("</td>");
|
||||
html.append("<td style='border:1px solid #333;text-align:right;font-size:9pt;padding:4px;'>").append(formatNumber(CommonUtils.checkNull(item.get("QUANTITY")))).append("</td>");
|
||||
html.append("<td style='border:1px solid #333;text-align:center;font-size:9pt;padding:4px;'>").append(escapeHtml(CommonUtils.checkNull(item.get("UNIT")))).append("</td>");
|
||||
html.append("<td style='border:1px solid #333;text-align:right;font-size:9pt;padding:4px;'>").append(formatDecimalNumber(CommonUtils.checkNull(item.get("UNIT_PRICE")))).append("</td>");
|
||||
html.append("<td style='border:1px solid #333;text-align:right;font-size:9pt;padding:4px;'>").append(formatDecimalNumber(CommonUtils.checkNull(item.get("AMOUNT")))).append("</td>");
|
||||
html.append("<td ").append(TD_ITEM).append(">").append(escapeHtml(CommonUtils.checkNull(item.get("REMARK")))).append("</td>");
|
||||
html.append("</tr>");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user