diff --git a/BBWY.Client/APIServices/PackDetailService.cs b/BBWY.Client/APIServices/PackDetailService.cs new file mode 100644 index 00000000..2925b2bf --- /dev/null +++ b/BBWY.Client/APIServices/PackDetailService.cs @@ -0,0 +1,32 @@ +using BBWY.Client.Models.APIModel.Response.PackTask; +using BBWY.Common.Http; +using BBWY.Common.Models; +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; + +namespace BBWY.Client.APIServices +{ + public class PackDetailService : BaseApiService, IDenpendency + { + public PackDetailService(RestApiService restApiService, GlobalContext globalContext) : base(restApiService, globalContext) + { + } + + public ApiResponse GetTaskService(long TaskId) + { + return SendRequest(globalContext.QKApiHost, $"api/PackDetail/GetTaskService?taskId={TaskId}", + null + , null, HttpMethod.Get); + } + + public ApiResponse UploadService(UploadServiceRequest consumable) + { + return SendRequest(globalContext.QKApiHost, "api/PackDetail/UploadService", + consumable + , null, HttpMethod.Post); + } + + } +} diff --git a/BBWY.Client/APIServices/PackServiceService.cs b/BBWY.Client/APIServices/PackServiceService.cs new file mode 100644 index 00000000..3c19f318 --- /dev/null +++ b/BBWY.Client/APIServices/PackServiceService.cs @@ -0,0 +1,49 @@ +using BBWY.Client.Models.APIModel.Response.PackTask; +using BBWY.Client.Models.PackTask; +using BBWY.Common.Http; +using BBWY.Common.Models; +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; + +namespace BBWY.Client.APIServices +{ + public class PackServiceService : BaseApiService,IDenpendency + { + public PackServiceService(RestApiService restApiService, GlobalContext globalContext) : base(restApiService, globalContext) + { + } + + public ApiResponse SearchAll() + { + return SendRequest(globalContext.QKApiHost, "api/PackService/SearchAll", + null + , null, HttpMethod.Get); + } + + public ApiResponse Add(PackServiceDTO consumable) + { + return SendRequest(globalContext.QKApiHost, "api/PackService/Add", + consumable + , null, HttpMethod.Post); + } + public ApiResponse Edit(PackServiceDTO consumable) + { + return SendRequest(globalContext.QKApiHost, "api/PackService/Edit", + consumable + , null, HttpMethod.Post); + } + + + public ApiResponse Deleted(long id) + { + return SendRequest(globalContext.QKApiHost, "api/PackService/Deleted", + new + { + id = id + } + , null, HttpMethod.Get); + } + } +} diff --git a/BBWY.Client/APIServices/PackTaskService.cs b/BBWY.Client/APIServices/PackTaskService.cs index 1db4cb73..0706efb2 100644 --- a/BBWY.Client/APIServices/PackTaskService.cs +++ b/BBWY.Client/APIServices/PackTaskService.cs @@ -35,7 +35,7 @@ namespace BBWY.Client.APIServices ) { - return SendRequest(globalContext.QKApiHost, "api/PackTask/GetPackTaskList", new + return SendRequest(globalContext.QKApiHost, "api/PackTask/SearchNewPackTaskList", new { SkuId = skuId, @@ -59,7 +59,7 @@ namespace BBWY.Client.APIServices ) { - return SendRequest(globalContext.QKApiHost, "api/PackTask/GetPackTaskList", new + return SendRequest(globalContext.QKApiHost, "api/PackTask/SearchNewPackTaskList", new { IsWorry=isWorry, DepartmentName = departmentName, @@ -122,7 +122,8 @@ namespace BBWY.Client.APIServices { return SendRequest(globalContext.QKApiHost, "api/PackTask/DeletedPackTask", new { - TaskId = taskId + TaskId = taskId, + UserId = globalContext.User.Id.ToString() } , null, HttpMethod.Post); } @@ -190,40 +191,39 @@ namespace BBWY.Client.APIServices } - //public ApiResponse AddTaskPeople(long taskId, string packUserId, int FeesTypeId, - // int FeesItemId, decimal PackNumber) - //{ + public ApiResponse ShopTotal(string skuId = null, string taskId = null, + DateTime? startTime = null, + DateTime? endTime = null, + string ShopName = null, + string DepartmentName = null, + int pageIndex = 1, + int pageSize = 10 + ) + { + return SendRequest(globalContext.QKApiHost, "api/PackTask/ShopTotal", new + { + SkuId = skuId, + TaskId = taskId, + StartTime = startTime, + EndTime = endTime, + DepartmentName, + ShopName, + PageIndex = pageIndex, + PageSize = pageSize + + }, null, HttpMethod.Post); + } + public ApiResponse BatchSettle(params long[] taskIds) + { + return SendRequest(globalContext.QKApiHost, "api/PackTask/BatchSettle", new + { + taskIds= taskIds, + userId= globalContext.User.Id.ToString(), - // return SendRequest(globalContext.QKApiHost, "api/PackTask/AddTaskPeople", new - // { - // taskId = taskId, - // packUserId = packUserId, - // FeesTypeId = FeesTypeId, - // FeesItemId = FeesItemId, - // PackNumber = PackNumber - // } - // , null, HttpMethod.Post); - - //} - - //public ApiResponse AddTaskPeople(List packUsers) - //{ - // return SendRequest(globalContext.QKApiHost, "api/PackTask/AddTaskPeoples", packUsers - // , null, HttpMethod.Post); - //} - - - //public ApiResponse AddConsumables(long taskId, long[] consumableIds) - //{ - // return SendRequest(globalContext.QKApiHost, "api/PackTask/AddConsumables", new AddConsumableRequest - // { - // TaskId= taskId, - // ConsumableIds = consumableIds - // } - // , null, HttpMethod.Post); - //} + }, null, HttpMethod.Post); + } } public class AddConsumableRequest @@ -238,7 +238,10 @@ namespace BBWY.Client.APIServices public class UploadServiceRequest { - + /// + /// 折扣 + /// + public decimal Discount { get; set; } = 1; /// /// 任务id @@ -268,6 +271,9 @@ namespace BBWY.Client.APIServices /// 增值服务数量 /// public string IncreateServiceNos { get; set; } + + public string PackServiceIds { get; set; } + public string PackServiceNos { get; set; } /// /// 任务单件费用 /// @@ -277,12 +283,28 @@ namespace BBWY.Client.APIServices /// public decimal AllFees { get; set; } + /// + /// 增加数据 + /// + public List AddPackServices { get; set; } + /// + /// 删除的数据 + /// + public List DeletedPackServices { get; set; } - public PersonTaskModel[] PersonTaskModels { get; set; } + //public PersonTaskModel[] PersonTaskModels { get; set; } //public IncreateMemberModel[] IncreateMembers { get; set; } //public ProcessMemberModel[] ProcessMembers { get; set; } + + public decimal? IncreaseFees { get; set; } + + public decimal? PackFees { get; set; } + + public decimal? ConsumableFees { get; set; } + + public decimal? DiscountPrice { get; set; } } public class PersonTaskModel @@ -296,22 +318,40 @@ namespace BBWY.Client.APIServices /// 打包人 /// public string PackUserId { get; set; } + /// - /// 增值服务ids + /// 服务id /// - public string IncreateServiceIds { get; set; } + public long ServiceId { get; set; } /// - /// 增值服务数量 + /// 服务数量 /// - public string IncreateServiceNos { get; set; } + public int ServiceCount { get; set; } + ///// + ///// 增值服务ids + ///// + //public string IncreateServiceIds { get; set; } + ///// + ///// 增值服务数量 + ///// + //public string IncreateServiceNos { get; set; } + ///// + ///// 工序ids + ///// + //public string WorkProcessIds { get; set; } + ///// + ///// 工序数量 + ///// + //public string WorkProcessNos { get; set; } + /// - /// 工序ids + /// /// - public string WorkProcessIds { get; set; } + public bool IsDeleted { get; set; } /// - /// 工序数量 + /// 折扣 /// - public string WorkProcessNos { get; set; } + public decimal Discount { get; set; } = 1; /// /// 总费用 /// @@ -320,6 +360,8 @@ namespace BBWY.Client.APIServices /// 时间 /// public DateTime CreateTime { get; set; } = DateTime.Now; + + public ServiceType ServiceType { get; set; } } @@ -337,7 +379,8 @@ namespace BBWY.Client.APIServices public int ConsumableCount { get; set; } } - public class IncreateMemberModel + + public class PackServiceMemberModel { public decimal Price { get; set; } @@ -345,27 +388,44 @@ namespace BBWY.Client.APIServices /// /// 增值服务Id /// - public long IncreateId { get; set; } + public long PackServiceId { get; set; } /// /// 数量 /// - public int IncreateCount { get; set; } + public int PackServiceCount { get; set; } + public ServiceType ServiceType { get; set; } } - public class ProcessMemberModel - { - public decimal Price { get; set; } - public string UserId { get; set; } - /// - /// 工序服务Id - /// - public long ProcessId { get; set; } - /// - /// 工序服务数量 - /// - public int ProcessCount { get; set; } - } + //public class IncreateMemberModel + //{ + // public decimal Price { get; set; } + + // public string UserId { get; set; } + // /// + // /// 增值服务Id + // /// + // public long IncreateId { get; set; } + // /// + // /// 数量 + // /// + // public int IncreateCount { get; set; } + + //} + //public class ProcessMemberModel + //{ + // public decimal Price { get; set; } + // public string UserId { get; set; } + // /// + // /// 工序服务Id + // /// + // public long ProcessId { get; set; } + + // /// + // /// 工序服务数量 + // /// + // public int ProcessCount { get; set; } + //} diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs b/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs index c8c36ab3..56026840 100644 --- a/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs @@ -13,16 +13,28 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask private List serviceList = new List(); public List ServiceList { get => serviceList; set { Set(ref serviceList, value); } } - - public decimal AllFees { get=> allFees; set { Set(ref allFees, value); } } + public decimal disCount; + public decimal DisCount { get => disCount; set { Set(ref disCount, value); } } + public decimal AllFees { get=> allFees; set { Set(ref allFees, value); + + } } private decimal allFees; - public decimal SingleFees { get => singleFees; set { Set(ref singleFees, value); } } + private decimal discountAllFees; + public decimal DiscountAllFees { get => discountAllFees; set { Set(ref discountAllFees, value); } } + + public decimal SingleFees { get => singleFees; set { Set(ref singleFees, value); + + } } private decimal singleFees; - + public decimal DiscountSingleFees { get => discountSingleFees; set { Set(ref discountSingleFees, value); } } + private decimal discountSingleFees; + + public decimal TaskId { get => taskId; set { Set(ref taskId, value); } } private decimal taskId; + } public enum ServiceType diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/PackServiceRequest.cs b/BBWY.Client/Models/APIModel/Response/PackTask/PackServiceRequest.cs new file mode 100644 index 00000000..a8e9b659 --- /dev/null +++ b/BBWY.Client/Models/APIModel/Response/PackTask/PackServiceRequest.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace BBWY.Client.Models.APIModel.Response.PackTask +{ + public class PackServiceRequest + { + public long Id { get; set; } + public string Name { get; set; } + public decimal Price { get; set; } + + public ServiceType ServiceType { get; set; } + } +} diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/PackServiceResponse.cs b/BBWY.Client/Models/APIModel/Response/PackTask/PackServiceResponse.cs index 93bb247f..e63ad767 100644 --- a/BBWY.Client/Models/APIModel/Response/PackTask/PackServiceResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackTask/PackServiceResponse.cs @@ -7,6 +7,7 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask { public class PackServiceResponse { + public decimal Discount { get; set; } /// /// 增值服务数据 /// @@ -21,6 +22,14 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask public List ConsumableServiceList { get; set; } } + public class PackServiceDTO + { + public long Id { get; set; } + public string Name { get; set; } + public decimal Price { get; set; } + public ServiceType ServiceType { get; set; } + } + public class PackItemModelResponse { diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/ProductSkuResponse.cs b/BBWY.Client/Models/APIModel/Response/PackTask/ProductSkuResponse.cs index 7cdabea0..1ee3f5bf 100644 --- a/BBWY.Client/Models/APIModel/Response/PackTask/ProductSkuResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackTask/ProductSkuResponse.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Text; namespace BBWY.Client.Models.APIModel.Response.PackTask @@ -41,7 +42,7 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask public string ProductId { get; set; } - + public PackConfig PackConfig { get; set; } public BarCodeModel BarCodeModel { get; set; } @@ -57,7 +58,75 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask public CertificateModel SpuCertificate { get; set; } } + public class PackConfig + { + + + /// + /// skuid + /// + [Key] + public string SkuId { get; set; } + + /// + /// 货号品名(手写上传) + /// + public string BrandName { get; set; } + + + /// + /// 组合类型(单件=0,多件=1) + /// + public int PackType { get; set; } + + + /// + /// 基础包装(快递袋=0,纸箱=1,麻袋=2) + /// + public int BasicPack { get; set; } + + /// + /// 增量1() + /// + public string Increment1 { get; set; } + + /// + /// 条形码id + /// + public long? BarcodeId { get; set; } + + /// + /// 合格证 + /// + public long? CertificateId { get; set; } + + /// + /// 合格证位置(外部包装=0,产品包装=1) + /// + public int? CertificatePosition { get; set; } + + /// + /// sku配件名称 + /// + public string SkuGoodsTitle { get; set; } + + /// + /// 配件数 + /// + public int GoodsNumber { get; set; } + + + /// + /// 注意事项(对接备注) + /// + public string MarkMessage { get; set; } + /// + /// 到货情况(待收货=2,部分收货=1,已到货=0) + /// + public int Availability { get; set; } + + + } - } diff --git a/BBWY.Client/Models/Enums.cs b/BBWY.Client/Models/Enums.cs index 845c27cf..a0b9eee3 100644 --- a/BBWY.Client/Models/Enums.cs +++ b/BBWY.Client/Models/Enums.cs @@ -379,4 +379,9 @@ { 待付款 = 0, 待发货 = 1, 待收货 = 2, 待质检 = 3, 待打包 = 4, 待结算 = 5, 已完成 = 6, 已取消 = 7 } + public enum Settle + { + 未结算 = 0, + 已结清 = 1 + } } diff --git a/BBWY.Client/Models/PackTask/PackItemModel.cs b/BBWY.Client/Models/PackTask/PackItemModel.cs index 47683ef7..9e90573e 100644 --- a/BBWY.Client/Models/PackTask/PackItemModel.cs +++ b/BBWY.Client/Models/PackTask/PackItemModel.cs @@ -1,4 +1,5 @@ using BBWY.Client.APIServices; +using BBWY.Client.Models.APIModel.Response.PackTask; using GalaSoft.MvvmLight.Command; using System; using System.Collections.Generic; @@ -36,8 +37,8 @@ namespace BBWY.Client.Models.PackTask - private ObservableCollection increateServiceList; - public ObservableCollection IncreateServiceList + private ObservableCollection increateServiceList; + public ObservableCollection IncreateServiceList { get => increateServiceList; set { @@ -57,8 +58,11 @@ namespace BBWY.Client.Models.PackTask public ObservableCollection ConsumableList { get => consumableList; set { Set(ref consumableList, value); } } - private ObservableCollection packServiceList; - public ObservableCollection PackServiceList { get => packServiceList; set { Set(ref packServiceList, value); } } + /// + /// 工序服务 + /// + private ObservableCollection packServiceList; + public ObservableCollection PackServiceList { get => packServiceList; set { Set(ref packServiceList, value); } } /// /// 设置列表的 是否编辑属性 /// diff --git a/BBWY.Client/Models/PackTask/PackTaskModel.cs b/BBWY.Client/Models/PackTask/PackTaskModel.cs index 71acdd58..f5406aa9 100644 --- a/BBWY.Client/Models/PackTask/PackTaskModel.cs +++ b/BBWY.Client/Models/PackTask/PackTaskModel.cs @@ -113,6 +113,7 @@ namespace BBWY.Client.Models { FeesItemResponse = feesItem; PackUser = string.Join("\r\n", packUsers); + IsShowFees = feesItem.AllFees > 0 ? true : false; }); service.Show(); diff --git a/BBWY.Client/Models/PackTask/ShopTotal.cs b/BBWY.Client/Models/PackTask/ShopTotal.cs new file mode 100644 index 00000000..a680f351 --- /dev/null +++ b/BBWY.Client/Models/PackTask/ShopTotal.cs @@ -0,0 +1,81 @@ +using BBWY.Client.ViewModels; +using System; +using System.Collections.Generic; +using System.Text; + +namespace BBWY.Client.Models.PackTask +{ + public class ShopTotal :NotifyObject + { + private long id; + public long Id { get => id; set { Set(ref id, value); } } + + private bool taskChecked; + public bool TaskChecked { get => taskChecked; set { Set(ref taskChecked, value); } } + + + + public long TaskId { get; set; } + /// + /// 需求方创建日期 + /// + public DateTime CreateTime { get; set; } + /// + /// 是否结清 + /// + // + public Settle IsSettle { get; set; } + /// + /// 部门 + /// + public string DepartmentName { get; set; } + /// + /// 店铺 + /// + public string ShopName { get; set; } + /// + /// 对接人 + /// + public string AcceptUserName { get; set; } + /// + /// sku + /// + public string SkuName { get; set; } + /// + /// sku数量(任务数量) + /// + public int SkuCount { get; set; } + + public decimal IncreaseFees { get; set; } + + public decimal PackFees { get; set; } + + public decimal ConsumableFees { get; set; } + + public decimal Price { get; set; } + + public decimal Discount { get; set; } + + public decimal DiscountPrice { get; set; } + /// + /// 注意事项(对接备注) + /// + public string MarkMessage { get; set; } + + public override string ToString() + { + return $"{TaskId},{CreateTime.ToString("yyyy-MM-dd")},{IsSettle},{DepartmentName},{ShopName}" + + $",{AcceptUserName},{SkuName},{SkuCount},{IncreaseFees},{PackFees},{ConsumableFees},{Price},{Discount},{DiscountPrice},{MarkMessage}"; + } + } + + public class ShopTotalResponse + { + /// + /// + /// + public int TotalCount { get; set; } + + public ShopTotal[] ShopTotals { get; set; } + } +} diff --git a/BBWY.Client/Models/PackTask/WorkProcessModel.cs b/BBWY.Client/Models/PackTask/WorkProcessModel.cs index 88de19b9..d39989d0 100644 --- a/BBWY.Client/Models/PackTask/WorkProcessModel.cs +++ b/BBWY.Client/Models/PackTask/WorkProcessModel.cs @@ -1,7 +1,4 @@ -using Org.BouncyCastle.Asn1.Esf; -using System; -using System.Collections.Generic; -using System.Text; + namespace BBWY.Client.Models.PackTask { diff --git a/BBWY.Client/ViewModels/MainViewModel.cs b/BBWY.Client/ViewModels/MainViewModel.cs index aa957f9d..1cd0a7ce 100644 --- a/BBWY.Client/ViewModels/MainViewModel.cs +++ b/BBWY.Client/ViewModels/MainViewModel.cs @@ -130,7 +130,8 @@ namespace BBWY.Client.ViewModels ChildList = new List() { new MenuModel(){ Name="打包任务",Url="/Views/PackTask/WareHouseList.xaml" }, - new MenuModel(){ Name="耗材管理",Url="/Views/PackTask/Consumable.xaml" } + new MenuModel(){ Name="耗材管理",Url="/Views/PackTask/Consumable.xaml" }, + new MenuModel(){ Name="账单管理",Url="/Views/PackTask/PackTaskTotal.xaml" } } }); @@ -208,8 +209,8 @@ namespace BBWY.Client.ViewModels ChildList = new List() { new MenuModel(){ Name="打包任务",Url="/Views/PackTask/WareHouseList.xaml" }, - new MenuModel(){ Name="耗材管理",Url="/Views/PackTask/Consumable.xaml" } - + new MenuModel(){ Name="耗材管理",Url="/Views/PackTask/Consumable.xaml" }, + new MenuModel(){ Name="账单管理",Url="/Views/PackTask/PackTaskTotal.xaml" } } }); }); diff --git a/BBWY.Client/ViewModels/PackTask/CreatePackTaskViewModel.cs b/BBWY.Client/ViewModels/PackTask/CreatePackTaskViewModel.cs index 2816052f..28106afe 100644 --- a/BBWY.Client/ViewModels/PackTask/CreatePackTaskViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/CreatePackTaskViewModel.cs @@ -9,23 +9,15 @@ using BBWY.Common.Models; using BBWY.Common.Trigger; using GalaSoft.MvvmLight.Command; using GalaSoft.MvvmLight.Messaging; -using NPOI.Util; -using Org.BouncyCastle.Asn1.Crmf; -using Org.BouncyCastle.Asn1.Ocsp; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data; using System.Linq; -using System.Runtime.CompilerServices; -using System.Security.AccessControl; -using System.Text; using System.Threading.Tasks; using System.Windows; -using System.Windows.Controls; using System.Windows.Input; -using System.Windows.Media.TextFormatting; -using System.Windows.Navigation; + namespace BBWY.Client.ViewModels.PackTask { @@ -407,10 +399,10 @@ namespace BBWY.Client.ViewModels.PackTask public ICommand SetSpuCerCommand { get; set; } public ICommand SaveSpuCerCommand { get; set; } public ICommand InseartCerCommand { get; set; } - + string[] increates = new string[] { "气泡纸", "气泡袋", "POP袋", "折纸箱", "气泡纸封边", "彩盒", "剪胶", "剪彩带", "快递袋", "收纳盒", "纸箱子", "装纸箱", "封边", "胶带", "折彩盒" }; public void InitData(PackTaskModel model = null) { - string[] increates = new string[] { "气泡纸", "气泡袋", "POP袋", "折纸箱", "气泡纸封边", "彩盒", "剪胶", "剪彩带", "快递袋", "收纳盒", "纸箱子", "装纸箱", "封边", "胶带", "折彩盒" }; + IncreateList = new ObservableCollection(); SpuId = string.Empty; if (model == null) @@ -446,11 +438,8 @@ namespace BBWY.Client.ViewModels.PackTask return; } SaveTask = "保存"; - Logo = model.ItemList[0].Logo; SearchSkuId = model.SkuId; - - SkuId = model.SkuId; SkuCount = model.SkuCount; SkuName = model.ItemList[0].SkuName; @@ -483,10 +472,12 @@ namespace BBWY.Client.ViewModels.PackTask { isSelected = true; } - IncreateList.Add(new IncreateModel - { - IncreateName = item, - IsSelected = isSelected + App.Current.Dispatcher.Invoke(() => { + IncreateList.Add(new IncreateModel + { + IncreateName = item, + IsSelected = isSelected + }); }); } SearchSku(); @@ -510,7 +501,7 @@ namespace BBWY.Client.ViewModels.PackTask IsSetCertificate = true; //数据库获取增量耗材数据 - string[] increates = new string[] { "气泡纸", "气泡袋", "POP袋", "折纸箱", "气泡纸封边", "彩盒", "剪胶", "剪彩带", "快递袋", "收纳盒", "纸箱子", "装纸箱", "封边", "胶带", "折彩盒" }; + IncreateList = new ObservableCollection(); foreach (var item in increates) { @@ -979,6 +970,39 @@ namespace BBWY.Client.ViewModels.PackTask IsLoading = false; return; } + + if (productSku.Data.PackConfig!=null) + { + var config = productSku.Data.PackConfig; + SkuTitle = config.SkuGoodsTitle; + GoodsNumber = config.GoodsNumber; + PackType = (PackType)config.PackType; + BasicPack=(BasicPack)config.BasicPack; + Availability =(TaskState)config.Availability; + MarkMessage = config.MarkMessage; + CertificatePosition = config.CertificatePosition==null? CertificatePosition .无: (CertificatePosition)config.CertificatePosition.Value; + // Increment1 = config.Increment1; + string[] increateDatas = config.Increment1.Split(','); + + bool isSelected = false; + foreach (var item in increates) + { + isSelected = false; + if (increateDatas.Contains(item)) + { + isSelected = true; + } + App.Current.Dispatcher.Invoke(() => { + IncreateList.Add(new IncreateModel + { + IncreateName = item, + IsSelected = isSelected + }); + }); + } + + } + BrandName = productSku.Data.BrandName; diff --git a/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs b/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs index 7a3513cd..0a614643 100644 --- a/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs @@ -9,12 +9,14 @@ using BBWY.Client.Views.PackTask; using BBWY.Common.Models; using GalaSoft.MvvmLight.Command; using Microsoft.Extensions.Logging; +using Org.BouncyCastle.Asn1.Crmf; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Linq; using System.Reflection.Metadata.Ecma335; +using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; @@ -41,71 +43,76 @@ namespace BBWY.Client.ViewModels.PackTask readonly PackTaskService packTaskService; readonly ConsumableService consumableService; + readonly PackDetailService packDetailService; + private ObservableCollection increateList = new ObservableCollection(); public ObservableCollection IncreateList { get => increateList; set { Set(ref increateList, value); } } // - private ObservableCollection - packList = new ObservableCollection(); + private ObservableCollection + packList = new ObservableCollection(); public ObservableCollection PackList { get => packList; set { Set(ref packList, value); } } // private ObservableCollection consumableServiceList = new ObservableCollection(); public ObservableCollection ConsumableServiceList { get => consumableServiceList; set { Set(ref consumableServiceList, value); } } // + private string discount = "1"; + /// + /// 折扣 + /// + public string Discount { get => discount; set { Set(ref discount, value); } } // - public ObservableCollection IncreateServiceList { get; set; } = new ObservableCollection(); + public ObservableCollection IncreateServiceList { get; set; } = new ObservableCollection(); public ObservableCollection MemberList { get; set; } = new ObservableCollection(); public ObservableCollection ConsumableList { get; set; } = new ObservableCollection(); - public ObservableCollection PackServiceList { get; set; } = new ObservableCollection(); + public ObservableCollection PackServiceList { get; set; } = new ObservableCollection(); + private readonly PackServiceService packServiceService; - readonly WorkProcessService workProcessService; - readonly IncreateServiceService increateService; - public PackServiceViewModel(PackTaskService packTaskService, ConsumableService consumableService, WorkProcessService workProcessService, IncreateServiceService increateService)//, long taskId + /// + /// 加载原数据 + /// + public List LoadList = new List(); + + public PackServiceViewModel(PackTaskService packTaskService, ConsumableService consumableService, PackServiceService packServiceService, PackDetailService packDetailService)//, long taskId { //TaskId = taskId; this.consumableService = consumableService; this.packTaskService = packTaskService; - this.workProcessService = workProcessService; - this.increateService = increateService; + this.packServiceService = packServiceService; + this.packDetailService = packDetailService; - var increateRes = this.increateService.SearchAll(); - if (increateRes.Success) - { - if (increateRes.Data != null && increateRes.Data.Count() > 0) - { - foreach (var workProcess in increateRes.Data) - { - App.Current.Dispatcher.Invoke(() => - { - IncreateServiceList.Add(workProcess);//加载增值服务列表 - }); + var packServiceRes = this.packServiceService.SearchAll(); - } - } - } - var result = this.workProcessService.SearchAll(); - if (result.Success) + if (packServiceRes.Success) { - if (result.Data != null && result.Data.Count() > 0) + if (packServiceRes.Data != null && packServiceRes.Data.Count() > 0) { - foreach (var workProcess in result.Data) - { - App.Current.Dispatcher.Invoke(() => - { - PackServiceList.Add(workProcess);//加载工序服务列表 - }); + foreach (var packService in packServiceRes.Data) + { + if (packService.ServiceType == ServiceType.增值服务) + App.Current.Dispatcher.Invoke(() => + { + IncreateServiceList.Add(packService);//加载增值服务列表 + }); + if (packService.ServiceType == ServiceType.打包服务) + App.Current.Dispatcher.Invoke(() => + { + PackServiceList.Add(packService);//加载工序服务列表 + }); } } } - var res = this.packTaskService.GetPackMembers(); + + + var res = this.packTaskService.GetPackMembers();//成员表 if (res.Success) { foreach (var item in res.Data) @@ -155,24 +162,28 @@ namespace BBWY.Client.ViewModels.PackTask + + //加载数据 //LoadPackDatas(); } - + /// /// 加载任务数据 /// public void LoadPackDatas() { + LoadList = new List(); Task task = Task.Factory.StartNew(() => { - var res = this.packTaskService.GetTaskService(TaskId); + var res = this.packDetailService.GetTaskService(TaskId); if (res.Success) { if (res.Data.IncreateList != null) { IncreateList = new ObservableCollection(); + foreach (var item in res.Data.IncreateList) { App.Current.Dispatcher.Invoke(() => @@ -190,6 +201,7 @@ namespace BBWY.Client.ViewModels.PackTask }); }); } + } if (res.Data.PackList != null) { @@ -200,8 +212,8 @@ namespace BBWY.Client.ViewModels.PackTask { PackList.Add(new PackItemModel() { - PackServiceList= PackServiceList, - MemberList =MemberList, + PackServiceList = PackServiceList, + MemberList = MemberList, ItemCount = item.ItemCount, ItemName = item.ItemName, SelectId = item.SelectId, @@ -226,12 +238,15 @@ namespace BBWY.Client.ViewModels.PackTask ItemCount = item.ItemCount, ItemName = item.ItemName, SelectId = item.SelectId, - + }); }); } } + LoadList.AddRange(IncreateList); + LoadList.AddRange(PackList); + Discount =res.Data.Discount.ToString(); } }); @@ -270,60 +285,50 @@ namespace BBWY.Client.ViewModels.PackTask private int taskCount; public int TaskCount { get => taskCount; set { Set(ref taskCount, value); } } // - //private string selectBox; - ///// - ///// 箱子类型 - ///// - //public string SelectBox { get => selectBox; set { Set(ref selectBox, value); } } - - - //private int boxCount; - ///// - ///// 箱子数 - ///// - //public int BoxCount { get => boxCount; set { Set(ref boxCount, value); } } - //private int airPaperWidth; - ///// - ///// 气泡宽 - ///// - //public int AirPaperWidth { get => airPaperWidth; set { Set(ref airPaperWidth, value); } } - - //private decimal airPaperHeigth; - ///// - ///// 气泡长 - ///// - //public decimal AirPaperHeigth { get => airPaperHeigth; set { Set(ref airPaperHeigth, value); } } - - //private string selectMemberId; - //public string SelectMemberId { get => selectMemberId; set { Set(ref selectMemberId, value); } } - - //private decimal jiaoDai; - //public decimal JiaoDai { get => jiaoDai; set { Set(ref jiaoDai, value); } } - /// /// 上传数据 (判断是否超量) 统一上传 /// private void UpLoadPack(object obj) { + decimal upDisCount = 1; + if (string.IsNullOrEmpty(Discount)) upDisCount = 1; + + decimal.TryParse(Discount, out upDisCount); + if (upDisCount == 0) + { + new TipsWindow("折扣输入有误"); + return; + } UploadServiceRequest uploadService = new UploadServiceRequest(); + uploadService.Discount = upDisCount; + + List packServiceList = new List(); + + + uploadService.TaskId = TaskId; - List increateMembers = new List(); - List processMembers = new List(); + List uploadServices = new List(); + // List consumableTasks = new List(); + ///上传 删除的数据 //上传保存数据 //上传总数据 + List addDatas = new List(); + List delDatas = new List(); List PersonTaskModels = new List(); - List allIncreateMembers = new List();//所有数据数量不能超过总数据 - List allProcessMembers = new List(); + + List allPackServiceTasks = new List(); List allConsumableTasks = new List(); FeesItemResponse feesItem = new FeesItemResponse(); ; - + List PackServiceMembers = new List(); //获取打包人员 List packUsers = new List(); decimal singleFees = 0; decimal AllFees = 0; decimal price = 0; + + decimal IncreateFees = 0,PackFees=0,ConsumableFees=0,DiscountPrice=0; foreach (var item in IncreateList)//增值服务上传 { if (item.SelectId <= 0 || string.IsNullOrEmpty(item.SelectUserId) || item.ItemCount <= 0) @@ -342,40 +347,41 @@ namespace BBWY.Client.ViewModels.PackTask new TipsWindow($"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}").Show(); return; } - price = IncreateServiceList.First(i => i.Id == item.SelectId).ServicePrice; + price = IncreateServiceList.First(i => i.Id == item.SelectId).Price; singleFees += price; AllFees += item.ItemCount * price; + IncreateFees += item.ItemCount * price; - - if (allIncreateMembers.Select(a => a.IncreateId).Contains(item.SelectId))//相同服务 存在累加 + if (PackServiceMembers.Select(a => a.PackServiceId).Contains(item.SelectId))//相同服务 存在累加 { - var inMembers = increateMembers.SingleOrDefault(a => a.UserId == item.SelectUserId && a.IncreateId == item.SelectId); + var inMembers = PackServiceMembers.SingleOrDefault(a => a.UserId == item.SelectUserId && a.PackServiceId == item.SelectId); if (inMembers != null) - inMembers.IncreateCount += item.ItemCount; + inMembers.PackServiceCount += item.ItemCount; - var data = allIncreateMembers.SingleOrDefault(a => a.IncreateId == item.SelectId); + var data = PackServiceMembers.SingleOrDefault(a => a.PackServiceId == item.SelectId); var feeItem = feesItem.ServiceList.SingleOrDefault(f => f.ItemName == item.ItemName); - if (data != null) data.IncreateCount += item.ItemCount; + if (data != null) data.PackServiceCount += item.ItemCount; if (feeItem != null) feeItem.ItemCount += item.ItemCount; - if (data.IncreateCount > TaskCount)//累积超出任务量 + if (data.PackServiceCount > TaskCount)//累积超出任务量 { - new TipsWindow($"{item.ItemName}:{data.IncreateCount}超出任务量{TaskCount}").Show(); + new TipsWindow($"{item.ItemName}:{data.PackServiceCount}超出任务量{TaskCount}").Show(); return; } continue; } - increateMembers.Add(new IncreateMemberModel + PackServiceMembers.Add(new PackServiceMemberModel { UserId = item.SelectUserId, - IncreateCount = item.ItemCount, - IncreateId = item.SelectId, - Price = price + PackServiceCount = item.ItemCount, + PackServiceId = item.SelectId, + Price = price, + ServiceType = ServiceType.增值服务 }); @@ -386,12 +392,7 @@ namespace BBWY.Client.ViewModels.PackTask ItemName = item.ItemName, ItemPrice = price }); - allIncreateMembers.Add(new IncreateMemberModel - { - UserId = item.SelectUserId, - IncreateCount = item.ItemCount, - IncreateId = item.SelectId - }); + } foreach (var item in PackList)//打包服务 @@ -413,34 +414,35 @@ namespace BBWY.Client.ViewModels.PackTask } - price = PackServiceList.First(i => i.Id == item.SelectId).ProcessPrice; + price = PackServiceList.First(i => i.Id == item.SelectId).Price; singleFees += price; AllFees += item.ItemCount * price; - - if (allProcessMembers.Select(a => a.ProcessId).Contains(item.SelectId))//存在累加 + PackFees += item.ItemCount * price; + if (PackServiceMembers.Select(a => a.PackServiceId).Contains(item.SelectId))//存在累加 { - var inMembers = processMembers.SingleOrDefault(a => a.UserId == item.SelectUserId && a.ProcessId == item.SelectId); + var inMembers = PackServiceMembers.SingleOrDefault(a => a.UserId == item.SelectUserId && a.PackServiceId == item.SelectId); if (inMembers != null) - inMembers.ProcessCount += item.ItemCount; + inMembers.PackServiceCount += item.ItemCount; - var data = allProcessMembers.SingleOrDefault(a => a.ProcessId == item.SelectId); + var data = PackServiceMembers.SingleOrDefault(a => a.PackServiceId == item.SelectId); var feeItem = feesItem.ServiceList.SingleOrDefault(f => f.ItemName == item.ItemName); feeItem.ItemCount += item.ItemCount; - data.ProcessCount += item.ItemCount; - if (data.ProcessCount > TaskCount)//累积超出任务量 + data.PackServiceCount += item.ItemCount; + if (data.PackServiceCount > TaskCount)//累积超出任务量 { - new TipsWindow($"{item.ItemName}:{data.ProcessCount}超出任务量{TaskCount}").Show(); + new TipsWindow($"{item.ItemName}:{data.PackServiceCount}超出任务量{TaskCount}").Show(); return; } continue; } - processMembers.Add(new ProcessMemberModel + PackServiceMembers.Add(new PackServiceMemberModel { UserId = item.SelectUserId, - ProcessCount = item.ItemCount, - ProcessId = item.SelectId, - Price = price + PackServiceCount = item.ItemCount, + PackServiceId = item.SelectId, + Price = price, + ServiceType = ServiceType.打包服务 }); feesItem.ServiceList.Add(new ServiceItemResponse { @@ -449,12 +451,7 @@ namespace BBWY.Client.ViewModels.PackTask ItemName = item.ItemName, ItemPrice = price }); - allProcessMembers.Add(new ProcessMemberModel - { - UserId = item.SelectUserId, - ProcessCount = item.ItemCount, - ProcessId = item.SelectId - }); + } @@ -474,6 +471,7 @@ namespace BBWY.Client.ViewModels.PackTask price = ConsumableList.First(i => i.Id == item.SelectId).Price.Value; singleFees += price; AllFees += item.ItemCount * price; + ConsumableFees += item.ItemCount * price; if (allConsumableTasks.Select(a => a.ConsumableId).Contains(item.SelectId))//存在累加 { var data = allConsumableTasks.SingleOrDefault(a => a.ConsumableId == item.SelectId); @@ -502,81 +500,54 @@ namespace BBWY.Client.ViewModels.PackTask } uploadService.ConsumableIds = string.Join(",", allConsumableTasks.Select(a => a.ConsumableId)); uploadService.ConsumableNos = string.Join(",", allConsumableTasks.Select(a => a.ConsumableCount)); - uploadService.WorkProcessIds = string.Join(",", allProcessMembers.Select(a => a.ProcessId)); - uploadService.WorkProcessNos = string.Join(",", allProcessMembers.Select(a => a.ProcessCount)); - uploadService.IncreateServiceIds = string.Join(",", allIncreateMembers.Select(a => a.IncreateId)); - uploadService.IncreateServiceNos = string.Join(",", allIncreateMembers.Select(a => a.IncreateCount)); - - //List increateMembers = new List(); - //List processMembers = new List(); - foreach (var item in increateMembers) - { - var allFees = item.Price * item.IncreateCount; - var person = PersonTaskModels.SingleOrDefault(p => p.PackUserId == item.UserId); - if (person != null) - { - person.AllFees += allFees; - person.IncreateServiceIds += $",{item.IncreateId}"; - person.IncreateServiceNos += $",{item.IncreateCount}"; - continue; - } - - var inMember = new PersonTaskModel(); - inMember.IncreateServiceIds = item.IncreateId.ToString(); - inMember.IncreateServiceNos = item.IncreateCount.ToString(); - inMember.AllFees += allFees; - inMember.TaskId = TaskId; inMember.PackUserId = item.UserId; + uploadService.WorkProcessIds = string.Join(",", PackServiceMembers.Where(p => p.ServiceType == ServiceType.打包服务).Select(a => a.PackServiceId)); + uploadService.WorkProcessNos = string.Join(",", PackServiceMembers.Where(p => p.ServiceType == ServiceType.打包服务).Select(a => a.PackServiceCount)); + uploadService.IncreateServiceIds = string.Join(",", PackServiceMembers.Where(p => p.ServiceType == ServiceType.增值服务).Select(a => a.PackServiceId)); + uploadService.IncreateServiceNos = string.Join(",", PackServiceMembers.Where(p => p.ServiceType == ServiceType.增值服务).Select(a => a.PackServiceCount)); - PersonTaskModels.Add(inMember); + uploadService.PackServiceIds = string.Join(",", PackServiceMembers.Select(a => a.PackServiceId)); + uploadService.PackServiceNos = string.Join(",", PackServiceMembers.Select(a => a.PackServiceCount)); + var orgIds = LoadList.Select(p => p.SelectId).ToList(); + var nowIds = PackServiceMembers.Select(p => p.PackServiceId).ToList(); + //var add = nowIds.Except(orgIds); + var del = orgIds.Except(nowIds).ToList(); - } - foreach (var item in processMembers) + foreach (var PackServiceMember in PackServiceMembers) { - var allFees = item.Price * item.ProcessCount; - var person = PersonTaskModels.SingleOrDefault(p => p.PackUserId == item.UserId); - if (person != null) + addDatas.Add(new PersonTaskModel { - person.AllFees += allFees; - if (string.IsNullOrEmpty(person.WorkProcessIds)) - { - person.WorkProcessIds += $"{item.ProcessId}"; - person.WorkProcessNos += $"{item.ProcessCount}"; - continue; - } - - - person.WorkProcessIds += $",{item.ProcessId}"; - person.WorkProcessNos += $",{item.ProcessCount}"; - - continue; - } - - var inMember = new PersonTaskModel(); - inMember.WorkProcessNos = item.ProcessCount.ToString(); - inMember.WorkProcessIds = item.ProcessId.ToString(); - inMember.AllFees += allFees; - inMember.TaskId = TaskId; inMember.PackUserId = item.UserId; - PersonTaskModels.Add(inMember); - - + TaskId = taskId, + CreateTime = DateTime.Now, + IsDeleted = false, + ServiceCount = PackServiceMember.PackServiceCount, + PackUserId = PackServiceMember.UserId, + ServiceId = PackServiceMember.PackServiceId, + ServiceType = PackServiceMember.ServiceType + }); } - uploadService.PersonTaskModels = PersonTaskModels.ToArray(); + uploadService.AddPackServices = addDatas; + uploadService.DeletedPackServices = del; - uploadService.AllFees = AllFees; + uploadService.AllFees = Convert.ToDecimal((AllFees).ToString("0.00")); ; uploadService.SingleFees = singleFees; - var res = packTaskService.UploadService(uploadService); + uploadService.IncreaseFees = Convert.ToDecimal((IncreateFees).ToString("0.00")); + uploadService.PackFees = Convert.ToDecimal((PackFees).ToString("0.00")); + uploadService.ConsumableFees = Convert.ToDecimal((ConsumableFees).ToString("0.00")); + uploadService. DiscountPrice = Convert.ToDecimal( (AllFees * upDisCount).ToString("0.00")); + var res = packDetailService.UploadService(uploadService); if (res != null && res.Success) { - // new TipsWindow("上传成功!").Show(); + // new TipsWindow("上传成功!").Show(); var win = obj as System.Windows.Window; feesItem.AllFees = AllFees; feesItem.SingleFees = singleFees; feesItem.TaskId = TaskId; - - - SetAllFees(feesItem, packUsers); - + feesItem.DisCount = upDisCount; + feesItem.DiscountAllFees = upDisCount * AllFees; + feesItem.DiscountSingleFees = singleFees * upDisCount; + if (SetAllFees != null) + SetAllFees(feesItem, packUsers); win.Close(); } @@ -611,7 +582,7 @@ namespace BBWY.Client.ViewModels.PackTask ConsumableServiceList.Add(new PackItemModel() { ItemCount = TaskCount, - ConsumableList = ConsumableList + ConsumableList = ConsumableList }); } } diff --git a/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs b/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs new file mode 100644 index 00000000..bd8d3054 --- /dev/null +++ b/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs @@ -0,0 +1,246 @@ +using AutoMapper.Internal; +using BBWY.Client.APIServices; +using BBWY.Client.Helpers; +using BBWY.Client.Models; +using BBWY.Client.Models.PackTask; +using BBWY.Client.Views.Order; +using BBWY.Client.Views.PackTask; +using BBWY.Common.Models; +using BBWY.Controls; +using GalaSoft.MvvmLight.Command; +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; + +namespace BBWY.Client.ViewModels.PackTask +{ + public class PackTaskTotalViewModel : BaseVM, IDenpendency + { + private readonly PackTaskService packTaskService; + + private bool isLoading; + private DateTime startDate; + private DateTime endDate; + private int pageIndex = 1; + private int pageSize = 15; + private int orderCount; + private string searchTaskId; + private string searchDepartment; + private string searchShopName; + private string searchSkuId; + private ObservableCollection packTaskTotalList; + private bool isBatchChecked; + + public bool IsBatchChecked { get => isBatchChecked; set { Set(ref isBatchChecked, value); } } + public ObservableCollection PackTaskTotalList { get => packTaskTotalList; set { Set(ref packTaskTotalList, value); } } + public string SearchSkuId { get => searchSkuId; set { Set(ref searchSkuId, value); } } + public string SearchShopName { get => searchShopName; set { Set(ref searchShopName, value); } } + public string SearchDepartment { get => searchDepartment; set { Set(ref searchDepartment, value); } } + public string SearchTaskId { get => searchTaskId; set { Set(ref searchTaskId, value); } } + + public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } } + + + public DateTime StartDate { get => startDate; set { Set(ref startDate, value); } } + + public DateTime EndDate { get => endDate; set { Set(ref endDate, value); } } + + public int PageIndex { get => pageIndex; set { Set(ref pageIndex, value); } } + + public int PageSize { get => pageSize; set { Set(ref pageSize, value); } } + + public int OrderCount { get => orderCount; set { Set(ref orderCount, value); } } + + + public ICommand SetSearchDateCommand { get; set; } + + public ICommand SearchTaskTotalCommand { get; set; } + + public ICommand ExportCommand { get; set; } + + public ICommand BatchSettleCommand { get; set; } + + public ICommand SettleCommand { get; set; } + + public ICommand OrderPageIndexChangedCommand { get; set; } + + public ICommand BatchCheckedCommand { get; set; } + + public ICommand CopyTextCommand { get; set; } + + public PackTaskTotalViewModel(PackTaskService packTaskService) + { + this.packTaskService = packTaskService; + EndDate = DateTime.Now; + StartDate = DateTime.Now.Date; + + SearchTaskTotalCommand = new RelayCommand(SearchTaskTotal); + + + SetSearchDateCommand = new RelayCommand(d => + { + EndDate = d == 1 ? DateTime.Now.Date.AddDays(-1) : DateTime.Now; + StartDate = DateTime.Now.Date.AddDays(d * -1); + PageIndex = 1; + Task.Factory.StartNew(() => LoadOrder(1)); //点击日期查询订单 + }); + + OrderPageIndexChangedCommand = new RelayCommand(p => + { + LoadOrder(p.PageIndex); + }); + + BatchCheckedCommand = new RelayCommand(BatchCheck); + CopyTextCommand = new RelayCommand((obj) => + { + try + { + Clipboard.SetText(obj.ToString()); + } + catch (Exception ex) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine(ex); + Console.ResetColor(); + } + }); + BatchSettleCommand = new RelayCommand(BatchSettle); + SettleCommand = new RelayCommand(SettleTask); + ExportCommand = new RelayCommand(Export); + + SearchTaskTotal(); + } + + private void Export() + { + + SaveFileDialog save = new SaveFileDialog(); + save.Filter = "csv files(*.csv)|*.csv"; + var result = save.ShowDialog(); + if (result == null || !result.Value) + { + return; + } + + string fileName = save.FileName; + + Task.Factory.StartNew(() => + { + IsLoading = true; + var res = packTaskService.ShopTotal(SearchSkuId, SearchTaskId, StartDate, EndDate, SearchShopName, + SearchDepartment, 0, 0);//获取全部数据 + if (res.Success) + { + string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注"; + var excelList = res.Data.ShopTotals.Select(x => x.ToString()).ToList(); + excelList.Insert(0, title); + System.IO.File.WriteAllLines(fileName, excelList, Encoding.UTF8); + } + IsLoading = false; + + }); + + } + + private void BatchCheck() + { + + if (PackTaskTotalList.Count > 0) + App.Current.Dispatcher.Invoke(() => + { + PackTaskTotalList.ForAll(s => + { + + s.TaskChecked = IsBatchChecked; + }); + + }); + + } + + private void SettleTask(long obj) + { + MessageBoxResult result = MessageBox.Show($"是否结清任务:{obj} ?", "提示", + MessageBoxButton.YesNo, + MessageBoxImage.Warning); + if (result != MessageBoxResult.Yes) return; + SettlePackTask(obj); + } + + private void BatchSettle() + { + + + var ids = PackTaskTotalList.Where(p => p.TaskChecked).Select(p => p.TaskId).ToArray(); + if (ids.Length <= 0) + return; + MessageBoxResult result = MessageBox.Show("是否批量结清?", "提示", + MessageBoxButton.YesNo, + MessageBoxImage.Warning); + if (result != MessageBoxResult.Yes) return; + SettlePackTask(ids); + } + private void SettlePackTask(params long[] ids) + { + Task.Factory.StartNew(() => + { + IsLoading = true; + var res = packTaskService.BatchSettle(ids); + if (res.Success) + { + SearchTaskTotal(); + } + IsLoading = false; + }); + + } + + private void SearchTaskTotal() + { + if (IsBatchChecked) + { + BatchCheck(); + } + PackTaskTotalList = new ObservableCollection(); + Task.Factory.StartNew(() => + { + IsLoading = true; + var res = packTaskService.ShopTotal(SearchSkuId, SearchTaskId, StartDate, EndDate, SearchShopName, + SearchDepartment, PageIndex, PageSize); + if (res != null && res.Success) + { + OrderCount = res.Data.TotalCount; + foreach (var shopTotal in res.Data.ShopTotals) + { + App.Current.Dispatcher.Invoke(() => + { + PackTaskTotalList.Add(shopTotal); + }); + } + + } + + IsLoading = false; + }); + + + } + + private void LoadOrder(int pageIndex) + { + SearchTask(pageIndex); + } + + private void SearchTask(int pageIndex) + { + PageIndex = pageIndex; + SearchTaskTotal(); + } + } +} diff --git a/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs b/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs index 6cc36e2d..95e90778 100644 --- a/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs @@ -120,7 +120,7 @@ namespace BBWY.Client.ViewModels.PackTask /// public ObservableCollection PackTaskList { get => packTaskList; set { Set(ref packTaskList, value); } } - + #endregion @@ -340,6 +340,9 @@ namespace BBWY.Client.ViewModels.PackTask data.FeesItemResponse = item.FeesItemResponse; data.FeesMoney = item.FeesItemResponse.SingleFees; data.IsShowFees = data.FeesMoney > 0 ? true : false; + data.FeesItemResponse.DiscountSingleFees = item.FeesItemResponse.SingleFees *item.FeesItemResponse.disCount; + data.FeesItemResponse.DiscountAllFees = item.FeesItemResponse.AllFees * item.FeesItemResponse.disCount; + } else { @@ -397,14 +400,14 @@ namespace BBWY.Client.ViewModels.PackTask { ViewModelLocator viewModel = new ViewModelLocator(); var createViewModel = viewModel.CreateTaskView; - if (createViewModel.ReflashWindow==null) + if (createViewModel.ReflashWindow == null) { createViewModel.ReflashWindow = ReflashTask; } - - - - + + + + CreatePackTask create = new CreatePackTask(); create.SendData(); diff --git a/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs b/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs index f4b4e26b..3b87a1b8 100644 --- a/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs @@ -327,6 +327,8 @@ namespace BBWY.Client.ViewModels.PackTask data.FeesItemResponse = item.FeesItemResponse; data.FeesMoney = item.FeesItemResponse.SingleFees; + data.FeesItemResponse.DiscountAllFees = item.FeesItemResponse.AllFees * + item.FeesItemResponse.disCount; data.IsShowFees = data.FeesMoney > 0 ? true : false; } diff --git a/BBWY.Client/ViewModels/ViewModelLocator.cs b/BBWY.Client/ViewModels/ViewModelLocator.cs index 822de160..5aad40e1 100644 --- a/BBWY.Client/ViewModels/ViewModelLocator.cs +++ b/BBWY.Client/ViewModels/ViewModelLocator.cs @@ -86,6 +86,17 @@ namespace BBWY.Client.ViewModels } } + public PackTaskTotalViewModel PackTaskTotal + { + get + { + using (var s = sp.CreateScope()) + { + return s.ServiceProvider.GetRequiredService(); + } + } + } + public ServiceOrderViewModel ServiceOrderList { get diff --git a/BBWY.Client/Views/MainWindow.xaml b/BBWY.Client/Views/MainWindow.xaml index b2849afe..c37d1d7e 100644 --- a/BBWY.Client/Views/MainWindow.xaml +++ b/BBWY.Client/Views/MainWindow.xaml @@ -26,7 +26,7 @@ - + diff --git a/BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs b/BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs index 395094e8..bdf2db2d 100644 --- a/BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs +++ b/BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs @@ -126,17 +126,23 @@ namespace BBWY.Client.Views.PackTask + + - + [:Header:] - + + + + + [:ListData:] "; @@ -173,7 +179,7 @@ namespace BBWY.Client.Views.PackTask private void LoadData(bool isPrice) { - + isPrice = false; if (FeesItem == null || FeesItem.ServiceList.Count <= 0) { return; @@ -198,7 +204,7 @@ namespace BBWY.Client.Views.PackTask all.AddRange(consumableList); - var columnCount = 2 + all.Count; + var columnCount = 2 + all.Count + 2; StringBuilder columns = new StringBuilder(); for (int i = 0; i < columnCount; i++) { @@ -241,30 +247,45 @@ namespace BBWY.Client.Views.PackTask { header.AppendLine(consumableService); } + decimal allFees = 0; + decimal discount = 0; + decimal discountFees = 0; + discount = FeesItem.disCount; + if (isPrice) + { + allFees = FeesItem.SingleFees; + } + else + { + allFees = FeesItem.AllFees; + } + discountFees = allFees * discount; + string discountStr = "原价"; - + if (discount > 1) + discountStr = $"{discount.ToString("0.0")}倍"; + if (discount < 1) + discountStr = $"{(discount * 10).ToString("0.0")}折"; var newGrid = xaml.Replace("[:Header:]", header.ToString()) .Replace("[:Columns:]", columns.ToString()) .Replace("[:ColumnCount:]", $"{columnCount}") - .Replace("[:ColumnCount-2:]", $"{columnCount - 2}") + .Replace("[:ColumnCount-2:]", $"{columnCount - 4}") .Replace("[:1+IncreateCount:]", $"{increateCount + 1}") .Replace("[:1+IncreateCount+ProcessCount:]", $"{1 + increateCount + processCount}") .Replace("[:1+IncreateCount+ProcessCount:+ConsumableCount]", $"{1 + increateCount + processCount + consumableCount}") + .Replace("[:2+IncreateCount+ProcessCount:+ConsumableCount]", $"{2 + increateCount + processCount + consumableCount}") + .Replace("[:3+IncreateCount+ProcessCount:+ConsumableCount]", $"{3 + increateCount + processCount + consumableCount}") .Replace("[:IncreateCount:]", $"{increateCount}") .Replace("[:ProcessCount:]", $"{processCount}") .Replace("[:ConsumableCount:]", $"{consumableCount}") .Replace("[:TaskId:]", $"{FeesItem.TaskId}") .Replace("[:ListData:]", serviceData.ToString()) - ; + .Replace("[:AllFees:]", $"{allFees}") + .Replace("[:Discount:]", discountStr) + .Replace("[:DiscountFees:]", $"{discountFees.ToString(" 0.00")}"); + + - if (isPrice) - { - newGrid = newGrid.Replace("[:AllFees:]", $"{FeesItem.SingleFees}"); - } - else - { - newGrid = newGrid.Replace("[:AllFees:]", $"{FeesItem.AllFees}"); - } var grid = XamlReader.Parse(newGrid) as Grid; App.Current.Dispatcher.Invoke(() => diff --git a/BBWY.Client/Views/PackTask/PackTaskTotal.xaml b/BBWY.Client/Views/PackTask/PackTaskTotal.xaml new file mode 100644 index 00000000..f42e6ae6 --- /dev/null +++ b/BBWY.Client/Views/PackTask/PackTaskTotal.xaml @@ -0,0 +1,329 @@ + + + + 0 + 1 + 2 + 6 + 14 + 29 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +