public ActionResult Modify(string DonationID, int?DonorPID, int?DonorOrgID, DateTime Date, inDonationItem[] pcrdetails)
        {
            try
            {
                string  result = "information is incomplete.";
                int     LineID = 1;
                decimal Sum    = 0;
                if (pcrdetails != null && DonationID != null && DonorPID != 0 || DonorOrgID != 0)
                {
                    var db            = new CodeFirst.CodeFirst();
                    var intDonationID = Int32.Parse(DonationID);
                    db.Configuration.LazyLoadingEnabled = true;
                    var myDonation = db.Donations.Where(a => a.DonationID == intDonationID).FirstOrDefault();

                    myDonation.DonationID = intDonationID;
                    myDonation.DateDate   = Date;
                    myDonation.DonorPID   = DonorPID;
                    myDonation.DonorOrgID = DonorOrgID;

                    foreach (var item in db.Donation_Line.Where(d => d.DonationID == intDonationID))
                    {
                        var forTotal = db.Donation_Item.Where(d => d.DonationItemID == item.DonationItemID).FirstOrDefault();
                        forTotal.TotalAmount -= item.DonationAmount;
                    }

                    //OrderLine
                    foreach (var item in pcrdetails)
                    {
                        var myItem = new CodeFirst.Donation_Line();
                        myItem.DonationID  = (int)myDonation.DonationID;
                        myItem.LineID      = LineID;
                        myItem.Description = item.Description;

                        myItem.DonationItemID = db.Donation_Item.Where(d => d.TypeID == db.Donation_Type.Where(d2 => d2.TypeName == item.ItemType).FirstOrDefault().TypeID).FirstOrDefault().DonationItemID;;
                        myItem.DonationAmount = item.DonationAmount;

                        var forTotal = db.Donation_Item.Where(di => di.DonationItemID == myItem.DonationItemID).FirstOrDefault();
                        forTotal.TotalAmount += item.DonationAmount;

                        LineID++;
                        db.Donation_Line.Add(myItem);
                    }

                    db.Donation_Line.RemoveRange(db.Donation_Line.Where(d => d.DonationID == myDonation.DonationID));

                    db.SaveChanges();
                    result = "Success! Donation updated!";
                }
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception error)
            {
                var result = "Error has occured!";

                return(Json(result, JsonRequestBehavior.AllowGet));
            }
        }
Ejemplo n.º 2
0
        public JsonResult SavePCRALL(DateTime Date, int?DonorPID, int?DonorOrgID, inDonationItem[] pcrdetails)
        {
            try
            {
                string result = "Error!information is incomplete";
                int    LineID = 1;
                if (pcrdetails != null && DonorPID != 0 || DonorOrgID != 0)
                {
                    var db = new CodeFirst.CodeFirst();
                    db.Configuration.LazyLoadingEnabled = false;
                    CodeFirst.Donation newDonation = new CodeFirst.Donation();
                    if (db.Donations.ToList().Count > 0)
                    {
                        var waduuu = db.Donations.OrderByDescending(a => a.DonationID).FirstOrDefault();

                        newDonation.DonationID = waduuu.DonationID + 1;
                        newDonation.DateDate   = Date;
                        newDonation.DonorPID   = DonorPID;
                        newDonation.DonorOrgID = DonorOrgID;
                    }
                    else
                    {
                        newDonation.DonationID = 1;
                        newDonation.DateDate   = Date;
                        newDonation.DonorPID   = DonorPID;
                        newDonation.DonorOrgID = DonorOrgID;
                    }

                    //OrderLine
                    foreach (var item in pcrdetails)
                    {
                        CodeFirst.Donation_Line tempLine = new CodeFirst.Donation_Line();
                        tempLine.DonationID  = newDonation.DonationID;
                        tempLine.Description = item.Description;
                        tempLine.LineID      = LineID;

                        var typeID = db.Donation_Type.Where(dt => dt.TypeName == item.ItemType).FirstOrDefault().TypeID;
                        var itemID = db.Donation_Item.Where(di => di.TypeID == typeID && di.Description == item.ItemName).FirstOrDefault().DonationItemID;

                        tempLine.DonationItemID = itemID;

                        var donationAmount = item.DonationAmount;
                        tempLine.DonationAmount = donationAmount;

                        var toAddTotal = db.Donation_Item.Where(di => di.DonationItemID == itemID).FirstOrDefault();
                        toAddTotal.TotalAmount += donationAmount;

                        LineID++;
                        newDonation.Donation_Line.Add(tempLine);
                    }
                    db.Donations.Add(newDonation);

                    db.SaveChanges();
                    result = "Success! Order is complete!";
                }
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception Error)
            {
                return(Json(Error.Message, JsonRequestBehavior.AllowGet));
            }
        }