void UCBatchInvoiceInput_Loaded(object sender, RoutedEventArgs e) { BindTaxRate(); InitControls(); facade = new EIMSOrderMgmtFacade(); this.gridInfo.DataContext = InvoiceInfoEntityView = new EIMSInvoiceInfoEntityVM(); BindInvoiceInfo(this.InvoiceEntryViewList); }
/// <summary> /// Load 事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void UCInvoiceInput_Loaded(object sender, RoutedEventArgs e) { BindTaxRate(); InitControls(); InvoiceInfoEntityView = new EIMSInvoiceInfoEntityVM(); InvoiceInfoEntityViewList = new List <EIMSInvoiceInfoEntityVM>(); InvoiceInputExtendViewList = new List <EIMSInvoiceInputExtendVM>(); this.Facade = new EIMSOrderMgmtFacade(); this.gridInfo.DataContext = InvoicInputView; if (Type == "Input") { BindInputTxtDataContext(); } else if (Type == "Edit") { QueryInvoiceInputList(); //BindEditTxtDataContext(); } }
/// <summary> /// 防止两个异步方法同时执行,将编辑发票代码提取出来 /// </summary> private void UpdateEIMSInvoiceInput() { List <EIMSInvoiceInfoEntityVM> list = InvoiceInfoEntityViewList; List <EIMSInvoiceInfoEntityVM> old = InvoiceInfoView.OldEIMSList; List <EIMSInvoiceInfoEntityVM> newList = new List <EIMSInvoiceInfoEntityVM>(); //将新增项添加到查询到的数据中 #region 检测修改项 for (int i = 0; i < old.Count; i++) { int count = 0; if (list.Count > i) { if (list[i].SysNo == old[i].SysNo) { count++; } if (count == 0) { old[i].Status = -1; if (old[i].EIMSInvoiceInputExtendList != null && old[i].EIMSInvoiceInputExtendList.Count > 0) { for (int j = 0; j < old[i].EIMSInvoiceInputExtendList.Count; j++) { old[i].EIMSInvoiceInputExtendList[j].Status = -1; } } } else { old[i].TaxRate = list[i].TaxRate; old[i].InvoiceInputAmount = list[i].InvoiceInputAmount; old[i].InvoiceDate = list[i].InvoiceDate; if (list[i].EIMSInvoiceInputExtendList == null || list[i].EIMSInvoiceInputExtendList.Count == 0 ) { old[i].Status = -1; } if (old[i].EIMSInvoiceInputExtendList != null) { for (int j = 0; j < old[i].EIMSInvoiceInputExtendList.Count; j++) { var exSysNo = old[i].EIMSInvoiceInputExtendList[j].SysNo; if (list[i].EIMSInvoiceInputExtendList == null) { int m = 0; for (int k = 0; k < list[i].EIMSInvoiceInputExtendList.Count; k++) { if (list[i].EIMSInvoiceInputExtendList[i].SysNo == exSysNo) { m++; } } if (m == 0) { old[i].EIMSInvoiceInputExtendList[j].Status = -1; } } } } } } else { //如果修改后,发票数量有减少,则让减少的发票状态无效 if (old[i].EIMSInvoiceInputExtendList != null) { for (int j = 0; j < old[i].EIMSInvoiceInputExtendList.Count; j++) { old[i].EIMSInvoiceInputExtendList[j].Status = -1; } } } } #endregion #region 检测新增项 list.ForEach(newEntity => { if (!old.Select(item => item.SysNo).Contains(newEntity.SysNo)) { newList.Add(newEntity); } }); #endregion #region 组织修改项和新增项的数据 //修改项 List <EIMSInvoiceInfoEntityVM> editData = new List <EIMSInvoiceInfoEntityVM>(old.Count); //新增项 List <EIMSInvoiceInfoEntityVM> newData = new List <EIMSInvoiceInfoEntityVM>(newList.Count); for (int i = 0; i < old.Count; i++) { EIMSInvoiceInfoEntityVM invoice = new EIMSInvoiceInfoEntityVM(); editData.Add(old[i]); } for (int i = 0; i < newList.Count; i++) { EIMSInvoiceInfoEntityVM invoice = new EIMSInvoiceInfoEntityVM(); newData.Add(newList[i]); } if (newData.Count > 0) { for (int i = 0; i < newData.Count; i++) { CheckinvoiceExtend(newData[i].EIMSInvoiceInputExtendList); } } #endregion if (newList.Count > 0) { CreateInvoiceInput(newData, editData); } else { UpdateInvoiceInfo(editData); } }