| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- //----------------------------------------------------------------
- //Module Name: $safeprojectname$
- //Purpose:
- //CopyRight: Muchinfo
- //History:
- //----------------------------------------------------------------
- //DateTime 2016/8/5 14:38:50
- //Author
- //Description Create
- //----------------------------------------------------------------
- using GalaSoft.MvvmLight.Command;
- using GalaSoft.MvvmLight.Ioc;
- using Muchinfo.MTPClient.Data;
- using Muchinfo.MTPClient.Data.Enums;
- using Muchinfo.MTPClient.Data.Model;
- using Muchinfo.MTPClient.Data.Model.Account;
- using Muchinfo.MTPClient.Data.Model.Delivery;
- using Muchinfo.MTPClient.Infrastructure.Helpers;
- using Muchinfo.MTPClient.Infrastructure.MessageBox;
- using Muchinfo.MTPClient.Infrastructure.Utilities;
- using Muchinfo.MTPClient.Infrastructure.Windows;
- using Muchinfo.MTPClient.IService;
- using System.Windows;
- using Muchinfo.MTPClient.Resources;
- namespace Muchinfo.MTPClient.Delivery.ViewModels
- {
- /// <summary>
- /// 交割单查询ViewModel
- /// </summary>
- public class DeliveryHolderViewModel : QueryPanelModelBase
- {
- #region "私有字段/Private Data Members"
- protected IDeliveryService _deliveryService;
- private ISystemService _systemService;
- private ePerformanceType _currentePerformanceType;
- private MTPSystemConfig _systemConfig; ////是否需要确认货票 当前配置0时表示不启动自支确认货,1表示启动自动确认货
- private const int keyId = 304; //// 是否需要确认货票配置ID
- private Window _openWindow;
- #endregion "Private Data Members"
- #region "构造函数/Constructor/Initialization"
- public DeliveryHolderViewModel()
- {
- _deliveryService = SimpleIoc.Default.GetInstance<IDeliveryService>();
- _currentePerformanceType = ePerformanceType.PERFORMANCETYPE_DELIVERY;
- _systemService = SimpleIoc.Default.GetInstance<ISystemService>();
- }
- #endregion "Constructor/Initialization"
- #region "接口重写/Interface implementation Or override"
- /// <summary>
- /// 初始化注册消息
- /// </summary>
- public override void RegisterMessage()
- {
- EndTime = ApplicationParameter.ServerTimeNow;
- StartTime = ApplicationParameter.ServerTimeNow.AddDays(-30);
- RefreshCommand.Execute(null);
- //当选择时刷新
- MessengerHelper.DefaultUnregister<TradeAccount>(this, MessengerTokens.UpdateDeliveryHolderOrder);
- MessengerHelper.DefaultRegister<TradeAccount>(this, MessengerTokens.UpdateDeliveryHolderOrder, (e) =>
- {
- //接收通知时,防止时间设置错误,弹出错误提示
- EndTime = ApplicationParameter.ServerTimeNow;
- StartTime = ApplicationParameter.ServerTimeNow.AddDays(-30);
- RefreshCommand.Execute(null);
- });
- }
- public override void UnRegisterMessage()
- {
- MessengerHelper.DefaultUnregister(this);
- }
- /// <summary>
- /// 查询交收单
- /// </summary>
- public override void RefreshContent()
- {
- if (!Vailed())
- {
- return;
- }
- IsBusy = true;
- var queryList = new List<QueryCommonParam>();
- queryList.Add(new QueryCommonParam() { ParamKey = "userid", ParamValue = UserManager.CurrentTradeAccount.CustomerId + string.Empty });
- queryList.Add(new QueryCommonParam() { ParamKey = "starttime", ParamValue = StartTime.ToString() + string.Empty });
- queryList.Add(new QueryCommonParam() { ParamKey = "endtime", ParamValue = EndTime.ToString() + string.Empty });
- _deliveryService.QueryDryOrdersByCapitalAccount(QueryStatement.QueryDeliveryHolder, queryList, QuerySuccessCallBackNew, QueryErrorCallbackNew);
- }
- private void QuerySuccessCallBackNew(List<DryHoldDetail> orders)
- {
- ItemOrders = orders;
- IsBusy = false;
- }
- private void QueryErrorCallbackNew(ErrorEntity error)
- {
- IsBusy = false;
- }
- /// <summary>
- /// 是否显示确认货
- /// </summary>
- public bool IsComfrimVsb
- {
- get
- {
- if (_systemConfig == null)
- {
- return true;
- }
- return !"1".Equals(_systemConfig.systemconfigvalue);
- }
- }
- /// <summary>
- /// 成功返回
- /// </summary>
- /// <param name="orders"></param>
- protected void MarketOrderSuccess(List<DryHoldDetail> orders)
- {
-
- //UserManager.CurrentTradeAccount.AccountId
- if (orders != null && orders.Count > 0)
- {
- ItemOrders = orders.OrderByDescending(x => x.DeliveryTime).ToList();
- }
- IsBusy = false;
- }
- /// <summary>
- /// 是否确认货票参数查询
- /// </summary>
- /// <param name="configs"></param>
- private void QuerySystemConfigSuccess(List<MTPSystemConfig> configs)
- {
- IsBusy = false;
- if (configs != null && configs.Any())
- {
- _systemConfig = configs[0];
- RaisePropertyChanged(() => IsComfrimVsb);
- }
- }
- /// <summary>
- /// 失败返回
- /// </summary>
- /// <param name="errorEntity"></param>
- public override void QueryErrorCallback(ErrorEntity errorEntity)
- {
- IsBusy = false;
- var errorMsg = string.Format("{0}:{1}", errorEntity.RequestFunc, ErrorManager.FormatErrorMsg(errorEntity)); //错误信息显示到状态
- MessengerHelper.DefaultSend(errorMsg, MessengerTokens.ErrorMessage);
- // base.QueryErrorCallback();
- }
- #endregion "Interface implementation Or override"
- #region "Public Properties To Get/Set "
- #region 当前履约类型
- private ePerformanceType _currentConfirmType;
- public ePerformanceType CurrentConfirmType
- {
- get { return _currentConfirmType; }
- set { _currentConfirmType = value; }
- }
- #endregion
- #region 开始时间
- private DateTime startTime;
- /// <summary>
- /// 开始时间
- /// </summary>
- public DateTime StartTime
- {
- get { return startTime; }
- set { Set(() => StartTime, ref startTime, value); }
- }
- #endregion
- #region 结束时间
- private DateTime _endTime;
- /// <summary>
- /// 结束时间
- /// </summary>
- public DateTime EndTime
- {
- get { return _endTime; }
- set { Set(() => EndTime, ref _endTime, value); }
- }
- #endregion
- #region 未审核ListSource
- private List<DryHoldDetail> _itemOrders;
- /// <summary>
- /// 未审核ListSource
- /// </summary>
- public List<DryHoldDetail> ItemOrders
- {
- get { return _itemOrders; }
- set { Set(() => ItemOrders, ref _itemOrders, value); }
- }
- #endregion
- #region 选择当前行【实体】
- private DryHoldDetail _selectEntrustOrder;
- /// <summary>
- /// 选择 行
- /// </summary>
- public DryHoldDetail SelectEntrustOrder
- {
- get { return _selectEntrustOrder; }
- set { Set(() => SelectEntrustOrder, ref _selectEntrustOrder, value); }
- }
- #endregion
- #endregion "Public Properties To Get/Set "
- #region "Public Commands"
- #region 重置查询时间命令Command
- private RelayCommand _resetCommand;
- /// <summary>
- /// Gets the ResetCommand.
- /// </summary>
- public RelayCommand ResetCommand
- {
- get
- {
- return _resetCommand
- ?? (_resetCommand = new RelayCommand(
- () =>
- {
- EndTime = ApplicationParameter.ServerTimeNow;
- StartTime = ApplicationParameter.ServerTimeNow.AddDays(-30);
- }));
- }
- }
- #endregion
- #region 选中GoodsCommand
- /// <summary>
- /// 选中
- /// </summary>
- private RelayCommand selectGoodsCommand;
- public RelayCommand SelectGoodsCommand
- {
- get
- {
- return selectGoodsCommand ?? (selectGoodsCommand = new RelayCommand(
- () =>
- {
- //CurrentConfirmType = ePerformanceType.Confirm_Goods;
- //var sourceList = ItemOrders.ToList().FindAll(p => p.IsGoodsSelected == true);
- //for (int i = 0; i < sourceList.Count(); i++)
- //{
- // //_currentSelectedOrderMatchDetail.Add(new OrderMatchDetailModel() { WRId = (sourceList[i].WRID), DeliveryQty = (sourceList[i].Qty) });
-
- //}
- }));
- }
- }
- #endregion
- #region 取消选中GoodsCommand
- /// <summary>
- /// 取消选中
- /// </summary>
- private RelayCommand unSelectGoodsCommand;
- public RelayCommand UnSelectGoodsCommand
- {
- get
- {
- return unSelectGoodsCommand ?? (unSelectGoodsCommand = new RelayCommand(
- () =>
- {
- CurrentConfirmType = ePerformanceType.PERFORMANCETYPE_DELIVERY;
- }));
- }
- }
- #endregion
- #region 选中TicketCommand
- /// <summary>
- /// 选中
- /// </summary>
- private RelayCommand selectTicketCommand;
- public RelayCommand SelectTicketCommand
- {
- get
- {
- return selectTicketCommand ?? (selectTicketCommand = new RelayCommand(
- () =>
- {
- CurrentConfirmType = ePerformanceType.PERFORMANCETYPE_DELIVERY;
- }));
- }
- }
- #endregion
- #region 取消选中TicketCommand
- /// <summary>
- /// 取消选中
- /// </summary>
- private RelayCommand unSelectTicketCommand;
- public RelayCommand UnSelectTicketCommand
- {
- get
- {
- return unSelectTicketCommand ?? (unSelectTicketCommand = new RelayCommand(
- () =>
- {
- CurrentConfirmType = ePerformanceType.PERFORMANCETYPE_WRTRADE;
- }));
- }
- }
- #endregion
- #region 确认付款Command
- private RelayCommand _confirmPayCommand;
- /// <summary>
- /// Gets the ConfirmPayCommand.
- /// </summary>
- public RelayCommand ConfirmPayCommand
- {
- get
- {
- return _confirmPayCommand
- ?? (_confirmPayCommand = new RelayCommand(
- () =>
- {
- #region 待审核处理
- if (SelectEntrustOrder != null)
- {
- var orderBuild = BuildEntrustOrder();
- if (ItemOrders.ToList().Exists(p => p.DeliveryId == orderBuild.DeliveryId && p.IsGoodsSelected == false && p.IsTicketSelected == false))
- {
- MessageBoxHelper.ShowInfo(Muchinfo.MTPClient.Resources.Client_Resource.DeliveryHolderViewModel_MustCheckOneGoodsOrTicket, Muchinfo.MTPClient.Resources.Client_Resource.Models_Tips, true);
- return;
- }
- ////勾选货
- //if (ItemOrders.ToList().Exists(p =>p.DeliveryId == orderBuild.DeliveryId && p.IsGoodsSelected == true))
- //{
- // orderBuild.ConfirmType = (int)ePerformanceType.Confirm_Goods;
- // _currentePerformanceType = ePerformanceType.Confirm_Goods;
- //}
- ////勾选票
- //if (ItemOrders.ToList().Exists(p => p.DeliveryId == orderBuild.DeliveryId && p.IsTicketSelected == true))
- //{
- // orderBuild.ConfirmType = (int)ePerformanceType.Confirm_Ticket;
- // _currentePerformanceType = ePerformanceType.Confirm_Ticket;
- //}
- ////同时勾选
- //if (ItemOrders.ToList().Exists(p => p.DeliveryId == orderBuild.DeliveryId && p.IsTicketSelected == true) && ItemOrders.ToList().Exists(p => p.DeliveryId == orderBuild.DeliveryId && p.IsGoodsSelected == true))
- //{
- // _currentePerformanceType = ePerformanceType.Confirm_Other;
- //}
- long orderNumber = orderBuild.DeliveryId;
- //var boxResult = MessageBoxHelper.ShowQuestion(Muchinfo.MTPClient.Resources.Client_Resource.Models_MakesureCancel + orderNumber + Muchinfo.MTPClient.Resources.Client_Resource.Models_Bill,
- // Muchinfo.MTPClient.Resources.Client_Resource.Models_CancelBillTips);
- var boxResult = MessageBoxHelper.ShowQuestion(Muchinfo.MTPClient.Resources.Client_Resource.Models_MakesureToCommit,
- Muchinfo.MTPClient.Resources.Client_Resource.Models_Tips);
- if (boxResult == MessageBoxResult.Yes)
- {
- IsBusy = true;
- _deliveryService.SubmitReceiveConfirmReq(orderBuild, EntrurstSuccessCallBack, EntrurstErrorCallBack);
- }
- }
- #endregion
- }));
- }
- }
- #endregion
- #region 查看详情
- private RelayCommand<DryHoldDetail> _seeMoreDetailCommand;
- /// <summary>
- /// Gets the SeeMoreDetailCommand.
- /// </summary>
- public RelayCommand<DryHoldDetail> SeeMoreDetailCommand
- {
- get
- {
- return _seeMoreDetailCommand
- ?? (_seeMoreDetailCommand = new RelayCommand<DryHoldDetail>(
- p =>
- {
- MessengerHelper.DefaultSend(SelectEntrustOrder, MessengerTokens.DeliveryOrderDetail);
- }));
- }
- }
- #endregion
- #region 确认货票
- private RelayCommand<DryHoldDetail> _comfirmGoodsTicketsCommand;
- /// <summary>
- /// Gets the ComfirmGoodsTicketsCommand.
- /// </summary>
- public RelayCommand<DryHoldDetail> ComfirmGoodsTicketsCommand
- {
- get
- {
- return _comfirmGoodsTicketsCommand
- ?? (_comfirmGoodsTicketsCommand = new RelayCommand<DryHoldDetail>(
- p =>
- {
- if (p != null)
- {
- var orderBuild = BuildEntrustOrder();
- orderBuild.DeliveryId = p.DeliveryId;
- orderBuild.PlanDetailID = p.PlanDetailId;
- var boxResult = MessageBoxHelper.ShowQuestion(Muchinfo.MTPClient.Resources.Client_Resource.Models_MakesureToCommit,
- Muchinfo.MTPClient.Resources.Client_Resource.Models_Tips);
- if (boxResult == MessageBoxResult.Yes)
- {
- IsBusy = true;
- _deliveryService.SubmitReceiveConfirmReq(orderBuild, ComfirmSuccessCallBack, EntrurstErrorCallBack);
- }
- }
- //MessengerHelper.DefaultSend(SelectEntrustOrder, MessengerTokens.ComfirmGoodsTickets);
- }));
- }
- }
- #endregion
- #region 申诉命令
- private RelayCommand<DryHoldDetail> _appealCommand;
- /// <summary>
- /// 申诉命令
- /// </summary>
- public RelayCommand<DryHoldDetail> AppealCommand
- {
- get
- {
- return _appealCommand
- ?? (_appealCommand = new RelayCommand<DryHoldDetail>(
- p =>
- {
- //var orderBuild = BuildEntrustOrder();
- //orderBuild.ConfirmType = (int)ePerformanceType.Appeal;
- //var boxResult = MessageBoxHelper.ShowQuestion(Muchinfo.MTPClient.Resources.Client_Resource.Models_MakesureToAppeal,
- // Muchinfo.MTPClient.Resources.Client_Resource.Models_Tips);
- //if (boxResult == MessageBoxResult.Yes && orderBuild != null)
- //{
- // IsBusy = true;
- // _currentePerformanceType = ePerformanceType.Appeal;
- // _deliveryService.SubmitReceiveConfirmReq(orderBuild, EntrurstSuccessCallBack, EntrurstErrorCallBack);
- //}
- }));
- }
- }
- #endregion
- #endregion "Public Commands"
- #region "Private Methods"
- /// 确认收货、票成功返回
- /// </summary>
- /// <param name="order"></param>
- private void ComfirmSuccessCallBack(ReceiveConfirmRspModel order)
- {
- IsBusy = false;
-
- Application.Current.Dispatcher.BeginInvoke(new Action(() =>
- {
- // var orderBuild = BuildEntrustOrder();
- MessageBoxHelper.ShowSuccess(Muchinfo.MTPClient.Resources.Client_Resource.Order_RecConfirm_Success_Result,
- Client_Resource.Models_Tips);
-
- }));
- RefreshCommand.Execute(null);
- // MessengerHelper.DefaultSend(UserManager.CurrentTradeAccount, MessengerTokens.OrderNoticeToken);
- }
- /// 确认收货、票成功返回
- /// </summary>
- /// <param name="order"></param>
- private void EntrurstSuccessCallBack(ReceiveConfirmRspModel order)
- {
- IsBusy = false;
- Application.Current.Dispatcher.BeginInvoke(new Action(() =>
- {
- // var orderBuild = BuildEntrustOrder();
- //if (_currentePerformanceType == ePerformanceType.Confirm_Goods )
- //{
- // MessageBoxHelper.ShowSuccess(Muchinfo.MTPClient.Resources.Client_Resource.Order_ReceiveConfirmGoods_Success_Result,
- // Client_Resource.Models_Tips);
- //}
- //else if (_currentePerformanceType == ePerformanceType.Appeal)
- //{
- // MessageBoxHelper.ShowSuccess(Muchinfo.MTPClient.Resources.Client_Resource.Order_Appeal_Success_Result,
- // Client_Resource.Models_Tips);
- //}
- //else if (_currentePerformanceType == ePerformanceType.Confirm_Ticket)
- //{
- // MessageBoxHelper.ShowSuccess(Muchinfo.MTPClient.Resources.Client_Resource.Order_ReceiveConfirmTicket_Success_Result,
- // Client_Resource.Models_Tips);
- //}
- //else if (_currentePerformanceType == ePerformanceType.Confirm_Other)
- //{
- // MessageBoxHelper.ShowSuccess(Muchinfo.MTPClient.Resources.Client_Resource.Order_ReceiveConfirmTicketAndGoods_Success_Result1,
- // Client_Resource.Models_Tips);
- //}
-
-
- }));
- MessengerHelper.DefaultSend(UserManager.CurrentTradeAccount, MessengerTokens.OrderNoticeToken);
- }
- /// <summary>
- /// 撤销失败返回
- /// </summary>
- /// <param name="errorEntity"></param>
- private void EntrurstErrorCallBack(ErrorEntity errorEntity)
- {
- Application.Current.Dispatcher.BeginInvoke(new Action(() =>
- {
- ErrorManager.ShowReturnError(errorEntity, Client_Resource.UI2014_Tips, true);
- IsBusy = false;
- }));
- }
- #region 创建下单委托对象
- /// <summary>
- /// 创建下单委托对象
- /// </summary>
- /// <returns>下单委托对象</returns>
- private ReceiveConfirmReqModel BuildEntrustOrder()
- {
- var newOrder = new ReceiveConfirmReqModel()
- {
- DeliveryId = SelectEntrustOrder.DeliveryId,
- //ConfirmType=(int)ePerformanceType.Confirm_Goods,
- GoodsId = (uint)SelectEntrustOrder.DeliveryGoodsId,
- OperatorID = UserManager.CurrentTradeAccount.AccountId,
- AccountType = UserManager.CurrentTradeAccount.AccountType,
- //BuildType = eBuildType.BUILDTYPE_CANCEL,
- EntrurstTime = ApplicationParameter.ServerTimeNow,
- //OrderQty = SelectEntrustOrder.DeliveryQty,
- ValidType = ExpirationType.AlwaysValid,
-
- //RelateOrderID = SelectEntrustOrder.DeliveryOrderId,
- AccountId = UserManager.CurrentTradeAccount.AccountId,
- };
- //if (UserManager.CurrentTradeAccount.FundsAccounts.Any() &&
- // UserManager.CurrentTradeAccount.FundsAccounts[0] != null)
- //{
- // newOrder.AccountId = UserManager.CurrentTradeAccount.FundsAccounts[0].AccountId;
- //}
- //else
- //{
- // newOrder.AccountId = UserManager.CurrentTradeAccount.AccountId;
- //}
- return newOrder;
- }
- #endregion
- /// <summary>
- /// 数据验证
- /// </summary>
- /// <returns></returns>
- private bool Vailed()
- {
- if (StartTime > EndTime)
- {
- MessageBoxHelper.ShowInfo(Muchinfo.MTPClient.Resources.Client_Resource.DateTimeVaided_StartEnd, Muchinfo.MTPClient.Resources.Client_Resource.Models_Tips, true);
- return false;
- }
- else if ((EndTime - StartTime).Days > 30)
- {
- MessageBoxHelper.ShowInfo(Muchinfo.MTPClient.Resources.Client_Resource.DateTimeVaided_Over30days, Muchinfo.MTPClient.Resources.Client_Resource.Models_Tips, true);
- return false;
- }
- return true;
- }
- #endregion "Private Methods"
-
- }
- }
|