Example #1
0
        public PayInfoParam GetPayInfoParamBeforeDeliveryInfoInsert(OrderItem orderItem, UserItem userItem, bool fromOrderConfirm)
        {
            DeliveryInfoItem deliveryInfoItem = DeliveryInfoDao.FindById(orderItem.DeliveryInfoId);

            PayInfoParam param = new PayInfoParam();

            param.OrderItem        = orderItem;
            param.DeliveryInfoItem = deliveryInfoItem;
            param.UserItem         = userItem;
            OrderService.SetPriceInPayInfoParam(orderItem.Id, param);
            param.PayInfoItem = GetPayInfoItem(param.OrderItem.PayInfoId);
            if (param.OrderItem.PayInfoId == 0)
            {
                if (orderItem.HighPrintId > 0)
                {
                    param.PayInfoItem.PayType        = "BANK"; // 우선 출력 상품의 경우 대인불가
                    param.PayInfoItem.ShippingCharge = 0;
                    param.PayInfoItem.ManPaidCharge  = 0;
                }
                else
                {
                    param.PayInfoItem.PayType        = "MAN";
                    param.PayInfoItem.ShippingCharge = TradeUtil.GetShippingCharge(param.GoodsPrice, deliveryInfoItem);
                    param.PayInfoItem.ManPaidCharge  = TradeUtil.ManPaidCharge(param.PayInfoItem.ProductCharge + param.PayInfoItem.ShippingCharge - param.PayInfoItem.PointPaid);
                }
                param.PayInfoItem.ProductCharge = param.TaxAddedPrice;
                param.PayInfoItem.CashPrice     = param.PayInfoItem.ComputedCashPrice();
            }
            param.BankInfoSelectList = GetBankInfoSelectList(param.PayInfoItem.BankType);
            param.FromOrderConfirm   = fromOrderConfirm;
            return(param);
        }
Example #2
0
        //대체
        public PayInfoParam GetPayInfoParam(OrderItem orderItem, UserItem userItem)
        {
            DeliveryInfoItem deliveryInfoItem = DeliveryInfoDao.FindById(orderItem.DeliveryInfoId);

            PayInfoParam param = new PayInfoParam();

            param.OrderItem        = orderItem;
            param.DeliveryInfoItem = deliveryInfoItem;
            param.UserItem         = userItem;
            param.PayInfoItem      = GetPayInfoItem(param.OrderItem.PayInfoId);
            if (param.DeliveryInfoItem.IsProxy == 1)
            {
                param.PayInfoItem.PayType = "BANK";
            }
            param.BankInfoSelectList = GetBankInfoSelectList(param.PayInfoItem.BankType);
            param.TaxAddedPrice      = OrderService.GetTaxAddedPrice(orderItem.Id);
            return(param);
        }
Example #3
0
        public PayInfoParam GetPayInfoParamBeforeDeliveryInfoInsert(OrderItem orderItem, UserItem userItem)
        {
            DeliveryInfoItem deliveryInfoItem = DeliveryInfoDao.FindById(orderItem.DeliveryInfoId);

            PayInfoParam param = new PayInfoParam();

            param.OrderItem        = orderItem;
            param.DeliveryInfoItem = deliveryInfoItem;
            param.UserItem         = userItem;
            OrderService.SetPriceInPayInfoParam(orderItem.Id, param);
            param.PayInfoItem = GetPayInfoItem(param.OrderItem.PayInfoId);
            //param.TaxAddedPrice = OrderService.GetTaxAddedPrice(orderItem.Id);
            if (param.OrderItem.PayInfoId == 0)
            {
                param.PayInfoItem.TotalPrice = param.TaxAddedPrice;
            }
            param.BankInfoSelectList = GetBankInfoSelectList(param.PayInfoItem.BankType);
            return(param);
        }
Example #4
0
        //지울꺼
        public PayInfoParam GetPayInfoParam(OrderItem orderItem, UserItem userItem, bool fromOrderConfirm)
        {
            DeliveryInfoItem deliveryInfoItem = DeliveryInfoDao.FindById(orderItem.DeliveryInfoId);

            PayInfoParam param = new PayInfoParam();

            param.OrderItem        = orderItem;
            param.DeliveryInfoItem = deliveryInfoItem;
            param.UserItem         = userItem;
            param.PayInfoItem      = GetPayInfoItem(param.OrderItem.PayInfoId);
            if (param.DeliveryInfoItem.IsProxy == 1)
            {
                param.PayInfoItem.PayType = "BANK";
            }
            param.BankInfoSelectList = GetBankInfoSelectList(param.PayInfoItem.BankType);
            OrderService.SetPriceInPayInfoParam(orderItem.Id, param);

            param.FromOrderConfirm = fromOrderConfirm;
            return(param);
        }
        public void HighPrintCancel(int orderId)
        {
            var    orderItem = OrderDao.FindById(orderId);
            string procType  = XMLUtil.GetString(orderItem.Content, "PARENTHIGHPRINT", "PROCTYPE");
            int    addPrice  = XMLUtil.GetInt32(orderItem.Content, "PARENTHIGHPRINT", "ADDPRICE");

            if ("NEWGOODS".Equals(procType))
            {
                var highOrder = OrderDao.FIndByHighPrintId(orderItem.Id);
                PrintMadeOrderDao.ChangePrintPriorityByOrderCode(orderItem.Code, "");
                var payInfo = PayInfoDao.FindById(highOrder.Id);
                if (payInfo != null && payInfo.PayType.StartsWith("TELEGRAM"))
                {
                    CancleOrderWithTelegram(highOrder.Id);
                }
                else
                {
                    CancleOrder(highOrder.Id);
                }
            }
            if ("ADDPRICE".Equals(procType))
            {
                string firstItemType = string.Empty;
                int    firstItemId   = 0;
                foreach (var item in PrintMadeOrderDao.FindByOrderId(orderItem.Id))
                {
                    firstItemType = "PRINTMADE";
                    firstItemId   = item.Id;
                    break;
                }
                foreach (var item in ReadyMadeOrderDao.FindByOrderId(orderItem.Id))
                {
                    firstItemType = "READMADE";
                    firstItemId   = item.Id;
                    break;
                }

                if ("PRINTMADE".Equals(firstItemType))
                {
                    var madeItem = PrintMadeOrderDao.FindById(firstItemId);
                    int orgPrice = madeItem.TaxAddedTotalPrice;
                    madeItem.ExtraPrice -= addPrice;
                    PrintMadeOrderDao.Update(madeItem);
                    DeliveryInfoItem DeliveryInfoItem = DeliveryInfoDao.FindById(orderItem.DeliveryInfoId);
                    PayInfoService.UpdateChangeProductCharge(orderItem.PayInfoId, "MINUS", orgPrice, DeliveryInfoItem);
                    PayInfoService.UpdateChangeProductCharge(orderItem.PayInfoId, "PLUS", madeItem.TaxAddedTotalPrice, DeliveryInfoItem);
                }
                else if ("READYMADE".Equals(firstItemType))
                {
                    var madeItem = ReadyMadeOrderDao.FindById(firstItemId);
                    int orgPrice = madeItem.TaxAddedTotalPrice;
                    madeItem.ExtraPrice -= addPrice;
                    ReadyMadeOrderDao.Update(madeItem);
                    DeliveryInfoItem DeliveryInfoItem = DeliveryInfoDao.FindById(orderItem.DeliveryInfoId);
                    PayInfoService.UpdateChangeProductCharge(orderItem.PayInfoId, "MINUS", orgPrice, DeliveryInfoItem);
                    PayInfoService.UpdateChangeProductCharge(orderItem.PayInfoId, "PLUS", madeItem.TaxAddedTotalPrice, DeliveryInfoItem);
                }
            }

            DbParam param = new DbParam();

            param.Add("content", new XDocument());
            OrderDao.Update(param, orderItem.Id);
        }
        public void HighPrintProc(int orderId, int addPrice, string procType)
        {
            DateTime now           = DateTime.Now;
            var      orderItem     = OrderDao.FindById(orderId);
            var      payInfo       = PayInfoDao.FindById(orderItem.PayInfoId);
            string   firstItemType = string.Empty;
            string   newOrderCode  = string.Empty;
            int      firstItemId   = 0;

            foreach (var item in PrintMadeOrderDao.FindByOrderId(orderItem.Id))
            {
                firstItemType = "PRINTMADE";
                firstItemId   = item.Id;
                break;
            }
            foreach (var item in ReadyMadeOrderDao.FindByOrderId(orderItem.Id))
            {
                firstItemType = "READMADE";
                firstItemId   = item.Id;
                break;
            }
            if ("ADDPRICE".Equals(procType))
            {
                if (payInfo.PayType.StartsWith("TELEGRAM") || (orderItem.IsPaid() && !payInfo.PayType.Equals("MAN")))
                {
                    throw BizException.CreateMakumakuServiceException("관리자 우선출력 오류", "PG사 결제나 입금완료주문의 경우\n금액 추가타입의 우선출력 요청은 할 수 없습니다.");
                }

                if ("PRINTMADE".Equals(firstItemType))
                {
                    var madeItem = PrintMadeOrderDao.FindById(firstItemId);
                    int orgPrice = madeItem.TaxAddedTotalPrice;
                    madeItem.ExtraPrice = addPrice;
                    PrintMadeOrderDao.Update(madeItem);
                    DeliveryInfoItem DeliveryInfoItem = DeliveryInfoDao.FindById(orderItem.DeliveryInfoId);
                    PayInfoService.UpdateChangeProductCharge(orderItem.PayInfoId, "MINUS", orgPrice, DeliveryInfoItem);
                    PayInfoService.UpdateChangeProductCharge(orderItem.PayInfoId, "PLUS", madeItem.TaxAddedTotalPrice, DeliveryInfoItem);
                }
                else if ("READYMADE".Equals(firstItemType))
                {
                    var madeItem = ReadyMadeOrderDao.FindById(firstItemId);
                    int orgPrice = madeItem.TaxAddedTotalPrice;
                    madeItem.ExtraPrice = addPrice;
                    ReadyMadeOrderDao.Update(madeItem);
                    DeliveryInfoItem DeliveryInfoItem = DeliveryInfoDao.FindById(orderItem.DeliveryInfoId);
                    PayInfoService.UpdateChangeProductCharge(orderItem.PayInfoId, "MINUS", orgPrice, DeliveryInfoItem);
                    PayInfoService.UpdateChangeProductCharge(orderItem.PayInfoId, "PLUS", madeItem.TaxAddedTotalPrice, DeliveryInfoItem);
                }
            }
            else if ("NEWGOODS".Equals(procType))
            {
                var newItemDoc = XMLUtil.CreateDocment();
                XMLUtil.SetValue(newItemDoc, "HIGHPRINT", orderItem.Code, "PARENTCODE");

                var newItem = new OrderItem();
                newItem.UserId      = orderItem.UserId;
                newItem.OrderDate   = now;
                newItem.OrderStatus = "DESIGN_INFO";
                newItem.PayStatus   = "UNPAID";
                newItem.HighPrintId = orderItem.Id;
                newItem.Content     = newItemDoc;
                var newOrderId = OrderDao.Insert(newItem);
                OrderDao.UpdateOrderStatus(newOrderId, "DESIGN_INFO");
                newItem      = OrderDao.FindById(newOrderId);
                newOrderCode = newItem.Code;
                var rdItem = new ReadyMadeOrderItem();
                rdItem.ReadyMadeId = "R199";
                rdItem.Title       = orderItem.Code + "追加/商品金額";
                rdItem.OrderId     = newItem.Id;
                rdItem.Code        = newItem.Code + "-S01";
                rdItem.OrderCode   = newItem.Code;
                rdItem.OrderCount  = 1;
                rdItem.TotalPrice  = 0;
                rdItem.GoodsPrice  = addPrice;

                ReadyMadeOrderDao.Insert(rdItem);
            }

            PrintMadeOrderDao.ChangePrintPriorityByOrderCode(orderItem.Code, "HIGH");

            DbParam param = new DbParam();
            var     doc   = XMLUtil.CreateDocment();

            XMLUtil.SetValue(doc, "PARENTHIGHPRINT", procType, "PROCTYPE");
            XMLUtil.SetValue(doc, "PARENTHIGHPRINT", addPrice, "ADDPRICE");
            if ("NEWGOODS".Equals(procType))
            {
                XMLUtil.SetValue(doc, "PARENTHIGHPRINT", newOrderCode, "NEWORDERCODE");
            }
            param.Add("content", doc);
            OrderDao.Update(param, orderItem.Id);
        }