using System; using System.Data; using GZTW.Data; using CSLA.Data; using CSLA; namespace GZTW.AyaNova.BLL { #pragma warning disable 1591 /// /// Read only list of objects representing objects /// ready to be received for a particular vendor /// [Serializable] public class PurchaseOrderListReceivableForVendor : ReadOnlyCollectionBase { #region Data structure /// /// Properties /// [Serializable] public struct PurchaseOrderListReceivableForVendorInfo { internal Guid mID; internal int mPONumber; internal string mReferenceNumber; internal DateTime mOrderedDate; internal SmartDate mExpectedReceiveDate; public Guid ID { get { return mID; } } public int LT_PurchaseOrder_Label_PONumber { get { return mPONumber; } } public string LT_PurchaseOrder_Label_ReferenceNumber { get { return mReferenceNumber; } } public DateTime LT_PurchaseOrder_Label_OrderedDate { get { return mOrderedDate; } } public object LT_PurchaseOrder_Label_ExpectedReceiveDate { get { return mExpectedReceiveDate.DBValue; } } /// /// /// /// public bool Equals(PurchaseOrderListReceivableForVendorInfo obj) { return this.mID.Equals(obj.mID); } }//end PurchaseOrderListReceivableForVendorInfo #endregion #region Constructor /// /// /// protected PurchaseOrderListReceivableForVendor() { // AllowSort=false; // AllowFind=true; // AllowEdit=false; // AllowNew=false; // AllowRemove=false; } #endregion #region Business properties and methods /// /// Get item by index /// /// public PurchaseOrderListReceivableForVendorInfo this[int Item] { get { return (PurchaseOrderListReceivableForVendorInfo) List[Item]; } } /// /// Returns display text that matches passed in itemid value /// /// public string this[Guid ItemID] { get { foreach (PurchaseOrderListReceivableForVendorInfo child in List) { if(child.mID==ItemID) return child.ToString(); } return "Missing: "+ItemID.ToString(); } } #endregion #region contains /// /// Check if item in collection /// /// public bool Contains(PurchaseOrderListReceivableForVendorInfo obj) { foreach (PurchaseOrderListReceivableForVendorInfo child in List) { if(child.Equals(obj)) return true; } return false; } #endregion #region Static methods /// /// Get all items for vendor /// /// /// list of objects public static PurchaseOrderListReceivableForVendor GetList(Guid Vendor) { return (PurchaseOrderListReceivableForVendor) DataPortal.Fetch(new Criteria(Vendor)); } /// /// Return an empty list /// used for initializing grid /// /// public static PurchaseOrderListReceivableForVendor GetEmptyList() { return new PurchaseOrderListReceivableForVendor(); } #endregion #region DAL DATA ACCESS /// /// protected override void DataPortal_Fetch(object Criteria) { Criteria crit = (Criteria)Criteria; SafeDataReader dr = null; try { dr=DBUtil.GetReaderFromSQLString( //************************************************************ "SELECT aID, aPONumber, aReferenceNumber, " + "aOrderedDate, aExpectedReceiveDate FROM aPurchaseOrder " + "WHERE (aStatus = 2 OR aStatus = 3) AND (aVendorID " + "= @ID) " + "ORDER BY aOrderedDate",crit.Vendor //************************************************************ ); while(dr.Read()) { //******************************************* PurchaseOrderListReceivableForVendorInfo info=new PurchaseOrderListReceivableForVendorInfo(); info.mID=dr.GetGuid("aID"); info.mPONumber=dr.GetInt32("aPONumber"); info.mReferenceNumber=dr.GetString("aReferenceNumber"); info.mOrderedDate=DBUtil.ToLocal(dr.GetDateTime("aOrderedDate")); info.mExpectedReceiveDate=DBUtil.ToLocal(dr.GetSmartDate("aExpectedReceiveDate")); InnerList.Add(info); //******************************************* } } finally { if(dr!=null) dr.Close(); } } #endregion #region criteria /// /// Criteria for identifying existing object /// [Serializable] private class Criteria { public Guid Vendor; public Criteria( Guid _Vendor) { Vendor=_Vendor; } } #endregion }//end PurchaseOrderListReceivableForVendor #pragma warning restore 1591 }//end namespace GZTW.AyaNova.BLL