/////////////////////////////////////////////////////////// // PurchaseOrderReceiptItems.cs // Implementation of Class PurchaseOrderReceiptItems // CSLA type: Editable child collection // Created on: 17-Nov-2004 // Object design: Joyce & John // Coded: John 17-Nov-2004 /////////////////////////////////////////////////////////// using System; using System.Data; using CSLA.Data; using CSLA; using System.Collections; namespace GZTW.AyaNova.BLL { /// /// Editable child collection of objects /// [Serializable] public class PurchaseOrderReceiptItems : BusinessCollectionBase { #region Constructor //Private constructor prevents direction instantiation private PurchaseOrderReceiptItems() { //Child MarkAsChild(); AllowSort=false; AllowFind=true; AllowEdit=true; AllowNew=true; AllowRemove=true; } #endregion #region Business properties and methods /// /// Retrieve PurchaseOrderReceiptItem by index /// /// Index public PurchaseOrderReceiptItem this[int Item] { get { return (PurchaseOrderReceiptItem) List[Item]; } } /// /// Retrieve PurchaseOrderReceiptItem by string containing Guid value /// public PurchaseOrderReceiptItem this[string PurchaseOrderReceiptItemID] { get { System.Guid sid = new System.Guid(PurchaseOrderReceiptItemID); foreach (PurchaseOrderReceiptItem child in List) { if(child.ID==sid) return child; } return null; } } /// /// Remove PurchaseOrderReceiptItem by passing it in /// /// public void Remove(PurchaseOrderReceiptItem obj) { List.Remove(obj); } /// /// Remove PurchaseOrderReceiptItem by string of id value /// /// public void Remove(string PurchaseOrderReceiptItemID) { System.Guid sid = new System.Guid(PurchaseOrderReceiptItemID); foreach (PurchaseOrderReceiptItem child in List) { if(child.ID==sid) List.Remove(child); } } /// /// Remove by Guid value of ID /// /// public void Remove(Guid PurchaseOrderReceiptItemID) { foreach (PurchaseOrderReceiptItem child in List) { if(child.ID==PurchaseOrderReceiptItemID) List.Remove(child); } } /// /// Add a new PurchaseOrderReceiptItem to the collection /// /// public PurchaseOrderReceiptItem Add(PurchaseOrderReceipt obj) { PurchaseOrderReceiptItem child=PurchaseOrderReceiptItem.NewItem(obj); List.Add(child); return child; } /// /// Checks if grandchildren are dirty /// /// public bool GrandChildIsDirty() { foreach (PurchaseOrderReceiptItem child in List) { if(child.SerialNumbers.IsDirty==true) return true; } return false; } /// /// Checks if grandchildren are valid /// /// public bool GrandChildIsValid() { foreach (PurchaseOrderReceiptItem child in List) { if(child.SerialNumbers.IsValid==false) return false; } return true; } /// /// Remove empty received items (qty zero) /// /// public void RemoveZeroQuantityItems() { foreach (PurchaseOrderReceiptItem child in List) { if(child.QuantityReceived<1) List.Remove(child); } } internal ArrayList UniquePurchaseOrderGuids { get { ArrayList al=new ArrayList(); foreach (PurchaseOrderReceiptItem child in List) { if(!al.Contains(child.PurchaseOrderID)) al.Add(child.PurchaseOrderID); } return al; } } #endregion #region Contains /// /// Check if item in collection /// /// public bool Contains(PurchaseOrderReceiptItem obj) { foreach (PurchaseOrderReceiptItem child in List) { if(child.Equals(obj)) return true; } return false; } /// /// Check if item in collection by string of ID value /// /// public bool Contains(string PurchaseOrderReceiptItemID) { System.Guid sid = new System.Guid(PurchaseOrderReceiptItemID); foreach (PurchaseOrderReceiptItem child in List) { if(child.ID==sid) return true; } return false; } /// /// Check if Purchase order item in collection by ID value /// /// public bool ContainsPurchaseOrderItem(Guid PurchaseOrderItemID) { foreach (PurchaseOrderReceiptItem child in List) { if(child.PurchaseOrderItemID==PurchaseOrderItemID) return true; } return false; } /// /// Check if item in deleted collection /// /// public bool ContainsDeleted(PurchaseOrderReceiptItem obj) { foreach (PurchaseOrderReceiptItem child in deletedList) { if(child.Equals(obj)) return true; } return false; } /// /// Check if item in deleted collection by string of ID value /// /// public bool ContainsDeleted(string PurchaseOrderReceiptItemID) { System.Guid sid = new System.Guid(PurchaseOrderReceiptItemID); foreach (PurchaseOrderReceiptItem child in deletedList) { if(child.ID==sid) return true; } return false; } #endregion #region Static methods /// /// NewItems /// /// internal static PurchaseOrderReceiptItems NewItems() { return new PurchaseOrderReceiptItems(); } /// /// GetItems /// /// /// internal static PurchaseOrderReceiptItems GetItems(SafeDataReader dr) { PurchaseOrderReceiptItems col = new PurchaseOrderReceiptItems(); col.Fetch(dr); return col; } #endregion #region DAL DATA ACCESS /// /// Fetch children /// /// Populated data reader private void Fetch(SafeDataReader dr) { while(dr.Read()) { List.Add(PurchaseOrderReceiptItem.GetItem(dr)); } } /// /// Update children /// /// /// internal void Update(PurchaseOrderReceipt obj,IDbTransaction tr) { //update (thus deleting) any deleted child objects foreach (PurchaseOrderReceiptItem child in deletedList) { child.Update(obj,tr); } //Now that they are deleted remove them from memory deletedList.Clear(); foreach (PurchaseOrderReceiptItem child in List) { child.Update(obj,tr); } } #endregion }//end PurchaseOrderReceiptItems }//end namespace GZTW.AyaNova.BLL