Exemple #1
0
        public async Task <IActionResult> PutReturnOrder(Guid id, ReturnOrder returnOrder)
        {
            if (id != returnOrder.ReturnOrderId)
            {
                return(BadRequest());
            }

            _context.Entry(returnOrder).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ReturnOrderExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Exemple #2
0
        public async Task <ActionResult <ReturnOrder> > PostReturnOrder(ReturnOrder returnOrder)
        {
            var cp = returnOrder.ReturnOrderSubs.ToList();

            returnOrder.ReturnOrderSubs = await _context.PickOrderSubs.Include(s => s.Barcode).Where(p => cp.Select(o => o.PickOrderSubId).Contains(p.PickOrderSubId)).ToListAsync();

            returnOrder.ReturnOrderSubs.ForEach(r =>
            {
                var m = cp.FirstOrDefault(o => o.PickOrderSubId == r.PickOrderSubId);
                if (m != null)
                {
                    r.Returned     = true;
                    r.ReturnPrice  = m.ReturnPrice;
                    r.ReturnReason = m.ReturnReason;

                    r.Barcode.ReturnCount++;
                    r.Barcode.Saled       = false;
                    r.Barcode.Picked      = false;
                    r.Barcode.StockUnitId = 99;
                }
            });
            _context.ReturnOrders.Add(returnOrder);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetReturnOrder", new { id = returnOrder.ReturnOrderId }, returnOrder));
        }
Exemple #3
0
        private async Task insertInventoryReturnOrder(ReturnOrder transactionApi)
        {
            //Remark Sementara
            //for (int i = 0; i < transactionApi.returnOrderLines.Count; i++)
            //{
            //    InventoryLines inventoryLines = _context.InventoryLines.Where(c => c.WarehouseId == transactionApi.storeCode && c.ItemId == transactionApi.returnOrderLines[i].article.id).First();
            //    if (inventoryLines != null)
            //    {
            //        InventoryLinesTransaction transaction = new InventoryLinesTransaction();
            //        transaction.TransactionTypeId = RetailEnum.ReturnOrder;
            //        transaction.TransactionTypeName = "ReturnOrder";
            //        transaction.TransRefId = transactionApi.returnOrderId;
            //        transaction.Qty = -1 * transactionApi.returnOrderLines[i].quantity;
            //        transaction.TransactionLinesId = inventoryLines.Id;
            //        transaction.TransactionDate = DateTime.Now;//DateTime.ParseExact(transactionApi.date, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
            //        _context.Add(transaction);
            //        await _context.SaveChangesAsync();

            //        //update qty
            //        inventoryLines.Qty = _context.InventoryLinesTransaction.
            //                             Where(c => c.TransactionLinesId == inventoryLines.Id)
            //                            .Select(c => c.Qty)
            //                            .DefaultIfEmpty()
            //                            .Sum();
            //        _context.InventoryLines.Update(inventoryLines);
            //        await _context.SaveChangesAsync();
            //    }
            //}
        }
        public void Process(ReturnOrder returnOrder)
        {
            ReturnProcessTemplate returnProcess = ReturnProcessFactory.CreateFrom(returnOrder.Action);

            returnProcess.Process(returnOrder);
            // Code to refund the money back to the customer...
        }
 public void UpdateReturnOrder(ReturnOrder model)
 {
     if (model == null)
     {
         throw new Exception("returnOrder");
     }
     _returnRepository.Update(model);
 }
 public void InsertReturnOrder(ReturnOrder model)
 {
     if (model == null)
     {
         throw new Exception("returnOrder");
     }
     _returnRepository.Insert(model);
 }
Exemple #7
0
 public ReturnedOrdersDetailsPage(ReturnOrder selectedOrder)
 {
     InitializeComponent();
     BindingContext = _vm = new RetunedOrderDetailLinesPageViewModel
     {
         OrderId = selectedOrder.Key
     };
 }
        public IActionResult OrderDetail(Guid id, string status)
        {
            ReturnOrder returnOrder = new ReturnOrder();

            returnOrder        = _context.ReturnOrders.FirstOrDefault(ro => ro.Id == id);
            returnOrder.Status = status;
            _context.ReturnOrders.Update(returnOrder);
            _context.SaveChanges();
            return(RedirectToAction(nameof(EditOrderController.Index), nameof(EditOrderController).CutController()));
        }
Exemple #9
0
        public ReturnOrder CreateReturnOrder(string orderNo, string externalDocumentNo, string returnReason, string notes,
                                             bool includeResource, bool printRMA, bool createLabel, string email, string lineValues, bool update, string returnTrackingNo,
                                             string shippingDetails, string imeiNo, int zendeskTicketNo)
        {
            ReturnOrder returnRMA = new ReturnOrder();

            /* v9.2 - 12 December 2018 - Neil Jansen */
            functions.CreateReturnOrder(orderNo, externalDocumentNo, returnReason, notes, includeResource, printRMA, createLabel,
                                        email, lineValues, ref returnRMA, update, SessionID(), returnTrackingNo, shippingDetails, imeiNo, zendeskTicketNo);

            return(returnRMA);
        }
Exemple #10
0
        private void sequenceNumber(ReturnOrder transactionApi)
        {
            SequenceNumberLog log = new SequenceNumberLog();

            log.StoreCode          = transactionApi.storeCode;
            log.LastNumberSequence = transactionApi.sequenceNumber;
            log.LastTransId        = transactionApi.returnOrderId;
            log.Date            = DateTime.Now;
            log.TransactionType = "Return Order";
            _context.SequenceNumberLog.Add(log);
            _context.SaveChanges();
        }
Exemple #11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            op = RequestData.Get <string>("op");
            id = RequestData.Get <string>("id");
            if (!string.IsNullOrEmpty(id))
            {
                ent = ReturnOrder.Find(id);
            }
            switch (RequestActionString)
            {
            case "update":
                ent = GetMergedData <ReturnOrder>();
                ent.DoUpdate();
                break;

            case "create":
                ent        = this.GetPostedData <ReturnOrder>();
                ent.Number = DataHelper.QueryValue("select SHHG_AimExamine.dbo.fun_getReturnOrderNumber()") + "";     //自动生成流水号
                ent.State  = "已生成";
                ent.DoCreate();
                soent = SaleOrder.FindAllByProperty("Number", ent.OrderNumber).FirstOrDefault <SaleOrder>();
                soent.ReturnAmount = (soent.ReturnAmount.HasValue ? soent.ReturnAmount.Value : 0) + ent.ReturnMoney;
                soent.DoUpdate();    //将退货金额反写到销售单
                if (soent.InvoiceState == "已全部开发票")
                {
                    ent.IsDiscount = "T";
                    ent.DoUpdate();
                }
                InWarehouse inwh = new InWarehouse
                {
                    PublicInterface = ent.Id,                   //退货单Id
                    InWarehouseNo   = DataHelper.QueryValue("select SHHG_AimExamine.dbo.fun_getInWarehouseNo()").ToString(),
                    InWarehouseType = "退货入库",
                    WarehouseId     = ent.WarehouseId,
                    WarehouseName   = ent.WarehouseName,
                    State           = "未入库"
                };
                inwh.DoCreate();
                ProcessDetail(inwh);
                break;

            case "GetSaleOrderPart":
                string orderNumber = RequestData.Get <string>("OrderNumber");
                soent = SaleOrder.FindAllByProperty("Number", orderNumber).FirstOrDefault <SaleOrder>();
                PageState.Add("Result", OrdersPart.FindAllByProperty(OrdersPart.Prop_OId, soent.Id));
                break;

            default:
                DoSelect();
                break;
            }
        }
 public ActionResult Edit()
 {
     string orderNum = WebUtil.GetQueryStringValue<string>("OrderNum", string.Empty);
     Bill<ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
     ReturnOrderEntity entity = new ReturnOrderEntity();
     entity.OrderNum = orderNum;
     entity = bill.GetOrder(entity);
     entity = entity.IsNull() ? new ReturnOrderEntity() : entity;
     ViewBag.Entity = entity;
     ViewBag.ReturnType = EnumHelper.GetOptions<EReturnType>(entity.ReturnType, "请选择出库单类型");
     ViewBag.ProductType = EnumHelper.GetOptions<EProductType>(entity.ProductType, "请选择出库产品类型");
     return View();
 }
 public ActionResult Delete()
 {
     string orderNum = WebUtil.GetFormValue<string>("OrderNum", string.Empty);
     if (!orderNum.IsEmpty())
     {
         Bill<ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
         ReturnOrderEntity entity = new ReturnOrderEntity();
         entity.OrderNum = orderNum;
         string returnValue = bill.Delete(entity);
         this.ReturnJson.AddProperty("d", returnValue);
     }
     return Content(this.ReturnJson.ToString());
 }
Exemple #14
0
        public void ReturnOrder(ReturnOrder returnOrder)
        {
            using (var context = new ShopContext())
            {
                MySqlParameter[] queryParams =
                {
                    new MySqlParameter("@IdOrder", returnOrder.IdOrder),
                    new MySqlParameter("@Count",   returnOrder.Count)
                };

                var affectedRows = context.Database.ExecuteSqlCommand("CALL returnProduct({0}, {1});", returnOrder.IdOrder, returnOrder.Count);
            }
        }
Exemple #15
0
        public static ReturnResult Save(ReturnOrderHeaderViewModel models)
        {
            ReturnResult result = new ReturnResult();

            try
            {
                using (var db = new BuahSayurContext())
                {
                    string newRef = GetNewReference();
                    result.Reference = newRef;

                    ReturnOrder returnOrder = new ReturnOrder
                    {
                        Id = 1,
                        DeliveryOrder_Id = models.DeliveryOrder_Id,
                        Reference        = newRef,
                        ReturnDate       = models.ReturnDate,
                    };
                    db.ReturnOrders.Add(returnOrder);

                    foreach (var item in models.ReturnOrderDetails)
                    {
                        ReturnOrderDetail returnOrderDetail = new ReturnOrderDetail
                        {
                            Return_Id    = returnOrder.Id,
                            Item_Code    = item.Item_Code,
                            ReturnAmount = item.ReturnAmount,
                            Replacement  = item.Replacement,
                            Shortage     = item.Shortage,
                            Status       = item.Status
                        };
                        db.ReturnOrderDetails.Add(returnOrderDetail);
                    }


                    // set IsReturned to true
                    DeliveryOrder deliveryOrder = db.DeliveryOrders.Where(x => x.Id == models.DeliveryOrder_Id).FirstOrDefault();
                    deliveryOrder.IsReturned = true;

                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                result.Success = false;
                Message        = ex.Message;
            }

            return(result);
        }
        public ActionResult Delete()
        {
            string orderNum = WebUtil.GetFormValue <string>("OrderNum", string.Empty);

            if (!orderNum.IsEmpty())
            {
                Bill <ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
                ReturnOrderEntity entity = new ReturnOrderEntity();
                entity.OrderNum = orderNum;
                string returnValue = bill.Delete(entity);
                this.ReturnJson.AddProperty("d", returnValue);
            }
            return(Content(this.ReturnJson.ToString()));
        }
Exemple #17
0
        public ActionResult Edit()
        {
            string orderNum = WebUtil.GetQueryStringValue <string>("OrderNum", string.Empty);
            Bill <ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
            ReturnOrderEntity entity = new ReturnOrderEntity();

            entity.OrderNum     = orderNum;
            entity              = bill.GetOrder(entity);
            entity              = entity.IsNull() ? new ReturnOrderEntity() : entity;
            ViewBag.Entity      = entity;
            ViewBag.ReturnType  = EnumHelper.GetOptions <EReturnType>(entity.ReturnType, "请选择出库单类型");
            ViewBag.ProductType = EnumHelper.GetOptions <EProductType>(entity.ProductType, "请选择出库产品类型");
            return(View());
        }
Exemple #18
0
        protected List <CreatedReturnLines> CreateReturnOrderLines(ReturnOrder ro)
        {
            List <CreatedReturnLines> ctl = new List <CreatedReturnLines>();

            string itemNo          = string.Empty;
            string description     = string.Empty;
            int    quantity        = 0;
            double price           = 0;
            double lineAmount      = 0;
            string reqReturnAction = string.Empty;
            string returnReason    = string.Empty;

            List <ReturnReason> rrList = (List <ReturnReason>)HttpContext.Current.Session["ReturnReasons"];

            if (ro.SalesLine != null)
            {
                for (int sl = 0; sl < ro.SalesLine.Length; sl++)
                {
                    int.TryParse(ro.SalesLine[sl].Qty, out quantity);
                    if (quantity > 0)
                    {
                        itemNo          = ro.SalesLine[sl].ItemNo;
                        description     = ro.SalesLine[sl].Description;
                        reqReturnAction = ro.SalesLine[sl].REQReturnAction;

                        foreach (ReturnReason rr in rrList)
                        {
                            if (rr.ReasonCode == ro.SalesLine[sl].ReturnReasonCode)
                            {
                                returnReason = rr.Display;
                            }
                        }

                        double.TryParse(ro.SalesLine[sl].UnitPrice.Replace(",", ""), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out price);
                        lineAmount = quantity * price;

                        ctl.Add(new CreatedReturnLines(itemNo, description, quantity, price, lineAmount, reqReturnAction, returnReason));
                    }

                    itemNo      = string.Empty;
                    description = string.Empty;
                    quantity    = 0;
                    price       = 0;
                    lineAmount  = 0;
                }
            }

            return(ctl);
        }
Exemple #19
0
        public CreatedReturnHeader CreateReturnOrder(string orderNo, string externalDocumentNo, string returnReason, string notes,
                                                     bool includeResource, bool printRMA, bool createLabel, string email, string lineValues, bool update, string returnTrackingNo,
                                                     string shippingDetails, string imeiNo, int zendeskTicketNo)
        {
            ReturnOrder         returnRMA = new ReturnOrder();
            CreatedReturnHeader cth       = new CreatedReturnHeader();

            /* v9.2 - 12 December 2018 - Neil Jansen */
            returnRMA = webService.CreateReturnOrder(orderNo, externalDocumentNo, returnReason, notes, includeResource, printRMA,
                                                     createLabel, email, lineValues, update, returnTrackingNo, shippingDetails, imeiNo, zendeskTicketNo);

            cth = CreateReturnRMA(returnRMA);

            return(cth);
        }
 public ActionResult DeleteBatch([ModelBinder(typeof(JsonBinder <List <string> >))] List <string> list)
 {
     if (!list.IsNullOrEmpty())
     {
         foreach (string orderNum in list)
         {
             Bill <ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
             ReturnOrderEntity entity = new ReturnOrderEntity();
             entity.OrderNum = orderNum;
             string returnValue = bill.Delete(entity);
             this.ReturnJson.AddProperty("d", returnValue);
         }
     }
     return(Content(this.ReturnJson.ToString()));
 }
        public ActionResult Edit()
        {
            //退货单号
            string OrderNum = WebUtil.GetFormValue <string>("OrderNum", string.Empty);

            if (!OrderNum.IsEmpty())
            {
                //退货单部分
                Bill <ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
                ReturnOrderEntity entity = new ReturnOrderEntity();
                entity.OrderNum = OrderNum;
                entity          = bill.GetOrder(entity);
                if (entity.Status != (int)EAudite.Wait)
                {
                    this.ReturnJson.AddProperty("d", "1001");
                    return(Content(this.ReturnJson.ToString()));
                }
                ReturnDetailEntity detail = new ReturnDetailEntity();
                detail.OrderNum = OrderNum;
                List <ReturnDetailEntity> listDetails = bill.GetOrderDetail(detail);
                //出货单部分
                Bill <OutStorageEntity, OutStoDetailEntity> provider = new OutStorageOrder();
                OutStoDetailEntity items = new OutStoDetailEntity();
                items.OrderNum = entity.ContractOrder;
                List <OutStoDetailEntity> list = provider.GetOrderDetail(items);

                //已经退货部分
                ReturnProvider            returnProvider = new ReturnProvider();
                List <ReturnDetailEntity> listResult     = returnProvider.GetDetailByOrder(entity.ContractOrder);

                if (!list.IsNullOrEmpty())
                {
                    list.ForEach(a =>
                    {
                        ReturnDetailEntity item = listDetails.FirstOrDefault(b => b.BarCode == a.BarCode && b.ProductNum == a.ProductNum && b.LocalNum == a.LocalNum && b.StorageNum == a.StorageNum);
                        if (item != null)
                        {
                            a.Qty = item.BackNum;
                        }
                        a.BackNum = listResult.Where(b => b.BarCode == a.BarCode && b.ProductNum == a.ProductNum && b.LocalNum == a.LocalNum && b.StorageNum == a.StorageNum).Sum(b => b.BackNum);
                    });
                }
                Session[CacheKey.TEMPDATE_CACHE_RETURNPRODUCTDETAIL] = list;
                string json = ConvertJson.ListToJson <OutStoDetailEntity>(list, "List");
                this.ReturnJson.AddProperty("data", json);
            }
            return(Content(this.ReturnJson.ToString()));
        }
 public void Return()
 {
     Task.Factory.StartNew(() =>
     {
         ReturnOrderClient returnClient = new ReturnOrderClient(DataHandler.GetInstance().Token);
         foreach (var returnObject in _returnObjects)
         {
             ReturnOrder returnOrder = new ReturnOrder
             {
                 IdOrder = returnObject.IdOrder,
                 Count   = returnObject.Count
             };
             returnClient.ReturnOrder(returnOrder);
         }
     });
 }
 public IActionResult Index(ReturnOrder returnOrder)
 {
     if (ModelState.IsValid)
     {
         var order = _context.Orders.FirstOrDefault(o => o.Id == returnOrder.OrderId);
         if (order != null)
         {
             returnOrder.DateAdding = DateTime.UtcNow;
             returnOrder.Status     = "created";
             _context.ReturnOrders.Add(returnOrder);
             _context.SaveChanges();
             return(RedirectToAction(nameof(UserReturnCarController.Thanks), nameof(UserReturnCarController).CutController()));
         }
     }
     return(View(returnOrder));
 }
Exemple #24
0
        public IHttpActionResult PutReturnOrder(int id, ReturnOrder returnOrder)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != returnOrder.IdOrder)
            {
                return(BadRequest());
            }
            ;

            ExtraFeatures features = new ExtraFeatures();

            features.ReturnOrder(returnOrder);

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemple #25
0
 public void UpdateStatus(long requestId, long statusId)
 {
     using (IDAL dal = this.DAL)
     {
         dal.BeginTransaction();
         try
         {
             ReturnOrder o = dal.Read <ReturnOrder>(requestId);
             o.Status = statusId;
             dal.Update(o);
             dal.CommitTransaction();
         }
         catch
         {
             dal.RollbackTransaction();
             throw;
         }
     }
 }
 public ActionResult Audit()
 {
     string OrderNum = WebUtil.GetFormValue<string>("OrderNum", string.Empty);
     int Status = WebUtil.GetFormValue<int>("Status");
     string Reason = WebUtil.GetFormValue<string>("Reason", string.Empty);
     ReturnOrderEntity entity = new ReturnOrderEntity();
     entity.Status = Status;
     entity.OrderNum = OrderNum;
     entity.AuditUser = this.LoginUserCode;
     entity.OperateType = (int)EOpType.PC;
     entity.EquipmentCode = string.Empty;
     entity.EquipmentNum = string.Empty;
     entity.Remark = string.Empty;
     entity.Reason = Reason;
     Bill<ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
     string returnValue = bill.Audite(entity);
     this.ReturnJson.AddProperty("d", returnValue);
     return Content(this.ReturnJson.ToString());
 }
        public ActionResult Audit()
        {
            string            OrderNum = WebUtil.GetFormValue <string>("OrderNum", string.Empty);
            int               Status   = WebUtil.GetFormValue <int>("Status");
            string            Reason   = WebUtil.GetFormValue <string>("Reason", string.Empty);
            ReturnOrderEntity entity   = new ReturnOrderEntity();

            entity.Status        = Status;
            entity.OrderNum      = OrderNum;
            entity.AuditUser     = this.LoginUserCode;
            entity.OperateType   = (int)EOpType.PC;
            entity.EquipmentCode = string.Empty;
            entity.EquipmentNum  = string.Empty;
            entity.Remark        = string.Empty;
            entity.Reason        = Reason;
            Bill <ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
            string returnValue = bill.Audite(entity);

            this.ReturnJson.AddProperty("d", returnValue);
            return(Content(this.ReturnJson.ToString()));
        }
        public ActionResult Detail()
        {
            string orderNum = WebUtil.GetQueryStringValue<string>("OrderNum", string.Empty);
            string flag = WebUtil.GetQueryStringValue<string>("flag", string.Empty);
            Bill<ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
            ReturnOrderEntity entity = new ReturnOrderEntity();
            entity.OrderNum = orderNum;
            entity = bill.GetOrder(entity);
            entity = entity.IsNull() ? new ReturnOrderEntity() : entity;
            ViewBag.Entity = entity;
            ViewBag.ReturnType = EnumHelper.GetEnumDesc<EReturnType>(entity.ReturnType);
            ViewBag.Status = EnumHelper.GetEnumDesc<EAudite>(entity.Status);

            ReturnDetailEntity detail = new ReturnDetailEntity();
            detail.OrderNum = orderNum;
            List<ReturnDetailEntity> list = bill.GetOrderDetail(detail);
            list = list.IsNull() ? new List<ReturnDetailEntity>() : list;
            ViewBag.Detail = list;
            ViewBag.Flag = flag;
            return View();
        }
Exemple #29
0
        protected void Page_Load(object sender, EventArgs e)
        {
            id = RequestData.Get <string>("id");
            if (!string.IsNullOrEmpty(id))
            {
                roEnt = ReturnOrder.Find(id);
            }
            switch (RequestActionString)
            {
            case "delete":
                //先删除入库单及入库明细
                InWarehouse iwEnt = InWarehouse.FindAllByProperty(InWarehouse.Prop_PublicInterface, roEnt.Id).FirstOrDefault <InWarehouse>();
                IList <OtherInWarehouseDetail> oiwdEnts = OtherInWarehouseDetail.FindAllByProperty(OtherInWarehouseDetail.Prop_InWarehouseId, iwEnt.Id);
                foreach (OtherInWarehouseDetail oiwdEnt in oiwdEnts)
                {
                    oiwdEnt.DoDelete();
                }
                iwEnt.DoDelete();
                //更新销售单及销售明细
                SaleOrder soEnt = SaleOrder.FindAllByProperty(SaleOrder.Prop_Number, roEnt.OrderNumber).FirstOrDefault <SaleOrder>();
                soEnt.ReturnAmount = (soEnt.ReturnAmount.HasValue ? soEnt.ReturnAmount.Value : 0) - (roEnt.ReturnMoney.HasValue ? roEnt.ReturnMoney.Value : 0);
                soEnt.DoUpdate();
                IList <ReturnOrderPart> ropEnts = ReturnOrderPart.FindAllByProperty(ReturnOrderPart.Prop_ReturnOrderId, roEnt.Id);
                foreach (ReturnOrderPart ropEnt in ropEnts)
                {
                    OrdersPart opEnt = OrdersPart.Find(ropEnt.OrderPartId);
                    opEnt.ReturnCount = (opEnt.ReturnCount.HasValue ? opEnt.ReturnCount.Value : 0) - ropEnt.Count;
                    opEnt.DoUpdate();
                    ropEnt.DoDelete();
                }
                roEnt.DoDelete();
                break;

            default:
                DoSelect();
                break;
            }
        }
Exemple #30
0
        /*Section="CustomCodeRegion"*/
        #region Customized
        public override ReturnOrder Create(ReturnOrder dataObject)
        {
            using (IDAL dal = this.DAL)
            {
                dal.BeginTransaction();
                try
                {
                    dataObject.Organization  = OTApplication.Context.Organization.Id;
                    dataObject.Event         = _parameterReader.ReadEventId("System");
                    dataObject.ReturnOrderId = dal.Create(dataObject);

                    startReturnOrderProcess(dataObject, dal);

                    dal.CommitTransaction();
                    return(dataObject);
                }
                catch
                {
                    dal.RollbackTransaction();
                    throw;
                }
            }
        }
        public ActionResult GetList()
        {
            int      status    = WebUtil.GetFormValue <int>("Status", 0);
            string   orderNum  = WebUtil.GetFormValue <string>("OrderNum", string.Empty);
            string   beginTime = WebUtil.GetFormValue <string>("beginTime", string.Empty);
            string   endTime   = WebUtil.GetFormValue <string>("endTime", string.Empty);
            int      pageSize  = WebUtil.GetFormValue <int>("PageSize", 10);
            int      pageIndex = WebUtil.GetFormValue <int>("PageIndex", 1);
            PageInfo pageInfo  = new PageInfo()
            {
                PageIndex = pageIndex, PageSize = pageSize
            };
            ReturnOrderEntity entity = new ReturnOrderEntity();

            if (status > 0)
            {
                entity.Where(a => a.Status == status);
            }
            if (!orderNum.IsEmpty())
            {
                entity.Where("OrderNum", ECondition.Like, "%" + orderNum + "%");
            }
            if (!beginTime.IsEmpty() && !endTime.IsEmpty())
            {
                entity.Where("OrderTime", ECondition.Between, ConvertHelper.ToType <DateTime>(beginTime), ConvertHelper.ToType <DateTime>(endTime));
            }
            entity.And(a => a.StorageNum == this.DefaultStore);
            Bill <ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
            List <ReturnOrderEntity> listResult = bill.GetList(entity, ref pageInfo);

            listResult = listResult == null ? new List <ReturnOrderEntity>() : listResult;
            string json = ConvertJson.ListToJson <ReturnOrderEntity>(listResult, "List");

            this.ReturnJson.AddProperty("Data", json);
            this.ReturnJson.AddProperty("RowCount", pageInfo.RowCount);
            return(Content(this.ReturnJson.ToString()));
        }
Exemple #32
0
        public ActionResult Detail()
        {
            string orderNum = WebUtil.GetQueryStringValue <string>("OrderNum", string.Empty);
            string flag     = WebUtil.GetQueryStringValue <string>("flag", string.Empty);
            Bill <ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
            ReturnOrderEntity entity = new ReturnOrderEntity();

            entity.OrderNum    = orderNum;
            entity             = bill.GetOrder(entity);
            entity             = entity.IsNull() ? new ReturnOrderEntity() : entity;
            ViewBag.Entity     = entity;
            ViewBag.ReturnType = EnumHelper.GetEnumDesc <EReturnType>(entity.ReturnType);
            ViewBag.Status     = EnumHelper.GetEnumDesc <EAudite>(entity.Status);

            ReturnDetailEntity detail = new ReturnDetailEntity();

            detail.OrderNum = orderNum;
            List <ReturnDetailEntity> list = bill.GetOrderDetail(detail);

            list           = list.IsNull() ? new List <ReturnDetailEntity>() : list;
            ViewBag.Detail = list;
            ViewBag.Flag   = flag;
            return(View());
        }
        public ActionResult Create([ModelBinder(typeof(JsonBinder<List<ReturnDetailEntity>>))] List<ReturnDetailEntity> list)
        {
            string OrderNum = WebUtil.GetFormValue<string>("OrderNum", string.Empty);
            int ReturnType = WebUtil.GetFormValue<int>("ReturnType", (int)EReturnType.Sell);
            int ProductType = WebUtil.GetFormValue<int>("ProductType", (int)EProductType.Goods);
            string ContractOrder = WebUtil.GetFormValue<string>("ContractOrder", string.Empty);
            string CusNum = WebUtil.GetFormValue<string>("CusNum", string.Empty);
            string CusName = WebUtil.GetFormValue<string>("CusName", string.Empty);
            string Contact = WebUtil.GetFormValue<string>("Contact", string.Empty);
            string Phone = WebUtil.GetFormValue<string>("Phone", string.Empty);
            string Address = WebUtil.GetFormValue<string>("Address", string.Empty);
            DateTime CreateTime = WebUtil.GetFormValue<DateTime>("CreateTime", DateTime.Now);
            string Remark = WebUtil.GetFormValue<string>("Remark", string.Empty);

            ReturnOrderEntity entity = new ReturnOrderEntity();
            entity.OrderNum = OrderNum.IsEmpty() ? SequenceProvider.GetSequence(typeof(ReturnOrderEntity)) : OrderNum;
            List<OutStoDetailEntity> listOrder = Session[CacheKey.TEMPDATE_CACHE_RETURNPRODUCTDETAIL] as List<OutStoDetailEntity>;
            string StorageNum = ResourceManager.GetSettingEntity("STORE_DEFAULT_PRODUCT").Value;
            if (!list.IsNullOrEmpty() && !listOrder.IsNullOrEmpty())
            {
                list.ForEach(a =>
                {
                    OutStoDetailEntity detail = listOrder.SingleOrDefault(b => b.ProductNum == a.ProductNum && b.BarCode == a.BarCode && b.LocalNum == a.LocalNum && b.StorageNum == StorageNum && b.BatchNum==a.BatchNum);
                    if (detail != null)
                    {
                        a.ProductName = detail.ProductName;
                        a.BatchNum = detail.BatchNum;
                        a.OutPrice = detail.OutPrice;
                        a.Num = detail.Num;
                        a.Amount = detail.Amount;
                        a.BackAmount = a.OutPrice * a.BackNum;
                        a.CreateTime = DateTime.Now;
                        a.StorageNum = StorageNum;
                        a.ContractOrder = ContractOrder;
                    }
                    a.SnNum = SequenceProvider.GetSequence(typeof(ReturnDetailEntity));
                });
                entity.ReturnType = ReturnType;
                entity.ProductType = ProductType;
                entity.CusNum = CusNum;
                entity.CusName = CusName;
                entity.Phone = Phone;
                entity.Contact = Contact;
                entity.Address = Address;
                entity.Num = list.Sum(a => a.BackNum);
                entity.Amount = list.Sum(a => a.BackAmount);
                entity.Status = (int)EAudite.Wait;
                entity.IsDelete = (int)EIsDelete.NotDelete;
                entity.CreateTime = CreateTime;
                entity.CreateUser = this.LoginUser.UserCode;
                entity.OperateType = (int)EOpType.PC;
                entity.EquipmentNum = string.Empty;
                entity.EquipmentCode = string.Empty;
                entity.Remark = Remark;
                entity.ContractOrder = ContractOrder;
                entity.StorageNum = this.DefaultStore;

                Bill<ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
                //如果单号不存在则为创建
                if (OrderNum.IsEmpty())
                {
                    string returnValue = bill.Create(entity, list);
                    if (returnValue == EnumHelper.GetEnumDesc<EReturnStatus>(EReturnStatus.Success))
                    {
                        this.ReturnJson.AddProperty("d", "1000");
                    }
                    else
                    {
                        this.ReturnJson.AddProperty("d", "1001");
                    }
                }
                else
                {
                    string returnValue = bill.EditOrder(entity, list);
                    this.ReturnJson.AddProperty("d", returnValue);
                }
            }
            else
            {
                this.ReturnJson.AddProperty("d", "1005");
            }
            return Content(this.ReturnJson.ToString());
        }
        public IActionResult Index()
        {
            ReturnOrder returnOrder = new ReturnOrder();

            return(View(returnOrder));
        }
 public ActionResult GetList()
 {
     int status = WebUtil.GetFormValue<int>("Status", 0);
     string orderNum = WebUtil.GetFormValue<string>("OrderNum", string.Empty);
     string beginTime = WebUtil.GetFormValue<string>("beginTime", string.Empty);
     string endTime = WebUtil.GetFormValue<string>("endTime", string.Empty);
     int pageSize = WebUtil.GetFormValue<int>("PageSize", 10);
     int pageIndex = WebUtil.GetFormValue<int>("PageIndex", 1);
     PageInfo pageInfo = new PageInfo() { PageIndex = pageIndex, PageSize = pageSize };
     ReturnOrderEntity entity = new ReturnOrderEntity();
     if (status > 0)
     {
         entity.Where(a => a.Status == status);
     }
     if (!orderNum.IsEmpty())
     {
         entity.Where("OrderNum", ECondition.Like, "%" + orderNum + "%");
     }
     if (!beginTime.IsEmpty() && !endTime.IsEmpty())
     {
         entity.Where("OrderTime", ECondition.Between, ConvertHelper.ToType<DateTime>(beginTime), ConvertHelper.ToType<DateTime>(endTime));
     }
     entity.And(a => a.StorageNum == this.DefaultStore);
     Bill<ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
     List<ReturnOrderEntity> listResult = bill.GetList(entity, ref pageInfo);
     listResult = listResult == null ? new List<ReturnOrderEntity>() : listResult;
     string json = ConvertJson.ListToJson<ReturnOrderEntity>(listResult, "List");
     this.ReturnJson.AddProperty("Data", json);
     this.ReturnJson.AddProperty("RowCount", pageInfo.RowCount);
     return Content(this.ReturnJson.ToString());
 }
        public async Task <String> postReturn([FromBody] ReturnOrder transaction, long id)
        {
            var credentials = new NetworkCredential(inforConfig.username, inforConfig.password);
            var handler     = new HttpClientHandler {
                Credentials = credentials
            };

            handler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return(true); };
            String status = "";

            using (var client = new HttpClient(handler))
            {
                // Make your request...
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                try
                {
                    //add for DO Header
                    InforDeliveryOrderPOST inforObj = new InforDeliveryOrderPOST();
                    inforObj.program = "MHS850MI";
                    List <TransactionDeliveryPOST> listTransaction = new List <TransactionDeliveryPOST>();
                    for (int i = 0; i < transaction.returnOrderLines.Count; i++)
                    {
                        TransactionDeliveryPOST t = new TransactionDeliveryPOST();
                        t.transaction = "AddDO";
                        RecordDeliveryPOST record = new RecordDeliveryPOST();
                        record.PRMD = "*EXE";
                        record.CONO = "770";
                        record.WHLO = transaction.storeCode;
                        record.E0PA = "FSH";
                        record.E0PB = "FSH";
                        record.E065 = "FSH";
                        record.GEDT = transaction.date.Replace("-", "");
                        record.CUNO = "210";// _context.Customer.Where(c => c.StoreId == _context.Store.Where(d => d.Code == transaction.storeCode).First().Id).First().CustId;
                        record.ITNO = transaction.returnOrderLines[i].article.articleIdAlias;
                        record.WHSL = "FG0101";
                        record.TWSL = "TOKO";//transaction.storeCode;
                        record.ALQT = transaction.returnOrderLines[i].quantity + "";
                        record.DLQT = transaction.returnOrderLines[i].quantity + "";
                        record.TRTP = Config.RetailEnum.ReturnOrderEnum;
                        record.USD4 = "PCS";
                        record.RTDT = transaction.date.Replace("-", "");
                        record.RPDT = transaction.date.Replace("-", "");
                        record.RESP = "INFOR";
                        record.RIDL = (i + 1) + "";
                        if (record.RIDL == "1")
                        {
                            if (transaction.remark.Length <= 10)
                            {
                                record.RORN = transaction.remark;
                            }
                            else
                            {
                                record.RORN = transaction.remark.ToString().Substring(0, 9);
                            }
                        }
                        else
                        {
                            record.RORN = "";
                        }

                        record.RIDN = id + "";
                        t.record    = record;
                        listTransaction.Add(t);
                        //    break;
                    }
                    inforObj.transactions = listTransaction;
                    HttpResponseMessage message = await client.PostAsJsonAsync(Config.General.urlInfor, inforObj);

                    if (message.IsSuccessStatusCode)
                    {
                        status = message.ToString();
                        var                serializer = new DataContractJsonSerializer(typeof(InforObjPostReturn));
                        var                result     = message.Content.ReadAsStringAsync().Result;
                        byte[]             byteArray  = Encoding.UTF8.GetBytes(result);
                        MemoryStream       stream     = new MemoryStream(byteArray);
                        InforObjPostReturn resultData = serializer.ReadObject(stream) as InforObjPostReturn;
                        //  status = "Return : " + resultData.results[0].errorMessage + "Sukses "+ resultData.nrOfSuccessfullTransactions;
                        IntegrationLog log = new IntegrationLog();
                        log.Description = transaction.returnOrderId;
                        try
                        {
                            log.ErrorMessage = resultData.results[0].errorMessage;
                        }
                        catch
                        {
                        }
                        log.NrOfFailedTransactions      = resultData.nrOfFailedTransactions;
                        log.NrOfSuccessfullTransactions = resultData.nrOfSuccessfullTransactions;
                        if (log.NrOfSuccessfullTransactions > 0)
                        {
                            log.RefNumber = id + "";
                        }
                        else
                        {
                            log.RefNumber = id + "";
                        }
                        log.NumOfLineSubmited = listTransaction.Count;
                        log.TransactionType   = "MHS850MI";
                        log.Json = JsonConvert.SerializeObject(inforObj);
                        _context.IntegrationLog.Add(log);
                        _context.SaveChanges();
                    }

                    else
                    {
                        status = "Failed : " + message.ToString();
                    }
                }
                catch (Exception ex)
                {
                    status = ex.ToString();
                }
            }
            return(status);
        }
 public ActionResult DeleteBatch([ModelBinder(typeof(JsonBinder<List<string>>))] List<string> list)
 {
     if (!list.IsNullOrEmpty())
     {
         foreach (string orderNum in list)
         {
             Bill<ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
             ReturnOrderEntity entity = new ReturnOrderEntity();
             entity.OrderNum = orderNum;
             string returnValue = bill.Delete(entity);
             this.ReturnJson.AddProperty("d", returnValue);
         }
     }
     return Content(this.ReturnJson.ToString());
 }
        public ActionResult Edit()
        {
            //退货单号
            string OrderNum = WebUtil.GetFormValue<string>("OrderNum", string.Empty);
            if (!OrderNum.IsEmpty())
            {
                //退货单部分
                Bill<ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
                ReturnOrderEntity entity = new ReturnOrderEntity();
                entity.OrderNum = OrderNum;
                entity = bill.GetOrder(entity);
                if (entity.Status != (int)EAudite.Wait)
                {
                    this.ReturnJson.AddProperty("d", "1001");
                    return Content(this.ReturnJson.ToString());
                }
                ReturnDetailEntity detail = new ReturnDetailEntity();
                detail.OrderNum = OrderNum;
                List<ReturnDetailEntity> listDetails = bill.GetOrderDetail(detail);
                //出货单部分
                Bill<OutStorageEntity, OutStoDetailEntity> provider = new OutStorageOrder();
                OutStoDetailEntity items = new OutStoDetailEntity();
                items.OrderNum = entity.ContractOrder;
                List<OutStoDetailEntity> list = provider.GetOrderDetail(items);

                //已经退货部分
                ReturnProvider returnProvider = new ReturnProvider();
                List<ReturnDetailEntity> listResult = returnProvider.GetDetailByOrder(entity.ContractOrder);

                if (!list.IsNullOrEmpty())
                {
                    list.ForEach(a =>
                    {
                        ReturnDetailEntity item = listDetails.FirstOrDefault(b => b.BarCode == a.BarCode && b.ProductNum == a.ProductNum && b.LocalNum == a.LocalNum && b.StorageNum == a.StorageNum);
                        if (item != null)
                        {
                            a.Qty = item.BackNum;
                        }
                        a.BackNum = listResult.Where(b => b.BarCode == a.BarCode && b.ProductNum == a.ProductNum && b.LocalNum == a.LocalNum && b.StorageNum == a.StorageNum).Sum(b => b.BackNum);
                    });
                }
                Session[CacheKey.TEMPDATE_CACHE_RETURNPRODUCTDETAIL] = list;
                string json = ConvertJson.ListToJson<OutStoDetailEntity>(list, "List");
                this.ReturnJson.AddProperty("data", json);
            }
            return Content(this.ReturnJson.ToString());
        }
        public ActionResult ToExcel()
        {
            int status = WebUtil.GetFormValue<int>("Status", 0);
            string orderNum = WebUtil.GetFormValue<string>("OrderNum", string.Empty);
            string beginTime = WebUtil.GetFormValue<string>("beginTime", string.Empty);
            string endTime = WebUtil.GetFormValue<string>("endTime", string.Empty);
            int pageSize = Int32.MaxValue;
            int pageIndex = WebUtil.GetFormValue<int>("PageIndex", 1);
            PageInfo pageInfo = new PageInfo() { PageIndex = pageIndex, PageSize = pageSize };
            ReturnOrderEntity entity = new ReturnOrderEntity();
            if (status > 0)
            {
                entity.Where(a => a.Status == status);
            }
            if (!orderNum.IsEmpty())
            {
                entity.Where("OrderNum", ECondition.Like, "%" + orderNum + "%");
            }
            if (!beginTime.IsEmpty() && !endTime.IsEmpty())
            {
                entity.Where("OrderTime", ECondition.Between, ConvertHelper.ToType<DateTime>(beginTime), ConvertHelper.ToType<DateTime>(endTime));
            }
            entity.And(a => a.StorageNum == this.DefaultStore);
            Bill<ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
            List<ReturnOrderEntity> listResult = bill.GetList(entity, ref pageInfo);
            listResult = listResult == null ? new List<ReturnOrderEntity>() : listResult;

            if (!listResult.IsNullOrEmpty())
            {
                DataTable dt = new DataTable();
                dt.Columns.Add(new DataColumn("退货单"));
                dt.Columns.Add(new DataColumn("退货类型"));
                dt.Columns.Add(new DataColumn("退货数量"));
                dt.Columns.Add(new DataColumn("关联单号"));
                dt.Columns.Add(new DataColumn("状态"));
                dt.Columns.Add(new DataColumn("制单人"));
                dt.Columns.Add(new DataColumn("操作方式"));
                dt.Columns.Add(new DataColumn("创建时间"));
                foreach (ReturnOrderEntity t in listResult)
                {
                    DataRow row = dt.NewRow();
                    row[0] = t.OrderNum;
                    row[1] = EnumHelper.GetEnumDesc<ECheckType>(t.ReturnType);
                    row[2] = t.Num;
                    row[3] = t.ContractOrder;
                    row[4] = EnumHelper.GetEnumDesc<EAudite>(t.Status);
                    row[5] = t.CreateUserName;
                    row[6] = EnumHelper.GetEnumDesc<EOpType>(t.OperateType);
                    row[7] = t.CreateTime.ToString("yyyy-MM-dd");
                    dt.Rows.Add(row);
                }
                string filePath = Server.MapPath("~/UploadFiles/");
                if (!System.IO.Directory.Exists(filePath))
                {
                    System.IO.Directory.CreateDirectory(filePath);
                }
                string filename = string.Format("退货单{0}.xls", DateTime.Now.ToString("yyyyMMddHHmmss"));
                NPOIExcel excel = new NPOIExcel("退货管理", "退货单", System.IO.Path.Combine(filePath, filename));
                excel.ToExcel(dt);
                this.ReturnJson.AddProperty("Path", ("/UploadFiles/" + filename).Escape());
            }
            else
            {
                this.ReturnJson.AddProperty("d", "无数据导出!");
            }
            return Content(this.ReturnJson.ToString());
        }