1414 lines
66 KiB
C#
1414 lines
66 KiB
C#
|
using System;
|
|||
|
using System.Text;
|
|||
|
using System.Collections;
|
|||
|
using System.Data;
|
|||
|
using System.IO;
|
|||
|
|
|||
|
using Cosmos.BaseFrame;
|
|||
|
using Cosmos.UserFrame;
|
|||
|
using Cosmos.ServiceProvider;
|
|||
|
using Cosmos.Common;
|
|||
|
using Cosmos.CommonManager;
|
|||
|
|
|||
|
/*-----------------------------------------------------------------------------------------------*/
|
|||
|
// 설 명 : 상품등록
|
|||
|
// 작 성 자 :
|
|||
|
// 변경 이력 :
|
|||
|
/*-----------------------------------------------------------------------------------------------*/
|
|||
|
namespace Cosmos.Service
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 상품등록 클래스
|
|||
|
/// </summary>
|
|||
|
class SalePluItem : SalePluItemBase, ISalePluItemUs
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 생성자
|
|||
|
/// </summary>
|
|||
|
public SalePluItem()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 세트 메뉴 할인 마스터 로딩 처리
|
|||
|
/// </summary>
|
|||
|
public void LoadSetMenuDisMaster()
|
|||
|
{
|
|||
|
SalePluSetMenu m_cPluSetDis = (SalePluSetMenu)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_SET_MENU);
|
|||
|
m_cPluSetDis.LoadSetMenuDisMaster(); // 세트할인 마스터 로딩
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
/// <summary>
|
|||
|
///
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
/// <remarks>2019-04-11 - 1997fx11 : Kiosk용 SetItemCode</remarks>
|
|||
|
public string SetItemCode(object oParam)
|
|||
|
{
|
|||
|
SPC.Kiosk.Common.M_BasketItem _basketItem = (SPC.Kiosk.Common.M_BasketItem)oParam;
|
|||
|
string sSubStoreNo = "", sItemCode = "", sScanCode = ""; //점포코드, 상품코드, 스켄코드
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
sSubStoreNo = m_cPosStatus.Base.StoreNo; // 점포코드
|
|||
|
sItemCode = _basketItem.ItemCode; // 상품코드
|
|||
|
|
|||
|
return "";
|
|||
|
}
|
|||
|
*/
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 상품 등록 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow">선택행</param>
|
|||
|
/// <param name="sInPutTypeCode">(0:수입력, 1:메뉴, 2:스켄, 3:플레이버) + (메뉴코드,스캔코드)</param>
|
|||
|
/// <param name="sInPutData">입력데이터</param>
|
|||
|
/// <returns></returns>
|
|||
|
/// 2019-04-05 - 1997fx11 : SetItemCode 관련 참조
|
|||
|
public string SetItemCode(string sSelRow, string sInPutTypeCode, string sInPutData)
|
|||
|
{
|
|||
|
string sSubStoreNo = "", sItemCode = "", sScanCode = ""; //점포코드, 상품코드, 스켄코드
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
string sInPutType = PosConst.SALE_PLU_INPUT_TYPE.MENUKEY;
|
|||
|
if (sInPutTypeCode.Length > 0) sInPutType = sInPutTypeCode.Substring(0, 1);
|
|||
|
|
|||
|
if (sInPutTypeCode.StartsWith(PosConst.SALE_PLU_INPUT_TYPE.MENUKEY)
|
|||
|
|| sInPutTypeCode.StartsWith(PosConst.SALE_PLU_INPUT_TYPE.FLAVOUR) || sInPutTypeCode.StartsWith(PosConst.SALE_PLU_INPUT_TYPE.SUBMENU)) // 메뉴코드
|
|||
|
{
|
|||
|
// 메뉴코드 = (점포코드(10)+상품코드)
|
|||
|
sSubStoreNo = sInPutTypeCode.Substring(1, 10).Trim(); // 점포코드
|
|||
|
sItemCode = sInPutTypeCode.Substring(11); // 상품코드
|
|||
|
}
|
|||
|
else if (sInPutTypeCode.StartsWith(PosConst.SALE_PLU_INPUT_TYPE.KEY_IN) || sInPutTypeCode.StartsWith(PosConst.SALE_PLU_INPUT_TYPE.SCANNER)) // 스캔입력
|
|||
|
{
|
|||
|
sSubStoreNo = m_cPosStatus.Base.StoreNo; // 점포코드
|
|||
|
sScanCode = sInPutTypeCode.Substring(1); // 스캔코드
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
sSubStoreNo = m_cPosStatus.Base.StoreNo; // 점포코드
|
|||
|
sItemCode = sInPutTypeCode.Substring(1); // 상품코드
|
|||
|
}
|
|||
|
|
|||
|
// 상품 등록 처리
|
|||
|
sRet = SetItemCode(sSelRow, sInPutType, sSubStoreNo, sItemCode, sScanCode, sInPutData);
|
|||
|
if (sRet != UserCom.RST_OK) return sRet;
|
|||
|
|
|||
|
if (sInPutTypeCode.StartsWith(PosConst.SALE_PLU_INPUT_TYPE.FLAVOUR) == true)
|
|||
|
{
|
|||
|
// 플레이버 수량 체크 => 플레이버 수량이 1 이면 플레이버 등록 수량으로 상품 수량 변경
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)m_alTrPluItem[int.Parse(sSelRow)];
|
|||
|
|
|||
|
if (cPluItem.FLAVOUR_QTY == 1)
|
|||
|
{
|
|||
|
long nPlvQty = 0;
|
|||
|
for (int i = int.Parse(sSelRow) + 1; i < m_alTrPluItem.Count; i++)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cPlavourItem = (Column.TR_PLU.DATA)m_alTrPluItem[i];
|
|||
|
|
|||
|
if (cPlavourItem.FLAVOUR_DIV != ItemConst.PLU_FLAVOUR_DIV.FLAVOUR) break;
|
|||
|
|
|||
|
if (cPlavourItem.CANCEL_DIV == "1" || cPlavourItem.CANCEL_DIV_MAIN == "1") continue;
|
|||
|
|
|||
|
nPlvQty += cPlavourItem.SALE_QTY;
|
|||
|
}
|
|||
|
if (nPlvQty > cPluItem.SALE_QTY)
|
|||
|
{
|
|||
|
cPluItem.SALE_QTY = nPlvQty;
|
|||
|
m_cDataService.UpdatePluItemAmount(cPluItem);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 세트할인 처리
|
|||
|
//SalePluSetMenu m_cPluSetDis = (SalePluSetMenu)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_SET_MENU);
|
|||
|
//m_cPluSetDis.ExecuteSetMenuDiscount();
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 상품 지정 취소 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public string SetCancelItem(string sSelRow)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
int nSelRow = int.Parse(sSelRow);
|
|||
|
|
|||
|
// 상품 정보
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)m_alTrPluItem[nSelRow];
|
|||
|
|
|||
|
//// 세트 자식은 지정취소 불가
|
|||
|
//if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_DETL)
|
|||
|
//{
|
|||
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0013); // 지정 취소 할 수 없는 상품 입니다
|
|||
|
// return sRet;
|
|||
|
//}
|
|||
|
|
|||
|
// 부가메뉴 등록중
|
|||
|
//if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_OPT || m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_SET_OPT)
|
|||
|
//{
|
|||
|
// if (cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.OPT_MENU)
|
|||
|
// {
|
|||
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0024); // 부가메뉴만 취소 할 수 있습니다
|
|||
|
// return sRet;
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
//if (cPluItem.CANCEL_DIV == "0")
|
|||
|
//{
|
|||
|
// // ----------------------------------------------------------------------------------------------
|
|||
|
// // 지정취소시 묶음할인 적용 그룹도 같이 취소
|
|||
|
// // ----------------------------------------------------------------------------------------------
|
|||
|
// sRet = PluiTem_DC_Cancel(cPluItem);
|
|||
|
// if (sRet != UserCom.RST_OK) return sRet;
|
|||
|
// // ----------------------------------------------------------------------------------------------
|
|||
|
//}
|
|||
|
|
|||
|
//if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_OK)
|
|||
|
//{
|
|||
|
// // 주문 완료된 상품은 지정취소만 가능
|
|||
|
// if (cPluItem.CANCEL_DIV == "1") // 지정취소
|
|||
|
// {
|
|||
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0012); // 주문완료후 지정취소 해지 불가
|
|||
|
// return sRet;
|
|||
|
// }
|
|||
|
|
|||
|
// cPluItem.CANCEL_DIV = "1";
|
|||
|
// cPluItem.CANCEL_DATE = DateTime.Now.ToString("yyyyMMddHHmmss");
|
|||
|
// cPluItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD;
|
|||
|
//}
|
|||
|
//else if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD)
|
|||
|
//{
|
|||
|
// if (cPluItem.CANCEL_DIV == "1")
|
|||
|
// {
|
|||
|
// cPluItem.CANCEL_DIV = "0";
|
|||
|
// cPluItem.CANCEL_DATE = "";
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// cPluItem.CANCEL_DIV = "1";
|
|||
|
// cPluItem.CANCEL_DATE = DateTime.Now.ToString("yyyyMMddHHmmss");
|
|||
|
// }
|
|||
|
// //cPluItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_OK;
|
|||
|
//}
|
|||
|
//// 선불카드 판매 - 중국인 경우
|
|||
|
//else if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.PREPAID && PosMstManager.GetPosOption(POS_OPTION.OPT046) == "1")
|
|||
|
//{
|
|||
|
// // 취소요청
|
|||
|
// IPaymentUs m_cSalePreCard = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALEPRECARD);
|
|||
|
// if (cPluItem.CANCEL_DIV == "1")
|
|||
|
// {
|
|||
|
// // 정상 요청
|
|||
|
// sRet = m_cSalePreCard.SetPayment(new string[] { "0", cPluItem.SALE_GIFT_NO, "0" });
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// // 취소 요청
|
|||
|
// sRet = m_cSalePreCard.CancelPayment(new string[] { "1", cPluItem.SALE_GIFT_NO, "0" });
|
|||
|
// }
|
|||
|
// if (sRet == UserCom.RST_OK)
|
|||
|
// {
|
|||
|
// if (cPluItem.CANCEL_DIV == "1")
|
|||
|
// {
|
|||
|
// cPluItem.CANCEL_DIV = "0";
|
|||
|
// cPluItem.CANCEL_DATE = "";
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// cPluItem.CANCEL_DIV = "1";
|
|||
|
// cPluItem.CANCEL_DATE = DateTime.Now.ToString("yyyyMMddHHmmss");
|
|||
|
// }
|
|||
|
// }
|
|||
|
//}
|
|||
|
//else
|
|||
|
//{
|
|||
|
// if (cPluItem.CANCEL_DIV == "1")
|
|||
|
// {
|
|||
|
// cPluItem.CANCEL_DIV = "0";
|
|||
|
// cPluItem.CANCEL_DATE = "";
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// cPluItem.CANCEL_DIV = "1";
|
|||
|
// cPluItem.CANCEL_DATE = DateTime.Now.ToString("yyyyMMddHHmmss");
|
|||
|
// }
|
|||
|
//}
|
|||
|
//m_cDataService.UpdatePluItemAmount(cPluItem);
|
|||
|
|
|||
|
//if (nSelRow + 1 < m_alTrPluItem.Count)
|
|||
|
//{
|
|||
|
// // 상위메뉴 지정취소 => 하위 메뉴 반영
|
|||
|
// for (int i = nSelRow + 1; i < m_alTrPluItem.Count; i++)
|
|||
|
// {
|
|||
|
// Column.TR_PLU.DATA cItem = (Column.TR_PLU.DATA)m_alTrPluItem[i];
|
|||
|
|
|||
|
// if (cPluItem.FLAVOUR_DIV == ItemConst.PLU_FLAVOUR_DIV.FLAVOUR)
|
|||
|
// {
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// else if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.NORMAL || cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_MAIN)
|
|||
|
// {
|
|||
|
// if ((cItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.NORMAL || cItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_MAIN)
|
|||
|
// && cItem.FLAVOUR_DIV != ItemConst.PLU_FLAVOUR_DIV.FLAVOUR) break;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// cItem.CANCEL_DIV_MAIN = cPluItem.CANCEL_DIV;
|
|||
|
// cItem.ORDER_OK_FLAG = cPluItem.ORDER_OK_FLAG;
|
|||
|
// if (cPluItem.CANCEL_DIV == "1" && cItem.CANCEL_DIV == "0") cItem.CANCEL_DATE = DateTime.Now.ToString("yyyyMMddHHmmss");
|
|||
|
|
|||
|
// m_cDataService.UpdatePluItemAmount(cItem);
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
// 지정취소 항목 삭제
|
|||
|
//if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_ING && PosMstManager.GetPosOption(POS_OPTION.OPT025) == "1")
|
|||
|
//{
|
|||
|
// 지정취소 항목삭제 일때 기타에 지정취소 데이터 저장 필요.
|
|||
|
ISaleCompleteUs m_cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
|
|||
|
m_cSaleComplete.ItemCancelExecute(new string[] { });
|
|||
|
|
|||
|
string sFLAVOUR_DIV = cPluItem.FLAVOUR_DIV;
|
|||
|
string sITEM_DIV = cPluItem.ITEM_DIV;
|
|||
|
|
|||
|
m_alTrPluItem.RemoveAt(nSelRow);
|
|||
|
while (nSelRow < m_alTrPluItem.Count)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cItem = (Column.TR_PLU.DATA)m_alTrPluItem[nSelRow];
|
|||
|
|
|||
|
if (sFLAVOUR_DIV == ItemConst.PLU_FLAVOUR_DIV.FLAVOUR)
|
|||
|
{
|
|||
|
break;
|
|||
|
}
|
|||
|
else if (sITEM_DIV == ItemConst.PLU_ITEM_DIV.NORMAL || sITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_MAIN)
|
|||
|
{
|
|||
|
if ((cItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.NORMAL || cItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_MAIN)
|
|||
|
&& cItem.FLAVOUR_DIV != ItemConst.PLU_FLAVOUR_DIV.FLAVOUR) break;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
m_alTrPluItem.RemoveAt(nSelRow);
|
|||
|
}
|
|||
|
//}
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
//if (m_cPosStatus.Base.DmbIf == "1")
|
|||
|
//{
|
|||
|
// // 디지털메뉴보드 I/F
|
|||
|
// IDataServiceUs cDigitalMenuBoard = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.DMB_IF);
|
|||
|
// // 지정취소
|
|||
|
|
|||
|
// //#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start
|
|||
|
// //기존
|
|||
|
// //cDigitalMenuBoard.Execute(new string[] { ItemConst.DMB_IRT_ID.PRODUCT_REG, cPluItem.ITEM_PLU_CD, cPluItem.ITEM_NAME, "3" });
|
|||
|
// //변경
|
|||
|
// if (PosMstManager.GetPosOption(POS_OPTION.OPT554) != "1")
|
|||
|
// {
|
|||
|
// cDigitalMenuBoard.Execute(new string[] { ItemConst.DMB_IRT_ID.PRODUCT_REG, cPluItem.ITEM_PLU_CD, cPluItem.ITEM_NAME, "3" });
|
|||
|
// }
|
|||
|
// //#16569 파스쿠찌 드라이브 스루 기능 개발 요청 end
|
|||
|
//}
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 지정취소시 상품할인 취소처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="cPluItem"></param>
|
|||
|
/// <returns></returns>
|
|||
|
private string PluiTem_DC_Cancel(Column.TR_PLU.DATA cPluItem)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
// ----------------------------------------------------------------------------------------------
|
|||
|
// 현재 소계 할인 이면....
|
|||
|
// ----------------------------------------------------------------------------------------------
|
|||
|
if (cPluItem.ITEM_DC_AMT > 0)
|
|||
|
{
|
|||
|
if (cPluItem.DC_TYPE == ItemConst.PLU_DC_TYPE.DC_SUM)
|
|||
|
{
|
|||
|
if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0684) == true)
|
|||
|
{
|
|||
|
SubTotalDcClear();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
// ----------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
// ----------------------------------------------------------------------------------------------
|
|||
|
// 지정취소시 묶음할인 적용 그룹도 같이 취소
|
|||
|
// ----------------------------------------------------------------------------------------------
|
|||
|
if (cPluItem.SET_DC_AMT > 0)
|
|||
|
{
|
|||
|
if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0685) == false)
|
|||
|
{
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
int nSetDcGroupCD = cPluItem.SET_DC_GROUP_CD;
|
|||
|
ArrayList alSaleItemSetDc = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
for (int i = 0; i < alSaleItemSetDc.Count; i++)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cPluItemSetDc = (Column.TR_PLU.DATA)alSaleItemSetDc[i];
|
|||
|
|
|||
|
if (cPluItemSetDc.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItemSetDc.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue; // 지정취소
|
|||
|
if ((cPluItemSetDc.SET_DC_GROUP_CD == 0 && cPluItemSetDc.SET_DC_AMT > 0) || (cPluItemSetDc.SET_DC_GROUP_CD == nSetDcGroupCD))
|
|||
|
{
|
|||
|
cPluItemSetDc.SET_DC_AMT = 0;
|
|||
|
cPluItemSetDc.SET_DC_GROUP_CD = 0;
|
|||
|
m_cDataService.UpdatePluItemAmount(cPluItemSetDc);
|
|||
|
|
|||
|
if (cPluItemSetDc.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_OK) cPluItemSetDc.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
// ----------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 판매등록중 소계할인 클리어
|
|||
|
/// </summary>
|
|||
|
private void SubTotalDcClear()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
foreach (Column.TR_PLU.DATA cPluItem in m_alTrPluItem)
|
|||
|
{
|
|||
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.NORMAL && cPluItem.DC_TYPE == ItemConst.PLU_DC_TYPE.DC_SUM && cPluItem.ITEM_DC_AMT > 0)
|
|||
|
{
|
|||
|
|
|||
|
cPluItem.DC_TYPE = ItemConst.PLU_DC_TYPE.NORMAL;
|
|||
|
cPluItem.DC_DIV = ItemConst.PLU_DC_DIV.NORMAL;
|
|||
|
cPluItem.ITEM_DC_AMT = 0;
|
|||
|
|
|||
|
m_cDataService.UpdatePluItemAmount(cPluItem);
|
|||
|
|
|||
|
if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_OK) cPluItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 상품 수량 변경 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow"></param>
|
|||
|
/// <param name="sNewQty"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public string SetQtyChangeItem(string sSelRow, string sNewQty)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
int nSelRow = CmUtil.IntParse(sSelRow);
|
|||
|
long nNewQty = CmUtil.LongParse(sNewQty);
|
|||
|
|
|||
|
// 상품 정보
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)m_alTrPluItem[nSelRow];
|
|||
|
|
|||
|
// 취소 상품은 수량변경 불가
|
|||
|
if (cPluItem.CANCEL_DIV == "1" || cPluItem.CANCEL_DIV_MAIN == "1")
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0017); // 취소한 상품 입니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
// 세트 자식은 수량변경 불가
|
|||
|
if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_DETL || cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.GIFT || cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.PREPAID)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0014); // 수량변경 할 수 없는 상품 입니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
// 부가메뉴 등록중
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_OPT || m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_SET_OPT)
|
|||
|
{
|
|||
|
if (cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.OPT_MENU)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0025); // 부가메뉴만 변경 할 수 있습니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
}
|
|||
|
if ( cPluItem.ITEM_DC_AMT > 0 || cPluItem.SET_DC_AMT > 0 || cPluItem.EXCEP_DC_AMT > 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0548);
|
|||
|
return sRet;
|
|||
|
|
|||
|
}
|
|||
|
if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_OK)
|
|||
|
{
|
|||
|
// Del, 2017.04.19, 후불 주문완료상품 수량 변경
|
|||
|
//ITableUs cTableSvr = (ITableUs)sManager.InitServiceInstance(ServiceLists.BSV_TABLE.DLL, ServiceLists.BSV_TABLE.TABLE_SERVICE);
|
|||
|
//var cnt = cTableSvr.GetKtchDiveceCount(cPluItem.ORDER_OK_FLAG, m_cPosStatus.Sale.SelectFloorCd, m_cPosStatus.Sale.SelectTableNo, cPluItem.SUB_SHOP_CD + cPluItem.ITEM_PLU_CD);
|
|||
|
//if (cnt > 0)
|
|||
|
//{
|
|||
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0015); // 주문완료 후 수량변경 할 수 없습니다
|
|||
|
// return sRet;
|
|||
|
//}
|
|||
|
}
|
|||
|
|
|||
|
if (nNewQty <= 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0567); // 수량을 입력 후 사용하세요.
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
else if (nNewQty > 99999)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0568); // 입력된 수량이 너무 큽니다.
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
cPluItem.SALE_QTY = nNewQty;
|
|||
|
// 판매 loss일 경우 0원 처리
|
|||
|
//if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS) cPluItem.ITEM_DC_AMT = cPluItem.SALE_PRC * cPluItem.SALE_QTY;
|
|||
|
|
|||
|
m_cDataService.UpdatePluItemAmount(cPluItem);
|
|||
|
|
|||
|
if (nSelRow + 1 < m_alTrPluItem.Count)
|
|||
|
{
|
|||
|
// 상위메뉴 수량 => 하위 메뉴 반영
|
|||
|
if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_MAIN)
|
|||
|
{
|
|||
|
for (int i = nSelRow + 1; i < m_alTrPluItem.Count; i++)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cItem = (Column.TR_PLU.DATA)m_alTrPluItem[i];
|
|||
|
|
|||
|
if (cItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.NORMAL || cItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_MAIN) break;
|
|||
|
|
|||
|
if (cItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_DETL)
|
|||
|
{
|
|||
|
cItem.SALE_QTY = nNewQty;
|
|||
|
// 판매 loss일 경우 0원 처리
|
|||
|
//if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS) cPluItem.ITEM_DC_AMT = cPluItem.SALE_PRC * cPluItem.SALE_QTY;
|
|||
|
}
|
|||
|
m_cDataService.UpdatePluItemAmount(cItem);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
//if (m_cPosStatus.Base.DmbIf == "1")
|
|||
|
//{
|
|||
|
// // 디지털메뉴보드 I/F
|
|||
|
// IDataServiceUs cDigitalMenuBoard = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.DMB_IF);
|
|||
|
// // 수량변경
|
|||
|
// //#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start
|
|||
|
// //기존
|
|||
|
// //cDigitalMenuBoard.Execute(new string[] { ItemConst.DMB_IRT_ID.PRODUCT_REG, cPluItem.ITEM_PLU_CD, cPluItem.ITEM_NAME, "2" });
|
|||
|
// //변경
|
|||
|
// if (PosMstManager.GetPosOption(POS_OPTION.OPT554) != "1")
|
|||
|
// {
|
|||
|
// cDigitalMenuBoard.Execute(new string[] { ItemConst.DMB_IRT_ID.PRODUCT_REG, cPluItem.ITEM_PLU_CD, cPluItem.ITEM_NAME, "2" });
|
|||
|
// }
|
|||
|
// //#16569 파스쿠찌 드라이브 스루 기능 개발 요청 end
|
|||
|
//}
|
|||
|
|
|||
|
if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_OK) cPluItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD;
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 단품 할인 적용
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow"></param>
|
|||
|
/// <param name="sDcType">ITEM_DC_DIV_POS_DC</param>
|
|||
|
/// <param name="sVaule"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public string SetDcItem(string sSelRow, string sDcType, string sDcCode, string sVaule)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
int nSelRow = CmUtil.IntParse(sSelRow);
|
|||
|
double dDcValue = CmUtil.DoubleParse(sVaule);
|
|||
|
|
|||
|
// 상품 정보
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)m_alTrPluItem[nSelRow];
|
|||
|
|
|||
|
// 취소 상품은 할인 불가
|
|||
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0017); // 취소한 상품 입니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
//// 세트 자식은 할인 불가
|
|||
|
//if (cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.NORMAL && cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.SET_MAIN)
|
|||
|
//{
|
|||
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0050); // 할인 적용 불가능한 상품 입니다.
|
|||
|
// return sRet;
|
|||
|
//}
|
|||
|
|
|||
|
// 할인 허용 여부
|
|||
|
if (cPluItem.DC_PRMT_YN == "1" || cPluItem.FREE_GIFT_YN == "1" || cPluItem.SALE_PRC == 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0050); // 할인 적용 불가능한 상품 입니다.
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
// 할인 등록 여부 체크
|
|||
|
if (m_cDataService.GetPluDiscountAmount(false, false, true, true, true, true, true, true, false, nSelRow) > 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0063); // 기존 할인 취소 후 등록 하세요.
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
double nBasicAmt = cPluItem.SALE_AMT; // 기준금액
|
|||
|
|
|||
|
if (sDcType == PosConst.ITEM_DC_DIV_POS_DC.FREE) // 서비스
|
|||
|
{
|
|||
|
|
|||
|
// 2016-12-10 문대리 요청으로 무조건 적용!
|
|||
|
//if ( cPluItem.DC_DIV != ItemConst.PLU_DC_DIV.NORMAL && cPluItem.DC_DIV != ItemConst.PLU_DC_DIV.FREE)
|
|||
|
//{
|
|||
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0063); // 기존 할인 취소 후 등록 하세요.
|
|||
|
// return sRet;
|
|||
|
//}
|
|||
|
|
|||
|
|
|||
|
if (sDcCode == ItemConst.PLU_DC_DIV.FREE) //서비스
|
|||
|
{
|
|||
|
if (cPluItem.DC_DIV == ItemConst.PLU_DC_DIV.FREE)
|
|||
|
{
|
|||
|
if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0064) == false) // 등록된 서비스을 취소 하시겠습니까?
|
|||
|
return sRet;
|
|||
|
|
|||
|
// 서비스 취소
|
|||
|
cPluItem.ITEM_DC_AMT = 0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 서비스 등록
|
|||
|
cPluItem.ITEM_DC_AMT = nBasicAmt;
|
|||
|
cPluItem.EXCEP_DC_AMT = 0;
|
|||
|
cPluItem.EXCEP_DC_DIV = ItemConst.PLU_DC_DIV.NORMAL;
|
|||
|
}
|
|||
|
cPluItem.DC_DIV = (cPluItem.ITEM_DC_AMT == 0) ? ItemConst.PLU_DC_DIV.NORMAL : ItemConst.PLU_DC_DIV.FREE;
|
|||
|
}
|
|||
|
else if (sDcCode == ItemConst.PLU_DC_DIV.ITEM_CHAGE_CPN_DC)
|
|||
|
{
|
|||
|
|
|||
|
if (cPluItem.DC_DIV == ItemConst.PLU_DC_DIV.ITEM_CHAGE_CPN_DC)
|
|||
|
{
|
|||
|
if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0662) == false) // 등록된 제품교환권을 취소 하시겠습니까?
|
|||
|
return sRet;
|
|||
|
|
|||
|
// 제품교환권 취소
|
|||
|
cPluItem.ITEM_DC_AMT = 0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 제품교환권 등록
|
|||
|
cPluItem.ITEM_DC_AMT = nBasicAmt;
|
|||
|
cPluItem.EXCEP_DC_AMT = 0;
|
|||
|
cPluItem.EXCEP_DC_DIV = ItemConst.PLU_DC_DIV.NORMAL;
|
|||
|
}
|
|||
|
cPluItem.DC_DIV = (cPluItem.ITEM_DC_AMT == 0) ? ItemConst.PLU_DC_DIV.NORMAL : ItemConst.PLU_DC_DIV.ITEM_CHAGE_CPN_DC;
|
|||
|
}
|
|||
|
}
|
|||
|
else // 상품 할인
|
|||
|
{
|
|||
|
//if (cPluItem.DC_DIV != ItemConst.PLU_DC_DIV.NORMAL && cPluItem.DC_DIV != ItemConst.PLU_DC_DIV.POS_DC)
|
|||
|
//{
|
|||
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0063); // 기존 할인 취소 후 등록 하세요.
|
|||
|
// return sRet;
|
|||
|
//}
|
|||
|
|
|||
|
if (dDcValue == 0)
|
|||
|
{
|
|||
|
if (cPluItem.DC_DIV == sDcCode)
|
|||
|
{
|
|||
|
if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0053) == false) // 등록된 할인을 취소 하시겠습니까?
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (sDcType == PosConst.ITEM_DC_DIV_POS_DC.RATE)
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0051); // 할인 율을 입력하지 않았거나 너무 큽니다
|
|||
|
else
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0049); // 할인 금액을 입력하지 않았거나 너무 큽니다
|
|||
|
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (cPluItem.BILL_AMT == 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0601); // 할인 적용 대상 금액이 없습니다.
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
nBasicAmt = CmUtil.DoubleSubtraction(nBasicAmt, cPluItem.EXCEP_DC_AMT);
|
|||
|
if (sDcType == PosConst.ITEM_DC_DIV_POS_DC.RATE)
|
|||
|
{
|
|||
|
// 율 할인
|
|||
|
if (dDcValue > 100)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0051); // 할인 율을 입력하지 않았거나 너무 큽니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
cPluItem.DC_RATE = dDcValue;
|
|||
|
double nDcAmt = CmUtil.MathRounds(CmUtil.MathAmtPercent(nBasicAmt, dDcValue), m_cPosStatus.Mst.DcRudDwLocMethd, CmUtil.IntParse(m_cPosStatus.Mst.DcRudDwLoc));
|
|||
|
|
|||
|
//girak.kim, #2017/08/29 중국 상품 할인율 소숫점 둘째자리 올림 처리(그러므로 결재금액은 내림처리됨) Start
|
|||
|
if (m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCCN))
|
|||
|
{
|
|||
|
nDcAmt = Convert.ToDouble(Decimal.Round(Convert.ToDecimal(nDcAmt) + Convert.ToDecimal(0.05), 1));
|
|||
|
}
|
|||
|
//girak.kim, #2017/08/29 중국 상품 할인율 소숫점 둘째자리 올림 처리(그러므로 결재금액은 내림처리됨) End
|
|||
|
|
|||
|
if (CmUtil.DoubleAdd(cPluItem.BILL_AMT, cPluItem.ITEM_DC_AMT) < nDcAmt)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0602), cPluItem.BILL_AMT, nDcAmt)); // 할인 대상 금액 보다 적용하려는 금액이 더 큽니다.
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
cPluItem.ITEM_DC_AMT = nDcAmt;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 금액 할인
|
|||
|
if (dDcValue > nBasicAmt)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0049); // 할인 금액을 입력하지 않았거나 너무 큽니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
cPluItem.DC_RATE = 0;
|
|||
|
double nDcAmt = CmUtil.MathRounds(dDcValue, m_cPosStatus.Mst.DcRudDwLocMethd, CmUtil.IntParse(m_cPosStatus.Mst.DcRudDwLoc));
|
|||
|
if (CmUtil.DoubleAdd(cPluItem.BILL_AMT, cPluItem.ITEM_DC_AMT) < nDcAmt)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0602), cPluItem.BILL_AMT, nDcAmt)); // 할인 대상 금액 보다 적용하려는 금액이 더 큽니다.
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
cPluItem.ITEM_DC_AMT = nDcAmt;
|
|||
|
}
|
|||
|
cPluItem.DC_DIV = (cPluItem.ITEM_DC_AMT == 0) ? ItemConst.PLU_DC_DIV.NORMAL : sDcCode;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
cPluItem.DC_TYPE = (cPluItem.ITEM_DC_AMT == 0) ? ItemConst.PLU_DC_TYPE.NORMAL : ItemConst.PLU_DC_TYPE.DC_ITEM;
|
|||
|
|
|||
|
m_cDataService.UpdatePluItemAmount(cPluItem);
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_OK) cPluItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD;
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 단품 No Tax
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public string SetNoTaxItem(string sSelRow)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
int nSelRow = CmUtil.IntParse(sSelRow);
|
|||
|
|
|||
|
// 상품 정보
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)m_alTrPluItem[nSelRow];
|
|||
|
|
|||
|
// 취소 상품은 할인 불가
|
|||
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0017); // 취소한 상품 입니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
// 세트 자식은 적용 불가
|
|||
|
if (cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.NORMAL && cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.SET_MAIN)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0159); //NO TAX 적용 불가 상품 입니다.
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.ITEM_TAX_DIV == PosConst.ITEM_TAX_DIV.FREE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0159); //NO TAX 적용 불가 상품 입니다.
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
// 사은품 및 금액이 없을 경우 체크
|
|||
|
if (cPluItem.FREE_GIFT_YN == "1" || cPluItem.SALE_PRC == 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0159);
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.NOTAX_DIV == PosConst.ITEM_NOTAX_DIV.YES)
|
|||
|
{
|
|||
|
cPluItem.NOTAX_DIV = PosConst.ITEM_NOTAX_DIV.NO;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cPluItem.APPLY_TAX_AMT = 0;
|
|||
|
cPluItem.NOTAX_DIV = PosConst.ITEM_NOTAX_DIV.YES;
|
|||
|
}
|
|||
|
|
|||
|
m_cDataService.UpdatePluItemAmount(cPluItem);
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_OK) cPluItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD;
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
//#Rhee, 20180212 전체상품 No Tax 추가 Start
|
|||
|
/// <summary>
|
|||
|
/// 전체상품 No Tax
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public string SetAllNoTaxItem()
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
// 상품 정보
|
|||
|
foreach (Column.TR_PLU.DATA cPluItem in m_alTrPluItem)
|
|||
|
{
|
|||
|
// NO TAX 적용 불가 상품 입니다.
|
|||
|
if (! ((cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL)
|
|||
|
|| (cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.NORMAL && cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.SET_MAIN)
|
|||
|
|| (cPluItem.ITEM_TAX_DIV == PosConst.ITEM_TAX_DIV.FREE)
|
|||
|
|| (cPluItem.FREE_GIFT_YN == "1" || cPluItem.SALE_PRC == 0))
|
|||
|
)
|
|||
|
{
|
|||
|
if (cPluItem.NOTAX_DIV == PosConst.ITEM_NOTAX_DIV.YES)
|
|||
|
{
|
|||
|
cPluItem.NOTAX_DIV = PosConst.ITEM_NOTAX_DIV.NO;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cPluItem.APPLY_TAX_AMT = 0;
|
|||
|
cPluItem.NOTAX_DIV = PosConst.ITEM_NOTAX_DIV.YES;
|
|||
|
}
|
|||
|
|
|||
|
m_cDataService.UpdatePluItemAmount(cPluItem);
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_OK) cPluItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD;
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
//#Rhee, 20180212 전체상품 No Tax 추가 End
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 세트메뉴 구성 상품 변경
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow"></param>
|
|||
|
/// <param name="sMenuCode"></param>
|
|||
|
/// <param name="sMenuName"></param>
|
|||
|
/// <param name="sMenuPrc"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public string SetSetMenuItemChange(string sSelRow, string sMenuCode, string sMenuName, string sMenuPrc)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
int nSelRow = CmUtil.IntParse(sSelRow);
|
|||
|
|
|||
|
// 상품 정보
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)m_alTrPluItem[CmUtil.IntParse(sSelRow)];
|
|||
|
|
|||
|
// 취소 상품은 변경 불가
|
|||
|
if (cPluItem.CANCEL_DIV == "1" || cPluItem.CANCEL_DIV_MAIN == "1")
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0017); // 취소한 상품 입니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.ORDER_OK_FLAG != PosConst.PLU_ORDER_OK_FLAG.ORDER_ING)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0015); // 주문완료 후 수량변경 할 수 없습니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.ITEM_DC_AMT > 0 || cPluItem.SET_DC_AMT > 0 || cPluItem.EXCEP_DC_AMT > 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0548);
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.SET_DETL)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0307);
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
// 변경될 상품 조회 후 설정
|
|||
|
if (SetTrPluItemToMst(cPluItem, cPluItem.SUB_SHOP_CD, sMenuCode) == false) return sRet;
|
|||
|
|
|||
|
cPluItem.ITEM_PLU_CD = sMenuCode;
|
|||
|
if (sMenuName != "")
|
|||
|
cPluItem.ITEM_NAME = ">" + sMenuName;
|
|||
|
else
|
|||
|
cPluItem.ITEM_NAME = ">" + cPluItem.ITEM_NAME;
|
|||
|
|
|||
|
cPluItem.SALE_PRC = CmUtil.DoubleParse(sMenuPrc);
|
|||
|
// 판매 loss일 경우 0원 처리
|
|||
|
//if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS) cPluItem.ITEM_DC_AMT = cPluItem.SALE_PRC * cPluItem.SALE_QTY;
|
|||
|
|
|||
|
m_cDataService.UpdatePluItemAmount(cPluItem);
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 상품 부가메뉴 => 부가메뉴 변경
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow"></param>
|
|||
|
/// <param name="sMenuCode"></param>
|
|||
|
/// <param name="sMenuKeyDiv"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public string SetSubMenuItemChange(string sSelRow, string sMenuCode, string sMenuKeyDiv)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
// 상품 정보
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)m_alTrPluItem[CmUtil.IntParse(sSelRow)];
|
|||
|
|
|||
|
// 취소 상품은 변경 불가
|
|||
|
if (cPluItem.CANCEL_DIV == "1" || cPluItem.CANCEL_DIV_MAIN == "1")
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0017); // 취소한 상품 입니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.ORDER_OK_FLAG != PosConst.PLU_ORDER_OK_FLAG.ORDER_ING)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0015); // 주문완료 후 수량변경 할 수 없습니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.ITEM_DC_AMT > 0 || cPluItem.SET_DC_AMT > 0 || cPluItem.EXCEP_DC_AMT > 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0548);
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.OPT_MENU)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0026);
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
// 변경될 상품 조회 후 설정
|
|||
|
if (SetTrPluItemToMst(cPluItem, cPluItem.SUB_SHOP_CD, sMenuCode.Substring(10)) == false) return sRet;
|
|||
|
|
|||
|
cPluItem.ITEM_NAME = ">>" + cPluItem.ITEM_NAME;
|
|||
|
|
|||
|
cPluItem.SUBPRC_MENU_KEY_DIV = sMenuKeyDiv; // 부가메뉴구분(1:속성,2:업차지,3:선택메뉴)
|
|||
|
if (sMenuKeyDiv != "2")
|
|||
|
cPluItem.SALE_PRC = 0;
|
|||
|
else
|
|||
|
cPluItem.SALE_PRC = m_cTrnStatus.Sale.SubMenuUpSalePrc;
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 상품 부가메뉴 => 부가메뉴구분(속성) 등록
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMemoCode"></param>
|
|||
|
/// <param name="sMemoName"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public string SetSubMenuMemoItem(string sMemoCode, string sMemoName, string sInPutData)
|
|||
|
{
|
|||
|
int nSelRow = 0;
|
|||
|
bool bSumMenuAdd = false;
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
// 메뉴코드 = (점포코드(10)+상품코드)
|
|||
|
string sSubStoreNo = sMemoCode.Substring(0, 10).Trim(); // 점포코드
|
|||
|
string sItemCode = sMemoCode.Substring(10); // 상품코드
|
|||
|
|
|||
|
nSelRow = m_alTrPluItem.Count - 1;
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING)
|
|||
|
{
|
|||
|
nSelRow = (int)m_cTrnStatus.Sale.SubMenuSelectPos + 1;
|
|||
|
if (nSelRow >= m_alTrPluItem.Count)
|
|||
|
{
|
|||
|
nSelRow = m_alTrPluItem.Count - 1;
|
|||
|
bSumMenuAdd = true;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 같은 상품 등록 여부 체크(수량증가)
|
|||
|
bool bQtyAdd = false;
|
|||
|
if (nSelRow >= 0 && sInPutData == ""
|
|||
|
&& (PosMstManager.GetPosOption(POS_OPTION.OPT031) == "1" || PosMstManager.GetPosOption(POS_OPTION.OPT031) == "2")) // 수량 합산 처리(0:미합산, 1:최종상품합산, 2:전체상품합산))
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)m_alTrPluItem[nSelRow];
|
|||
|
if (cPluItem.SUB_SHOP_CD == sSubStoreNo
|
|||
|
&& cPluItem.ITEM_PLU_CD == sItemCode
|
|||
|
&& cPluItem.SUBPRC_MENU_KEY_DIV == "1"
|
|||
|
&& cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_ING
|
|||
|
&& cPluItem.CANCEL_DIV == "0" && cPluItem.DC_DIV == ItemConst.PLU_DC_DIV.NORMAL && cPluItem.SALE_QTY < 99999)
|
|||
|
{
|
|||
|
// 수량 증가
|
|||
|
cPluItem.SALE_QTY += 1;
|
|||
|
bQtyAdd = true;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (bQtyAdd == false)
|
|||
|
{
|
|||
|
// 상품 정보 생성
|
|||
|
Column.TR_PLU.DATA cPluItem = new Column.TR_PLU.DATA();
|
|||
|
|
|||
|
cPluItem.SUB_SHOP_CD = sSubStoreNo;
|
|||
|
cPluItem.ITEM_PLU_CD = sItemCode;
|
|||
|
cPluItem.ITEM_DIV = ItemConst.PLU_ITEM_DIV.OPT_MENU;
|
|||
|
|
|||
|
cPluItem.SALE_QTY = 1;
|
|||
|
if (sInPutData.Length > 0 && sInPutData.Length <= 5) cPluItem.SALE_QTY = CmUtil.LongParse(sInPutData);
|
|||
|
cPluItem.ITEM_NAME = ">>>" + sMemoName;
|
|||
|
|
|||
|
cPluItem.SUBPRC_MENU_KEY_DIV = "1"; // 부가메뉴구분(1:속성,2:업차지,3:선택메뉴)
|
|||
|
|
|||
|
cPluItem.NONSALES_RSN_CD = m_cTrnStatus.Head.NonSaleRsnCd;
|
|||
|
cPluItem.NONSALES_RSN_NM = m_cTrnStatus.Head.LossTitle;
|
|||
|
|
|||
|
cPluItem.SUB_MENU_MAIN_CD = m_cTrnStatus.Sale.SubMenuMainCode;
|
|||
|
if (m_cPosStatus.Sale.SaleFlow != PosConst.SALE_FLOW.SALE_DOING || bSumMenuAdd == true)
|
|||
|
m_alTrPluItem.Add(cPluItem); // 등록 처리
|
|||
|
else
|
|||
|
m_alTrPluItem.Insert(nSelRow, cPluItem); // 등록 처리
|
|||
|
}
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 상품 부가메뉴 => 부가메뉴구분(속성) 변경
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMemoCode"></param>
|
|||
|
/// <param name="sMemoName"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public string SetSubMenuMemoItemChange(string sSelRow, string sMemoCode, string sMemoName)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
// 상품 정보
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)m_alTrPluItem[CmUtil.IntParse(sSelRow)];
|
|||
|
|
|||
|
// 취소 상품은 변경 불가
|
|||
|
if (cPluItem.CANCEL_DIV == "1" || cPluItem.CANCEL_DIV_MAIN == "1")
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0017); // 취소한 상품 입니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.ORDER_OK_FLAG != PosConst.PLU_ORDER_OK_FLAG.ORDER_ING)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0015); // 주문완료 후 수량변경 할 수 없습니다
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.ITEM_DC_AMT > 0 || cPluItem.SET_DC_AMT > 0 || cPluItem.EXCEP_DC_AMT > 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0548);
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.OPT_MENU)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0026);
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
cPluItem.ITEM_PLU_CD = sMemoCode.Substring(11); // 상품코드
|
|||
|
cPluItem.ITEM_NAME = ">>>" + sMemoName;
|
|||
|
cPluItem.SALE_PRC = 0;
|
|||
|
cPluItem.SUBPRC_MENU_KEY_DIV = "1"; // 부가메뉴구분(1:속성,2:업차지,3:선택메뉴)
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 상품마스터 이미지명 업데이터
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public void UpdateMstItemImageName()
|
|||
|
{
|
|||
|
string sQuery = "", sUpdQuery = "";
|
|||
|
ArrayList alUpdQuery = new ArrayList();
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
sUpdQuery = " UPDATE POSMST..MST_ITEM SET ";
|
|||
|
sUpdQuery += " SALE_IMG_FILE_NM = '{0}' ";
|
|||
|
sUpdQuery += " , BTN_ITEM_IMG = '{1}' ";
|
|||
|
sUpdQuery += " WHERE CMP_CD = '{2}' ";
|
|||
|
sUpdQuery += " AND STOR_CD = '{3}' ";
|
|||
|
sUpdQuery += " AND SUB_STOR_CD = '{4}' ";
|
|||
|
sUpdQuery += " AND ITEM_CD = '{5}' ";
|
|||
|
|
|||
|
// 대상 상품 조회
|
|||
|
sQuery = " SELECT A.* ";
|
|||
|
sQuery += " FROM POSMST..MST_ITEM A ";
|
|||
|
sQuery += " JOIN POSMST..MST_ITEM_KEY B ON A.CMP_CD=B.CMP_CD AND A.STOR_CD=B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.ITEM_CD = B.ITEM_CD ";
|
|||
|
sQuery += " WHERE A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|||
|
sQuery += " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|||
|
sQuery += " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|||
|
|
|||
|
DataTable dtMstItem = m_cMstService.Select(new string[] { sQuery });
|
|||
|
if (dtMstItem == null || dtMstItem.Rows.Count == 0) return;
|
|||
|
|
|||
|
foreach (DataRow dr in dtMstItem.Rows)
|
|||
|
{
|
|||
|
string sSubStorCd = CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.SUB_STOR_CD).Trim();
|
|||
|
string sItemCode = CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.ITEM_CD).Trim();
|
|||
|
string sFileNameFull = CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.SALE_IMG_FILE_NM).Trim();
|
|||
|
string sFileNameBtn = CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.BTN_ITEM_IMG).Trim();
|
|||
|
|
|||
|
string sNewFileNameFull = "";
|
|||
|
if (File.Exists(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.ITEM + sItemCode + "_FULL.PNG") == true)
|
|||
|
sNewFileNameFull = sItemCode + "_FULL.PNG";
|
|||
|
else if (File.Exists(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.ITEM + sFileNameFull) == true)
|
|||
|
sNewFileNameFull = sFileNameFull;
|
|||
|
|
|||
|
string sNewFileNameBtn = "";
|
|||
|
if (File.Exists(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.ITEM + sItemCode + ".PNG") == true)
|
|||
|
sNewFileNameBtn = sItemCode + ".PNG";
|
|||
|
else if (File.Exists(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.ITEM + sFileNameBtn) == true)
|
|||
|
sNewFileNameBtn = sFileNameBtn;
|
|||
|
|
|||
|
if (sFileNameFull != sNewFileNameFull || sFileNameBtn != sNewFileNameBtn)
|
|||
|
{
|
|||
|
sQuery = string.Format(sUpdQuery, sNewFileNameFull, sNewFileNameBtn, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, sSubStorCd, sItemCode);
|
|||
|
|
|||
|
alUpdQuery.Add(sQuery);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (alUpdQuery.Count > 0)
|
|||
|
{
|
|||
|
string[] saQuery = new string[alUpdQuery.Count];
|
|||
|
for (int i = 0; i < alUpdQuery.Count; i++)
|
|||
|
{
|
|||
|
saQuery[i] = (string)alUpdQuery[i];
|
|||
|
}
|
|||
|
m_cMstService.Update(saQuery);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 상품아이템 할인 전체 취소
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
//#20170920 보류 처리시 임의할인 내역 유지 되도록 수정 start
|
|||
|
//기존
|
|||
|
//public bool ItemDcAllClear(bool bCampaignClear, bool bEtcCodeClear = false)
|
|||
|
//변경
|
|||
|
public bool ItemDcAllClear(bool bCampaignClear, bool bEtcCodeClear = false, bool bNorDcClear = true)
|
|||
|
//#20170920 보류 처리시 임의할인 내역 유지 되도록 수정 end
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
if (bCampaignClear == true)
|
|||
|
m_cCampaingMain.ClearCampaignAmt(); // 캠페인 취소 처리
|
|||
|
|
|||
|
//상품 할인정보 초기화
|
|||
|
foreach (Column.TR_PLU.DATA cPluItem in m_alTrPluItem)
|
|||
|
{
|
|||
|
//#20170920 보류 처리시 임의할인 내역 유지 되도록 수정 start
|
|||
|
//기존
|
|||
|
/*
|
|||
|
cPluItem.DC_DIV = ItemConst.PLU_DC_DIV.NORMAL; // POS 할인 구분
|
|||
|
cPluItem.DC_TYPE = ItemConst.PLU_DC_TYPE.NORMAL; // 할인 유형
|
|||
|
cPluItem.DC_RATE = 0; // POS 할인 율
|
|||
|
cPluItem.ITEM_DC_AMT = 0; // POS 단품 할인 금액
|
|||
|
*/
|
|||
|
//변경
|
|||
|
if (bNorDcClear == true)
|
|||
|
{
|
|||
|
cPluItem.DC_DIV = ItemConst.PLU_DC_DIV.NORMAL; // POS 할인 구분
|
|||
|
cPluItem.DC_TYPE = ItemConst.PLU_DC_TYPE.NORMAL; // 할인 유형
|
|||
|
cPluItem.DC_RATE = 0; // POS 할인 율
|
|||
|
cPluItem.ITEM_DC_AMT = 0; // POS 단품 할인 금액
|
|||
|
}
|
|||
|
//#20170920 보류 처리시 임의할인 내역 유지 되도록 수정 end
|
|||
|
|
|||
|
cPluItem.SUM_DC_AMT = 0; // POS 소계 할인 금액
|
|||
|
cPluItem.CPI_DC_QTY = 0; // 캠페인 성립 수량
|
|||
|
cPluItem.CPI_DC_AMT = 0; // 캠페인 할인 금액
|
|||
|
cPluItem.COOP_CARD_DC_DIV = ItemConst.PLU_DC_DIV.NORMAL; // 제휴카드 할인 구분
|
|||
|
cPluItem.COOP_CARD_DC_AMT = 0; // 제휴카드 할인 금액
|
|||
|
cPluItem.POINT_DC_DIV = ItemConst.PLU_DC_DIV.NORMAL; // 포인트 할인 구분
|
|||
|
cPluItem.POINT_DC_AMT = 0; // 포인트 할인 금액
|
|||
|
cPluItem.CPN_DC_DIV = ItemConst.PLU_DC_DIV.NORMAL; // 쿠폰 할인 구분
|
|||
|
cPluItem.CPN_DC_AMT = 0; // 쿠폰 할인 금액
|
|||
|
cPluItem.EMP_DC_DIV = ItemConst.PLU_DC_DIV.NORMAL; // 직원 할인 구분
|
|||
|
cPluItem.EMP_DC_AMT = 0; // 직원 할인 금액
|
|||
|
cPluItem.SET_DC_AMT = 0; // 세트 할인 금액
|
|||
|
cPluItem.SET_DC_GROUP_CD = 0; // 세트 세트그룹코드
|
|||
|
cPluItem.ETC_DC_DIV = ItemConst.PLU_DC_DIV.NORMAL; // 기타 할인 구분
|
|||
|
cPluItem.ETC_DC_AMT = 0; // 기타 할인 금액
|
|||
|
cPluItem.EXCEP_DC_DIV = ItemConst.PLU_DC_DIV.NORMAL; // 예외 할인 구분
|
|||
|
cPluItem.EXCEP_DC_AMT = 0; // 예외 할인 금액
|
|||
|
cPluItem.CPI_PRESENT_DIV = "0"; // 캠페인 증정 구분
|
|||
|
|
|||
|
if (bEtcCodeClear == true)
|
|||
|
{
|
|||
|
// 기타부가정보 초기화
|
|||
|
|
|||
|
//#15149 PB 오목교 - 기부내역 불러온뒤 제품추가 후 결제하면 추가한수량 합계되지않는 증상 start
|
|||
|
//기존
|
|||
|
cPluItem.NONSALES_RSN_CD = "0";
|
|||
|
|
|||
|
//변경
|
|||
|
//if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS)
|
|||
|
//{
|
|||
|
// if (cPluItem.NONSALES_RSN_CD != "")
|
|||
|
// {
|
|||
|
// DataTable dt = m_cDataCommon.SeletCommonCode(PosConst.COMMON_CODE_GROUP.S0001, cPluItem.NONSALES_RSN_CD);
|
|||
|
// if (dt != null && dt.Rows.Count > 0)
|
|||
|
// {
|
|||
|
// DataRow dr = dt.Rows[0];
|
|||
|
// cPluItem.NONSALES_RSN_NM = CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CD_NM);
|
|||
|
// }
|
|||
|
// }
|
|||
|
//
|
|||
|
// m_cTrnStatus.Head.NonSaleRsnCd = cPluItem.NONSALES_RSN_CD;
|
|||
|
// m_cTrnStatus.Head.LossTitle = cPluItem.NONSALES_RSN_NM;
|
|||
|
//}
|
|||
|
//else
|
|||
|
//{
|
|||
|
// cPluItem.NONSALES_RSN_CD = "0";
|
|||
|
//}
|
|||
|
//#15149 PB 오목교 - 기부내역 불러온뒤 제품추가 후 결제하면 추가한수량 합계되지않는 증상 end
|
|||
|
|
|||
|
cPluItem.PACK_DIV = "0";
|
|||
|
cPluItem.CPI_PRESENT_DIV = "0";
|
|||
|
cPluItem.BILLSPR_NO = 0;
|
|||
|
cPluItem.SALE_GIFT_NO = "";
|
|||
|
cPluItem.CPN_NO = "";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
ItemAmountExeccute(false, true);
|
|||
|
|
|||
|
bRet = true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
//#Rhee, 20180130 단품 할인 전체 취소 추가 Start
|
|||
|
/// <summary>
|
|||
|
/// 단품 할인 적용 전체 취소
|
|||
|
/// </summary>
|
|||
|
/// <param name="sDcDiv"></param>
|
|||
|
/// <param name="sDcType"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public string SetDcCancelItem(string sDcDiv, string sDcType)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0053) != false) // 등록된 할인을 취소 하시겠습니까?
|
|||
|
{
|
|||
|
// 상품 정보
|
|||
|
foreach (Column.TR_PLU.DATA cPluItem in m_alTrPluItem)
|
|||
|
{
|
|||
|
if (cPluItem.DC_DIV == sDcDiv && (cPluItem.DC_TYPE == sDcType || cPluItem.DC_TYPE == "1"))
|
|||
|
{
|
|||
|
cPluItem.ITEM_DC_AMT = 0;
|
|||
|
cPluItem.DC_RATE = 0;
|
|||
|
cPluItem.DC_DIV = ItemConst.PLU_DC_DIV.NORMAL;
|
|||
|
cPluItem.DC_TYPE = ItemConst.PLU_DC_TYPE.NORMAL;
|
|||
|
m_cDataService.UpdatePluItemAmount(cPluItem);
|
|||
|
if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_OK) cPluItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
//#Rhee, 20180130 단품 할인 전체 취소 추가 End
|
|||
|
}
|
|||
|
}
|