using BarcodeLib;
using BBWY.Client.APIServices;
using BBWY.Client.Helpers;
using BBWY.Client.Models;
using BBWY.Client.Models.APIModel.Request;
using BBWY.Client.Models.PackTask;
using BBWY.Client.Views.PackTask;
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
{
public class CreatePackTaskViewModel : BaseVM,IDenpendency
{
private bool isLoading = false;
public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } }
private Worry isWorry;
///
/// 是否加急
///
public Worry IsWorry { get => isWorry; set { Set(ref isWorry, value); } }
private DelayTrigger delayTrigger;
private string searchIncrementKeyWord;
///
/// 增量耗材查询关键字
///
public string SearchIncrementKeyWord
{
get => searchIncrementKeyWord; set
{
if (Set(ref searchIncrementKeyWord, value))
{
delayTrigger.SetKey(value);
}
}
}
private ObservableCollection increateList;
///
/// 增量耗材查询关键字
///
public ObservableCollection IncreateList { get => increateList; set { Set(ref increateList, value); } }
private string searchSkuId;
///
/// skuId
///
public string SearchSkuId { get => searchSkuId; set { Set(ref searchSkuId, value); } }
///
/// 店铺Sku图链接
///
private string logo;
///
/// 店铺Sku图链接
///
public string Logo { get => logo; set { Set(ref logo, value); } }
private string skuName;
///
/// 采购Sku名称
///
public string SkuName { get => skuName; set { Set(ref skuName, value); } }
//private long barCodeId;
/////
///// 条形码id
/////
//public long BarCodeId { get => barCodeId; set { Set(ref barCodeId, value); } }
private string brand;
///
/// 品牌
///
public string Brand { get => brand; set { Set(ref brand, value); } }
private string brandName;
///
/// 品名(手写上传)
///
public string BrandName { get => brandName; set { Set(ref brandName, value); } }
///
/// 需求方店铺id
///
private string shopName;
///
/// 需求方店铺id
///
public string ShopName { get => shopName; set { Set(ref shopName, value); } }
private string modelNo;
///
/// 货号
///
public string ModelNo { get => modelNo; set { Set(ref modelNo, value); } }
///
/// 货号
///
private string productNo;
///
/// 货号
///
public string ProductNo { get => productNo; set { Set(ref productNo, value); } }
private int goodsNumber;
///
/// 配件数
///
public int GoodsNumber { get => goodsNumber; set { Set(ref goodsNumber, value); } }
private DateTime endTime;
///
/// 提交时间
///
public DateTime EndTime { get => endTime; set { Set(ref endTime, value); } }
private long taskId;
///
/// 绑定数据
///
public long TaskId { get => taskId; set { Set(ref taskId, value); } }
private string departmentName;
///
/// 部门名称
///
public string DepartmentName { get => departmentName; set { Set(ref departmentName, value); } }
private string acceptName;
///
/// 对接人
///
public string AcceptName { get => acceptName; set { Set(ref acceptName, value); } }
private int skuCount;
///
/// sku数量
///
public int SkuCount { get => skuCount; set { Set(ref skuCount, value); } }
private TaskState availability;
///
/// 到货情况(待收货=0,部分收货=1,已到货=2)
///
public TaskState Availability { get => availability; set { Set(ref availability, value); } }
private int taskStatus;
///
/// 任务状态(已完成=0,未完成=1)
///
public int TaskStatus { get => taskStatus; set { Set(ref taskStatus, value); } }
private PackType packType;
///
/// 打包类型(单件=0,多件=1)
///
public PackType PackType { get => packType; set { Set(ref packType, value); } }
private string skuTitle;
///
/// sku配件商品名称
///
public string SkuTitle { get => skuTitle; set { Set(ref skuTitle, value); } }
private BasicPack basicPack;
///
/// 基础包装(快递袋=0,纸箱=1,麻袋=2)
///
public BasicPack BasicPack { get => basicPack; set { Set(ref basicPack, value); } }
private Increment increment1;
///
/// 增量1()
///
public Increment Increment1 { get => increment1; set { Set(ref increment1, value); } }
private Increment increment2;
///
/// 增量2()
///
public Increment Increment2 { get => increment2; set { Set(ref increment2, value); } }
private PositionType positionType;
///
/// 落仓(本地仓=0,齐越仓=1,京东仓=2)
///
public PositionType PositionType { get => positionType; set { Set(ref positionType, value); } }
private string isNeedBarCode;
///
/// 是否需要合格证
///
public string IsNeedBarCode { get => isNeedBarCode; set { Set(ref isNeedBarCode, value); } }
private string isNeedCertificateModel;
///
/// 是否需要条形码
///
public string IsNeedCertificateModel { get => isNeedCertificateModel; set { Set(ref isNeedCertificateModel, value); } }
private BarCodeModel barCodeModel;
///
/// 条形码
///
public BarCodeModel BarCodeModel { get => barCodeModel; set { Set(ref barCodeModel, value); } }
private bool isSetBarCode;
///
/// 设置显示(条形码)
///
public bool IsSetBarCode { get => isSetBarCode; set { Set(ref isSetBarCode, value); } }
private bool isSetCertificate;
///
/// 设置显示(合格证)
///
public bool IsSetCertificate { get => isSetCertificate; set { Set(ref isSetCertificate, value); } }
private string saveTask;
///
/// 设置显示(合格证)
///
public string SaveTask { get => saveTask; set { Set(ref saveTask, value); } }
private CertificateModel certificateModel;
///
/// 合格证
///
public CertificateModel CertificateModel { get => certificateModel; set { Set(ref certificateModel, value); } }
///
/// 合格证位置(外部包装=0,产品包装=1)
///
private CertificatePosition certificatePosition;
///
/// 合格证位置(外部包装=0,产品包装=1)
///
public CertificatePosition CertificatePosition { get => certificatePosition; set { Set(ref certificatePosition, value); } }
///
/// 注意事项(对接备注)
///
private string markMessage;
///
/// 注意事项(对接备注)
///
public string MarkMessage { get => markMessage; set { Set(ref markMessage, value); } }
///
/// 服务收费 (单个任务id 消耗的总费用)
///
private decimal feesMoney;
///
/// 服务收费 (单个任务id 消耗的总费用)
///
public decimal FeesMoney { get => feesMoney; set { Set(ref feesMoney, value); } }
///
/// 打包员
///
private string packUser;
///
/// 打包员
///
public string PackUser { get => packUser; set { Set(ref packUser, value); } }
private string printName;
///
/// 选中的打印机名称
///
public string PrintName { get => printName; set { Set(ref printName, value); } }
private List printNames;
///
/// 选中的打印机名称
///
public List PrintNames { get => printNames; set { Set(ref printNames, value); } }
private int printNums;
///
/// 打印数
///
public int PrintNums { get => printNums; set { Set(ref printNums, value); } }
private readonly PackTaskService packTaskService;
private readonly GlobalContext globalContext;
private readonly ProductService productService;
private string AccepUserId = "";//对接人
public ICommand SetBarCodeCommand { get; set; }
public ICommand SetCertificateCommand { get; set; }
public ICommand SearchSkuCommand { get; set; }
public ICommand CreateTaskCommand { get; set; }
public ICommand SaveCerCommand { get; set; }
public ICommand SaveBarCodeCommand { get; set; }
public ICommand BarLabelCheckCommand { get; set; }
public ICommand CerLabelCheckCommand { get; set; }
public ICommand LookBarCommand { get; set; }
public ICommand LookCerCommand { get; set; }
public void InitData(PackTaskModel model = null)
{
string[] increates = new string[] { "气泡纸", "气泡袋", "POP袋", "折纸箱", "气泡纸封边", "彩盒", "剪胶", "剪彩带", "快递袋", "收纳盒", "纸箱子", "装纸箱", "封边", "胶带", "折彩盒" };
IncreateList = new ObservableCollection();
if (model == null)
{
SaveTask = "发布";
TaskId = 0;
Logo = string.Empty;
SearchSkuId = "";
SkuId = "";
SkuCount = 0;
SkuName = string.Empty;
ProductNo = string.Empty;
Brand = string.Empty;
BrandName = string.Empty;
this.MarkMessage = "";
IsSetBarCode = true;
IsSetCertificate = true;
BarCodeModel = null;
CertificateModel = null;
SkuTitle = string.Empty;
GoodsNumber = 0;
foreach (var item in increates)
{
IncreateList.Add(new IncreateModel
{
IncreateName = item,
IsSelected = false
});
}
return;
}
SaveTask = "保存";
Logo = model.ItemList[0].Logo;
SearchSkuId =model.SkuId ;
SkuId = model.SkuId;
SkuCount = model.SkuCount;
SkuName = model.ItemList[0].SkuName;
ProductNo = model.ItemList[0].GoodsNo;
Brand = model.Brand;
BrandName = model.ItemList[0].BrandName;
this.MarkMessage = model.MarkMessage;
IsSetBarCode = model.BarCodeModel!=null ? false:true;
IsSetCertificate = model.CertificateModel!=null ? false : true;
BarCodeModel = model.BarCodeModel;
CertificateModel = model.CertificateModel;
SkuTitle = model.SkuTitle;
GoodsNumber = model.GoodsNumber;
Availability = model.Availability;
IsWorry = model.IsWorry;
PositionType = model.PositionType;
PackType =model.PackType;
BasicPack = model.BasicPack;
IsNeedBarCode = model.BarCodeModel != null ? "需要" : "不需要";
IsNeedCertificateModel = model.CertificateModel != null ? "需要" : "不需要";
CertificatePosition = model.CertificatePosition;
TaskId = model.TaskId;
string[] increateDatas =model.Increment1.Split(',');
bool isSelected = false;
foreach (var item in increates)
{
isSelected = false;
if (increateDatas.Contains(item))
{
isSelected = true;
}
IncreateList.Add(new IncreateModel
{
IncreateName = item,
IsSelected = isSelected
});
}
//SearchSku();
}
public CreatePackTaskViewModel(PackTaskService packTaskService, GlobalContext globalContext, ProductService productService)
{
Messenger.Default.Register(this, "InitData", message =>
{
InitData(message);
});
this.productService = productService;
this.packTaskService = packTaskService;
AccepUserId = globalContext.User.Id.ToString();
IsSetBarCode = true;
IsSetCertificate = true;
//数据库获取增量耗材数据
string[] increates = new string[] { "气泡纸", "气泡袋", "POP袋", "折纸箱", "气泡纸封边", "彩盒", "剪胶", "剪彩带", "快递袋", "收纳盒", "纸箱子", "装纸箱", "封边", "胶带", "折彩盒" };
IncreateList = new ObservableCollection();
foreach (var item in increates)
{
IncreateList.Add(new IncreateModel
{
IncreateName = item,
IsSelected = false
});
}
//查询sku
SearchSkuCommand = new RelayCommand(() =>
{
Task.Factory.StartNew(() => { SearchSku(); });
});
CreateTaskCommand = new RelayCommand