using BBWY.Client.APIServices;
using BBWY.Client.Models.PackTask;
using BBWY.Client.Models;
using BBWY.Client.Views.PackTask;
using BBWY.Common.Models;
using GalaSoft.MvvmLight.Command;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Windows.Input;
using System.Windows;
using BBWY.Client.Models.QualityTask;
using BBWY.Client.Views.QualityTask;
using BBWY.Client.Models.APIModel.Response.PackPurchaseTask;
using NPOI.Util.ArrayExtensions;
using System.Threading.Tasks;
using Org.BouncyCastle.Asn1.Crmf;
using System.Runtime.InteropServices.WindowsRuntime;
using NPOI.Util;
using BBWY.Controls;
namespace BBWY.Client.ViewModels
{
public class QualityViewModel : BaseVM, IDenpendency
{
#region 属性
public int goodProductQuantity;
public int arrivalQuantity;
///
/// 到货数量
///
public int ArrivalQuantity { get => arrivalQuantity; set { Set(ref arrivalQuantity, value); } }
///
/// 良品数量
///
public int GoodProductQuantity { get => goodProductQuantity; set { Set(ref goodProductQuantity, value); } }
///
/// 预计完成时间
///
public DateTime? PreCompeteTime { get; set; }
private ObservableCollection purchaseSkuList;
public ObservableCollection PurchaseSkuList { get => purchaseSkuList; set { Set(ref purchaseSkuList, value); } }
private string searchSkuId;
public string SearchSkuId { get => searchSkuId; set { Set(ref searchSkuId, value); } }
// public long TaskId { get; set; }
//private bool isSelected;
//public bool IsSelected { get => isSelected; set { Set(ref isSelected, value); } }
private ObservableCollection worryList = new ObservableCollection {
"否","是"
};
public ObservableCollection WorryList { get => worryList; set { Set(ref worryList, value); } }
private ObservableCollection positionTypeList = new ObservableCollection {
"商家仓","云仓", "京仓","聚水潭齐越仓"};
public ObservableCollection PositionTypeList { get => positionTypeList; set { Set(ref positionTypeList, value); } }
private ObservableCollection packTypeList = new ObservableCollection {
"单件","多件"
};
public ObservableCollection PackTypeList { get => packTypeList; set { Set(ref packTypeList, value); } }
private ObservableCollection basicPackList = new ObservableCollection {
"快递袋","纸箱","麻袋"
};
public ObservableCollection BasicPackList { get => basicPackList; set { Set(ref basicPackList, value); } }
private ObservableCollection isNeedBarCodeList = new ObservableCollection {
"需要", "不需要" };
public ObservableCollection IsNeedBarCodeList { get => isNeedBarCodeList; set { Set(ref isNeedBarCodeList, value); } }
private ObservableCollection isNeedCerList = new ObservableCollection {
"需要", "不需要" };
public ObservableCollection IsNeedCerList { get => isNeedCerList; set { Set(ref isNeedCerList, value); } }
private ObservableCollection certificatePositionList = new ObservableCollection {
"无","外部包装","产品包装"
};
public ObservableCollection CertificatePositionList { get => certificatePositionList; set { Set(ref certificatePositionList, value); } }
private ObservableCollection availabilityList = new ObservableCollection {
"已到货","部分到货","未到货"
};
public ObservableCollection AvailabilityList { get => availabilityList; set { Set(ref availabilityList, value); } }
private ObservableCollection preCompeteTimeDayList = new ObservableCollection
{
};
public ObservableCollection PreCompeteTimeDayList { get => preCompeteTimeDayList; set { Set(ref preCompeteTimeDayList, value); } }
private ObservableCollection preCompeteTimeHourList = new ObservableCollection {
"12点前","18点前","21点前"
};
public ObservableCollection PreCompeteTimeHourList { get => preCompeteTimeHourList; set { Set(ref preCompeteTimeHourList, value); } }
//
public string preCompeteTimeDay;
public string PreCompeteTimeDay { get => preCompeteTimeDay; set { Set(ref preCompeteTimeDay, value); } }
public string preCompeteTimeHour;
public string PreCompeteTimeHour { get => preCompeteTimeHour; set { Set(ref preCompeteTimeHour, value); } }
private ObservableCollection wareHourseList = new ObservableCollection { };
public ObservableCollection WareHourseList { get => wareHourseList; set { Set(ref wareHourseList, value); } }
private int wareHourseCount;
public int WareHourseCount { get => wareHourseCount; set { Set(ref wareHourseCount, value); } }
private int skuCount;
///
/// Sku任务数
///
public int SkuCount { get => skuCount; set { Set(ref skuCount, value); } }
private string skuId;
///
/// Sku
///
public string SkuId { get => skuId; set { Set(ref skuId, value); } }
public string orderId;
public string OrderId { get => orderId; set { Set(ref orderId, value); } }
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 string brand;
///
/// 品牌
///
public string Brand { get => brand; set { Set(ref brand, value); } }
private string productNo;
///
/// 货号
///
public string ProductNo { get => productNo; set { Set(ref productNo, value); } }
private string brandName;
///
/// 品名(手写上传)
///
public string BrandName { get => brandName; set { Set(ref brandName, value); } }
private int goodsNumber;
///
/// 配件数
///
public int GoodsNumber { get => goodsNumber; set { Set(ref goodsNumber, value); } }
private Worry isWorry;
///
/// 是否加急
///
public Worry IsWorry { get => isWorry; set { Set(ref isWorry, value); } }
private Availability availability;
///
/// 到货情况(待收货=0,部分收货=1,已到货=2)
///
public Availability Availability { get => availability; set { Set(ref availability, value); } }
private PackType packType;
///
/// 打包类型(单件=0,多件=1)
///
public PackType PackType { get => packType; set { Set(ref packType, value); } }
private BasicPack basicPack;
///
/// 基础包装(快递袋=0,纸箱=1,麻袋=2)
///
public BasicPack BasicPack { get => basicPack; set { Set(ref basicPack, value); } }
private PositionType positionType;
///
/// 落仓(商家仓=0,云仓=1,京仓=2,聚水潭齐越仓=3)
///
public PositionType PositionType { get => positionType; set { Set(ref positionType, value); } }
private string skuTitle;
///
/// sku配件商品名称
///
public string SkuTitle { get => skuTitle; set { Set(ref skuTitle, value); } }
private Need isNeedBarCode;
///
/// 是否需要合格证
///
public Need IsNeedBarCode { get => isNeedBarCode; set { Set(ref isNeedBarCode, value); } }
private Need isNeedCertificateModel;
///
/// 是否需要条形码
///
public Need 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);
// IsNeedBarCode = IsSetBarCode ? Need.不需要 : Need.需要;
}
}
private bool isSetCertificate;
///
/// 设置显示(合格证)
///
public bool IsSetCertificate
{
get => isSetCertificate; set
{
Set(ref isSetCertificate, value);
//IsNeedCertificateModel = IsSetCertificate ? Need.不需要 : Need.需要;
}
}
private string setSpuCerStatus;
public string SetSpuCerStatus { get => setSpuCerStatus; set { Set(ref setSpuCerStatus, value); } }
private bool isSetSpuCertificate = true;
///
/// 设置spu显示(合格证)
///
public bool IsSetSpuCertificate
{
get => isSetSpuCertificate; set
{
Set(ref isSetSpuCertificate, value);
SetSpuCerStatus = IsSetSpuCertificate ? "设置spu模板" : "修改spu模板";
}
}
private string saveTask;
///
/// 设置显示(合格证)
///
public string SaveTask { get => saveTask; set { Set(ref saveTask, value); } }
private string spuId;
///
/// 合格证
///
public string SpuId { get => spuId; set { Set(ref spuId, value); } }
private CertificateModel spuCertificateModel;
///
/// spu合格证
///
public CertificateModel SpuCertificateModel { get => spuCertificateModel; set { Set(ref spuCertificateModel, 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); } }
private ObservableCollection increateList;
///
/// 增量耗材查询关键字
///
public ObservableCollection IncreateList { get => increateList; set { Set(ref increateList, value); } }
string[] increates = new string[] { "气泡纸", "气泡袋", "POP袋", "折纸箱", "气泡纸封边", "彩盒", "剪胶", "剪彩带", "快递袋", "收纳盒", "纸箱子", "装纸箱", "封边", "胶带", "折彩盒" };
PackPurchaseTaskService packPurchaseTaskService;
PackTaskService packTaskService;
ProductService productService;
GlobalContext globalContext;
private bool isLoading = false;
public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } }
PurchaseService purchaseService;
public string OriginShopName { get; set; }
public string SkuPurchaseSchemeId { get; set; }
public Platform Platform { get; set; }
public string ShopId { get; set; }
public long TaskId { get; set; }
public string UserName { get; set; }
public ICommand SetBarCodeCommand { get; set; }
public ICommand SetCertificateCommand { get; set; }
public ICommand LookBarCommand { get; set; }
public ICommand LookCerCommand { get; set; }
public ICommand OpenSkuDetailCommand { get; set; }
public ICommand CompeteQualityTaskCommand { get; set; }
public ICommand SearchSkuCommand { get; set; }
#endregion
public QualityViewModel(ProductService productService, GlobalContext globalContext, PackPurchaseTaskService packPurchaseTaskService, PurchaseService purchaseService, PackTaskService packTaskService)
{
this.packPurchaseTaskService = packPurchaseTaskService;
this.productService = productService;
this.globalContext = globalContext;
OpenSkuDetailCommand = new RelayCommand