// validate purchase order item
        private bool ValidatePurchaseOrderItem(PurchaseOrderItem item, PurchaseOrderMethod purchaseOrderItemMethod)
        {
            string errMsg = "";
            try
            {
                if (item != null)
                {
                    if (purchaseOrderItemMethod == PurchaseOrderMethod.Create)
                    {
                        errMsg = "Create Purchase Order item failed. Please try again later";
                        if (//(item.PurchaseOrderID != 0 || item.PurchaseOrder != null) &&
                            ((item.StationeryID != 0 && item.SpecialStationeryID == null) || ((item.StationeryID == null && item.SpecialStationeryID != 0))) &&
                            (item.QuantityToOrder != 0))
                        {
                            return true;
                        }
                    }
                    if (purchaseOrderItemMethod == PurchaseOrderMethod.Update)
                    {
                        errMsg = "Update Purchase Order item failed. Please try again later";
                        if ((item.PurchaseOrderID != 0 || item.PurchaseOrder != null) &&
                            // comment off because of current test database error
                            //      ((item.StationeryID != 0 && item.SpecialStationeryID == 0) || ((item.StationeryID == 0 && item.SpecialStationeryID != 0))) &&
                             (item.QuantityToOrder != 0))
                        {
                            return true;
                        }
                    }
                }
                return false;
            }

            catch (Exception)
            {
                throw new PurchaseOrderException(errMsg);
            }
        }
        // validate puchase order
        private bool ValidatePurchaseOrder(PurchaseOrder purchaseOrder, PurchaseOrderMethod purchaseOrderMethod)
        {
            string errMsg = "";
            try
            {
                if (purchaseOrder != null)
                {
                    if (purchaseOrderMethod == PurchaseOrderMethod.Create)
                    {
                        errMsg = "Create Purchase Order failed. Please try again later";
                        if ((purchaseOrder.AttentionTo != 0 || purchaseOrder.AttentionToUser != null) &&
                            (purchaseOrder.CreatedBy != 0 || purchaseOrder.CreatedByUser != null) &&
                            (purchaseOrder.SupplierID != 0 || purchaseOrder.Supplier != null) &&
                            (purchaseOrder.PurchaseOrderItems != null) &&
                            (purchaseOrder.DateToSupply != null && DateTime.Compare(purchaseOrder.DateToSupply, DateTime.Now) >= 0) &&
                            (purchaseOrder.DateOfOrder != null && purchaseOrder.DateOfOrder.Date.ToShortDateString() == DateTime.Now.Date.ToShortDateString()))
                        {
                            return true;
                        }
                    }
                    if (purchaseOrderMethod == PurchaseOrderMethod.Update)
                    {
                        errMsg = "Update Purchase Order failed. Please try again later";
                        if ((purchaseOrder.AttentionTo != 0 || purchaseOrder.AttentionToUser != null) &&
                            (purchaseOrder.CreatedBy != 0 || purchaseOrder.CreatedByUser != null) &&
                            (purchaseOrder.SupplierID != 0 || purchaseOrder.Supplier != null) &&
                            (purchaseOrder.PurchaseOrderItems != null) &&
                            (purchaseOrder.DateToSupply != null) &&
                            (purchaseOrder.DateOfOrder != null))
                        {
                            return true;
                        }
                    }
                }
                return false;
            }

            catch (Exception)
            {
                throw new PurchaseOrderException(errMsg);
            }
        }