private void DuplicateNote_Execute(object sender, SimpleActionExecuteEventArgs e) { if (!ObjectSpace.IsModified) { genCon.showMsg("Error", "Please edit the item 1st.", InformationType.Error); return; } if (((ListView)View).SelectedObjects.Count != 1) { genCon.showMsg("Error", "Only 1 record to be duplicated at once.", InformationType.Error); } else { int minoid = 0; foreach (ClaimTrxDetailNotes dtl in ((ListView)View).CollectionSource.List) { if (dtl.Oid < minoid) { minoid = dtl.Oid - 1; } } foreach (ClaimTrxDetailNotes dtl in ((ListView)View).SelectedObjects) { ClaimTrxDetailNotes newdtl = ObjectSpace.CreateObject <ClaimTrxDetailNotes>(); genCon.duplicatedetailnote(ref newdtl, dtl, ObjectSpace); newdtl.Oid = (dtl.ClaimTrxDetail.Oid < 0 ? dtl.ClaimTrxDetail.Oid * 100 : dtl.ClaimTrxDetail.Oid * -100) + minoid; newdtl.IsDuplicated = true; ((ListView)View).CollectionSource.Add(newdtl); } genCon.showMsg("Success", "Item duplicated.", InformationType.Success); } }
private void Controller_ObjectCreated(object sender, ObjectCreatedEventArgs e) { ListView lv = ((ListView)View); if (lv.CollectionSource is PropertyCollectionSource) { PropertyCollectionSource collectionSource = (PropertyCollectionSource)lv.CollectionSource; if (collectionSource.MasterObject != null) { int minvalue = -1; int comparevalue = 0; if (View.ObjectTypeInfo.Type == typeof(ClaimTrxDetails)) { if (collectionSource.MasterObjectType == typeof(ClaimTrxs)) { ClaimTrxs masterobject = (ClaimTrxs)collectionSource.MasterObject; ClaimTrxDetails currentobject = (ClaimTrxDetails)e.CreatedObject; if (masterobject.Currency != null) { currentobject.Currency = currentobject.Session.GetObjectByKey <Currencies>(masterobject.Currency.Oid); } currentobject.FCRate = masterobject.FCRate; #region assign oid if (masterobject.ClaimTrxDetail.Count > 0) { comparevalue = masterobject.ClaimTrxDetail.Min(pp => pp.Oid); } if (comparevalue <= minvalue) { minvalue = comparevalue - 1; } currentobject.Oid = minvalue; #endregion } } if (View.ObjectTypeInfo.Type == typeof(ClaimTrxDetailNotes)) { if (collectionSource.MasterObjectType == typeof(ClaimTrxDetails)) { ClaimTrxDetails masterobject = (ClaimTrxDetails)collectionSource.MasterObject; ClaimTrxDetailNotes currentobject = (ClaimTrxDetailNotes)e.CreatedObject; if (masterobject.Currency != null) { currentobject.Currency = currentobject.Session.GetObjectByKey <Currencies>(masterobject.Currency.Oid); currentobject.FCRate = masterobject.FCRate; } else if (masterobject.ClaimTrx != null && masterobject.ClaimTrx.Currency != null) { currentobject.Currency = currentobject.Session.GetObjectByKey <Currencies>(masterobject.ClaimTrx.Currency.Oid); currentobject.FCRate = masterobject.ClaimTrx.FCRate; } else { currentobject.FCRate = masterobject.FCRate; } #region assign oid if (masterobject.ClaimTrxDetailNote.Count > 0) { comparevalue = masterobject.ClaimTrxDetailNote.Min(pp => pp.Oid); } if (comparevalue <= minvalue) { minvalue = comparevalue - 1; } currentobject.Oid = (masterobject.Oid < 0? masterobject.Oid * 100: masterobject.Oid * -100) + minvalue; #endregion } } if (View.ObjectTypeInfo.Type == typeof(ClaimTrxItems)) { if (collectionSource.MasterObjectType == typeof(ClaimTrxs)) { ClaimTrxs masterobject = (ClaimTrxs)collectionSource.MasterObject; ClaimTrxItems currentobject = (ClaimTrxItems)e.CreatedObject; if (masterobject.Currency != null) { currentobject.Currency = currentobject.Session.GetObjectByKey <Currencies>(masterobject.Currency.Oid); } currentobject.FCRate = masterobject.FCRate; #region assign oid if (masterobject.ClaimTrxItem.Count > 0) { comparevalue = masterobject.ClaimTrxItem.Min(pp => pp.Oid); } if (comparevalue <= minvalue) { minvalue = comparevalue - 1; } currentobject.Oid = minvalue; #endregion } } if (View.ObjectTypeInfo.Type == typeof(ClaimTrxMileages)) { if (collectionSource.MasterObjectType == typeof(ClaimTrxs)) { ClaimTrxs masterobject = (ClaimTrxs)collectionSource.MasterObject; ClaimTrxMileages currentobject = (ClaimTrxMileages)e.CreatedObject; #region assign oid if (masterobject.ClaimTrxMileage.Count > 0) { comparevalue = masterobject.ClaimTrxMileage.Min(pp => pp.Oid); } if (comparevalue <= minvalue) { minvalue = comparevalue - 1; } currentobject.Oid = minvalue; #endregion } } if (View.ObjectTypeInfo.Type == typeof(ClaimTrxPostDetails)) { if (collectionSource.MasterObjectType == typeof(ClaimTrxs)) { ClaimTrxs masterobject = (ClaimTrxs)collectionSource.MasterObject; ClaimTrxPostDetails currentobject = (ClaimTrxPostDetails)e.CreatedObject; #region assign oid if (masterobject.ClaimTrxPostDetail.Count > 0) { comparevalue = masterobject.ClaimTrxPostDetail.Min(pp => pp.Oid); } if (comparevalue <= minvalue) { minvalue = comparevalue - 1; } currentobject.Oid = minvalue; #endregion } } } } }