Esempio n. 1
0
        private bool Validate(out Dictionary <string, string> valErrors)
        {
            valErrors = new Dictionary <string, string>();
            if (CapitalRequestID <= 0)
            {
                valErrors.Add("CapitalRequestID", "Capital Request ID is required.");
            }

            if (VendorID == 0 && String.IsNullOrWhiteSpace(VendorName))
            {
                valErrors.Add("Vendor", "A vendor is required.");
            }


            if (QuoteBlobID <= 0)
            {
                valErrors.Add("Quote", "A quote must be attached to the bid. ");
            }

            if (BidAmount <= 0)
            {
                valErrors.Add("Quoted Price", "Quoted Price is required and must be greater than 0.");
            }

            if (VendorContactPhone != null && !VendorContactPhone.IsValid())
            {
                valErrors.Add("Vendor Phone", "Vendor Phone is not formatted correctly.");
            }

            return(valErrors.Count == 0);
        }
Esempio n. 2
0
        public void Save(string userID)
        {
            try
            {
                Dictionary <string, string> valErrors = new Dictionary <string, string>();
                if (!Validate(out valErrors))
                {
                    throw new RequisitionNotValidException("Capital Request Bid is not valid", valErrors);
                }

                Enums.HistoryType ht;
                CapitalRequestBid originalBid = null;

                using (PurchasingContext context = ContextHelper.GetDBContext())
                {
                    CapitalRequestBidData data = null;



                    if (BidID > 0)
                    {
                        ht          = Enums.HistoryType.UPDATE;
                        data        = context.CapitalRequestBidDatas.FirstOrDefault(b => b.bid_id == BidID);
                        originalBid = new CapitalRequestBid(data);
                    }
                    else
                    {
                        ht   = Enums.HistoryType.ADD;
                        data = new CapitalRequestBidData();
                    }

                    data.capital_request_id = CapitalRequestID;

                    if (VendorID > 0)
                    {
                        data.vendor_id   = VendorID;
                        data.vendor_name = null;
                    }
                    else
                    {
                        data.vendor_id   = null;
                        data.vendor_name = VendorName;
                    }

                    if (String.IsNullOrWhiteSpace(VendorContactName))
                    {
                        data.vendor_contact_name = null;
                    }
                    else
                    {
                        data.vendor_contact_name = VendorContactName;
                    }

                    if (VendorContactPhone == null || String.IsNullOrWhiteSpace(VendorContactPhone.Number))
                    {
                        data.vendor_contact_phone = null;
                    }
                    else
                    {
                        data.vendor_contact_phone = VendorContactPhone.ToArenaFormat();
                    }


                    if (String.IsNullOrWhiteSpace(VendorContactEmail))
                    {
                        data.vendor_contact_email = null;
                    }
                    else
                    {
                        data.vendor_contact_email = VendorContactEmail;
                    }

                    data.quote_blob_id   = QuoteBlobID;
                    data.bid_amount      = BidAmount;
                    data.active          = Active;
                    data.organization_id = 1;
                    data.modified_by     = userID;
                    data.date_modified   = DateTime.Now;

                    if (BidID == 0)
                    {
                        data.created_by   = userID;
                        data.date_created = DateTime.Now;

                        context.CapitalRequestBidDatas.InsertOnSubmit(data);
                    }

                    context.SubmitChanges();
                    Load(data);
                    SaveHistory(ht, originalBid, userID);
                }
            }
            catch (Exception ex)
            {
                throw new RequisitionException("An error occurred while saving a bid.", ex);
            }
        }