public JsonResult CreateTenderQuotation(IEnumerable <VMTenderItem> TenderItems, string TNo, string TDate, string Specs, string Remarks)
        {
            var result = new
            {
                flag    = false,
                message = "Requisition saving error !"
            };
            var flag       = false;
            var TenderDate = DateTime.ParseExact(TDate, "dd/mm/yyyy", CultureInfo.CurrentCulture);
            var tenderList = db.Proc_TenderMas.Where(x => x.TNo.Trim() == TNo.Trim()).ToList();

            if (tenderList.Count == 0)
            {
                flag = false;
                Proc_TenderMas master = new Proc_TenderMas();

                master.TNo        = TNo;
                master.TDate      = TenderDate;
                master.Specs      = Specs;
                master.Remarks    = Remarks;
                master.isApproved = "N";
                db.Proc_TenderMas.Add(master);

                flag = db.SaveChanges() > 0;
                //var getReqId = db.Proc_RequisitionMas.SingleOrDefault(x => x.Rcode == ReqNo);
                var TenderMasterId = master.Id;

                foreach (var item in TenderItems)
                {
                    Proc_TenderDet detail = new Proc_TenderDet();
                    detail.Proc_TenderMasId      = TenderMasterId;
                    detail.Proc_RequisitionDetId = item.Proc_RequisitionDetId;
                    detail.VendorId = item.VendorId;
                    //detail.TQDate = item.TQDate;
                    if (item.TQDate == null)
                    {
                        detail.TQDate = null;
                    }
                    else
                    {
                        //detail.ChallanDate = DateTime.ParseExact(item.ChallanDate, "dd/mm/yyyy", CultureInfo.CurrentCulture);
                        detail.TQDate = DateTime.ParseExact(item.TQDate, "dd/mm/yyyy", CultureInfo.CurrentCulture);
                    }
                    detail.TQNo    = item.TQNo;
                    detail.TQPrice = item.TQPrice;
                    detail.Status  = item.Status;

                    db.Proc_TenderDet.Add(detail);
                    db.SaveChanges();
                }
            }

            if (flag == true)
            {
                result = new
                {
                    flag    = true,
                    message = "Save Successful!"
                };
            }


            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public JsonResult ApproveTender(IEnumerable <VMTenderItem> TenderItems, int TenderMasId, string isApproved)
        {
            var flag   = false;
            var result = new
            {
                flag    = false,
                message = "Tender approve error !"
            };

            var master = db.Proc_TenderMas.Find(TenderMasId);

            master.isApproved      = isApproved;
            db.Entry(master).State = EntityState.Modified;
            flag = db.SaveChanges() > 0;

            //var TMasId = master.Id;

            if (flag)
            {
                foreach (var item in TenderItems)
                {
                    var check = db.Proc_TenderDet.FirstOrDefault(x => x.Proc_TenderMasId == TenderMasId && x.Proc_RequisitionDetId == item.Proc_RequisitionDetId && x.VendorId == item.VendorId);
                    //var check = db.Proc_TenderDet.FirstOrDefault(x => x.Id==item.TenderDetailId);
                    if (check == null)
                    {
                        Proc_TenderDet detail = new Proc_TenderDet();
                        detail.Proc_TenderMasId      = TenderMasId;
                        detail.Proc_RequisitionDetId = item.Proc_RequisitionDetId;
                        detail.VendorId = item.VendorId;
                        if (item.TQDate == null)
                        {
                            detail.TQDate = null;
                        }
                        else
                        {
                            detail.TQDate = DateTime.ParseExact(item.TQDate, "dd/MM/yyyy", CultureInfo.CurrentCulture);
                        }
                        //detail.TQDate = item.TQDate;
                        detail.TQNo            = item.TQNo;
                        detail.TQPrice         = item.TQPrice;
                        detail.Status          = item.Status;
                        db.Entry(detail).State = EntityState.Added;
                        db.SaveChanges();
                    }
                    else
                    {
                        var Proc_TenderDet_Id = db.Proc_TenderDet.FirstOrDefault(x => x.Proc_RequisitionDetId == item.Proc_RequisitionDetId && x.Proc_TenderMasId == TenderMasId && x.VendorId == item.VendorId);
                        var getItem           = db.Proc_TenderDet.Find(Proc_TenderDet_Id.Id);
                        if (item.TQDate == null)
                        {
                            getItem.TQDate = null;
                        }
                        else
                        {
                            getItem.TQDate = DateTime.ParseExact(item.TQDate, "dd/MM/yyyy", CultureInfo.CurrentCulture);
                        }
                        //getItem.TQDate = item.TQDate;
                        getItem.TQNo    = item.TQNo;
                        getItem.TQPrice = item.TQPrice;
                        getItem.Status  = item.Status;

                        db.Entry(getItem).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
            }

            if (flag == true)
            {
                result = new
                {
                    flag    = true,
                    message = "Approve Successful!"
                };
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 3
0
        public JsonResult EditTender(IEnumerable <VMTenderItem> TenderItems, int?[] DeleteItems, int TenderId, string TNo, string TDate, string Specs, string TenderRemarks)
        {
            var result = new
            {
                flag    = false,
                message = "Tender saving error !"
            };

            if (DeleteItems != null)
            {
                foreach (var i in DeleteItems)
                {
                    var delteItem = db.Proc_TenderDet.Find(i);
                    db.Proc_TenderDet.Remove(delteItem);
                    db.SaveChanges();
                }
            }

            using (var dbContextTransaction = db.Database.BeginTransaction())
            {
                try
                {
                    var flag   = false;
                    var master = db.Proc_TenderMas.Find(TenderId);
                    master.TNo             = TNo;
                    master.TDate           = DateTime.ParseExact(TDate, "dd/MM/yyyy", CultureInfo.CurrentCulture);
                    master.Specs           = Specs;
                    master.Remarks         = TenderRemarks;
                    master.isApproved      = "N";
                    db.Entry(master).State = EntityState.Modified;
                    flag = db.SaveChanges() > 0;
                    var TenderMasId = master.Id;

                    if (flag)
                    {
                        foreach (var item in TenderItems)
                        {
                            //var check = db.Proc_TenderDet.FirstOrDefault(x => x.Proc_TenderMasId == TenderMasId && x.Proc_RequisitionDetId == item.Proc_RequisitionDetId && x.VendorId == item.VendorId);

                            var check = db.Proc_TenderDet.SingleOrDefault(x => x.Id == item.TenderDetailId);

                            if (check == null)
                            {
                                Proc_TenderDet detail = new Proc_TenderDet();
                                detail.Proc_TenderMasId      = TenderMasId;
                                detail.Proc_RequisitionDetId = item.Proc_RequisitionDetId;
                                detail.VendorId = item.VendorId;
                                if (item.TQDate == null)
                                {
                                    detail.TQDate = null;
                                }
                                else
                                {
                                    detail.TQDate = DateTime.ParseExact(item.TQDate, "dd/MM/yyyy", CultureInfo.CurrentCulture);
                                }
                                //detail.TQDate = item.TQDate;
                                detail.TQNo            = item.TQNo;
                                detail.TQPrice         = item.TQPrice;
                                detail.Status          = item.Status;
                                db.Entry(detail).State = EntityState.Added;
                                db.SaveChanges();
                            }
                            else
                            {
                                //var Proc_TenderDet_Id = db.Proc_TenderDet.FirstOrDefault(x => x.Proc_RequisitionDetId == item.Proc_RequisitionDetId && x.Proc_TenderMasId == TenderMasId);
                                //var getItem = db.Proc_TenderDet.Find(Proc_TenderDet_Id.Id);
                                var getItem = db.Proc_TenderDet.Find(item.TenderDetailId);
                                if (item.TQDate == null)
                                {
                                    getItem.TQDate = null;
                                }
                                else
                                {
                                    getItem.TQDate = DateTime.ParseExact(item.TQDate, "dd/MM/yyyy", CultureInfo.CurrentCulture);
                                }
                                //getItem.TQDate = item.TQDate;
                                getItem.Proc_RequisitionDetId = item.Proc_RequisitionDetId;

                                if (getItem.VendorId != item.VendorId)
                                {
                                    var vendorCheck = (from purMas in db.Proc_PurchaseOrderMas
                                                       join tenderDet in db.Proc_TenderDet on purMas.VendorId equals tenderDet.VendorId
                                                       where tenderDet.Id == item.TenderDetailId
                                                       select tenderDet).ToList();

                                    if (vendorCheck.Count == 0)
                                    {
                                        getItem.VendorId = item.VendorId;
                                    }
                                    else
                                    {
                                        result = new
                                        {
                                            flag    = false,
                                            message = "PO has been created against this vendor!"
                                        };
                                        return(Json(result, JsonRequestBehavior.AllowGet));
                                    }
                                }
                                //getItem.VendorId = item.VendorId;
                                getItem.TQNo    = item.TQNo;
                                getItem.TQPrice = item.TQPrice;
                                getItem.Status  = item.Status;

                                db.Entry(getItem).State = EntityState.Modified;
                                db.SaveChanges();
                            }
                        }
                    }

                    dbContextTransaction.Commit();

                    if (flag == true)
                    {
                        result = new
                        {
                            flag    = true,
                            message = "Save Successful!"
                        };
                    }
                }
                catch (Exception ex)
                {
                    dbContextTransaction.Rollback();

                    result = new
                    {
                        flag    = false,
                        message = ex.Message
                    };
                }
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }