public async Task <ActionResult> List(ShipmentOrdersQueryRequest request) { if (!Request.IsAjaxRequest()) { return(View()); } var manager = new ShipmentManager(User); var paging = await manager.GetShipmentOrdersAsync(request.Start, request.Take, request.GetOrderListQueryFilter()); var orders = paging.List.Select(u => { var shipmentOrderViewModel = Mapper.Map <ShipmentOrder, ShipmentOrderViewModel>(u); shipmentOrderViewModel.Created = u.Created.ToString(SaleManagentConstants.UI.DateStringFormat); shipmentOrderViewModel.DeliveryDate = u.DeliveryDate.ToString(SaleManagentConstants.UI.DateStringFormat); shipmentOrderViewModel.AuditDate = u.AuditDate.HasValue ? u.AuditDate.Value.ToString(SaleManagentConstants.UI.DateStringFormat) : ""; shipmentOrderViewModel.TotalAmount = Math.Round(shipmentOrderViewModel.TotalAmount, 2); return(shipmentOrderViewModel); }); return(Json(true, string.Empty, new { paging.Total, List = orders, })); }
private void AllocateButton_Click(object sender, EventArgs e) { if (getSelectedShipmentIds().Count > 0) { if (AssignUnassignButton.Text == "Assign") { ShipmentAllocator shpAllocator = new ShipmentAllocator(podDbConn); shpAllocator.PopulateEmployees(); DialogResult shpAllocatorReturn = shpAllocator.ShowDialog(); long employeeId = shpAllocator.SelectedContact; if (shpAllocatorReturn == DialogResult.OK && (employeeId != 0)) { ShipmentManager shpMgr = new ShipmentManager(_companyCode, _userCode); string strErrors = ""; shpMgr.assignShipments(getSelectedShipmentIds(), employeeId, false, strErrors); } //remove all that were selected removeSelectedShipmentIds(); } else if (AssignUnassignButton.Text == "Un-Assign") { ShipmentManager shpMgr = new ShipmentManager(_companyCode, _userCode); shpMgr.unassignShipments(podDbConn, getSelectedShipmentIds()); //remove all that were selected removeSelectedShipmentIds(); } } return; }
public async Task <JsonResult> CreatedRecord([NamedModelBinder(typeof(CommaSeparatedModelBinder), "orderIds")] string[] orderIds) { var manager = new ShipmentManager(User); foreach (var id in orderIds) { var shipmentOrder = await manager.GetShipmentOrderAsync(id); if (shipmentOrder.AuditStatus == ShipmentOrderAduitStatus.Pass) { return(Json(false, $"{id}出货单已经通过审核,不能再次审核")); } shipmentOrder.AuditStatus = ShipmentOrderAduitStatus.Pass; shipmentOrder.AuditorName = User.Name; shipmentOrder.AuditDate = DateTime.Now; var result = await manager.AuditShipmentOrder(shipmentOrder); if (result.Succeeded) { var orderInfoId = shipmentOrder.ShipmentOrderInfos.Select(r => r.Id); await new OrderManager(User).UpdateOrderStatusAsync(OrderStatus.Shipment, orderInfoId); } } return(Json(true)); }
public async Task <JsonResult> CancelAudit(string id) { var manager = new ShipmentManager(User); var shipmentOrder = await manager.GetShipmentOrderAsync(id); if (shipmentOrder == null) { return(Json(false, "出货单不存在")); } if (shipmentOrder.AuditStatus != ShipmentOrderAduitStatus.Pass) { return(Json(false, "出货单不是已审核状态")); } shipmentOrder.AuditStatus = ShipmentOrderAduitStatus.New; shipmentOrder.AuditorName = User.Name; shipmentOrder.AuditDate = DateTime.Now; var result = await manager.AuditShipmentOrder(shipmentOrder); if (result.Succeeded) { var orderIds = shipmentOrder.ShipmentOrderInfos.Select(r => r.Id); await new OrderManager(User).UpdateOrderStatusAsync(OrderStatus.Shipmenting, orderIds); await new OrderOperationLogManager(User).AddLogAsync(OrderStatus.Shipmenting, orderIds); await new ReconciliationManager(User).DeleteReconciliationAsync(shipmentOrder.Id); } return(Json(result)); }
public async Task <FileStreamResult> OrderSetStoneStatisticsExport(SetStoneReportQuery reportQuery) { var manager = new ShipmentManager(User); var orderSetStoneStatistics = await manager.GetOrderSetStoneStatisticsAsync(reportQuery); var titles = new string[] { "序号", "配石名称", "重量(ct)", "数量", "副石额" }; var result = Dickson.Web.Helper.ExcelHelp.Export(titles, "配石报表", ws => { var row = 2; int index = 1; foreach (var orderSetStoneStatistic in orderSetStoneStatistics) { ws.Cells[row, 1].Value = index; ws.Cells[row, 2].Value = orderSetStoneStatistic.SetStoneName; ws.Cells[row, 3].Value = orderSetStoneStatistic.Weight; ws.Cells[row, 4].Value = orderSetStoneStatistic.Number; ws.Cells[row, 5].Value = orderSetStoneStatistic.SetStoneAmount; row++; index++; } ; }); return(result); }
private async Task <InvokedResult> UpdateShipmentOrderTotalAmount(string shipmentOrderId, double difference) { var manager = new ShipmentManager(User); var result = await manager.UpdateTotalAmountAsync(shipmentOrderId, difference); return(result); }
public async Task <JsonResult> Create(ShipmentOrderViewModel shipmentOrderViewModel) { var shipmentOrder = new ShipmentOrder(); shipmentOrder = Mapper.Map <ShipmentOrderViewModel, ShipmentOrder>(shipmentOrderViewModel); var usermanager = new UserManager(); var customer = usermanager.FindByIdByCache(shipmentOrder.CustomerId); shipmentOrder.CustomerName = customer.Name; var serialNumberManager = new SerialNumberManager(User); shipmentOrder.Id = SaleManagentConstants.Misc.ShipmentOrderPrefix + await serialNumberManager.NextSNAsync(SaleManagentConstants.SerialNames.ShipmentOrder); shipmentOrder.CompanyId = User.CompanyId; shipmentOrder.ShipmentOrderInfos.Each(r => r.ShipmentOrderId = shipmentOrder.Id); var shipmentManager = new ShipmentManager(User); var result = await shipmentManager.CreateAsync(shipmentOrder); if (result.Succeeded) { var orderIds = shipmentOrder.ShipmentOrderInfos.Select(r => r.Id); await new OrderManager(User).UpdateOrderStatusAsync(OrderStatus.Shipmenting, orderIds); await new OrderOperationLogManager(User).AddLogAsync(OrderStatus.Shipmenting, orderIds); } return(Json(result.Succeeded, "", result.Data)); }
public ActionResult ShipmentList() { using (ShipmentManager dm = new ShipmentManager()) { var models = dm.GetShipmentList(); return(View(models)); } }
public ActionResult SaveShipment(List <ShipmentModel> shipments) { using (ShipmentManager dm = new ShipmentManager()) { foreach (var shipment in shipments) { dm.SaveShipment(shipment); } } return(Json("", JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> OrderSetStoneStatistics(SetStoneReportQuery reportQuery) { if (!Request.IsAjaxRequest()) { return(View(reportQuery)); } var manager = new ShipmentManager(User); var list = await manager.GetOrderSetStoneStatisticsAsync(reportQuery); return(Json(true, string.Empty, list)); }
public async Task <JsonResult> Edit(ShipmentOrderViewModel shipmentOrderViewModel) { var shipmentOrder = new ShipmentOrder(); var shipmentManager = new ShipmentManager(User); shipmentOrder = await shipmentManager.GetShipmentOrderAsync(shipmentOrderViewModel.Id); shipmentOrder = Mapper.Map <ShipmentOrderViewModel, ShipmentOrder>(shipmentOrderViewModel); shipmentOrder.ShipmentOrderInfos.Each(r => r.ShipmentOrderId = shipmentOrder.Id); var result = await shipmentManager.UpdateAsync(shipmentOrder); return(Json(result.Succeeded, "", result.Data)); }
public async Task <ActionResult> ShipmentOrderDetail(string orderId) { var manager = new ShipmentManager(User); var shipmentOrder = await manager.GetShipmentOrderByOrderIdAsync(orderId); var isWeChat = OwinContext.GetBrowser().IsWeChat; if (!isWeChat) { return(RedirectToAction("Detail", "shipment", new { id = shipmentOrder.Id, Area = "" })); } var shipmentOrderViewModel = Mapper.Map <ShipmentOrder, ShipmentOrderViewModel>(shipmentOrder); return(View(shipmentOrderViewModel)); }
private async Task <IEnumerable <ShipmentOrderInfoViewModel> > GetShipmentOrderInfoViewModels(ShipmentReportQuery reportQuery) { var manager = new ShipmentManager(User); var stopwatch = Stopwatch.StartNew(); var shipmentOrderInfos = await manager.GetShipmentOrderInfosAsync(reportQuery.GetShipmentOrderInfosQueryFilter()); stopwatch.Stop(); var shipmentOrderInfoViewModels = shipmentOrderInfos.Select(f => { var shipmentOrderInfoViewModel = Mapper.Map <ShipmentOrderInfo, ShipmentOrderInfoViewModel>(f); shipmentOrderInfoViewModel.CustomerName = f.Order.Customer.Name; shipmentOrderInfoViewModel.Hhz = Math.Round(f.GoldWeight * (1 + f.LossRate / 100), 2); shipmentOrderInfoViewModel.IsShipOnTime = f.Order.DeliveryDate.HasValue && f.ShipmentOrder.DeliveryDate < f.Order.DeliveryDate.Value ? "正常" : "逾期"; shipmentOrderInfoViewModel.DeliveryDate = f.ShipmentOrder.DeliveryDate.ToShortDateString(); return(shipmentOrderInfoViewModel); }).ToList(); var stopwatch2 = Stopwatch.StartNew(); if (shipmentOrderInfoViewModels.Any()) { var total = new ShipmentOrderInfoViewModel { Number = shipmentOrderInfoViewModels.Sum(r => r.Number), GoldWeight = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.GoldWeight), 2), Hhz = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.Hhz), 2), GoldAmount = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.GoldAmount), 2), SideStoneNumber = shipmentOrderInfoViewModels.Sum(r => r.SideStoneNumber), SideStoneWeight = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.SideStoneWeight), 2), TotalSetStoneWorkingCost = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.TotalSetStoneWorkingCost), 2), SideStoneTotalAmount = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.SideStoneTotalAmount), 2), BasicCost = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.BasicCost), 2), OutputWaxCost = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.OutputWaxCost), 2), RiskFee = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.RiskFee), 2), OtherCost = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.OtherCost), 2), TotalAmount = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.TotalAmount), 2), Weight = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.Weight), 2), IsShipOnTime = $"正常{shipmentOrderInfoViewModels.Count(r => r.IsShipOnTime == "正常")},逾期{shipmentOrderInfoViewModels.Count(r => r.IsShipOnTime == "逾期")}", }; shipmentOrderInfoViewModels.Add(total); } stopwatch2.Stop(); LoggerHelper.Logger.LogInformation($"获取数据耗时{stopwatch.ElapsedMilliseconds}毫秒,统计数据耗时{stopwatch2.ElapsedMilliseconds}毫秒"); return(shipmentOrderInfoViewModels); }
public async Task <ActionResult> Detail(string id) { var manager = new ShipmentManager(User); var shipmentOrder = await manager.GetShipmentOrderAsync(id); var discountRateManager = new DiscountRateManager(); var discountRate = await discountRateManager.GetCustomerDiscountRateAsync(shipmentOrder.CustomerId); var shipmentOrderViewModel = Mapper.Map <ShipmentOrder, ShipmentOrderViewModel>(shipmentOrder); shipmentOrderViewModel.SideStoneRate = (double)discountRate.SideStone / 100; shipmentOrderViewModel.StoneSetterRate = (double)discountRate.StoneSetter / 100; shipmentOrderViewModel.ShipmentOrderInfos.Each(f => f.Hhz = Math.Round(f.GoldWeight * (1 + f.LossRate / 100), 2)); shipmentOrderViewModel.TotalArrearage = await new ReconciliationManager(User).GetTotalSurplusArrearageAsync(shipmentOrder.CustomerId); return(View(shipmentOrderViewModel)); }
public async Task <ActionResult> Edit(string id) { var manager = new ShipmentManager(User); var shipmentOrder = await manager.GetShipmentOrderAsync(id); var shipmentOrderViewModel = Mapper.Map <ShipmentOrder, ShipmentOrderViewModel>(shipmentOrder); var discountRateManager = new DiscountRateManager(); var discountRate = await discountRateManager.GetCustomerDiscountRateAsync(shipmentOrder.CustomerId); shipmentOrderViewModel.SideStoneRate = (double)discountRate.SideStone / 100; shipmentOrderViewModel.ShipmentOrderInfos.Each(f => { f.Hhz = Math.Round(f.GoldWeight * (1 + f.LossRate / 100), 2); f.GoldAmount = f.GoldPrice * f.Hhz; f.TotalSetStoneWorkingCost = f.OrderSetStoneInfos.Sum(r => r.SetStoneWorkingCost) * ((double)discountRate.StoneSetter / 100); f.SideStoneNumber = f.OrderSetStoneInfos.Sum(r => r.Number); f.SideStoneTotalAmount = f.OrderSetStoneInfos.Sum(r => r.TotalAmount) * ((double)discountRate.SideStone / 100); f.SideStoneWeight = f.OrderSetStoneInfos.Sum(r => r.Weight); } ); return(View("create", shipmentOrderViewModel)); }
private async Task <IEnumerable <ShipmentOrderInfoViewModel> > GetShipmentOrderInfoViewModels(ShipmentReportQuery reportQuery) { var manager = new ShipmentManager(User); var shipmentOrderInfos = await manager.GetShipmentOrderInfosAsync(reportQuery.GetShipmentOrderInfosQueryFilter()); var shipmentOrderInfoViewModels = shipmentOrderInfos.Select(f => { var shipmentOrderInfoViewModel = Mapper.Map <ShipmentOrderInfo, ShipmentOrderInfoViewModel>(f); shipmentOrderInfoViewModel.Hhz = Math.Round(f.GoldWeight * (1 + f.LossRate / 100), 2); return(shipmentOrderInfoViewModel); }).ToList(); if (shipmentOrderInfoViewModels.Any()) { var total = new ShipmentOrderInfoViewModel { Id = "总计", Number = shipmentOrderInfoViewModels.Sum(r => r.Number), GoldWeight = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.GoldWeight), 2), Hhz = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.Hhz), 2), GoldAmount = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.GoldAmount), 2), SideStoneNumber = shipmentOrderInfoViewModels.Sum(r => r.SideStoneNumber), SideStoneWeight = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.SideStoneWeight), 2), TotalSetStoneWorkingCost = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.TotalSetStoneWorkingCost), 2), SideStoneTotalAmount = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.SideStoneTotalAmount), 2), BasicCost = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.BasicCost), 2), OutputWaxCost = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.OutputWaxCost), 2), RiskFee = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.RiskFee), 2), OtherCost = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.OtherCost), 2), TotalAmount = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.TotalAmount), 2), Weight = Math.Round(shipmentOrderInfoViewModels.Sum(r => r.Weight), 2), }; shipmentOrderInfoViewModels.Add(total); } return(shipmentOrderInfoViewModels); }
public async Task <JsonResult> Audit(string id) { var manager = new ShipmentManager(User); var shipmentOrder = await manager.GetShipmentOrderAsync(id); if (shipmentOrder.AuditStatus == ShipmentOrderAduitStatus.Pass) { return(Json(false, "出货单已经通过审核,不能再次审核")); } shipmentOrder.AuditStatus = ShipmentOrderAduitStatus.Pass; shipmentOrder.AuditorName = User.Name; shipmentOrder.AuditDate = DateTime.Now; var result = await manager.AuditShipmentOrder(shipmentOrder); if (result.Succeeded) { var orderIds = shipmentOrder.ShipmentOrderInfos.Select(r => r.Id); await new OrderManager(User).UpdateOrderStatusAsync(OrderStatus.Shipment, orderIds); await new OrderOperationLogManager(User).AddLogAsync(OrderStatus.Shipment, orderIds); var reconciliation = new Reconciliation { Amount = shipmentOrder.TotalAmount, CompanyId = User.CompanyId, Created = DateTime.Now, CreatorId = User.Id, CustomerId = shipmentOrder.CustomerId, CustomerName = shipmentOrder.CustomerName, Type = ReconciliationType.Arrearage, Remark = $"{id}出货" }; await new ReconciliationManager(User).CreateAsync(reconciliation); await SendShipmentOrderMsg(shipmentOrder); } return(Json(result)); }
// POST: api/Shipments public Shipment Post([FromBody] Shipment newShipment) { return(ShipmentManager.NewShipment(newShipment)); }
private void SendButton_Click(object sender, System.EventArgs e) { PODManager.ShipmentManager shpMgr = new ShipmentManager(_companyCode, _userCode); //bool bRetVal = shpMgr.sendShipmentAssignments(podDbConn); bool bRetVal = shpMgr.sendShipmentAssignments(); }
private void PopulateShipmentGrid(ShipmentManager.ASSIGNMENT_STATUS shipmentAsignmentStatus) { try { podDbConn.Open(); PODManager.ShipmentManager shpMgr = new ShipmentManager(_companyCode, _userCode); shpMgr.DBConnection = podDbConn; Dictionary <long, Shipment> shpments = new Dictionary <long, Shipment>(); shpments = shpMgr.getShipmentsByStatus(shipmentAsignmentStatus); if (shpments.Count > 0) { System.Console.WriteLine("shipment from DB by status = " + shpments[21].toXML(true).InnerXml); } Shipment shp21 = shpMgr.getShipmentByID(21); System.Console.WriteLine("shipment from DB by ID = " + shp21.toXML(true).InnerXml); Dictionary <long, Shipment> shpments2 = shpMgr.getShipmentsByStatusTest(); System.Console.WriteLine("Test shipment = " + shpments2[1001].toXML(true).InnerXml); Dictionary <long, Contact> employees = shpMgr.getEmployeesForAssignment(); if (employees.Count > 0) { System.Console.WriteLine("Employee from DB, Full Name = " + employees[82].FullName + ", Phone Number = " + employees[82].PhoneNumber); } if (podDbConn.State == ConnectionState.Open) { podDbConn.Close(); } // Test Assignments List <ShipmentVersion> shipmentVersions = new List <ShipmentVersion>(5); ShipmentVersion shpVrsn1 = new ShipmentVersion(5, 21); ShipmentVersion shpVrsn2 = new ShipmentVersion(6, 23); ShipmentVersion shpVrsn3 = new ShipmentVersion(7, 24); shipmentVersions.Add(shpVrsn1); shipmentVersions.Add(shpVrsn2); shipmentVersions.Add(shpVrsn3); Contact empForAssignment = new Contact(5, 82, Contact.CONTACT_TYPE.EMPLOYEE); String strRetErrors = ""; bool bAssignmentSucceeded = shpMgr.assignShipments(shipmentVersions, empForAssignment, false, strRetErrors); DataTable UndeliverredShipmentsTable = new DataTable("UnDeliveredShipments"); DataColumn colShipmentId = new DataColumn("Shipment ID", typeof(long)); DataColumn colShipmentSrc = new DataColumn("Shipment Source", typeof(String)); DataColumn colShipmentSrcRef = new DataColumn("Shipment Ref", typeof(String)); DataColumn colShipmentIsDeliverred = new DataColumn("Deliver To", typeof(String)); UndeliverredShipmentsTable.Columns.Add(colShipmentId); UndeliverredShipmentsTable.Columns.Add(colShipmentSrc); UndeliverredShipmentsTable.Columns.Add(colShipmentSrcRef); UndeliverredShipmentsTable.Columns.Add(colShipmentIsDeliverred); if (shipmentAsignmentStatus == ShipmentManager.ASSIGNMENT_STATUS.ASSIGNED) { DataColumn colShipmentAllocatedTo = new DataColumn("Allocated To", typeof(String)); UndeliverredShipmentsTable.Columns.Add(colShipmentAllocatedTo); } Dictionary <long, Shipment> .Enumerator shipEnum = shpments.GetEnumerator(); while (shipEnum.MoveNext()) { PODBusinessObjects.Shipment currShipment = shipEnum.Current.Value; DataRow currRow = UndeliverredShipmentsTable.NewRow(); currRow[0] = currShipment.ShipmentId; currRow[1] = currShipment.ShipmentSrc; currRow[2] = currShipment.ShipmentRef; currRow[3] = currShipment.DeliverToAddress; if (shipmentAsignmentStatus == ShipmentManager.ASSIGNMENT_STATUS.ASSIGNED) { currRow[4] = currShipment.getAssignedTo(); } UndeliverredShipmentsTable.Rows.Add(currRow); } ShipmentDataGridView.DataSource = UndeliverredShipmentsTable; } catch (SqlException sqlExp) { System.Console.WriteLine("Exception : " + sqlExp.ToString()); } catch (Exception ex) { System.Console.WriteLine("Exception : " + ex.ToString()); } finally { podDbConn.Close(); } }