using AutoMapper ;
using AutoMapper.Internal ;
using BBWY.Client.APIServices ;
using BBWY.Client.Helpers ;
using BBWY.Client.Models ;
using BBWY.Client.Models.APIModel.Request ;
using BBWY.Client.Models.APIModel.Response.PackTask ;
using BBWY.Client.Models.PackTask ;
using BBWY.Client.Views.PackTask ;
using BBWY.Common.Models ;
using GalaSoft.MvvmLight.Command ;
using HandyControl.Controls ;
using Microsoft.Extensions.Logging ;
using NPOI.Util ;
using Org.BouncyCastle.Asn1.Crmf ;
using System ;
using System.Collections.Generic ;
using System.Collections.ObjectModel ;
using System.Diagnostics ;
using System.Drawing.Printing ;
using System.IO ;
using System.Linq ;
using System.Reflection ;
using System.Reflection.Metadata.Ecma335 ;
using System.Runtime.CompilerServices ;
using System.Text ;
using System.Threading.Tasks ;
using System.Windows.Controls ;
using System.Windows.Controls.Primitives ;
using System.Windows.Input ;
using System.Windows.Media.Imaging ;
namespace BBWY.Client.ViewModels.PackTask
{
public class PackServiceViewModel : BaseVM , IDenpendency
{
private string packUserName ;
/// <summary>
/// 打包人
/// </summary>
public string PackUserName { get = > packUserName ; set { Set ( ref packUserName , value ) ; } }
private int incrementPartTaskCount ;
/// <summary>
/// 配件任务数量
/// </summary>
public int IncrementPartTaskCount { get = > incrementPartTaskCount ; set { Set ( ref incrementPartTaskCount , value ) ; } }
//public ObservableCollection<string> incrementPartCountList = new ObservableCollection<string>() {
//"0","1","2","3","4件以上"
//};
//public ObservableCollection<string> IncrementPartCountList { get => incrementPartCountList; set { Set(ref incrementPartCountList, value); } }
private int incrementPartCount ;
/// <summary>
/// 配件数量
/// </summary>
public int IncrementPartCount { get = > incrementPartCount ; set { Set ( ref incrementPartCount , value ) ; } }
private string directionalFees ;
/// <summary>
/// 定向费用
/// </summary>
public string DirectionalFees { get = > directionalFees ; set { Set ( ref directionalFees , value ) ; } }
private BitmapImage barcodeImage ;
/// <summary>
/// 任务Id条形码
/// </summary>
public BitmapImage BarcodeImage { get = > barcodeImage ; set { Set ( ref barcodeImage , value ) ; } }
private BitmapImage taskImage ;
/// <summary>
/// 任务Id条形码
/// </summary>
public BitmapImage TaskImage { get = > taskImage ; set { Set ( ref taskImage , value ) ; } }
private string printName ;
public string PrintName { get = > printName ; set { Set ( ref printName , value ) ; } }
private ObservableCollection < string > printList ;
/// <summary>
/// 打印机列表
/// </summary>
public ObservableCollection < string > PrintList { get = > printList ; set { Set ( ref printList , value ) ; } }
private ObservableCollection < PackTaskModel > packTaskList ;
/// <summary>
/// 动态数据表
/// </summary>
public ObservableCollection < PackTaskModel > PackTaskList { get = > packTaskList ; set { Set ( ref packTaskList , value ) ; } }
private PackTaskModel packTaskModel ;
public PackTaskModel PackTaskModel { get = > packTaskModel ; set { Set ( ref packTaskModel , value ) ; } } //
public ICommand AddPackServiceCommand { get ; set ; }
public ICommand AddBasicPackServiceCommand { get ; set ; }
public ICommand AddIncreateServiceCommand { get ; set ; }
public ICommand AddConsumableCommand { get ; set ; }
public ICommand UpLoadPackCommand { get ; set ; }
public ICommand SetAllCountCommand { get ; set ; }
public ICommand PrintCommand { get ; set ; }
readonly PackTaskService packTaskService ;
readonly ConsumableService consumableService ;
readonly PackDetailService packDetailService ;
readonly BatchPurchaseService batchPurchaseService ;
private ObservableCollection < PackItemModel > increateList = new ObservableCollection < PackItemModel > ( ) ;
public ObservableCollection < PackItemModel > IncreateList { get = > increateList ; set { Set ( ref increateList , value ) ; } } //
//private ObservableCollection<PackItemModel>
// packList = new ObservableCollection<PackItemModel>();
//public ObservableCollection<PackItemModel> PackList { get => packList; set { Set(ref packList, value); } } //
private ObservableCollection < PackItemModel >
consumableServiceList = new ObservableCollection < PackItemModel > ( ) ;
public ObservableCollection < PackItemModel > ConsumableServiceList { get = > consumableServiceList ; set { Set ( ref consumableServiceList , value ) ; } } //
private ObservableCollection < PackItemModel > basicPackProcessList = new ObservableCollection < PackItemModel > ( ) ;
private ObservableCollection < PackItemModel > incrementProcessList = new ObservableCollection < PackItemModel > ( ) ;
/// <summary>
///增量工序
/// </summary>
public ObservableCollection < PackItemModel > IncrementProcessList { get = > incrementProcessList ; set { Set ( ref incrementProcessList , value ) ; } } //
/// <summary>
/// 基础包装工序
/// </summary>
public ObservableCollection < PackItemModel > BasicPackProcessList { get = > basicPackProcessList ; set { Set ( ref basicPackProcessList , value ) ; } }
private string discount = "1" ;
/// <summary>
/// 折扣
/// </summary>
public string Discount { get = > discount ; set { Set ( ref discount , value ) ; } } //
public ObservableCollection < PackServiceDTO > IncreateServiceList { get ; set ; } = new ObservableCollection < PackServiceDTO > ( ) ;
public ObservableCollection < PackUser > MemberList { get ; set ; } = new ObservableCollection < PackUser > ( ) ;
public ObservableCollection < ConsumableModel > ConsumableList { get ; set ; } = new ObservableCollection < ConsumableModel > ( ) ;
public ObservableCollection < PackServiceDTO > PackServiceList { get ; set ; } = new ObservableCollection < PackServiceDTO > ( ) ;
/// <summary>
/// 基础包装服务项目列表
/// </summary>
public ObservableCollection < PackServiceDTO > BasicPackServiceList { get ; set ; } = new ObservableCollection < PackServiceDTO > ( ) ;
private readonly PackServiceService packServiceService ;
/// <summary>
/// 加载原数据
/// </summary>
public List < PackItemModel > LoadList = new List < PackItemModel > ( ) ;
public void InitPrintList ( )
{
TaskImage = MyPrintHelper . GetBarcodeImage ( TaskId . ToString ( ) , 3 0 0 , 6 0 ) ;
BarcodeImage = MyPrintHelper . GetBarcodeImage ( SkuId , 3 0 0 , 6 0 ) ;
PrintList = new ObservableCollection < string > ( ) ;
var printingNames = PrinterSettings . InstalledPrinters ; //获取本机的打印机数据
int index = - 1 ;
int selectIndex = 0 ;
foreach ( string name in printingNames )
{
if ( name = = "Microsoft XPS Document Writer" | | name = = "Microsoft Print to PDF" | | name = = "Fax" )
{
continue ;
}
index + + ;
if ( name . Contains ( "Deli" ) )
{
selectIndex = index ;
}
PrintList . Add ( name ) ;
}
try
{
var applicationPath = System . IO . Path . GetDirectoryName ( Assembly . GetExecutingAssembly ( ) . Location ) ;
string printNames = Path . Combine ( applicationPath , "printName.init" ) ;
if ( File . Exists ( printNames ) )
{
PrintName = File . ReadAllText ( printNames ) ;
}
else
{
if ( PrintList . Count > 0 )
{
PrintName = PrintList [ 0 ] . ToString ( ) ;
}
}
}
catch ( Exception )
{
}
}
public PackServiceViewModel ( PackTaskService packTaskService , ConsumableService consumableService , PackServiceService packServiceService , PackDetailService packDetailService , BatchPurchaseService batchPurchaseService ) //, long taskId
{
//TaskId = taskId;
this . consumableService = consumableService ;
this . packTaskService = packTaskService ;
this . packServiceService = packServiceService ;
this . packDetailService = packDetailService ;
this . batchPurchaseService = batchPurchaseService ;
AddIncreateServiceCommand = new RelayCommand ( AddIncreateService ) ;
AddPackServiceCommand = new RelayCommand ( AddPackService ) ;
AddBasicPackServiceCommand = new RelayCommand ( AddBasicPackService ) ;
AddConsumableCommand = new RelayCommand ( AddConsumable ) ;
UpLoadPackCommand = new RelayCommand < object > ( UpLoadPack ) ;
SetAllCountCommand = new RelayCommand < object > ( SetAllCount ) ;
//加载数据
//LoadPackDatas();
}
/// <summary>
/// 加载任务数据
/// </summary>
public void LoadPackDatas ( )
{
IncrementPartTaskCount = TaskCount ;
try
{
InitPrintList ( ) ;
}
catch ( Exception )
{
}
LoadList = new List < PackItemModel > ( ) ;
Task task = Task . Factory . StartNew ( ( ) = >
{
var resMember = this . packTaskService . GetPackMembers ( ) ; //成员表
if ( resMember . Success )
{
MemberList = new ObservableCollection < PackUser > ( ) ;
foreach ( var item in resMember . Data )
{
App . Current . Dispatcher . Invoke ( ( ) = >
{
MemberList . Add ( item ) ;
} ) ;
}
}
var res = this . packDetailService . GetPackTaskDetail ( TaskId ) ;
if ( res . Success )
{
IncrementPartCount = res . Data . IncrementPartCount = = null ? 0 : res . Data . IncrementPartCount . Value ;
if ( res . Data ! = null & & res . Data . IncrementItemList . Count ( ) > 0 )
{
IncreateServiceList = new ObservableCollection < PackServiceDTO > ( ) ;
foreach ( var packService in res . Data . IncrementItemList )
{
if ( packService . ServiceType = = ServiceType . 增 值 服 务 )
App . Current . Dispatcher . Invoke ( ( ) = >
{
IncreateServiceList . Add ( packService ) ; //加载增值服务列表
} ) ;
}
}
if ( res . Data ! = null & & res . Data . ProcessItemList . Count ( ) > 0 )
{
PackServiceList = new ObservableCollection < PackServiceDTO > ( ) ;
BasicPackServiceList = new ObservableCollection < PackServiceDTO > ( ) ;
foreach ( var packService in res . Data . ProcessItemList )
{
if ( packService . ServiceType = = ServiceType . 打 包 服 务 )
App . Current . Dispatcher . Invoke ( ( ) = >
{
PackServiceList . Add ( packService ) ; //加载工序服务列表
BasicPackServiceList . Add ( packService ) ;
} ) ;
}
}
if ( res . Data ! = null & & res . Data . ConsumableItemList . Count ( ) > 0 )
{
ConsumableList = new ObservableCollection < ConsumableModel > ( ) ;
foreach ( var item in res . Data . ConsumableItemList )
{
App . Current . Dispatcher . Invoke ( ( ) = >
{
ConsumableList . Add ( new ConsumableModel ( consumableService )
{
Width = item . Width ,
Weigth = item . Weigth ,
Remark = item . Remark ,
Price = item . Price ,
Name = item . Name ,
Length = item . Length ,
Heigth = item . Heigth ,
Id = item . Id
} ) ;
} ) ;
}
}
if ( res . Data . IncreateList ! = null )
{
IncreateList = new ObservableCollection < PackItemModel > ( ) ;
foreach ( var item in res . Data . IncreateList )
{
App . Current . Dispatcher . Invoke ( ( ) = >
{
IncreateList . Add ( new PackItemModel ( )
{
MemberList = MemberList ,
IncreateServiceList = IncreateServiceList ,
ItemCount = item . ItemCount ,
ItemName = item . ItemName ,
SelectId = item . SelectId ,
SelectUserId = item . SelectUserId ,
MemberName = item . MemberName
} ) ;
} ) ;
}
}
if ( res . Data . ConsumableList ! = null )
{
ConsumableServiceList = new ObservableCollection < PackItemModel > ( ) ;
foreach ( var item in res . Data . ConsumableList )
{
App . Current . Dispatcher . Invoke ( ( ) = >
{
ConsumableServiceList . Add ( new PackItemModel ( )
{
MemberList = MemberList ,
ConsumableList = ConsumableList ,
ItemCount = item . ItemCount ,
ItemName = item . ItemName ,
SelectId = item . SelectId ,
} ) ;
} ) ;
}
}
if ( res . Data . IncrementProcessList ! = null )
{
IncrementProcessList = new ObservableCollection < PackItemModel > ( ) ;
foreach ( var item in res . Data . IncrementProcessList )
{
App . Current . Dispatcher . Invoke ( ( ) = >
{
IncrementProcessList . Add ( new PackItemModel ( )
{
MemberList = MemberList ,
PackServiceList = PackServiceList . Copy ( ) ,
ItemCount = item . ItemCount ,
ItemName = item . ItemName ,
SelectId = item . SelectId ,
SelectUserId = item . SelectUserId ,
MemberName = item . MemberName
} ) ;
} ) ;
}
}
if ( res . Data . BasicPackProcessList ! = null )
{
BasicPackProcessList = new ObservableCollection < PackItemModel > ( ) ;
foreach ( var item in res . Data . BasicPackProcessList )
{
App . Current . Dispatcher . Invoke ( ( ) = >
{
BasicPackProcessList . Add ( new PackItemModel ( )
{
MemberList = MemberList ,
PackServiceList = PackServiceList . Copy ( ) ,
ItemCount = item . ItemCount ,
ItemName = item . ItemName ,
SelectId = item . SelectId ,
SelectUserId = item . SelectUserId ,
MemberName = item . MemberName
} ) ;
} ) ;
}
}
LoadList . AddRange ( IncreateList ) ;
LoadList . AddRange ( IncrementProcessList ) ;
DirectionalFees = res . Data . DirectionalFees ? . ToString ( ) ;
}
} ) ;
}
/// <summary>
/// 批量设置耗材数量
/// </summary>
/// <param name="obj"></param>
private void SetAllCount ( object obj )
{
SetCountWindow set = new SetCountWindow ( ) ;
set . SetCount = new Action < int > ( ( s ) = >
{
var lbox = obj as ListBox ;
var serviceList = lbox . ItemsSource as ObservableCollection < PackItemModel > ;
foreach ( var item in serviceList )
{
if ( item . ItemName = = null )
{
item . ItemName = ConsumableList . SingleOrDefault ( c = > c . Id = = item . SelectId ) . Name ;
}
item . ItemCount = s ;
}
lbox . ItemsSource = serviceList ;
} ) ;
set . Show ( ) ;
}
private long taskId ;
public long TaskId { get = > taskId ; set { Set ( ref taskId , value ) ; } } //
private int taskCount ;
public int TaskCount { get = > taskCount ; set { Set ( ref taskCount , value ) ; } } //
public string OrderId { get ; set ; }
public string SkuId { get ; set ; }
private List < PackItemModel > IsOverCount ( ObservableCollection < PackItemModel > packItemModels , bool needUserId = true )
{
List < PackItemModel > disItems = new List < PackItemModel > ( ) ;
foreach ( var packItem in packItemModels ) //增值服务上传
{
var item = new PackItemModel
{
ItemCount = packItem . ItemCount ,
SelectId = packItem . SelectId ,
SelectUserId = packItem . SelectUserId ,
ItemName = packItem . ItemName ,
MemberName = packItem . MemberName
} ;
if ( needUserId )
if ( item . SelectId < = 0 | | string . IsNullOrEmpty ( item . SelectUserId ) | | item . ItemCount < = 0 )
{
System . Windows . MessageBox . Show ( $"数据输入有误" ) ;
return null ;
}
else
if ( item . SelectId < = 0 | | item . ItemCount < = 0 )
{
System . Windows . MessageBox . Show ( $"数据输入有误" ) ;
return null ;
}
if ( item . ItemCount > TaskCount )
{
System . Windows . MessageBox . Show ( $"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}" ) ;
return null ;
}
if ( disItems . Select ( a = > a . SelectId ) . Contains ( item . SelectId ) ) //相同服务 存在累加
{
var data = disItems . SingleOrDefault ( a = > a . SelectId = = item . SelectId ) ;
if ( data ! = null ) data . ItemCount + = item . ItemCount ;
if ( data . ItemCount > TaskCount ) //累积超出任务量
{
System . Windows . MessageBox . Show ( $"{item.ItemName}:{data.ItemCount}超出任务量{TaskCount}" ) ;
return null ;
}
continue ;
}
disItems . Add ( item ) ;
}
return disItems ;
}
/// <summary>
/// 上传数据 (判断是否超量) 统一上传
/// </summary>
private void UpLoadPack ( object obj )
{
decimal? directFees = null ;
if ( ! string . IsNullOrEmpty ( DirectionalFees ) )
{
try
{
directFees = decimal . Parse ( DirectionalFees ) ;
}
catch ( Exception )
{
directFees = null ;
}
}
PackTaskDetailRequest packTaskDetail = new PackTaskDetailRequest ( ) ;
packTaskDetail . DirectionalFees = directFees ;
packTaskDetail . IncrementPartCount = IncrementPartCount ;
packTaskDetail . IncrementPartTaskCount = IncrementPartTaskCount ;
packTaskDetail . TaskId = TaskId ;
decimal IncreateFees = 0 , PackFees = 0 , ConsumableFees = 0 , DiscountPrice = 0 ;
var disIncreateList = IsOverCount ( IncreateList ) ;
if ( disIncreateList = = null ) return ;
var disBasicPackProcessList = IsOverCount ( BasicPackProcessList ) ;
if ( disBasicPackProcessList = = null ) return ;
if ( disBasicPackProcessList . Select ( d = > d . SelectId ) . Distinct ( ) . Count ( ) > 2 )
{
System . Windows . MessageBox . Show ( "基础包装工序不能超过两道" ) ;
return ;
}
var disIncrementProcessList = IsOverCount ( IncrementProcessList ) ;
if ( disIncrementProcessList = = null ) return ;
var disConsumableServiceList = IsOverCount ( ConsumableServiceList , false ) ;
if ( disConsumableServiceList = = null ) return ;
packTaskDetail . IncreateList = IncreateList . ToList ( ) ;
packTaskDetail . BasicPackProcessList = BasicPackProcessList . ToList ( ) ;
packTaskDetail . IncrementProcessList = IncrementProcessList . ToList ( ) ;
packTaskDetail . ConsumableList = disConsumableServiceList ;
var res = packDetailService . SetPackTaskDetail ( packTaskDetail ) ;
if ( res ! = null & & res . Success )
{
// new TipsWindow("上传成功!").Show();
var win = obj as System . Windows . Window ;
if ( SetAllFees ! = null )
SetAllFees ( ) ;
win . Close ( ) ;
}
}
//private void UpLoadPack1(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<PackItemModel> packServiceList = new List<PackItemModel>();
// uploadService.TaskId = TaskId;
// List<PackServiceDTO> uploadServices = new List<PackServiceDTO>();
// // List<ConsumableTaskModel> consumableTasks = new List<ConsumableTaskModel>();
// ///上传 删除的数据 //上传保存数据 //上传总数据
// List<PersonTaskModel> addDatas = new List<PersonTaskModel>();
// List<PersonTaskModel> delDatas = new List<PersonTaskModel>();
// List<PersonTaskModel> PersonTaskModels = new List<PersonTaskModel>();
// List<PackServiceMemberModel> allPackServiceTasks = new List<PackServiceMemberModel>();
// List<ConsumableTaskModel> allConsumableTasks = new List<ConsumableTaskModel>();
// FeesItemResponse feesItem = new FeesItemResponse(); ;
// List<PackServiceMemberModel> PackServiceMembers = new List<PackServiceMemberModel>();
// //获取打包人员
// List<string> packUsers = new List<string>();
// 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)
// {
// new TipsWindow($"数据输入有误").Show();
// return;
// }
// var member = MemberList.SingleOrDefault(m => m.Id == item.SelectUserId);
// if (member != null && !packUsers.Contains(member.UserName))
// {
// packUsers.Add(member.UserName);
// }
// if (item.ItemCount > TaskCount)
// {
// new TipsWindow($"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}").Show();
// return;
// }
// price = IncreateServiceList.First(i => i.Id == item.SelectId).Price;
// singleFees += price;
// AllFees += item.ItemCount * price;
// IncreateFees += item.ItemCount * price;
// if (PackServiceMembers.Select(a => a.PackServiceId).Contains(item.SelectId))//相同服务 存在累加
// {
// var inMembers = PackServiceMembers.SingleOrDefault(a => a.UserId == item.SelectUserId && a.PackServiceId == item.SelectId);
// if (inMembers != null)
// inMembers.PackServiceCount += item.ItemCount;
// var data = PackServiceMembers.SingleOrDefault(a => a.PackServiceId == item.SelectId);
// var feeItem = feesItem.ServiceList.SingleOrDefault(f => f.ItemName == item.ItemName);
// if (data != null) data.PackServiceCount += item.ItemCount;
// if (feeItem != null) feeItem.ItemCount += item.ItemCount;
// if (data.PackServiceCount > TaskCount)//累积超出任务量
// {
// new TipsWindow($"{item.ItemName}:{data.PackServiceCount}超出任务量{TaskCount}").Show();
// return;
// }
// continue;
// }
// PackServiceMembers.Add(new PackServiceMemberModel
// {
// UserId = item.SelectUserId,
// PackServiceCount = item.ItemCount,
// PackServiceId = item.SelectId,
// Price = price,
// ServiceType = ServiceType.增值服务
// });
// feesItem.ServiceList.Add(new ServiceItemResponse
// {
// ServiceType = ServiceType.增值服务,
// ItemCount = item.ItemCount,
// ItemName = item.ItemName,
// ItemPrice = price
// });
// }
// foreach (var item in IncrementProcessList)//打包服务
// {
// if (item.SelectId <= 0 || string.IsNullOrEmpty(item.SelectUserId) || item.ItemCount <= 0)
// {
// new TipsWindow($"数据输入有误").Show();
// return;
// }
// if (item.ItemCount > TaskCount)
// {
// new TipsWindow($"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}").Show();
// return;
// }
// var member = MemberList.SingleOrDefault(m => m.Id == item.SelectUserId);
// if (member != null && !packUsers.Contains(member.UserName))
// {
// packUsers.Add(member.UserName);
// }
// price = PackServiceList.First(i => i.Id == item.SelectId).Price;
// singleFees += price;
// AllFees += item.ItemCount * price;
// PackFees += item.ItemCount * price;
// if (PackServiceMembers.Select(a => a.PackServiceId).Contains(item.SelectId))//存在累加
// {
// var inMembers = PackServiceMembers.SingleOrDefault(a => a.UserId == item.SelectUserId && a.PackServiceId == item.SelectId);
// if (inMembers != null)
// inMembers.PackServiceCount += item.ItemCount;
// var data = PackServiceMembers.SingleOrDefault(a => a.PackServiceId == item.SelectId);
// var feeItem = feesItem.ServiceList.SingleOrDefault(f => f.ItemName == item.ItemName);
// feeItem.ItemCount += item.ItemCount;
// data.PackServiceCount += item.ItemCount;
// if (data.PackServiceCount > TaskCount)//累积超出任务量
// {
// new TipsWindow($"{item.ItemName}:{data.PackServiceCount}超出任务量{TaskCount}").Show();
// return;
// }
// continue;
// }
// PackServiceMembers.Add(new PackServiceMemberModel
// {
// UserId = item.SelectUserId,
// PackServiceCount = item.ItemCount,
// PackServiceId = item.SelectId,
// Price = price,
// ServiceType = ServiceType.打包服务
// });
// feesItem.ServiceList.Add(new ServiceItemResponse
// {
// ServiceType = ServiceType.打包服务,
// ItemCount = item.ItemCount,
// ItemName = item.ItemName,
// ItemPrice = price
// });
// }
// foreach (var item in ConsumableServiceList)
// {
// if (item.SelectId <= 0 || item.ItemCount <= 0)
// {
// new TipsWindow($"数据输入有误").Show();
// return;
// }
// if (item.ItemCount > TaskCount)
// {
// new TipsWindow($"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}").Show();
// return;
// }
// 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);
// var feeItem = feesItem.ServiceList.SingleOrDefault(f => f.ItemName == item.ItemName);
// feeItem.ItemCount += item.ItemCount;
// data.ConsumableCount += item.ItemCount;
// if (data.ConsumableCount > TaskCount)//累积超出任务量
// {
// new TipsWindow($"{item.ItemName}:{data.ConsumableCount}超出任务量{TaskCount}").Show();
// return;
// }
// continue;
// }
// feesItem.ServiceList.Add(new ServiceItemResponse
// {
// ServiceType = ServiceType.耗材服务,
// ItemCount = item.ItemCount,
// ItemName = item.ItemName,
// ItemPrice = price
// });
// allConsumableTasks.Add(new ConsumableTaskModel
// {
// ConsumableCount = item.ItemCount,
// ConsumableId = item.SelectId
// });
// }
// uploadService.ConsumableIds = string.Join(",", allConsumableTasks.Select(a => a.ConsumableId));
// uploadService.ConsumableNos = string.Join(",", allConsumableTasks.Select(a => a.ConsumableCount));
// 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));
// 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);
// foreach (var item in LoadList)
// {
// if (!PackServiceMembers.Any(p => p.UserId == item.SelectUserId && p.PackServiceId == item.SelectId))
// {
// delDatas.Add(new PersonTaskModel
// {
// TaskId = taskId,
// PackUserId = item.SelectUserId,
// ServiceId = item.SelectId
// });
// }
// }
// //var del = orgIds.Except(nowIds).ToList();
// foreach (var PackServiceMember in PackServiceMembers)
// {
// addDatas.Add(new PersonTaskModel
// {
// TaskId = taskId,
// CreateTime = DateTime.Now,
// IsDeleted = false,
// ServiceCount = PackServiceMember.PackServiceCount,
// PackUserId = PackServiceMember.UserId,
// ServiceId = PackServiceMember.PackServiceId,
// ServiceType = PackServiceMember.ServiceType
// });
// }
// uploadService.AddPackServices = addDatas;
// uploadService.DelPackServices = delDatas;
// //uploadService.DeletedPackServices = del;
// //uploadService.DeletedPackServices
// uploadService.SkuId = SkuId;
// uploadService.OrderId = OrderId;
// uploadService.AllFees = Convert.ToDecimal(AllFees.ToString("0.00"));
// uploadService.SingleFees = singleFees;
// 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.SetPackTaskDetail(uploadService);
// if (res != null && res.Success)
// {
// // new TipsWindow("上传成功!").Show();
// var win = obj as System.Windows.Window;
// feesItem.AllFees = AllFees;
// feesItem.SingleFees = singleFees;
// feesItem.TaskId = TaskId;
// feesItem.DisCount = upDisCount;
// feesItem.DiscountAllFees = upDisCount * AllFees;
// feesItem.DiscountSingleFees = singleFees * upDisCount;
// if (SetAllFees != null)
// SetAllFees(feesItem, packUsers);
// win.Close();
// }
//}
/// <summary>
/// 更新 打包员 和费用数据
/// </summary>
public Action SetAllFees { get ; set ; }
private void AddPackService ( )
{
App . Current . Dispatcher . Invoke ( new Action ( ( ) = >
{
IncrementProcessList . Add ( new PackItemModel ( )
{
ItemCount = TaskCount ,
MemberList = MemberList ,
PackServiceList = PackServiceList ,
} ) ;
} ) ) ;
}
private void AddBasicPackService ( )
{
App . Current . Dispatcher . Invoke ( new Action ( ( ) = >
{
BasicPackProcessList . Add ( new PackItemModel ( )
{
ItemCount = TaskCount ,
MemberList = MemberList ,
PackServiceList = PackServiceList
} ) ;
} ) ) ;
}
private void AddIncreateService ( )
{
App . Current . Dispatcher . Invoke ( new Action ( ( ) = >
{
IncreateList . Add ( new PackItemModel ( )
{
ItemCount = TaskCount ,
IncreateServiceList = IncreateServiceList ,
MemberList = MemberList ,
} ) ;
} ) ) ;
}
private void AddConsumable ( )
{
App . Current . Dispatcher . Invoke ( new Action ( ( ) = >
{
ConsumableServiceList . Add ( new PackItemModel ( )
{
ItemCount = TaskCount ,
ConsumableList = ConsumableList
} ) ;
} ) ) ;
}
}
}