Example #1
0
        private void ItemOrderQty_PreviewMouseDown(object sender, RoutedEventArgs args)
        {
            object my_param           = sender;
            SalesOrderViewModel _SOVM = (SalesOrderViewModel)this.DataContext;

            _SOVM.SelectProductQtyCommand.Execute(my_param);
        }
Example #2
0
        public ActionResult NewOrder()
        {
            var customerId          = Convert.ToInt32(RouteData.Values["id"].ToString());
            var salesOrderViewModel = new SalesOrderViewModel();

            salesOrderViewModel.Order = new SalesOrderHeader();


            salesOrderViewModel.Order.CustomerID       = customerId;
            salesOrderViewModel.Order.SalesOrderNumber = customerId.ToString() + DateTime.Now.ToLongTimeString();
            salesOrderViewModel.Order.ShipMethod       = "Air";
            salesOrderViewModel.Order.ShipToAddress    = new Address()
            {
                rowguid = Guid.NewGuid()
            };
            salesOrderViewModel.Order.BillToAddress = new Address()
            {
                rowguid = Guid.NewGuid()
            };
            salesOrderViewModel.Order.DueDate = DateTime.Now.AddDays(10);
            //Adding at least one item
            salesOrderViewModel.LineItems = new List <SalesOrderDetail>();

            for (int i = 0; i < 2; i++)
            {
                var sod = new SalesOrderDetail()
                {
                    rowguid = Guid.NewGuid()
                };
                salesOrderViewModel.LineItems.Add(sod);
            }

            return(View(salesOrderViewModel));
        }
Example #3
0
        public static SalesOrder CreateSalesOrderFromSalesOrderViewModel(SalesOrderViewModel salesOrderViewModel)
        {
            var salesOrder = new SalesOrder()
            {
                CustomerName = salesOrderViewModel.CustomerName,
                PONumber     = salesOrderViewModel.PONumber,
                SalesOrderId = salesOrderViewModel.SalesOrderId,
                ObjectState  = salesOrderViewModel.ObjectState,
                RowVersion   = salesOrderViewModel.RowVersion
            };

            int temporarySalesOrderItemId = -1;

            foreach (var salesOrderItemViewModel in salesOrderViewModel.SalesOrderItems)
            {
                var salesOrderItem = new SalesOrderItem();
                salesOrderItem.SalesOrderId = salesOrderViewModel.SalesOrderId;
                salesOrderItem.ProductCode  = salesOrderItemViewModel.ProductCode;
                salesOrderItem.Quantity     = salesOrderItemViewModel.Quantity;
                salesOrderItem.UnitPrice    = salesOrderItemViewModel.UnitPrice;
                salesOrderItem.ObjectState  = salesOrderItemViewModel.ObjectState;
                if (salesOrderItemViewModel.ObjectState != ObjectState.Added)
                {
                    salesOrderItem.SalesOrderItemId = salesOrderItemViewModel.SalesOrderItemId;
                }
                else
                {
                    salesOrderItem.SalesOrderItemId = temporarySalesOrderItemId;
                    temporarySalesOrderItemId--;
                }
                salesOrder.SalesOrderItems.Add(salesOrderItem);
            }

            return(salesOrder);
        }
Example #4
0
        public SalesOrder()
        {
            InitializeComponent();
            SalesOrderViewModel _SOVM = new SalesOrderViewModel();

            this.DataContext = _SOVM;
        }
Example #5
0
        /// <summary>
        /// 销售单审核
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public string UpdateSalesOrder(SalesOrderViewModel model)
        {
            try
            {
                switch (model.userGroupNumber)
                {
                case "002":
                    return(UpdateSalesOrderGM(model));    // 总经理

                case "004":
                    return(UpdateSalesOrderPD(model));    // 生产

                case "005":
                    return(UpdateSalesOrderME(model));    // 工艺

                case "006":
                    return(UpdateSalesOrderPO(model));    // 供应

                default:
                    LoggerHelper.Info("销售单审核:用户分组未找到" + model.userGroupNumber);
                    return("用户分组未找到!");
                }
            }
            catch (Exception e)
            {
                LoggerHelper.Info("销售单审核【" + model.billNo + ":" + model.phoneNumber + "】" + e);
                return("销售单审核失败");
            }
        }
Example #6
0
        public static SalesOrderViewModel CreateSalesOrderViewModelFromSalesOrder(SalesOrder salesOrder)
        {
            var salesOrderViewModel = new SalesOrderViewModel()
            {
                PONumber     = salesOrder.PONumber,
                CustomerName = salesOrder.CustomerName,
                SalesOrderId = salesOrder.SalesOrderId,
                ObjectState  = ObjectState.Unchanged,
                RowVersion   = salesOrder.RowVersion
            };

            foreach (var salesOrderItem in salesOrder.SalesOrderItems)
            {
                var salesOrderItemViewModel = new SalesOrderItemViewModel()
                {
                    SalesOrderId     = salesOrder.SalesOrderId,
                    SalesOrderItemId = salesOrderItem.SalesOrderItemId,
                    ProductCode      = salesOrderItem.ProductCode,
                    Quantity         = salesOrderItem.Quantity,
                    UnitPrice        = salesOrderItem.UnitPrice,
                    ObjectState      = ObjectState.Unchanged
                };
                salesOrderViewModel.SalesOrderItems.Add(salesOrderItemViewModel);
            }

            return(salesOrderViewModel);
        }
Example #7
0
        public JsonResult Save(SalesOrderViewModel salesOrderViewModel)
        {
            SalesOrder salesOrder = ViewModelHelpers.CreateSalesOrderFromSalesOrderViewModel(salesOrderViewModel);
        
            salesOrder.ObjectState = salesOrderViewModel.ObjectState;

            _salesContext.SalesOrders.Attach(salesOrder);
            _salesContext.ApplyStateChanges();

            _salesContext.SaveChanges();


            if (salesOrder.ObjectState == ObjectState.Deleted)
            {
                return Json(new { newLocation = "/Sales/Index/" });
            }

            salesOrderViewModel.MessageToClient = ViewModelHelpers.GetMessageToClient(salesOrderViewModel.ObjectState, salesOrder.CustomerName);
           
            salesOrderViewModel.SalesOrderId = salesOrder.Id;
            salesOrderViewModel.ObjectState = ObjectState.Unchanged;


            return Json(new { salesOrderViewModel });
        }
Example #8
0
        private static string UpdateSalesOrderPO(SalesOrderViewModel model)
        {
            var sqlParameter = new List <SqlParameter>()
            {
                new SqlParameter("@PhoneNumber", model.phoneNumber),
                new SqlParameter("@BillNo", model.billNo),
                new SqlParameter("@Reason", model.reason),
                new SqlParameter {
                    ParameterName = "@Msg", Value = "", Direction = ParameterDirection.Output, Size = 100, SqlDbType = SqlDbType.NVarChar
                }
            };

            string cmdText = "tm_p_UpdateSalesOrderPO";

            var res = SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, cmdText, sqlParameter.ToArray());
            var msg = sqlParameter.Last().Value.ToString();

            if (msg == "OK")
            {
                string toUser = GetUserIdByUserGroup("004", "008");; //生产组,制单人组
                toUser += GetSeOrderUserId(model.billNo);            //业务员消息只发当前订单
                string noticeDetailUrl = WebConfig.WebHost + "/#/salesOrderDetail?billNo=" + model.billNo;
                model.reason = ComposeMessageContent(model.billNo, model.reason);

                WechatService.Send(toUser, "销售订单[" + model.billNo + "]供应已回复", model.reason, noticeDetailUrl);
            }
            LoggerHelper.Info("销售订单[" + model.billNo + "]供应已回复:" + msg);

            return(msg);
        }
Example #9
0
        public JsonResult Save(SalesOrderViewModel salesOrderViewModel)
        {
            SalesOrder salesOrder = new SalesOrder()
            {
                SalesOrderId = salesOrderViewModel.SalesOrderId,
                CustomerName = salesOrderViewModel.CustomerName,
                PONumber     = salesOrderViewModel.PONumber,
                ObjectState  = salesOrderViewModel.ObjectState
            };

            _salesContext.SalesOrders.Attach(salesOrder);
            _salesContext.ChangeTracker.Entries <IObjectWithState>().Single().State = Helpers.ConvertState(salesOrder.ObjectState);
            _salesContext.SaveChanges();

            switch (salesOrderViewModel.ObjectState)
            {
            case ObjectState.Added:
                salesOrderViewModel.MessageToClient = string.Format("{0}'s sales order has been added to the database.", salesOrder.CustomerName);
                break;

            case ObjectState.Modified:
                salesOrderViewModel.MessageToClient = string.Format("The customer name for this sales order has updated to {0}.", salesOrder.CustomerName);
                break;
            }

            salesOrderViewModel.SalesOrderId = salesOrder.SalesOrderId;
            salesOrderViewModel.ObjectState  = ObjectState.Unchanged;

            return(Json(new { salesOrderViewModel }));
        }
Example #10
0
        public static SalesOrderViewModel CreateSalesOrderViewModelFromSalesOrder(SalesOrder salesOrder)
        {
            SalesOrderViewModel vm = new SalesOrderViewModel();

            vm.Id           = salesOrder.Id;
            vm.CustomerName = salesOrder.CustomerName;
            vm.PONumber     = salesOrder.PONumber;
            vm.ObjectState  = ObjectState.Unchanged; // it's always Unchanged
            vm.RowVersion   = salesOrder.RowVersion;

            foreach (SalesOrderItem salesOrderItem in salesOrder.SalesOrderItems)
            {
                SalesOrderItemViewModel itemVm = new SalesOrderItemViewModel();
                itemVm.Id          = salesOrderItem.Id;
                itemVm.ProductCode = salesOrderItem.ProductCode;
                itemVm.Quantity    = salesOrderItem.Quantity;
                itemVm.UnitPrice   = salesOrderItem.UnitPrice;
                itemVm.RowVersion  = salesOrderItem.RowVersion;

                itemVm.ObjectState = ObjectState.Unchanged;

                itemVm.SalesOrderId = salesOrder.Id;

                vm.SalesOrderItems.Add(itemVm);
            }

            return(vm);
        }
Example #11
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            SalesOrder salesOrder = _unitOfWork.SalesOrders.Find(id);

            if (salesOrder == null)
            {
                return(HttpNotFound());
            }

            var sovm = new SalesOrderViewModel
            {
                SalesOrderId    = salesOrder.Id,
                CustomerName    = salesOrder.CustomerName,
                PONumber        = salesOrder.PONumber,
                MessageToClient = "I originated from the ViewModel."
            };


            return(View(sovm));
        }
Example #12
0
 public SalesOrderView(SalesOrderViewModel model)
 {
     InitializeComponent();
     this.pandsViewModel = model;
     //  this.pandsViewModel = SalesOrderViewModel.GetInstance();
     this.DataContext = model;
     if (pandsViewModel.SODetailsEntity != null)
     {
         this.grdPandS.ItemsSource = this.pandsViewModel.SODetailsEntity;
     }
     if (pandsViewModel.MustCompare == true)
     {
         PART_TextBox.IsReadOnly      = false;
         PART_TextBox1.IsReadOnly     = false;
         OrderDatepicker.IsEnabled    = true;
         DeliveryDatepicker.IsEnabled = true;
     }
     else
     {
         btnNew.IsEnabled             = true;
         PART_TextBox.IsReadOnly      = true;
         PART_TextBox1.IsReadOnly     = true;
         OrderDatepicker.IsEnabled    = false;
         DeliveryDatepicker.IsEnabled = false;
     }
     setDiscountColumn(pandsViewModel.IsHideDiscColumn);
     CustomGridLines.ItemsSource = DataGridTableCollection.GridLines(8, 50).AsEnumerable();
 }
Example #13
0
        public async Task <IActionResult> UploadSalesOrder([FromForm] SalesOrderViewModel model)
        {
            if (model.FileTemplate != null || model.FileTemplate.Length > 0)
            {
                using (var ms = new MemoryStream())
                {
                    model.FileTemplate.CopyTo(ms);
                    ms.Seek(0, SeekOrigin.Begin);

                    var response = await _applicationServices.PostSalesOrder(ms, new SalesOrderHeader
                    {
                        ExternalReference = model.ExternalReference,
                        Name = model.Description,
                        DataOriginTypeCode      = model.DataOriginTypeCode,
                        DeliveryPriorityCode    = model.DeliveryPriorityCode,
                        DistributionChannelCode = model.DistributionChannelCode,
                        SalesUnitPartyId        = model.SalesUnit,
                        EmployeeResponsible     = model.EmployeeResponsible,
                        PostingDate             = model.PostingDate.HasValue ? model.PostingDate.Value.ToString() : null,
                        AccountId    = model.AccountId,
                        BuyerPartyId = model.ExternalReference,
                        StartDate    = model.RequestedStartDate.Value.ToString("dd/MM/yyyy"),
                        //EndDate = model.RequestedEndDate.Value.ToString("dd/MM/yyyy")
                    });

                    if (response != null)
                    {
                        return(Ok(response));
                    }
                }
            }

            return(null);
        }
Example #14
0
        public ActionResult Create()
        {
            SalesOrderViewModel salesOrderViewModel = new SalesOrderViewModel();

            salesOrderViewModel.ObjectState = ObjectState.Added;
            return(View(salesOrderViewModel));
        }
Example #15
0
        public ActionResult Create()
        {
            var salesOrderViewModel = new SalesOrderViewModel {
                ObjectState = ObjectState.Added
            };

            return(View(salesOrderViewModel));
        }
Example #16
0
        public SalesOrderLookup()
        {
            InitializeComponent();
            SalesOrderViewModel _SOVM = new SalesOrderViewModel();

            _SOVM.GetSalesOrderList();
            this.DataContext = _SOVM;
        }
Example #17
0
        public IActionResult Update([FromBody] CrudViewModel <SalesOrderViewModel> payload)
        {
            SalesOrderViewModel value = payload.value;
            var result = _functionalService
                         .Update <SalesOrderViewModel, SalesOrder>(value, Convert.ToInt32(value.SalesOrderId));

            this.UpdateSalesOrder(value.SalesOrderId);
            return(Ok());
        }
Example #18
0
        public static SalesOrder CreateSalesOrderFromSalesOrderViewModel(SalesOrderViewModel saleOrderViewModel)
        {
            SalesOrder salesOrder = new SalesOrder();

            salesOrder.Id           = saleOrderViewModel.SalesOrderId;
            salesOrder.CustomerName = saleOrderViewModel.CustomerName;
            salesOrder.PONumber     = saleOrderViewModel.PONumber;
            return(salesOrder);
        }
        //END


        //BEGIN :: ORDER ACTION METHODS
        #region public ActionResult Orders(int? id)

        public ActionResult Orders(int?id)
        {
            if (id.HasValue == false)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            return(View(SalesOrderViewModel.GetOrdersBySalesPerson(id)));
        }
Example #20
0
        public JsonResult Save(SalesOrderViewModel salesOrderViewModel)
        {
            if (!ModelState.IsValid)
            {
                throw new ModelStateException(ModelState);
            }
            var salesOrder = Helpers.Helpers.CreateSalesOrderFromSalesOrderViewModel(salesOrderViewModel);

            _salesContext.SalesOrders.Attach(salesOrder);

            if (salesOrder.ObjectState == ObjectState.Deleted)
            {
                foreach (var salesOrderItemViewModel in salesOrderViewModel.SalesOrderItems)
                {
                    var salesOrderItem = _salesContext.SalesOrderItems.Find(salesOrderItemViewModel.SalesOrderItemId);
                    if (salesOrderItem != null)
                    {
                        salesOrderItem.ObjectState = ObjectState.Deleted;
                    }
                }
            }
            else
            {
                foreach (int salesOrderItemId in salesOrderViewModel.SalesOrderItemToDelete)
                {
                    var salesOrderItem = _salesContext.SalesOrderItems.Find(salesOrderItemId);
                    if (salesOrderItem != null)
                    {
                        salesOrderItem.ObjectState = ObjectState.Deleted;
                    }
                }
            }

            _salesContext.ApplyStateChanges();
            try
            {
                _salesContext.SaveChanges();
            }
            catch (Exception exception)
            {
                throw new ModelStateException(exception);
            }


            if (salesOrder.ObjectState == ObjectState.Deleted)
            {
                return(Json(new { newLocation = "/Sales/Index/" }));
            }

            string messageToClient = Helpers.Helpers.GetMessageToClient(salesOrderViewModel.ObjectState,
                                                                        salesOrderViewModel.CustomerName);

            salesOrderViewModel = Helpers.Helpers.CreateSalesOrderViewModelFromSalesOrder(salesOrder);
            salesOrderViewModel.MessageToClient = messageToClient;
            return(Json(new { salesOrderViewModel }));
        }
Example #21
0
        public async Task <IActionResult> PostSalesOrder(SalesOrderViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.FileTemplate == null || model.FileTemplate.Length == 0)
                {
                    var toastrOptions = new ToastrOptions()
                    {
                        ProgressBar   = true,
                        PositionClass = ToastPositions.BottomCenter
                    };
                    _toastNotification.AddWarningToastMessage("Please attach a csv file", toastrOptions);
                    return(View());
                }

                var fileContent = new StreamContent(model.FileTemplate.OpenReadStream())
                {
                    Headers =
                    {
                        ContentLength = model.FileTemplate.Length,
                        ContentType   = new System.Net.Http.Headers.MediaTypeHeaderValue(model.FileTemplate.ContentType)
                    }
                };

                var formDataContent = new MultipartFormDataContent();
                var description     = string.IsNullOrEmpty(model.Description) ? "" : model.Description;
                formDataContent.Add(fileContent, "FileTemplate", model.FileTemplate.FileName);
                formDataContent.Add(new StringContent(model.ExternalReference), "ExternalReference");
                formDataContent.Add(new StringContent(model.AccountId), "AccountId");
                formDataContent.Add(new StringContent(description), "Description");
                formDataContent.Add(new StringContent(model.DataOriginTypeCode), "DataOriginTypeCode");
                formDataContent.Add(new StringContent(model.DeliveryPriorityCode), "DeliveryPriorityCode");
                formDataContent.Add(new StringContent(model.DistributionChannelCode), "DistributionChannelCode");
                formDataContent.Add(new StringContent(model.SalesUnit), "SalesUnit");
                formDataContent.Add(new StringContent(model.EmployeeResponsible), "EmployeeResponsible");
                formDataContent.Add(new StringContent(model.RequestedStartDate.Value.ToString()), "RequestedStartDate");
                formDataContent.Add(new StringContent(model.PostingDate.Value.ToString()), "PostingDate");


                var response = await _apiClient.HttpClient.PostAsync("SalesOrderUpload/PostSalesOrder", formDataContent);

                if (response.IsSuccessStatusCode)
                {
                    var responseData = await response.Content.ReadAsStreamAsync();

                    _toastNotification.AddSuccessToastMessage("Successful!");
                    return(new FileStreamResult(responseData, "text/xml")
                    {
                        FileDownloadName = "salesOrderResponse.xml"
                    });
                }
                _toastNotification.AddErrorToastMessage("Failed");
                return(View());
            }
            return(View());
        }
Example #22
0
        private void AddNewCommandAction(object obj)
        {
            var vm   = new SalesOrderViewModel(null);
            var form = new Views.SalesOrderView()
            {
                BindingContext = vm
            };

            Shell.Current.Navigation.PushAsync(form);
        }
Example #23
0
        public ActionResult Create()
        {
            SalesOrderViewModel vm = new SalesOrderViewModel()
            {
                MessageToClient = "You will create a new order!"
            };

            vm.ObjectState = ObjectState.Added;

            return(View(vm));
        }
Example #24
0
        public async Task <PartialViewResult> ViewSalesOrderModal(int id)
        {
            var getSalesOrderForViewDto = await _salesOrdersAppService.GetSalesOrderForView(id);

            var model = new SalesOrderViewModel()
            {
                SalesOrder = getSalesOrderForViewDto.SalesOrder
            };

            return(PartialView("_ViewSalesOrderModal", model));
        }
Example #25
0
        public IActionResult UpdateSalesOrder(SalesOrderViewModel model)
        {
            model.reason = model.reason ?? "";
            var res = apiService.UpdateSalesOrder(model);

            var data = new ReturnModel();

            data.Code    = 100;
            data.Message = res;

            return(Json(data));
        }
 public SalesOrderView(SalesOrderViewModel model)
 {
     InitializeComponent();
     this.pandsViewModel = model;
     //  this.pandsViewModel = SalesOrderViewModel.GetInstance();
     this.DataContext = model;
     if (pandsViewModel.SODetailsEntity != null)
     {
         this.grdPandS.ItemsSource = this.pandsViewModel.SODetailsEntity;
     }
     setDiscountColumn(pandsViewModel.IsHideDiscColumn);
     CustomGridLines.ItemsSource = DataGridTableCollection.GridLines(8, 50).AsEnumerable();
 }
Example #27
0
        /// <summary>
        /// 销售单审核
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public string UpdateSalesOrder(SalesOrderViewModel model)
        {
            List <SqlParameter> sqlParameter = new List <SqlParameter>()
            {
                new SqlParameter("@PhoneNumber", model.phoneNumber),
                new SqlParameter("@BillNo", model.billNo),
                new SqlParameter("@Result", model.result),
                new SqlParameter("@Reason", model.reason)
            };

            string cmdText = "";

            if (model.userGroupNumber == "002") //总经理审核更新
            {
                cmdText = "tm_p_UpdateSalesOrderGM";
            }

            if (model.userGroupNumber == "004")
            {
                if (model.result == "Y") //生产确认通过更新
                {
                    cmdText = "tm_p_UpdateSalesOrderPDC";
                }

                if (model.result == "N") //生产不通过更新
                {
                    cmdText = "tm_p_UpdateSalesOrderPDD";
                    sqlParameter.Add(new SqlParameter("@ISME", model.isMe));
                    sqlParameter.Add(new SqlParameter("@ISPO", model.isPo));
                }
            }

            if (model.userGroupNumber == "005") //工艺回复更新
            {
                cmdText = "tm_p_UpdateSalesOrderME";
            }

            if (model.userGroupNumber == "006") //供应回复更新
            {
                cmdText = "tm_p_UpdateSalesOrderPO";
            }

            sqlParameter.Add(new SqlParameter {
                ParameterName = "@Msg", Value = "", Direction = ParameterDirection.Output, Size = 100, SqlDbType = SqlDbType.NVarChar
            });

            var res = SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, cmdText, sqlParameter.ToArray());
            var msg = sqlParameter.Last().Value;

            return(msg.ToString());
        }
Example #28
0
        public virtual void lnkDetailNew_Execute(object arg)
        {
            SalesOrderViewModel vm = Model as SalesOrderViewModel;

            if (vm == null)
            {
                return;
            }
            WPFView cur = null as SalesOrderDetailView;
            WPFView tgt = cur ?? vm.ServiceProvider.GetService <SalesOrderDetailView>();

            tgt.Owner = this;
            vm.lnkDetailNew_Command(tgt, cur);
        }
Example #29
0
        public virtual void lnkDetailDetails_Execute(int?row)
        {
            SalesOrderViewModel vm = Model as SalesOrderViewModel;

            if (vm == null)
            {
                return;
            }
            WPFView cur = null as SalesOrderDetailView;
            WPFView tgt = cur ?? vm.ServiceProvider.GetService <SalesOrderDetailView>();

            tgt.Owner = this;
            vm.lnkDetailDetails_Command(tgt, cur, row.Value);
        }
Example #30
0
        public virtual void lnkCustomerLookupLookUp_Execute(object arg)
        {
            SalesOrderViewModel vm = Model as SalesOrderViewModel;

            if (vm == null)
            {
                return;
            }
            WPFView cur = null as CustomerListView;
            WPFView tgt = cur ?? vm.ServiceProvider.GetService <CustomerListView>();

            tgt.Owner = this;
            vm.lnkCustomerLookupLookUp_Command(tgt, cur);
        }