示例#1
0
        public static TS_OR_DETAIL ConvertOLItem2Detail(OrderLineItem item, string seq, string appUser)
        {
            TS_OR_DETAIL detail = new TS_OR_DETAIL();

            detail.ORDER_REQ_NO  = string.IsNullOrEmpty(seq) ? 0 : decimal.Parse(seq);;
            detail.ORDER_LINE_NO = item.OrderLineNo;
            if (item.PriAVLCheck < item.Qty && item.AltAVLCheck >= item.Qty)
            {
                detail.SHIPFROM_SEQ = 1;
            }
            else
            {
                detail.SHIPFROM_SEQ = 0;
            }
            detail.PART_NO          = item.PartNo;
            detail.CUSTOMER_PART_NO = item.CustomerPartNo;
            detail.BUY_QTY          = item.Qty;
            detail.DESCRIPTION      = item.Description;
            detail.DESC_CN          = item.DescCN;
            detail.CREATION_DATE    = DateTime.Now;
            detail.CREATED_BY       = appUser;
            detail.UPDATED_DATE     = null;
            detail.UPDATED_BY       = null;
            return(detail);
        }
示例#2
0
 public void AddOrUpdateDetail(TS_OR_DETAIL model, bool autoSave = true)
 {
     if (db.TS_OR_DETAIL.Any(a => a.ORDER_REQ_NO == model.ORDER_REQ_NO && a.ORDER_LINE_NO == model.ORDER_LINE_NO))
     {
         Update(model, autoSave);
     }
     else
     {
         Add(model, autoSave);
     }
 }
示例#3
0
        public ActionResult SaveOrder(OrderSaveArg arg)
        {
            try
            {
                if (arg.headInfo == null)
                {
                    return(Content("fail"));
                }

                string appUser = Session[CHubConstValues.SessionUser].ToString();

                CHubEntities     db  = new CHubEntities();
                TS_OR_HEADER_BLL bll = new TS_OR_HEADER_BLL(db);

                //Header part
                TS_OR_HEADER orHeader    = ManualClassConvert.ConvertExAliaAddr2Header(arg.headInfo, arg.seq, arg.dueDate, arg.orderType, arg.shipCompFlag, arg.customerPONO, arg.orderNote, arg.isSpecialShip, appUser);
                TS_OR_HEADER altORHeader = null;
                if (arg.altHeadInfo != null)
                {
                    altORHeader = ManualClassConvert.ConvertExAliaAddr2Header(arg.altHeadInfo, arg.seq, arg.dueDate, arg.orderType, arg.shipCompFlag, arg.customerPONO, arg.orderNote, arg.isSpecialShip, appUser, true);
                }

                //Detail part
                List <TS_OR_DETAIL> detailList = null;
                if (arg.olList != null && arg.olList.Count > 0)
                {
                    detailList = new List <TS_OR_DETAIL>();
                    foreach (var item in arg.olList)
                    {
                        //ignore wrong lines
                        if (string.IsNullOrEmpty(item.PartNo) || string.IsNullOrEmpty(item.PriAVLCheckColor))
                        {
                            continue;
                        }
                        TS_OR_DETAIL detail = ManualClassConvert.ConvertOLItem2Detail(item, arg.seq, appUser);
                        detailList.Add(detail);
                    }
                }

                decimal seq = 0;
                if (string.IsNullOrEmpty(arg.seq))
                {
                    seq = bll.AddHeadersWithDetails(orHeader, altORHeader, detailList);
                }
                else
                {
                    seq = bll.UpdateHeadersWithDetails(orHeader, altORHeader, detailList);
                }

                if (seq != 0.00M)
                {
                    return(Content(seq.ToString()));
                }
                else
                {
                    Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                    return(Content("Fail to save order"));
                }
            }
            catch (Exception ee)
            {
                //log ee
                Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                return(Content(ee.Message));
            }
        }
示例#4
0
 public void AddOrUpdateDetail(TS_OR_DETAIL model, bool autoSave = true)
 {
     dal.AddOrUpdateDetail(model);
 }