diff --git a/BBWY.Client/APIServices/QiKu/PackTaskService.cs b/BBWY.Client/APIServices/QiKu/PackTaskService.cs index 88efe033..70aeb272 100644 --- a/BBWY.Client/APIServices/QiKu/PackTaskService.cs +++ b/BBWY.Client/APIServices/QiKu/PackTaskService.cs @@ -25,7 +25,7 @@ namespace BBWY.Client.APIServices - public ApiResponse SearchTaskList(string skuId = null, string taskId = null + public ApiResponse SearchTaskListV2(string skuId = null, string taskId = null , string spuId = null, string orderSn = null, TaskState? TaskState = null, int pageIndex = 1, @@ -35,7 +35,7 @@ namespace BBWY.Client.APIServices { - return SendRequest(globalContext.QKApiHost, "api/PackTask/SearchTaskList", new + return SendRequest(globalContext.QKApiHost, "api/PackTask/SearchTaskListV2", new { orderSn, @@ -49,7 +49,7 @@ namespace BBWY.Client.APIServices }, null, HttpMethod.Post); } - public ApiResponse SearchTaskList(string WayBillNo = null, string SourceExpressName = null, string departmentName = null, string skuId = null, string taskId = null, + public ApiResponse SearchTaskListV2(string WayBillNo = null, string SourceExpressName = null, string departmentName = null, string skuId = null, string taskId = null, string spuId = null, string orderSn = null, TaskState? TaskState = null, string ShopName = null, @@ -61,7 +61,7 @@ namespace BBWY.Client.APIServices ) { - return SendRequest(globalContext.QKApiHost, "api/PackTask/SearchTaskList", new + return SendRequest(globalContext.QKApiHost, "api/PackTask/SearchTaskListV2", new { SkuTitle, SpuTitle, @@ -212,7 +212,7 @@ namespace BBWY.Client.APIServices //} - public ApiResponse ShopTotalV2(string skuId, + public ApiResponse ShopTotalV3(string skuId, string taskId, string shopId, DateTime? startTime, @@ -223,7 +223,7 @@ namespace BBWY.Client.APIServices int pageSize = 10 ) { - return SendRequest(globalContext.QKApiHost, "api/PackTask/ShopTotalV2", new + return SendRequest(globalContext.QKApiHost, "api/PackTask/ShopTotalV3", new { shopId, skuId, @@ -273,10 +273,10 @@ namespace BBWY.Client.APIServices /// /// /// - public ApiResponse TotalPackUserSalary(string PackUserName = null, DateTime? StartTime = null, DateTime? EndTime = null, int PageIndex = 1 + public ApiResponse TotalPackUserSalaryV1(string PackUserName = null, DateTime? StartTime = null, DateTime? EndTime = null, int PageIndex = 1 , int PageSize = 10) { - return SendRequest(globalContext.QKApiHost, "api/PackTask/TotalPackUserSalary", new + return SendRequest(globalContext.QKApiHost, "api/PackTask/TotalPackUserSalaryV1", new { PackUserName, StartTime, diff --git a/BBWY.Client/APIServices/QiKu/PackUserService.cs b/BBWY.Client/APIServices/QiKu/PackUserService.cs index db9f4991..4da80315 100644 --- a/BBWY.Client/APIServices/QiKu/PackUserService.cs +++ b/BBWY.Client/APIServices/QiKu/PackUserService.cs @@ -18,7 +18,7 @@ namespace BBWY.Client.APIServices.QiKu } - public ApiResponse SearchPackerTask(PackTaskState? PackTaskState, string WayBillNo = null, string SourceExpressName = null, string departmentName = null, string skuId = null, string taskId = null, + public ApiResponse SearchPackerTaskV2(PackTaskState? PackTaskState, string WayBillNo = null, string SourceExpressName = null, string departmentName = null, string skuId = null, string taskId = null, string spuId = null, string orderSn = null, string ShopName = null, @@ -29,7 +29,7 @@ namespace BBWY.Client.APIServices.QiKu PackagingTaskExceptionState? PackagingTaskExceptionState =null ) { - return SendRequest(globalContext.QKApiHost, $"api/PackUser/SearchPackerTask", + return SendRequest(globalContext.QKApiHost, $"api/PackUser/SearchPackerTaskV2", new { PackTaskState, @@ -64,10 +64,10 @@ namespace BBWY.Client.APIServices.QiKu } - public ApiResponse SearchPackerSalary(DateTime? StartTime, DateTime? EndTime, int pageIndex = 1, + public ApiResponse SearchPackerSalaryV2(DateTime? StartTime, DateTime? EndTime, int pageIndex = 1, int pageSize = 10) { - return SendRequest(globalContext.QKApiHost, $"api/PackUser/SearchPackerSalary", + return SendRequest(globalContext.QKApiHost, $"api/PackUser/SearchPackerSalaryV2", new { UserId = globalContext.User.Id.ToString(), diff --git a/BBWY.Client/APIServices/QiKu/PackagingTaskService.cs b/BBWY.Client/APIServices/QiKu/PackagingTaskService.cs index de23a09b..12248e17 100644 --- a/BBWY.Client/APIServices/QiKu/PackagingTaskService.cs +++ b/BBWY.Client/APIServices/QiKu/PackagingTaskService.cs @@ -16,7 +16,7 @@ namespace BBWY.Client.APIServices.QiKu } - public ApiResponse SearchPackagingTaskList(string WayBillNo = null, string SourceExpressName = null, string departmentName = null, string skuId = null, string taskId = null, + public ApiResponse SearchPackagingTaskListV2(string WayBillNo = null, string SourceExpressName = null, string departmentName = null, string skuId = null, string taskId = null, string spuId = null, string orderSn = null, PackagingTaskExceptionState? PackagingTaskExceptionState = null, string ShopName = null, @@ -29,7 +29,7 @@ namespace BBWY.Client.APIServices.QiKu ) { - return SendRequest(globalContext.QKApiHost, "api/PackagingTask/SearchPackagingTaskList", new + return SendRequest(globalContext.QKApiHost, "api/PackagingTask/SearchPackagingTaskListV2", new { SkuTitle, SpuTitle, diff --git a/BBWY.Client/App.xaml.cs b/BBWY.Client/App.xaml.cs index 95b6510d..bedfe34c 100644 --- a/BBWY.Client/App.xaml.cs +++ b/BBWY.Client/App.xaml.cs @@ -75,7 +75,7 @@ namespace BBWY.Client //userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNjY4NDI2OTQyNTY0NTM2MzIwIiwidGVhbUlkIjoiMTUxNjcxNTM3MjQ0NTcwMDA5NiIsInNvblRlYW1JZHMiOiIxNzE4NTQxMDYzMzk3ODM4ODQ4LDE1MTY3MTUzNzI0NDU3MDAwOTYiLCJleHAiOjE3MzAyODcxNjh9.6vXadZWQfhnxbR3320RloKv3LqqbNdZ7wDDfO3tY_5U"; //齐越季夏 - // userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNjIyNzY3NTkzODM0MTU2MDMyIiwidGVhbUlkIjoiMTUxNjcxNTM3MjQ0NTcwMDA5NiIsInNvblRlYW1JZHMiOiIxNTE2NzE1MzcyNDQ1NzAwMDk2LDE3MTg1NDEwNjMzOTc4Mzg4NDgiLCJleHAiOjE3MzAyODcxNjh9.ZGBU0MoJbKdkgqe9x2e3l6q-AVZwfAkUwa3oB47PWhY"; + //userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNjIyNzY3NTkzODM0MTU2MDMyIiwidGVhbUlkIjoiMTUxNjcxNTM3MjQ0NTcwMDA5NiIsInNvblRlYW1JZHMiOiIxNTE2NzE1MzcyNDQ1NzAwMDk2LDE3MTg1NDEwNjMzOTc4Mzg4NDgiLCJleHAiOjE3MzAyODcxNjh9.ZGBU0MoJbKdkgqe9x2e3l6q-AVZwfAkUwa3oB47PWhY"; //店铺自打包 // userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNzE5Nzc5OTU4MTYwNjI1NjY0IiwidGVhbUlkIjoiMTU0MDg4NTU3MDYyNzA0NzQyNCIsInNvblRlYW1JZHMiOiIxNzE4NTQxMDYzMzk3ODM4ODQ4IiwiZXhwIjoxNzMxNzI1NDA2fQ.VV6k8nDqTtQOY6_ma6QcX6geMU_kaswl16BGXF89so8"; diff --git a/BBWY.Client/GlobalContext.cs b/BBWY.Client/GlobalContext.cs index ef71e519..7aad82ad 100644 --- a/BBWY.Client/GlobalContext.cs +++ b/BBWY.Client/GlobalContext.cs @@ -1,4 +1,5 @@ using BBWY.Client.Models; +using BBWY.Client.Models.PackUser; using Newtonsoft.Json; using System.Collections.Generic; using System.Runtime.InteropServices; @@ -19,13 +20,13 @@ namespace BBWY.Client private string title; - public string Title { get=> title; set { Set(ref title, value); } } + public string Title { get => title; set { Set(ref title, value); } } private User user; - + public User User { get => user; set { Set(ref user, value); } } @@ -44,6 +45,18 @@ namespace BBWY.Client /// public List ExpressNameList { get; set; } + + /// + /// 打包赔付系数列表 + /// + public List PackagingStileList { get; set; } = new List() { + new PackagingStile(){ MinNumber=0,MaxNumber=4,DisCount=0.1M},// 0 /// JD客户端 /// diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs b/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs index 27647fa9..9a06ca02 100644 --- a/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs @@ -139,6 +139,17 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask /// 工序套餐任务量 /// public int ProcessComboTaskCount { get; set; } + + + /// + /// 赔付费用 + /// + public decimal? CompensateFees { get; set; } + + /// + /// 实际打包费用 + /// + public decimal? ActualPackFees { get; set; } } public class PackItemResponse diff --git a/BBWY.Client/Models/APIModel/Response/PackUser/SearchPackerSalaryResponse.cs b/BBWY.Client/Models/APIModel/Response/PackUser/SearchPackerSalaryResponse.cs index 31f2da55..8270b1ee 100644 --- a/BBWY.Client/Models/APIModel/Response/PackUser/SearchPackerSalaryResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackUser/SearchPackerSalaryResponse.cs @@ -65,6 +65,16 @@ namespace BBWY.Client.Models.APIModel /// 当日总日新 /// public decimal DaySalary { get; set; } + /// + /// 超时赔付金额 + /// + public decimal DayOverTimeCompensateFees { get; set; } + + /// + /// 实际收益 + /// + public decimal DayActualSalary { get; set; } + /// /// 当日任务量 /// @@ -95,5 +105,15 @@ namespace BBWY.Client.Models.APIModel /// 任务件数 /// public int TaskSkuItemCount { get; set; } + + /// + /// 超时赔付金额 + /// + public decimal OverTimeCompensateFees { get; set; } + + /// + /// 实际收益 + /// + public decimal ActualSalary { get; set; } } } diff --git a/BBWY.Client/Models/APIModel/Response/PackUser/SearchPackerTaskResponse.cs b/BBWY.Client/Models/APIModel/Response/PackUser/SearchPackerTaskResponse.cs index 88e645b0..d56425f8 100644 --- a/BBWY.Client/Models/APIModel/Response/PackUser/SearchPackerTaskResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackUser/SearchPackerTaskResponse.cs @@ -179,6 +179,28 @@ namespace BBWY.Client.Models.APIModel /// public Models.PackagingTaskExceptionState PackagingTaskExceptionState { get; set; } + /// + /// 包装是否超时 + /// + public bool IsPackOverTime { get; set; } + + /// + /// 实际收益 + /// + public decimal ActualIncome { get; set; } + + + + /// + /// 赔付金额 + /// + public string CompensationFee { get; set; } + + + /// + /// 打包任务耗时时长 + /// + public string PackTaskDurationTime { get; set; } } public class MarkMessageModel diff --git a/BBWY.Client/Models/APIModel/Response/PackagingTask/SearchPackagingTaskListResponse.cs b/BBWY.Client/Models/APIModel/Response/PackagingTask/SearchPackagingTaskListResponse.cs index d9db54eb..8f8c02a4 100644 --- a/BBWY.Client/Models/APIModel/Response/PackagingTask/SearchPackagingTaskListResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackagingTask/SearchPackagingTaskListResponse.cs @@ -249,5 +249,21 @@ namespace BBWY.Client.Models.APIModel public string AbortRemark { get; set; } public string OrderId { get; set; } + + /// + /// 实际收益 + /// + public decimal ActualIncome { get; set; } + + /// + /// 赔付金额 + /// + public string CompensationFee { get; set; } + + /// + /// 是否打包超时 + /// + public bool IsPackOverTime { get; set; } + } } diff --git a/BBWY.Client/Models/PackTask/PackTaskModel.cs b/BBWY.Client/Models/PackTask/PackTaskModel.cs index 98723660..a69c87a2 100644 --- a/BBWY.Client/Models/PackTask/PackTaskModel.cs +++ b/BBWY.Client/Models/PackTask/PackTaskModel.cs @@ -560,10 +560,12 @@ namespace BBWY.Client.Models public decimal ConsumableFees { get; set; } + + private decimal packTotalFees; /// /// 总计 /// - public decimal PackTotalFees { get; set; } + public decimal PackTotalFees { get => packTotalFees; set { Set(ref packTotalFees, value); } } @@ -602,6 +604,21 @@ namespace BBWY.Client.Models /// public string PackRemainTime { get => packRemainTime; set { Set(ref packRemainTime, value); } } + + private decimal actualIncome; + /// + /// 预估收益 + /// + public decimal ActualIncome { get => actualIncome; set { Set(ref actualIncome, value); } } + + + private string compensationFee; + /// + /// 赔付金额 + /// + public string CompensationFee { get => compensationFee; set { Set(ref compensationFee, value); } } + + /// /// 打包完成时间(超时时间) /// diff --git a/BBWY.Client/Models/PackTask/ShopTotal.cs b/BBWY.Client/Models/PackTask/ShopTotal.cs index 1eccbfaf..ab90dfac 100644 --- a/BBWY.Client/Models/PackTask/ShopTotal.cs +++ b/BBWY.Client/Models/PackTask/ShopTotal.cs @@ -75,6 +75,17 @@ namespace BBWY.Client.Models.PackTask /// 打包费用折扣价 /// public decimal? PackDisCountFees { get; set; } + + + /// + /// 赔付费用 + /// + public decimal? CompensateFees { get; set; } + + /// + /// 实际打包费用 + /// + public decimal? ActualPackFees { get; set; } ///// ///// 折扣类型 ///// diff --git a/BBWY.Client/Models/PackUser/PackagingStile.cs b/BBWY.Client/Models/PackUser/PackagingStile.cs new file mode 100644 index 00000000..094df52b --- /dev/null +++ b/BBWY.Client/Models/PackUser/PackagingStile.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace BBWY.Client.Models.PackUser +{ + /// + /// 打包超时赔付系数 + /// + public class PackagingStile + { + public int MinNumber { get; set; } + + public int MaxNumber { get; set; } + + public decimal DisCount { get; set; } + } +} diff --git a/BBWY.Client/Models/PackUser/PackerTaskModel.cs b/BBWY.Client/Models/PackUser/PackerTaskModel.cs index 273a1d07..bf882ea3 100644 --- a/BBWY.Client/Models/PackUser/PackerTaskModel.cs +++ b/BBWY.Client/Models/PackUser/PackerTaskModel.cs @@ -46,7 +46,19 @@ namespace BBWY.Client.Models.PackUser - + private decimal actualIncome ; + /// + /// 实际收益 + /// + public decimal ActualIncome { get => actualIncome; set { Set(ref actualIncome, value); } } + + + private string compensationFee; + /// + /// 赔付金额 + /// + public string CompensationFee { get => compensationFee; set { Set(ref compensationFee, value); } } + } } diff --git a/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs b/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs index 01298dae..ffb314fd 100644 --- a/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs @@ -143,7 +143,7 @@ namespace BBWY.Client.ViewModels.PackTask Task.Factory.StartNew(() => { IsLoading = true; - var res = packTaskService.ShopTotalV2(SearchSkuId, SearchTaskId, null, StartDate, EndDate, SearchShopName, + var res = packTaskService.ShopTotalV3(SearchSkuId, SearchTaskId, null, StartDate, EndDate, SearchShopName, SearchDepartment, 0, 0);//获取全部数据 if (res.Success) { @@ -219,7 +219,7 @@ namespace BBWY.Client.ViewModels.PackTask Task.Factory.StartNew(() => { IsLoading = true; - var res = packTaskService.ShopTotalV2(SearchSkuId, SearchTaskId, null, StartDate, EndDate, SearchShopName, + var res = packTaskService.ShopTotalV3(SearchSkuId, SearchTaskId, null, StartDate, EndDate, SearchShopName, SearchDepartment, PageIndex, PageSize); if (res != null && res.Success) { @@ -241,7 +241,9 @@ namespace BBWY.Client.ViewModels.PackTask ConsumableList = shopTotal.ConsumableList, ProcessComboPrice = shopTotal.ProcessComboPrice, ProcessComboTaskCount = shopTotal.ProcessComboTaskCount, - DiscountFoctor = shopTotal.DiscountFactor + DiscountFoctor = shopTotal.DiscountFactor, + ActualPackFees=shopTotal.ActualPackFees, + CompensateFees=shopTotal.CompensateFees, }; App.Current.Dispatcher.Invoke(() => diff --git a/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs b/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs index 1d082b61..f4f9076b 100644 --- a/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs @@ -974,7 +974,7 @@ namespace BBWY.Client.ViewModels.PackTask TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.QualityCompletionOverTime.Value); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsQualityOverTime = false; @@ -1012,7 +1012,7 @@ namespace BBWY.Client.ViewModels.PackTask //TimeSpan datetime = item.QualityCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.QualityCompletionOverTime.Value); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsQualityOverTime = false; @@ -1072,7 +1072,7 @@ namespace BBWY.Client.ViewModels.PackTask else if (TaskState == Models.TaskState.待包装) { PackTaskList = new ObservableCollection();//初始化数据 - var datas = packagingTaskService.SearchPackagingTaskList(skuId: SearchSkuId, taskId: SearchTaskId, spuId: SearchSpuId, orderSn: SearchOrderSn, PackagingTaskExceptionState: this.PackagingTaskExceptionState, shopId: globalContext.User.Shop.ShopId.ToString(), + var datas = packagingTaskService.SearchPackagingTaskListV2(skuId: SearchSkuId, taskId: SearchTaskId, spuId: SearchSpuId, orderSn: SearchOrderSn, PackagingTaskExceptionState: this.PackagingTaskExceptionState, shopId: globalContext.User.Shop.ShopId.ToString(), pageIndex: PageIndex, pageSize: PageSize); @@ -1145,7 +1145,7 @@ namespace BBWY.Client.ViewModels.PackTask //var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.PackCompletionOverTime.Value); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsPackOverTime = false; item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); @@ -1154,6 +1154,20 @@ namespace BBWY.Client.ViewModels.PackTask { item.IsPackOverTime = true; item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); + //获取 datetime 的小时数 的绝对值 + var hours = Math.Abs(datetime.TotalHours); + + var packagingStile = globalContext.PackagingStileList.SingleOrDefault(p => p.MinNumber < hours && p.MaxNumber >= hours);//获取折扣系数 + var discount = packagingStile?.DisCount ?? 0; + + //赔付费用 + var compensationFee = Math.Round(item.PackageFees * discount, 2); + + item.CompensationFee = $"{Math.Round(item.PackageFees, 2)}*{discount}={compensationFee}"; + + //实际收益 + item.ActualIncome = item.PackageFees - compensationFee; + item.PackTotalFees = item.ActualIncome + item.ConsumableFees; } } @@ -1184,7 +1198,7 @@ namespace BBWY.Client.ViewModels.PackTask TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.PackCompletionOverTime.Value); item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsPackOverTime = false; @@ -1192,6 +1206,20 @@ namespace BBWY.Client.ViewModels.PackTask else { item.IsPackOverTime = true; + //获取 datetime 的小时数 的绝对值 + var hours = Math.Abs(datetime.TotalHours); + + var packagingStile = globalContext.PackagingStileList.SingleOrDefault(p => p.MinNumber < hours && p.MaxNumber >= hours);//获取折扣系数 + var discount = packagingStile?.DisCount ?? 0; + + //赔付费用 + var compensationFee = Math.Round(item.PackageFees * discount, 2); + + item.CompensationFee = $"{Math.Round(item.PackageFees, 2)}*{discount}={compensationFee}"; + + //实际收益 + item.ActualIncome = item.PackageFees - compensationFee; + item.PackTotalFees = item.ActualIncome + item.ConsumableFees; } } @@ -1218,6 +1246,7 @@ namespace BBWY.Client.ViewModels.PackTask }); item.ExpressOrderList = expressData.Data; + })); @@ -1239,7 +1268,7 @@ namespace BBWY.Client.ViewModels.PackTask else { PackTaskList = new ObservableCollection();//初始化数据 - var datas = packTaskService.SearchTaskList(SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.TaskState, + var datas = packTaskService.SearchTaskListV2(SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.TaskState, PageIndex, PageSize); if (datas != null && datas.Data != null && datas.Success) { @@ -1335,7 +1364,7 @@ namespace BBWY.Client.ViewModels.PackTask //var datetime = item.ScheduleOverTime.Value.Subtract(DateTime.Now); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.ScheduleOverTime.Value); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsScheduleOverTime = false; item.ScheduleRemainTime = OverTimeHelper.GetTimeString(datetime); @@ -1488,7 +1517,7 @@ namespace BBWY.Client.ViewModels.PackTask { TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SealBoxPackOverTime.Value); //var datetime = item.SealBoxPackOverTime.Value.Subtract(DateTime.Now); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsSealBoxOverTime = false; item.SealBoxRemainTime = $"{datetime.Hours}小时{datetime.Minutes}分"; @@ -1576,7 +1605,7 @@ namespace BBWY.Client.ViewModels.PackTask { //var datetime = item.SetPurchaseOrderOverTime.Value.Subtract(DateTime.Now); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SetPurchaseOrderOverTime.Value); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsFallWareOverTime = false; item.FallWareRemainTime = $"{datetime.Hours}小时{datetime.Minutes}分"; @@ -1740,7 +1769,7 @@ namespace BBWY.Client.ViewModels.PackTask { // var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.TransportOverTime.Value); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsWaitTransportOverTime = false; item.WaitTransportRemainTime = OverTimeHelper.GetTimeString(datetime); diff --git a/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs b/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs index 04ec58b9..cac5a45d 100644 --- a/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs @@ -2101,7 +2101,7 @@ namespace BBWY.Client.ViewModels.PackTask { // var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.TransportOverTime.Value); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsWaitTransportOverTime = false; item.WaitTransportRemainTime = OverTimeHelper.GetTimeString(datetime); @@ -2191,7 +2191,7 @@ namespace BBWY.Client.ViewModels.PackTask { // var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SetWaybillNoOverTime.Value); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsSetWaybillNoOverTime = false; item.SetWaybillNoRemainTime = OverTimeHelper.GetTimeString(datetime); @@ -2269,7 +2269,7 @@ namespace BBWY.Client.ViewModels.PackTask //var datetime = item.SealBoxPackOverTime.Value.Subtract(DateTime.Now); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SealBoxPackOverTime.Value); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsSealBoxOverTime = false; item.SealBoxRemainTime = OverTimeHelper.GetTimeString(datetime); @@ -2436,7 +2436,7 @@ namespace BBWY.Client.ViewModels.PackTask //else // datetime = item.QualityCompletionOverTime.Value.Subtract(DateTime.Now); //item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); - //if (datetime.TotalMilliseconds > 0) + //if (datetime.TotalMilliseconds >= 0) //{ // item.IsQualityOverTime = false; @@ -2449,7 +2449,7 @@ namespace BBWY.Client.ViewModels.PackTask TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.QualityCompletionOverTime.Value); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsQualityOverTime = false; @@ -2488,7 +2488,7 @@ namespace BBWY.Client.ViewModels.PackTask TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.QualityCompletionOverTime.Value); //datetime = item.QualityCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsQualityOverTime = false; @@ -2549,7 +2549,7 @@ namespace BBWY.Client.ViewModels.PackTask { PackTaskList = new ObservableCollection();//初始化数据 - var datas = packagingTaskService.SearchPackagingTaskList(SearchWayBillNo, SearchExpressName, SearchDepartment, SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.PackagingTaskExceptionState, SearchShopName, + var datas = packagingTaskService.SearchPackagingTaskListV2(SearchWayBillNo, SearchExpressName, SearchDepartment, SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.PackagingTaskExceptionState, SearchShopName, PageIndex, PageSize, SearchSkuTitle, SearchSpuTitle, SearchPackUserName); if (datas != null && datas.Data != null && datas.Success) @@ -2594,6 +2594,8 @@ namespace BBWY.Client.ViewModels.PackTask data.PackUser = string.Join("\r\n", item.PackUserName); } + + App.Current.Dispatcher.Invoke(new Action(() => { PackTaskList.Add(data); @@ -2620,7 +2622,7 @@ namespace BBWY.Client.ViewModels.PackTask //var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.PackCompletionOverTime.Value); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsPackOverTime = false; item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); @@ -2629,6 +2631,21 @@ namespace BBWY.Client.ViewModels.PackTask { item.IsPackOverTime = true; item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); + + //获取 datetime 的小时数 的绝对值 + var hours = Math.Abs(datetime.TotalHours); + + var packagingStile = globalContext.PackagingStileList.SingleOrDefault(p => p.MinNumber < hours && p.MaxNumber >= hours);//获取折扣系数 + var discount = packagingStile?.DisCount ?? 0; + + //赔付费用 + var compensationFee = Math.Round(item.PackageFees * discount, 2); + + item.CompensationFee = $"{Math.Round(item.PackageFees, 2)}*{discount}={compensationFee}"; + + //实际收益 + item.ActualIncome = item.PackageFees - compensationFee; + item.PackTotalFees = item.ActualIncome + item.ConsumableFees; } } @@ -2659,7 +2676,7 @@ namespace BBWY.Client.ViewModels.PackTask TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.PackCompletionOverTime.Value); item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsPackOverTime = false; @@ -2667,6 +2684,20 @@ namespace BBWY.Client.ViewModels.PackTask else { item.IsPackOverTime = true; + //获取 datetime 的小时数 的绝对值 + var hours = Math.Abs(datetime.TotalHours); + + var packagingStile = globalContext.PackagingStileList.SingleOrDefault(p => p.MinNumber < hours && p.MaxNumber >= hours);//获取折扣系数 + var discount = packagingStile?.DisCount ?? 0; + + //赔付费用 + var compensationFee = Math.Round(item.PackageFees * discount, 2); + + item.CompensationFee = $"{Math.Round(item.PackageFees, 2)}*{discount}={compensationFee}"; + + //实际收益 + item.ActualIncome = item.PackageFees - compensationFee; + item.PackTotalFees = item.ActualIncome + item.ConsumableFees; } } @@ -2719,7 +2750,7 @@ namespace BBWY.Client.ViewModels.PackTask else { PackTaskList = new ObservableCollection();//初始化数据 - var datas = packTaskService.SearchTaskList(SearchWayBillNo, SearchExpressName, SearchDepartment, SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.TaskState, SearchShopName, + var datas = packTaskService.SearchTaskListV2(SearchWayBillNo, SearchExpressName, SearchDepartment, SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.TaskState, SearchShopName, PageIndex, PageSize, SearchSkuTitle, SearchSpuTitle, SearchPackUserName); if (datas != null && datas.Data != null && datas.Success) @@ -2801,7 +2832,7 @@ namespace BBWY.Client.ViewModels.PackTask { //var datetime = item.ScheduleOverTime.Value.Subtract(DateTime.Now); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.ScheduleOverTime.Value); - if (datetime.TotalMilliseconds > 0) + if (datetime.TotalMilliseconds >= 0) { item.IsScheduleOverTime = false; item.ScheduleRemainTime = OverTimeHelper.GetTimeString(datetime); diff --git a/BBWY.Client/ViewModels/PackerTask/PackerSalaryViewModel.cs b/BBWY.Client/ViewModels/PackerTask/PackerSalaryViewModel.cs index 2563c55b..516aacc7 100644 --- a/BBWY.Client/ViewModels/PackerTask/PackerSalaryViewModel.cs +++ b/BBWY.Client/ViewModels/PackerTask/PackerSalaryViewModel.cs @@ -56,6 +56,15 @@ namespace BBWY.Client.ViewModels.PackerTask public DateTime EndTime { get => endTime; set { Set(ref endTime, value); } } + + //统计开始日期 + public DateTime totalStartDate; + public DateTime TotalStartDate { get => totalStartDate; set { Set(ref totalStartDate, value); } } + //统计结束日期 + public DateTime totalEndDate; + public DateTime TotalEndDate { get => totalEndDate; set { Set(ref totalEndDate, value); } } + + public int PageIndex { get => pageIndex; set { Set(ref pageIndex, value); } } public int PageSize { get => pageSize; set { Set(ref pageSize, value); } } @@ -109,13 +118,15 @@ namespace BBWY.Client.ViewModels.PackerTask IsLoading = true; try { - var res = packUserService.SearchPackerSalary(StartTime.Date, EndTime.Date, PageIndex, PageSize); + var res = packUserService.SearchPackerSalaryV2(StartTime.Date, EndTime.Date, PageIndex, PageSize); if (res != null && res.Success) { OrderCount = res.Data.TotalCount; TotalSalary = res.Data.TotalSalary; TotalSkuItemCount = res.Data.TotalSkuItemCount; TotalTaskCount = res.Data.TotalTaskCount; + TotalEndDate = EndTime.Date; + TotalStartDate = StartTime.Date; App.Current.Dispatcher.Invoke(() => { PackUserSalaryList = res.Data.PackerDaySalaries; @@ -169,7 +180,7 @@ namespace BBWY.Client.ViewModels.PackerTask Task.Factory.StartNew(() => { IsLoading = true; - var res = packTaskService.TotalPackUserSalary(SearchUserName, StartTime, EndTime, 0, 0);//获取全部数据 + var res = packTaskService.TotalPackUserSalaryV1(SearchUserName, StartTime, EndTime, 0, 0);//获取全部数据 if (res.Success) { //string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注"; diff --git a/BBWY.Client/ViewModels/PackerTask/PackerTaskViewModel.cs b/BBWY.Client/ViewModels/PackerTask/PackerTaskViewModel.cs index b5511c08..1225e80f 100644 --- a/BBWY.Client/ViewModels/PackerTask/PackerTaskViewModel.cs +++ b/BBWY.Client/ViewModels/PackerTask/PackerTaskViewModel.cs @@ -644,7 +644,7 @@ namespace BBWY.Client.ViewModels.PackerTask Task.Factory.StartNew(() => { - var res = packUserService.SearchPackerTask(PackTaskState: PackTaskState, WayBillNo: SearchWayBillNo, SourceExpressName: SearchExpressName, + var res = packUserService.SearchPackerTaskV2(PackTaskState: PackTaskState, WayBillNo: SearchWayBillNo, SourceExpressName: SearchExpressName, departmentName: SearchDepartment, SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, SearchShopName, PageIndex, PageSize, SearchSkuTitle, SearchSpuTitle, PackagingTaskExceptionState ); @@ -663,16 +663,15 @@ namespace BBWY.Client.ViewModels.PackerTask if (PackTaskState == Models.PackTaskState.已完成) { - if (item.PackCompletionOverTime < item.PackCompletionTime)//超时 { data.IsPackOverTime = true; - data.PackRemainTime = OverTimeHelper.GetTimeString(item.PackCompletionTime.Value.Subtract(item.PackCompletionOverTime.Value)); + data.PackRemainTime = OverTimeHelper.GetTimeString(PackTaskTimerHelper.AccountEffectiveRemainDuration(item.PackCompletionOverTime.Value, item.PackCompletionTime.Value)); } else { data.IsPackOverTime = false; - data.PackRemainTime = OverTimeHelper.GetTimeString(item.PackCompletionTime.Value.Subtract(item.SetPackUserTaskTime.Value)); + data.PackRemainTime = data.PackTaskDurationTime;// OverTimeHelper.GetTimeString(PackTaskTimerHelper.AccountEffectiveRemainDuration(item.SetPackUserTaskTime.Value, item.PackCompletionTime.Value)); } } @@ -690,11 +689,6 @@ namespace BBWY.Client.ViewModels.PackerTask if (PackTaskState == Models.PackTaskState.待包装) { - - - - - if (PackagingTaskExceptionState == Models.PackagingTaskExceptionState.待包装) { var packCompletedTasks = PackerTaskModelList.Where(p => p.TaskState == Models.TaskState.待包装 && p.PackCompletionOverTime != null && p.TaskAbortTime == null).ToList(); @@ -710,16 +704,37 @@ namespace BBWY.Client.ViewModels.PackerTask { foreach (var item in packCompletedTasks) { - var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now); - if (datetime.TotalMilliseconds > 0) + var datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.PackCompletionOverTime.Value); + if (datetime.TotalMilliseconds >= 0) { item.IsPackOverTime = false; item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); - } + + //todo:超时赔付 包装超时赔付系数 + + } else { item.IsPackOverTime = true; item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); + + //获取 datetime 的小时数 的绝对值 + var hours = Math.Abs(datetime.TotalHours); + + var packagingStile = globalContext.PackagingStileList.SingleOrDefault(p => p.MinNumber < hours && p.MaxNumber >= hours);//获取折扣系数 + var discount = packagingStile?.DisCount ?? 0; + + //赔付费用 + var compensationFee = Math.Round( item.PackerFee * discount,2); + + item.CompensationFee = $"{Math.Round(item.PackerFee, 2)}*{discount}={compensationFee}"; + + //实际收益 + item.ActualIncome = item.PackerFee - compensationFee; + + + + } } diff --git a/BBWY.Client/ViewModels/TotalPackTask/PackUserSalaryViewModel.cs b/BBWY.Client/ViewModels/TotalPackTask/PackUserSalaryViewModel.cs index d024b737..8dfa220a 100644 --- a/BBWY.Client/ViewModels/TotalPackTask/PackUserSalaryViewModel.cs +++ b/BBWY.Client/ViewModels/TotalPackTask/PackUserSalaryViewModel.cs @@ -92,7 +92,7 @@ namespace BBWY.Client.ViewModels.TotalPackTask Task.Factory.StartNew(() => { IsLoading = true; - var res = packTaskService.TotalPackUserSalary(searchUserName, StartTime, EndTime, PageIndex, PageSize); + var res = packTaskService.TotalPackUserSalaryV1(searchUserName, StartTime, EndTime, PageIndex, PageSize); if (res != null && res.Success) { OrderCount = res.Data.TotalCount; @@ -142,7 +142,7 @@ namespace BBWY.Client.ViewModels.TotalPackTask Task.Factory.StartNew(() => { IsLoading = true; - var res = packTaskService.TotalPackUserSalary(SearchUserName, StartTime, EndTime, 0, 0);//获取全部数据 + var res = packTaskService.TotalPackUserSalaryV1(SearchUserName, StartTime, EndTime, 0, 0);//获取全部数据 if (res.Success) { //string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注"; diff --git a/BBWY.Client/ViewModels/TotalPackTask/ShopPackTaskTotalViewModel.cs b/BBWY.Client/ViewModels/TotalPackTask/ShopPackTaskTotalViewModel.cs index 4dbac35f..f80602a9 100644 --- a/BBWY.Client/ViewModels/TotalPackTask/ShopPackTaskTotalViewModel.cs +++ b/BBWY.Client/ViewModels/TotalPackTask/ShopPackTaskTotalViewModel.cs @@ -129,7 +129,7 @@ namespace BBWY.Client.ViewModels.TotalPackTask Task.Factory.StartNew(() => { IsLoading = true; - var res = packTaskService.ShopTotalV2(SearchSkuId, SearchTaskId, globalContext.User.Shop.ShopId.ToString(), StartDate, EndDate, null, + var res = packTaskService.ShopTotalV3(SearchSkuId, SearchTaskId, globalContext.User.Shop.ShopId.ToString(), StartDate, EndDate, null, null, 0, 0);//获取全部数据 if (res.Success) { @@ -154,7 +154,7 @@ namespace BBWY.Client.ViewModels.TotalPackTask Task.Factory.StartNew(() => { IsLoading = true; - var res = packTaskService.ShopTotalV2(SearchSkuId, SearchTaskId, globalContext.User.Shop.ShopId.ToString(), StartDate, EndDate, null, + var res = packTaskService.ShopTotalV3(SearchSkuId, SearchTaskId, globalContext.User.Shop.ShopId.ToString(), StartDate, EndDate, null, null, PageIndex, PageSize); if (res != null && res.Success) { @@ -176,7 +176,9 @@ namespace BBWY.Client.ViewModels.TotalPackTask ConsumableList = shopTotal.ConsumableList, ProcessComboPrice = shopTotal.ProcessComboPrice, ProcessComboTaskCount = shopTotal.ProcessComboTaskCount, - DiscountFoctor = shopTotal.DiscountFactor + DiscountFoctor = shopTotal.DiscountFactor, + ActualPackFees = shopTotal.ActualPackFees, + CompensateFees = shopTotal.CompensateFees, }; App.Current.Dispatcher.Invoke(() => diff --git a/BBWY.Client/Views/PackTask/FeesExcelV2Control.xaml.cs b/BBWY.Client/Views/PackTask/FeesExcelV2Control.xaml.cs index 3dd46a13..4207cd00 100644 --- a/BBWY.Client/Views/PackTask/FeesExcelV2Control.xaml.cs +++ b/BBWY.Client/Views/PackTask/FeesExcelV2Control.xaml.cs @@ -76,6 +76,12 @@ namespace BBWY.Client.Views.PackTask string xaml = @" + + + + + + [:Columns:] @@ -145,13 +151,33 @@ namespace BBWY.Client.Views.PackTask - + "; + //赔付金额 + string compensationFeesStr = @" + + + + + + + + "; + //实际收益 + string actualIncomeStr = @" + + + + + + + + "; string columnStr = ""; - string workProcess = "\r\n \r\n "; + string workProcess = "\r\n \r\n "; string consumableService = "\r\n \r\n "; @@ -197,20 +223,32 @@ namespace BBWY.Client.Views.PackTask var consumableList = FeesItem.ConsumableList; - var processCount = 4; + var processCount = 6; + + + var consumableCount = consumableList.Count(); if (consumableCount > 0) { consumableCount++; } + + + columnStr = columnStr.Replace("[:Width:]", "*"); - var columnCount = consumableCount + processCount + 2; + + + + var columnCount = consumableCount + 2; StringBuilder columns = new StringBuilder(); for (int i = 1; i < columnCount; i++) { columns.AppendLine(columnStr); } + + columnCount += processCount; + StringBuilder serviceData = new StringBuilder(); int allCount = consumableCount + processCount; @@ -226,8 +264,13 @@ namespace BBWY.Client.Views.PackTask serviceData.AppendLine(discountFactorStr.Replace("[:DiscountFactor:]", FeesItem.DiscountFoctor?.ToString())); serviceData.AppendLine(processFeesStr.Replace("[:PackFees:]", FeesItem.PackFees.ToString("0.00"))); + //赔付金额 + serviceData.AppendLine(compensationFeesStr.Replace("[:CompensationFees:]", FeesItem.CompensateFees?.ToString("0.00"))); + //实际收益 + serviceData.AppendLine(actualIncomeStr.Replace("[:ActualIncome:]", FeesItem.ActualPackFees?.ToString("0.00"))); + - int rowIndex = 4; + int rowIndex = 6; if (consumableList.Count > 0) { diff --git a/BBWY.Client/Views/PackTask/PackDetailWindow.xaml b/BBWY.Client/Views/PackTask/PackDetailWindow.xaml index fbc9da88..e53fbaf6 100644 --- a/BBWY.Client/Views/PackTask/PackDetailWindow.xaml +++ b/BBWY.Client/Views/PackTask/PackDetailWindow.xaml @@ -612,7 +612,7 @@ - + diff --git a/BBWY.Client/Views/PackagingTask/ShopWaitPackingTaskControl.xaml b/BBWY.Client/Views/PackagingTask/ShopWaitPackingTaskControl.xaml index a0d2a388..3451f01d 100644 --- a/BBWY.Client/Views/PackagingTask/ShopWaitPackingTaskControl.xaml +++ b/BBWY.Client/Views/PackagingTask/ShopWaitPackingTaskControl.xaml @@ -391,10 +391,53 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BBWY.Client/Views/PackagingTask/WaitPackingTaskControl.xaml b/BBWY.Client/Views/PackagingTask/WaitPackingTaskControl.xaml index 4f1e87e5..01831c5a 100644 --- a/BBWY.Client/Views/PackagingTask/WaitPackingTaskControl.xaml +++ b/BBWY.Client/Views/PackagingTask/WaitPackingTaskControl.xaml @@ -425,10 +425,53 @@ Command="{Binding DataContext. UpdateShelvesNumberCommand,RelativeSource={Relati - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BBWY.Client/Views/PackerTask/PackerPackCompletedControl.xaml b/BBWY.Client/Views/PackerTask/PackerPackCompletedControl.xaml index 2b9830d2..1f7b22b2 100644 --- a/BBWY.Client/Views/PackerTask/PackerPackCompletedControl.xaml +++ b/BBWY.Client/Views/PackerTask/PackerPackCompletedControl.xaml @@ -170,7 +170,7 @@ - + @@ -228,7 +228,7 @@ - + @@ -259,7 +259,7 @@ - + @@ -373,10 +373,30 @@ - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BBWY.Client/Views/PackerTask/PackerSalaryControl.xaml b/BBWY.Client/Views/PackerTask/PackerSalaryControl.xaml index 7c281fa1..7ca62c3f 100644 --- a/BBWY.Client/Views/PackerTask/PackerSalaryControl.xaml +++ b/BBWY.Client/Views/PackerTask/PackerSalaryControl.xaml @@ -113,9 +113,9 @@ - + - + @@ -125,7 +125,7 @@ - + @@ -139,14 +139,18 @@ + + - - - + + + + + @@ -154,8 +158,9 @@ - - + + + @@ -184,25 +189,33 @@ + + - + - - - + + + + + - + + + + + - + + + @@ -229,12 +244,15 @@ Foreground="{StaticResource Text.Color}" + + + + + - - - + - + diff --git a/BBWY.Client/Views/PackerTask/PackerWaitPackageControl.xaml b/BBWY.Client/Views/PackerTask/PackerWaitPackageControl.xaml index aab89b92..807741ca 100644 --- a/BBWY.Client/Views/PackerTask/PackerWaitPackageControl.xaml +++ b/BBWY.Client/Views/PackerTask/PackerWaitPackageControl.xaml @@ -171,7 +171,7 @@ - + @@ -229,7 +229,7 @@ - + @@ -261,7 +261,7 @@ - + @@ -379,10 +379,30 @@ - + + + + + + + + + + + + + + + + + + + + + + + + @@ -619,7 +639,7 @@ Foreground="{StaticResource Text.Color}"> - + diff --git a/BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml.cs b/BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml.cs index 9dad9824..5fdbe59f 100644 --- a/BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml.cs +++ b/BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml.cs @@ -186,7 +186,7 @@ namespace BBWY.Client.Views.TotalPackTask for (int j = 0; j < PackUserSalaries[i].IncomeItems.Count; j++) { var columnIndex = 4 + j;//[:HeaderPriceList:] - headerPriceListSB.AppendLine(serviceText.Replace("[:ServicePrice:]", PackUserSalaries[i].IncomeItems[j].TotalPrice.ToString()) + headerPriceListSB.AppendLine(serviceText.Replace("[:ServicePrice:]", PackUserSalaries[i].IncomeItems[j].TotalPrice.ToString("0.00")) .Replace("[:ColumnIndex:]", columnIndex.ToString()) .Replace("[:RowIndex:]", rowIndex.ToString()));