public void AddNewDetailRow(bool checkLastRow) { var currentRowIndex = (TransactionHeader.DetailsList.IndexOf(SelectedDetailRow)); if (checkLastRow) { var valiationCollection = new List <ValidationResult>(); var isvalid = SelectedDetailRow != null && Validator.TryValidateObject(SelectedDetailRow, new ValidationContext(SelectedDetailRow, null, null), valiationCollection, true); if (TransactionHeader.DetailsList.Where(x => x.Iserial != -1).Sum(x => x.Amount) > TransactionHeader.Amount) { MessageBox.Show("Amount of the Detail Exceeded The Brand Amount"); SelectedDetailRow.Amount = 0; isvalid = false; } //if (TransactionType == 1) //{ // if (TransactionHeader.DetailsList.Where(x => x.Iserial != -1).Count(x => x.TblFamily == SelectedDetailRow.TblFamily) > 1) // { // MessageBox.Show("Cannot Duplicate Family"); // SelectedDetailRow.FamilyPerRow = null; // SelectedDetailRow.TblFamily = null; // isvalid = false; // } //} if (!isvalid) { return; } if (AllowAdd != true) { MessageBox.Show(strings.AllowAddMsg); return; } } var newrow = new TblBrandBudgetDetailViewModel { TblBrandBudgetHeader = TransactionHeader.Iserial }; TransactionHeader.DetailsList.Insert(currentRowIndex + 1, newrow); SelectedDetailRow = newrow; }
public BrandBudgetViewModel() { if (!DesignerProperties.IsInDesignTool) { TransactionHeader = new TblBrandBudgetsHeaderViewModel(); GetItemPermissions(PermissionItemName.BrandBudget.ToString()); MainRowList = new SortableCollectionView <TblBrandBudgetsHeaderViewModel>(); SelectedDetailRows = new ObservableCollection <TblBrandBudgetDetailViewModel>(); SelectedDetailRow = new TblBrandBudgetDetailViewModel(); TransactionHeader.PropertyChanged += (sender, sv) => { if (sv.PropertyName == "Brand") { Brandsection.Clear(); lkpClient.GetTblBrandSectionLinkAsync(TransactionHeader.Brand, LoggedUserInfo.Iserial); } else if (sv.PropertyName == "TblLkpBrandSection") { // GetFamilyLink(); TransactionHeader.DirectionList.Clear(); GetDirectionLink(); } else if (sv.PropertyName == "TblLkpDirection") { TransactionHeader.StyleCategoryList.Clear(); GetStyleCategoryLink(); } DataGridName = "MainGrid"; }; var factorGroupClient = new CRUD_ManagerServiceClient(); factorGroupClient.GetGenericCompleted += (s, sv) => { FactoryGroupList = sv.Result; }; factorGroupClient.GetGenericAsync("TblFactoryGroup", "%%", "%%", "%%", "Iserial", "ASC"); //lkpClient.GetTblFamilyLinkCompleted += (s, sv) => //{ // foreach (var row in sv.Result) // { // if (TransactionHeader.FamilyList != null && (TransactionHeader != null && TransactionHeader.FamilyList.All(x => x.Iserial != row.TblFamily1.Iserial))) // { // TransactionHeader.FamilyList.Add( new TblFamily().InjectFrom( row.TblFamily1) as TblFamily); // } // } //}; lkpClient.FamilyCategory_GetTblFamilyCategoryLinkCompleted += (s, sv) => { foreach (var row in sv.Result) { if (TransactionHeader.FamilyList != null && (TransactionHeader != null && TransactionHeader.FamilyList.All(x => x.Iserial != row.TblFamily1.Iserial))) { TransactionHeader.FamilyList.Add(new TblFamily().InjectFrom(row.TblFamily1) as TblFamily); } } }; lkpClient.GetTblDirectionLinkCompleted += (s, sv) => { foreach (var row in sv.Result) { if (TransactionHeader.DirectionList != null && (TransactionHeader != null && TransactionHeader.DirectionList.All(x => x.Iserial != row.TblLkpDirection1.Iserial))) { TransactionHeader.DirectionList.Add(new TblLkpDirection().InjectFrom(row.TblLkpDirection1) as TblLkpDirection); } } }; lkpClient.FamilyCategory_GetTblCategoryLinkCompleted += (s, sv) => { foreach (var row in sv.Result) { if (TransactionHeader.StyleCategoryList != null && (TransactionHeader != null && TransactionHeader.StyleCategoryList.All(x => x.Iserial != row.TblStyleCategory1.Iserial))) { TransactionHeader.StyleCategoryList.Add(new TblStyleCategory().InjectFrom(row.TblStyleCategory1) as TblStyleCategory); } } }; //Client.GetTblSalesOrderColorThemeCompleted += (s, sv) => //{ // foreach (var row in sv.Result) // { // if (TransactionHeader.ThemeList != null && (TransactionHeader != null && TransactionHeader.ThemeList.All(x => x.Iserial != row.Iserial))) // { // TransactionHeader.ThemeList.Add(row); // } // } //}; Client.GetAllBrandsCompleted += (s, ev) => { Brands = ev.Result; }; Client.GetAllBrandsAsync(LoggedUserInfo.Iserial); Client.GetAllSeasonsCompleted += (s, ev) => { Seasons = ev.Result; }; Client.GetAllSeasonsAsync(); lkpClient.GetTblBrandSectionLinkCompleted += (s, ev) => { foreach (var row in ev.Result) { if (Brandsection.All(x => x.Iserial != row.TblLkpBrandSection)) { Brandsection.Add(row.TblLkpBrandSection1); } } }; Client.DeleteTblBrandBudgetDetailCompleted += (s, ev) => { if (ev.Error != null) { throw ev.Error; } var oldrow = TransactionHeader.DetailsList.FirstOrDefault(x => x.Iserial == ev.Result); if (oldrow != null) { TransactionHeader.DetailsList.Remove(oldrow); } }; Client.UpdateOrInsertTblBrandBudgetDetailCompleted += (x, y) => { var savedRow = (TblBrandBudgetDetailViewModel)TransactionHeader.DetailsList.GetItemAt(y.outindex); if (savedRow != null) { savedRow.InjectFrom(y.Result); if (TransactionHeader.Iserial == 0) { TransactionHeader.Iserial = y.Result.TblBrandBudgetHeader; } } }; Client.GetTblBrandBudgetDetailCompleted += (s, sv) => { foreach (var row in sv.Result) { var newrow = new TblBrandBudgetDetailViewModel(); newrow.InjectFrom(row); if (row.TblFamily1 != null) { newrow.FamilyPerRow = row.TblFamily1; if (TransactionHeader != null && TransactionHeader.FamilyList.All(x => x.Iserial != row.TblFamily1.Iserial)) { TransactionHeader.FamilyList.Add(newrow.FamilyPerRow); } } if (row.TblLkpDirection1 != null) { newrow.DirectionPerRow = row.TblLkpDirection1; if (TransactionHeader != null && TransactionHeader.DirectionList.All(x => x.Iserial != row.TblLkpDirection1.Iserial)) { TransactionHeader.DirectionList.Add(newrow.DirectionPerRow); } } if (row.TblStyleCategory1 != null) { newrow.StyleCategoryPerRow = row.TblStyleCategory1; if (TransactionHeader != null && TransactionHeader.StyleCategoryList.All(x => x.Iserial != row.TblStyleCategory1.Iserial)) { TransactionHeader.StyleCategoryList.Add(newrow.StyleCategoryPerRow); } } //if (row.TblSalesOrderColorTheme1 != null) //{ // newrow.ThemePerRow = row.TblSalesOrderColorTheme1; // if (TransactionHeader != null && TransactionHeader.ThemeList.All(x => x.Iserial != row.TblSalesOrderColorTheme)) // { // TransactionHeader.ThemeList.Add(newrow.ThemePerRow); // } //} newrow.FactoryGroupPerRow = new GenericTable(); if (row.TblFactoryGroup1 != null) { newrow.FactoryGroupPerRow.InjectFrom(row.TblFactoryGroup1); } TransactionHeader.DetailsList.Add(newrow); } TransactionHeader.AddTotalRow(); }; Client.GetTblBrandBudgetHeaderCompleted += (y, v) => { foreach (var row in v.Result) { Loading = false; var newrow = new TblBrandBudgetsHeaderViewModel(); newrow.InjectFrom(row); newrow.BrandSectionPerRow = row.TblLkpBrandSection1; newrow.SeasonPerRow = row.TblLkpSeason1; MainRowList.Add(newrow); } }; Client.UpdateOrInsertTblBrandBudgetHeaderCompleted += (s, x) => { if (x.Error == null) { TransactionHeader.InjectFrom(x.Result); try { foreach (var item in TransactionHeader.DetailsList) { item.TblBrandBudgetHeader = x.Result.Iserial; // Client.UpdateOrInsertTblBrandBudgetDetailAsync(item, true, // LoggedUserInfo.Iserial); TblBrandBudgetDetail myitem = new TblBrandBudgetDetail(); myitem.Amount = item.Amount; myitem.NoOfColors = item.NoOfColors; myitem.NoOfStyles = item.NoOfStyles; myitem.Retail = item.Retail; // myitem.TblSalesOrderColorTheme = item.TblSalesOrderColorTheme; // myitem.PaymentDate = item.PaymentDate; myitem.Qty = item.Qty; myitem.TblBrandBudgetHeader = x.Result.Iserial; myitem.TblFamily = item.TblFamily; myitem.TblLkpDirection = item.TblLkpDirection; myitem.TblStyleCategory = item.TblStyleCategory; Client.SaveBrandBudgetAsync(myitem, LoggedUserInfo.Iserial); } MessageBox.Show("All items have been saved successfully.", "Success", MessageBoxButton.OK); } catch (Exception) { MessageBox.Show("Couldn't save listed items..", "Failed", MessageBoxButton.OK); } } else { MessageBox.Show(x.Error.Message); } Loading = false; //TransactionHeader.InjectFrom(x.Result); }; Client.DeleteTblBrandBudgetHeaderCompleted += (w, k) => { Loading = false; TransactionHeader.InjectFrom(new TblBrandBudgetsHeaderViewModel()); }; } }