private void TblPeriodLineDataGrid_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { TblLedgerMainDetailViewModel oldrow = null; if (e.RemovedItems.Count != 0) { oldrow = e.RemovedItems[0] as TblLedgerMainDetailViewModel; } if (oldrow != null && ((oldrow.CrAmount == 0 || oldrow.CrAmount == null) && (oldrow.DrAmount == 0 || oldrow.DrAmount == null))) { if (!_viewModel.AllowUpdate) { _viewModel.SelectedDetailRow = oldrow; return; } } if (_viewModel.SelectedDetailRow != null && !(_viewModel.SelectedMainRow.DetailsList.Count == 1 && _viewModel.SelectedDetailRow.CrAmount == 0 && _viewModel.SelectedDetailRow.DrAmount == 0)) { CalcTotal(); } _viewModel.SaveDetailRow(); foreach (var variable in e.RemovedItems) { _viewModel.SaveOldDetailRow(variable as TblLedgerMainDetailViewModel); } }
public DepreciationViewModel() { if (!IsDesignTime) { GetItemPermissions("Depreciation"); GetCustomePermissions("Depreciation"); Glclient = new GlServiceClient(); Glclient.GetTblRetailCurrencyCompleted += (s, sv) => { CurrencyList = sv.Result; }; Glclient.GetTblRetailCurrencyAsync(0, int.MaxValue, "It.Iserial", null, null, LoggedUserInfo.DatabasEname); var depreciationMethodClient = new GlServiceClient(); depreciationMethodClient.GetGenericCompleted += (s, sv) => { DepreciationMethodList = sv.Result; }; depreciationMethodClient.GetGenericAsync("TblDepreciationMethod", "%%", "%%", "%%", "Iserial", "ASC", LoggedUserInfo.DatabasEname); MainRowList = new SortableCollectionView <TblDepreciationTransactionHeaderViewModel>(); SelectedMainRow = new TblDepreciationTransactionHeaderViewModel(); Glclient.GetTblDepreciationTransactionHeaderCompleted += (s, sv) => { foreach (var row in sv.Result) { var newrow = new TblDepreciationTransactionHeaderViewModel(); newrow.InjectFrom(row); MainRowList.Add(newrow); } Loading = false; FullCount = sv.fullCount; if (MainRowList.Any() && (SelectedMainRow == null)) { SelectedMainRow = MainRowList.FirstOrDefault(); } }; Glclient.GetTblDepreciationTransactionDetailCompleted += (s, sv) => { foreach (var row in sv.Result) { SelectedMainRow.DetailList.Add(row); } Loading = false; }; //Glclient.GetLockupFromPreTransactionCompleted += (s, sv) => //{ // foreach (var row in sv.Result) // { // if (SelectedMainRow.DetailsList.All(x => x.TblDepreciationTransactionDetail1 != row.Iserial)) // { // var newrow = new TblDepreciationTransactionDetailViewModel(); // newrow.InjectFrom(row); // newrow.ChequePerRow = new TblBankCheque(); // newrow.Iserial = 0; // newrow.TblDepreciationTransactionHeader = 0; // newrow.TblDepreciationTransactionDetail1 = row.Iserial; // if (row.TblBankCheque1 != null) newrow.ChequePerRow.InjectFrom(row.TblBankCheque1); // newrow.TblJournalAccountTypePerRow = new GenericTable(); // if (row.TblJournalAccountType != null) // newrow.TblJournalAccountTypePerRow.InjectFrom(row.TblJournalAccountType); // newrow.TblJournalAccountType1PerRow = new GenericTable(); // if (row.TblJournalAccountType1 != null) // newrow.TblJournalAccountType1PerRow.InjectFrom(row.TblJournalAccountType1); // newrow.EntityDetail1TblJournalAccountType = row.EntityDetail1TblJournalAccountType; // newrow.EntityDetail2TblJournalAccountType = row.EntityDetail2TblJournalAccountType; // newrow.EntityPerRow = // sv.entityList.FirstOrDefault( // x => x.TblJournalAccountType == row.EntityDetail1TblJournalAccountType // && x.Iserial == row.EntityDetail1); // newrow.OffsetEntityPerRow = // sv.entityList.FirstOrDefault( // x => x.TblJournalAccountType == row.EntityDetail2TblJournalAccountType // && x.Iserial == row.EntityDetail2); // newrow.Saved = true; // SelectedMainRow.DetailsList.Add(newrow); // } // } // Loading = false; // SelectedDetailRow = SelectedMainRow.DetailsList.FirstOrDefault(); //}; Glclient.UpdateOrInsertTblDepreciationTransactionHeaderCompleted += (s, ev) => { if (ev.Error != null) { MessageBox.Show(ev.Error.Message); } try { MainRowList.ElementAt(ev.outindex).InjectFrom(ev.Result); } catch (Exception) { } Loading = false; }; Glclient.DeleteTblDepreciationTransactionHeaderCompleted += (s, ev) => { if (ev.Error != null) { MessageBox.Show(ev.Error.Message); } var oldrow = MainRowList.FirstOrDefault(x => x.Iserial == ev.Result); if (oldrow != null) { MainRowList.Remove(oldrow); } if (!MainRowList.Any()) { AddNewMainRow(false); } }; Glclient.GetTblLedgerDetailForDepreciationCompleted += (s, sv) => { foreach (var row in sv.Result) { var newrow = new TblLedgerMainDetailViewModel { CurrencyPerRow = new TblCurrencyTest() }; newrow.CurrencyPerRow.InjectFrom(row.TblCurrency1); if (row.TblBankTransactionType1 != null) { newrow.BankTransactionTypePerRow = new GenericTable(); newrow.BankTransactionTypePerRow.InjectFrom(row.TblBankTransactionType1); } newrow.MethodOfPaymentPerRow = row.TblMethodOfPayment1; newrow.JournalAccountTypePerRow = new GenericTable(); newrow.OffsetAccountTypePerRow = new GenericTable(); if (row.TblJournalAccountType1 != null) { newrow.JournalAccountTypePerRow.InjectFrom(row.TblJournalAccountType1); } if (row.TblJournalAccountType2 != null) { newrow.OffsetAccountTypePerRow.InjectFrom(row.TblJournalAccountType2); } newrow.EntityPerRow = sv.entityList.FirstOrDefault(x => x.TblJournalAccountType == row.TblJournalAccountType && x.Iserial == row.EntityAccount); newrow.OffsetEntityPerRow = sv.entityList.FirstOrDefault(x => x.TblJournalAccountType == row.OffsetAccountType && x.Iserial == row.OffsetEntityAccount); newrow.InjectFrom(row); if (newrow.DrOrCr == true) { if (row.Amount != null) { newrow.DrAmount = row.Amount; } } else { if (row.Amount != null) { newrow.CrAmount = row.Amount; } } if (row.TblBankCheque1 != null) { newrow.ChequePerRow = row.TblBankCheque1; } newrow.TransactionExists = sv.TransactionExist.FirstOrDefault(x => x.Key == newrow.Iserial).Value; if (row.TblAccount != null) { newrow.AccountPerRow = new TblAccount { Code = row.TblAccount.Code, Iserial = row.TblAccount.Iserial, Ename = row.TblAccount.Ename, Aname = row.TblAccount.Aname }; } TblLedgerDetailsList.Add(newrow); } Loading = false; DetailFullCount = sv.fullCount; }; } }