V20260210 #141
@@ -281,12 +281,12 @@ $(document).ready(function(){
|
||||
$(this).jqGrid('setCell', ids[i], 'ROW_NUM', i+1);
|
||||
}
|
||||
|
||||
setTimeout(function(){ gridFn.footerSummary(); }, 100);
|
||||
setTimeout(function(){ gridFn.calcAllRows(); }, 100);
|
||||
}
|
||||
});
|
||||
|
||||
gridFn.opennEdit();
|
||||
gridFn.footerSummary();
|
||||
gridFn.calcAllRows();
|
||||
|
||||
<% if(isModify){ %>
|
||||
// 수정 가능 상태
|
||||
@@ -368,7 +368,7 @@ $(document).ready(function(){
|
||||
$(".select2").select2();
|
||||
|
||||
gridFn.opennEdit();
|
||||
gridFn.footerSummary();
|
||||
gridFn.calcAllRows();
|
||||
});
|
||||
|
||||
// 결재라인 가져오기
|
||||
@@ -511,6 +511,19 @@ var gridFn = {
|
||||
|
||||
this.footerSummary();
|
||||
}
|
||||
,calcAllRows: function(){
|
||||
var $g = $("#grid1");
|
||||
var ids = grid.jqGrid('getDataIDs');
|
||||
for(var i = 0; i < ids.length; i++){
|
||||
var rowId = ids[i];
|
||||
var qtyVal = $g.find("#"+rowId+"_ORDER_QTY").val();
|
||||
var priceVal = $g.find("#"+rowId+"_PARTNER_PRICE").val();
|
||||
var qty = Number(fnc_checkNullDefaultValue(qtyVal, grid.jqGrid('getCell', rowId, "ORDER_QTY")).toString().replace(/,/g,""));
|
||||
var unitPrice = Number(fnc_checkNullDefaultValue(priceVal, grid.jqGrid('getCell', rowId, "PARTNER_PRICE")).toString().replace(/,/g,""));
|
||||
grid.jqGrid('setCell', rowId, "SUPPLY_UNIT_PRICE", qty * unitPrice);
|
||||
}
|
||||
this.footerSummary();
|
||||
}
|
||||
,footerSummary: function(){
|
||||
var totalSupplyPrice = 0;
|
||||
|
||||
|
||||
@@ -280,12 +280,12 @@ $(document).ready(function(){
|
||||
$(this).jqGrid('setCell', ids[i], 'ROW_NUM', i+2); // 2부터 시작 (PDF 양식 참고)
|
||||
}
|
||||
|
||||
setTimeout(function(){ gridFn.footerSummary(); }, 100);
|
||||
setTimeout(function(){ gridFn.calcAllRows(); }, 100);
|
||||
}
|
||||
});
|
||||
|
||||
gridFn.opennEdit();
|
||||
gridFn.footerSummary();
|
||||
gridFn.calcAllRows();
|
||||
|
||||
<% if(isModify){ %>
|
||||
// 수정 가능 상태
|
||||
@@ -474,6 +474,19 @@ var gridFn = {
|
||||
|
||||
this.footerSummary();
|
||||
}
|
||||
,calcAllRows: function(){
|
||||
var $g = $("#grid1");
|
||||
var ids = grid.jqGrid('getDataIDs');
|
||||
for(var i = 0; i < ids.length; i++){
|
||||
var rowId = ids[i];
|
||||
var qtyVal = $g.find("#"+rowId+"_ORDER_QTY").val();
|
||||
var priceVal = $g.find("#"+rowId+"_PARTNER_PRICE").val();
|
||||
var qty = Number(fnc_checkNullDefaultValue(qtyVal, grid.jqGrid('getCell', rowId, "ORDER_QTY")).toString().replace(/,/g,""));
|
||||
var unitPrice = Number(fnc_checkNullDefaultValue(priceVal, grid.jqGrid('getCell', rowId, "PARTNER_PRICE")).toString().replace(/,/g,""));
|
||||
grid.jqGrid('setCell', rowId, "SUPPLY_UNIT_PRICE", qty * unitPrice);
|
||||
}
|
||||
this.footerSummary();
|
||||
}
|
||||
,footerSummary: function(){
|
||||
var totalSupplyPrice = 0;
|
||||
|
||||
|
||||
@@ -271,11 +271,22 @@ function createSelect2Editor(options) {
|
||||
$(select).select2('open');
|
||||
});
|
||||
|
||||
$(select).on('select2:select select2:clear', function(e) {
|
||||
var isCleared = false;
|
||||
|
||||
$(select).on('select2:select', function(e) {
|
||||
success($(select).val());
|
||||
});
|
||||
|
||||
$(select).on('select2:clear', function(e) {
|
||||
isCleared = true;
|
||||
setTimeout(function() {
|
||||
$(select).select2('close');
|
||||
success('');
|
||||
}, 0);
|
||||
});
|
||||
|
||||
$(select).on('select2:close', function() {
|
||||
if(isCleared) return;
|
||||
setTimeout(function() {
|
||||
success($(select).val());
|
||||
}, 100);
|
||||
@@ -672,19 +683,12 @@ function fn_initGrid() {
|
||||
title: '<span style="background-color: #FFFF00; padding: 2px 5px;">가공업체</span>',
|
||||
field: 'PROCESSING_VENDOR',
|
||||
editor: function(cell, onRendered, success, cancel, editorParams) {
|
||||
// Select2 에디터
|
||||
return createSelect2Editor(processingVendorList)(cell, onRendered, success, cancel, editorParams);
|
||||
},
|
||||
formatter: function(cell) {
|
||||
var value = cell.getValue();
|
||||
if(!value) return '';
|
||||
|
||||
// 저장된 값이 없으면 기본값 '0000008377'(RPS) 설정
|
||||
if(value === undefined || value === null || value === '') {
|
||||
value = '0000008377';
|
||||
cell.getRow().update({PROCESSING_VENDOR: value}, false);
|
||||
}
|
||||
|
||||
// OBJID로 업체명 조회하여 표시
|
||||
for(var i = 0; i < processingVendorList.length; i++) {
|
||||
if(processingVendorList[i].id == value) {
|
||||
return processingVendorList[i].text;
|
||||
|
||||
@@ -880,12 +880,7 @@
|
||||
SRP.OBJID,
|
||||
SRP.PART_OBJID,
|
||||
COALESCE(NULLIF(SRP.QTY::VARCHAR, ''), '0') AS QTY,
|
||||
-- 발주수량: PO_QTY가 있고 0보다 크면 사용, 아니면 QTY 사용
|
||||
CASE
|
||||
WHEN SRP.PO_QTY IS NOT NULL AND SRP.PO_QTY::NUMERIC > 0 THEN SRP.PO_QTY::VARCHAR
|
||||
WHEN SRP.QTY IS NOT NULL THEN SRP.QTY::VARCHAR
|
||||
ELSE '0'
|
||||
END AS ORDER_QTY,
|
||||
COALESCE(NULLIF(SRP.QTY::VARCHAR, ''), '0') AS ORDER_QTY,
|
||||
COALESCE(SRP.UNIT_PRICE, 0) AS PARTNER_PRICE,
|
||||
COALESCE(SRP.TOTAL_PRICE, 0) AS TOTAL_PRICE,
|
||||
SRP.VENDOR_PM AS PARTNER_OBJID,
|
||||
|
||||
@@ -3172,7 +3172,7 @@ UPDATE SET
|
||||
0 AS ORDER_QTY,
|
||||
0 AS ITEM_QTY2,
|
||||
0 AS PRODUCTION_QTY,
|
||||
COALESCE(SRP.PROCESSING_VENDOR, '') AS PROCESSING_VENDOR,
|
||||
CASE WHEN SRP.PROCESSING_VENDOR IS NULL THEN '0000008377' ELSE SRP.PROCESSING_VENDOR END AS PROCESSING_VENDOR,
|
||||
NULL AS PROCESSING_DEADLINE,
|
||||
NULL AS GRINDING_DEADLINE,
|
||||
-- 구매 관련 컬럼 (SALES_REQUEST_PART에서 조회)
|
||||
@@ -3463,7 +3463,7 @@ SELECT
|
||||
G.RAW_MATERIAL_SPEC,
|
||||
G.RAW_MATERIAL,
|
||||
G.RAW_MATERIAL_SIZE AS SIZE,
|
||||
G.PROCESSING_VENDOR,
|
||||
CASE WHEN G.PROCESSING_VENDOR IS NULL THEN '0000008377' ELSE G.PROCESSING_VENDOR END AS PROCESSING_VENDOR,
|
||||
G.PROCESSING_DEADLINE,
|
||||
G.GRINDING_DEADLINE,
|
||||
G.REQUIRED_QTY,
|
||||
@@ -4184,6 +4184,7 @@ ORDER BY V.PATH2
|
||||
SALES_REQUEST_MASTER_OBJID,
|
||||
PART_OBJID,
|
||||
QTY,
|
||||
UNIT,
|
||||
UNIT_PRICE,
|
||||
TOTAL_PRICE,
|
||||
VENDOR_PM,
|
||||
@@ -4199,6 +4200,7 @@ ORDER BY V.PATH2
|
||||
#{PROPOSAL_MASTER_OBJID},
|
||||
PART_OBJID,
|
||||
QTY,
|
||||
UNIT,
|
||||
UNIT_PRICE,
|
||||
TOTAL_PRICE,
|
||||
VENDOR AS VENDOR_PM,
|
||||
@@ -4219,6 +4221,7 @@ ORDER BY V.PATH2
|
||||
SALES_REQUEST_MASTER_OBJID,
|
||||
PART_OBJID,
|
||||
QTY,
|
||||
UNIT,
|
||||
UNIT_PRICE,
|
||||
TOTAL_PRICE,
|
||||
VENDOR_PM,
|
||||
@@ -4234,6 +4237,7 @@ ORDER BY V.PATH2
|
||||
#{PROPOSAL_MASTER_OBJID},
|
||||
PART_OBJID,
|
||||
PRODUCTION_QTY AS QTY,
|
||||
UNIT,
|
||||
PROCESSING_UNIT_PRICE AS UNIT_PRICE,
|
||||
PROCESSING_TOTAL_PRICE AS TOTAL_PRICE,
|
||||
PROCESSING_VENDOR AS VENDOR_PM,
|
||||
@@ -4254,6 +4258,7 @@ ORDER BY V.PATH2
|
||||
SALES_REQUEST_MASTER_OBJID,
|
||||
PART_OBJID,
|
||||
QTY,
|
||||
UNIT,
|
||||
UNIT_PRICE,
|
||||
TOTAL_PRICE,
|
||||
VENDOR_PM,
|
||||
@@ -4269,6 +4274,7 @@ ORDER BY V.PATH2
|
||||
#{PROPOSAL_MASTER_OBJID},
|
||||
PART_OBJID,
|
||||
QTY,
|
||||
UNIT,
|
||||
UNIT_PRICE,
|
||||
TOTAL_PRICE,
|
||||
VENDOR_PM,
|
||||
@@ -4289,6 +4295,7 @@ ORDER BY V.PATH2
|
||||
SALES_REQUEST_MASTER_OBJID,
|
||||
PART_OBJID,
|
||||
QTY,
|
||||
UNIT,
|
||||
UNIT_PRICE,
|
||||
TOTAL_PRICE,
|
||||
VENDOR_PM,
|
||||
@@ -4304,6 +4311,7 @@ ORDER BY V.PATH2
|
||||
#{PROPOSAL_MASTER_OBJID},
|
||||
PART_OBJID,
|
||||
PRODUCTION_QTY AS QTY,
|
||||
UNIT,
|
||||
PROCESSING_UNIT_PRICE AS UNIT_PRICE,
|
||||
PROCESSING_TOTAL_PRICE AS TOTAL_PRICE,
|
||||
PROCESSING_VENDOR AS VENDOR_PM,
|
||||
@@ -4803,7 +4811,7 @@ ORDER BY V.PATH2
|
||||
</select>
|
||||
|
||||
<!-- 품의서 품목 리스트 조회 -->
|
||||
<select id="getProposalPartList" parameterType="map" resultType="map">
|
||||
<select id="getProposalPartList" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
||||
SELECT
|
||||
ROW_NUMBER() OVER(ORDER BY SRP.REGDATE) AS RNUM,
|
||||
SRP.OBJID,
|
||||
@@ -4812,14 +4820,17 @@ ORDER BY V.PATH2
|
||||
PM.PART_NAME,
|
||||
PM.SPEC,
|
||||
PM.MATERIAL,
|
||||
SRP.UNIT,
|
||||
COALESCE(SRP.UNIT, PM.UNIT) AS UNIT,
|
||||
COALESCE(
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRP.UNIT),
|
||||
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = PM.UNIT)
|
||||
) AS UNIT_TITLE,
|
||||
SRP.QTY,
|
||||
SRP.UNIT_PRICE,
|
||||
SRP.TOTAL_PRICE,
|
||||
COALESCE(SRP.UNIT_PRICE, 0) AS UNIT_PRICE,
|
||||
CASE
|
||||
WHEN COALESCE(SRP.TOTAL_PRICE::NUMERIC, 0) > 0 THEN SRP.TOTAL_PRICE::NUMERIC
|
||||
ELSE COALESCE(SRP.QTY::NUMERIC, 0) * COALESCE(SRP.UNIT_PRICE::NUMERIC, 0)
|
||||
END AS TOTAL_PRICE,
|
||||
SRP.VENDOR_PM,
|
||||
(SELECT CLIENT_NM FROM CLIENT_MNG WHERE OBJID::VARCHAR = SRP.VENDOR_PM) AS VENDOR_NAME,
|
||||
SRP.REMARK,
|
||||
|
||||
@@ -2731,10 +2731,15 @@ public class SalesMngService {
|
||||
// 줄바꿈을 HTML <br> 태그로 변환
|
||||
String htmlContents = contents.replace("\n", "<br>");
|
||||
|
||||
// 메일 발송 (간단한 방식)
|
||||
// 메일 발송 (견적요청서 - PURCHASE 계정 사용)
|
||||
boolean sendResult = false;
|
||||
ArrayList<String> toUserIdList = new ArrayList<String>();
|
||||
toUserIdList.add("");
|
||||
ArrayList<String> singleEmailList = new ArrayList<String>();
|
||||
for(String toEmail : toEmailList) {
|
||||
sendResult = MailUtil.sendMailNew(toEmail, subject, htmlContents);
|
||||
singleEmailList.clear();
|
||||
singleEmailList.add(toEmail);
|
||||
sendResult = MailUtil.sendMailWithAttachFile(null, null, toUserIdList, singleEmailList, ccEmailList, null, null, subject, htmlContents, null, "QUOTATION_REQUEST", Constants.Mail.ACCOUNT_TYPE_PURCHASE);
|
||||
if(!sendResult) break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user