예제 #1
0
        public ActionResult RemoveRFQ(int?id)
        {
            using (BTCEntities db = new BTCEntities())
            {
                RFQ rfqlist = db.RFQ.Where(a => a.ID == id).FirstOrDefault();

                if (ModelState.IsValid)
                {
                    rfqlist.IsDeleted = true;

                    db.RFQ.Attach(rfqlist);
                    var entry = db.Entry(rfqlist);
                    entry.Property(a => a.IsDeleted).IsModified = true;
                    db.SaveChanges();
                }
                else
                {
                    var           errlist = ModelState.Values.Where(e => e.Errors.Count > 0).Select(a => a.Errors);
                    List <string> sberr   = new List <string>();
                    foreach (var item in errlist)
                    {
                        sberr.Add(item[0].ErrorMessage);
                    }
                    TempData["ErrorMessage"] = sberr.ToList();
                }

                int TravelRequestID = rfqlist.TravelRequestID.Value;

                return(RedirectToAction("RFQProcessing", new { id = TravelRequestID }));
            }
        }
예제 #2
0
    private bool retrieveEntity()
    {
        token = (Token)Session["token"];
        rfq   = rfqCRUD.readById(token.SubjectKey);
        if (rfq != null)
        {
            supplier = supplierCRUD.readById(rfq.SupplierId);
            if (supplier != null)
            {
                SessionObject soSupplier = new SessionObject();
                soSupplier.Content        = supplier;
                soSupplier.Status         = "forUpdate";
                Session["supplierObject"] = soSupplier;

                List <RFQACR> rfqACR = rfqACRCRUD.readByParentID(rfq.Id);
                rfq.RfqAcr = rfqACR;

                List <RFQEAV> rfqEAVList = rfqEAVCRUD.readByParentID(rfq.Id);
                rfq.RfqEAV = rfqEAVList;

                foreach (RFQEAV rfqEAV in rfqEAVList)
                {
                    System.Collections.Generic.List <RFQDetail> rfqDetail = rfqDetailCRUD.readByParentID(rfq.Id);
                    rfqEAV.RfqDetail = rfqDetail;
                }

                SessionObject soRFQ = new SessionObject();
                soRFQ.Content        = rfq;
                soRFQ.Status         = "forUpdate";
                Session["rfqObject"] = soRFQ;
                return(true);
            }
        }
        return(false);
    }
예제 #3
0
        public async Task <ActionResult> AddQuotation(int id)
        {
            using (BTCEntities db = new BTCEntities())
            {
                if (id <= 0)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                RFQ rFQ = await db.RFQ.Include(a => a.TravelRequests).Include(a => a.TravelAgency).Include(a => a.Users).Include(a => a.TravelRequests.Quotation).Include("Quotation.ATQuotation").Include("Quotation.HSQuotation").Include("Quotation.PCQuotation").Where(a => a.ID == id).FirstOrDefaultAsync();

                if (rFQ == null)
                {
                    return(HttpNotFound());
                }
                ViewBag.TravelAgency = db.TravelAgency.ToList();
                ViewBag.Cities       = db.City.ToList();
                ViewBag.Currencies   = db.Currency.ToList();
                ViewBag.ApprovalBy   = db.Users.ToList();
                using (EmployeeDetailsDBService EmpDBService = new EmployeeDetailsDBService("", rFQ.TravelRequests.Users1.HREmployeeID.ToString()))
                {
                    ViewBag.FullEmployeeDetails = EmpDBService.FullEmployeeDetails();
                }
                //ViewBag.fileUploader = db.AttachmentLink.Where(a => a.AttachmentFor.Contains(rFQ.TravelRequests.ApplicationNumber)).Select(x => x.Attachments).Include(a => a.AttachmentLink).Include(a => a.Users)?.ToList();
                return(View(rFQ));
            }
        }
예제 #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Control btnHome = Master.FindControl("btnHome");

        btnHome.Visible = false;


        if (Session["rfqObject"] != null)
        {
            RFQ rfqObject = (RFQ)(((SessionObject)Session["rfqObject"]).Content);
            hiddenRFQ_ID.Value = rfqObject.Id.ToString();
            if (rfqObject.Status != "PENDING" && rfqObject.Status != "IN PROGRESS")
            {
                divInfo.InnerText           = "You have already sent us your information, but you can see it as read only.";
                divButtonsTopToHide.Visible = false;
                divButtons.Visible          = false;
                //btnInstructions.Visible = false;
            }
        }
        if (!IsPostBack)
        {
            if (Session["supplierObject"] != null)
            {
                supplier = (Supplier)((SessionObject)Session["supplierObject"]).Content;
                ((SessionObject)Session["rfqObject"]).Status = "forUpdate";
                uscRfqForm.load();
                return;
            }
            exitByError("Could not load page, please try again.");
        }
    }
예제 #5
0
        private RFQ getEntityByModel(RFQModel model)
        {
            if (model == null)
            {
                return(null);
            }
            RFQ entity = new RFQ();

            entity.BuyerId   = model.BuyerId;
            entity.CloseDate = model.CloseDate;
            entity.Id        = model.Id;
            entity.RFQDate   = model.RFQDate;
            entity.RFQNo     = model.RFQNo;
            entity.SOBId     = SessionHelper.SOBId;
            entity.Status    = model.Status;

            if (model.Id == 0)
            {
                entity.CreateBy   = AuthenticationHelper.UserId;
                entity.CreateDate = DateTime.Now;
                entity.CompanyId  = AuthenticationHelper.CompanyId.Value;
            }
            else
            {
                entity.CreateBy   = model.CreateBy;
                entity.CreateDate = model.CreateDate;
                entity.CompanyId  = model.CompanyId;
            }

            entity.UpdateBy   = AuthenticationHelper.UserId;
            entity.UpdateDate = DateTime.Now;
            return(entity);
        }
예제 #6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Control btnHome = Master.FindControl("btnHome");

        btnHome.Visible = false;
        uscSupplierForm.hideFieldsForVendor();
        btnToRFQ.OnClientClick = "return validate(event);";
        if (Session["rfqObject"] != null)
        {
            RFQ rfqObject = (RFQ)(((SessionObject)Session["rfqObject"]).Content);
            if (rfqObject.Status != "PENDING" && rfqObject.Status != "IN PROGRESS")
            {
                divInfo.InnerText      = "You have already sent us your information, but you can see it as read only.";
                divButtons.Visible     = false;
                btnToRFQ.OnClientClick = "return true;";
            }
        }
        if (!IsPostBack)
        {
            if (Session["supplierObject"] != null)
            {
                supplier = (Supplier)((SessionObject)Session["supplierObject"]).Content;
                ((SessionObject)Session["supplierObject"]).Status = "forUpdate";
                uscSupplierForm.load();
                return;
            }
            exitByError("Could not load page, please try again.");
        }
    }
예제 #7
0
    public Token readByRFQ(RFQ rfq)
    {
        Token token = new Token();

        string query = "SELECT TokenKey, Token, [Subject], SubjectKey, DeadDate, Acknowledgement FROM TokenMaster " +
                       "WHERE [Subject] = 'RFQ' AND Subjectkey = @key";
        DataTable     table         = new DataTable();
        SqlConnection sqlConnection = connectionManager.getConnection();

        if (sqlConnection != null)
        {
            SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);
            sqlCommand.Parameters.AddWithValue("@key", rfq.Id);
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
            sqlDataAdapter.Fill(table);

            if (table.Rows.Count > 0)
            {
                token.Id             = long.Parse(table.Rows[0][0].ToString());
                token.TokenNumber    = table.Rows[0][1].ToString();
                token.Subject        = table.Rows[0][2].ToString();
                token.SubjectKey     = long.Parse(table.Rows[0][3].ToString());
                token.DeadDate       = DateTime.Parse(table.Rows[0][4].ToString());
                token.Acnkowledgment = table.Rows[0][5].ToString();

                sqlConnection.Dispose();
                return(token);
            }
        }
        return(null);
    }
예제 #8
0
        public ActionResult DeleteConfirmed(int id)
        {
            RFQ rFQ = db.rfq.Find(id);

            db.rfq.Remove(rFQ);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #9
0
        public async Task <ActionResult> RFQFinalPreview(int?id)
        {
            using (BTCEntities db = new BTCEntities())
            {
                ViewBag.TravelAgency = db.TravelAgency.ToList();
                ViewBag.Cities       = db.City.ToList();
                ViewBag.Currencies   = db.Currency.ToList();
                ViewBag.ApprovalBy   = db.Users.ToList();

                RFQ rfqlist = await db.RFQ.Include(a => a.TravelRequests).Include(a => a.TravelAgency).Include(a => a.Users).Where(a => a.ID == id).FirstOrDefaultAsync();

                ViewBag.fileUploader = db.AttachmentLink.Where(a => a.AttachmentFor == (rfqlist.RFQName + "Pro" + rfqlist.ProcessingSection + "Trav" + rfqlist.TravelAgencyID)).Select(x => x.Attachments).ToList();
                MasterRFQ            = rfqlist;
                if (rfqlist.ProcessingSection == (int)ProcessingSections.AT || rfqlist.ProcessingSection == (int)ProcessingSections.ATHS || rfqlist.ProcessingSection == (int)ProcessingSections.ATHSPC || rfqlist.ProcessingSection == (int)ProcessingSections.ATPC)
                {
                    ATQuotation atquot = new ATQuotation();
                    atquot.DestinationID = rfqlist.TravelRequests.PortOfDestinationID;
                    atquot.DepartureDate = rfqlist.TravelRequests.DepartureDate;
                    atquot.DepartureTime = rfqlist.TravelRequests.DepartureTime;
                    atquot.OriginID      = rfqlist.TravelRequests.PortOfOriginID;
                    atquot.ReturnDate    = rfqlist.TravelRequests.ReturnDate;
                    atquot.ReturnTime    = rfqlist.TravelRequests.ReturnTime;
                    atquot.TicketClass   = rfqlist.TravelRequests.TicketClass;
                    ViewBag.ATQuotation  = atquot;
                }
                if (rfqlist.ProcessingSection == (int)ProcessingSections.ATHS || rfqlist.ProcessingSection == (int)ProcessingSections.ATHSPC || rfqlist.ProcessingSection == (int)ProcessingSections.HS || rfqlist.ProcessingSection == (int)ProcessingSections.HSPC)
                {
                    HSQuotation hsquot = new HSQuotation();
                    hsquot.CheckInDate   = rfqlist.TravelRequests.CheckInDate;
                    hsquot.CheckInTime   = rfqlist.TravelRequests.CheckInTime;
                    hsquot.CheckOutDate  = rfqlist.TravelRequests.CheckOutDate;
                    hsquot.CheckOutTime  = rfqlist.TravelRequests.CheckOutTime;
                    hsquot.HotelCategory = rfqlist.TravelRequests.HotelCategory;
                    hsquot.HotelName     = rfqlist.TravelRequests.HotelName;
                    hsquot.RoomCategory  = rfqlist.TravelRequests.RoomCategory;
                    hsquot.RoomType      = rfqlist.TravelRequests.RoomType;
                    ViewBag.HSQuotation  = hsquot;
                }
                if (rfqlist.ProcessingSection == (int)ProcessingSections.ATHSPC || rfqlist.ProcessingSection == (int)ProcessingSections.ATPC || rfqlist.ProcessingSection == (int)ProcessingSections.HSPC || rfqlist.ProcessingSection == (int)ProcessingSections.PC)
                {
                    PCQuotation pcquot = new PCQuotation();
                    pcquot.DropOffDate      = rfqlist.TravelRequests.DropOffDate;
                    pcquot.DropoffLocation  = rfqlist.TravelRequests.DropOffLocation;
                    pcquot.DropOffTime      = rfqlist.TravelRequests.DropOffTime;
                    pcquot.PickUpDate       = rfqlist.TravelRequests.PickUpDate;
                    pcquot.PickupLocation   = rfqlist.TravelRequests.PickUpLocation;
                    pcquot.PickUpTime       = rfqlist.TravelRequests.PickUpTime;
                    pcquot.PreferredVehicle = rfqlist.TravelRequests.PreferredVehicle;
                    ViewBag.PCQuotation     = pcquot;
                }

                using (EmployeeDetailsDBService EmpDBService = new EmployeeDetailsDBService("", rfqlist.TravelRequests.Users1.HREmployeeID.ToString()))
                {
                    ViewBag.FullEmployeeDetails = EmpDBService.FullEmployeeDetails();
                }
                return(View(rfqlist));
            }
        }
예제 #10
0
        public string Update(RFQ entity)
        {
            var originalEntity = this.Context.RFQs.Find(entity.Id);

            this.Context.Entry(originalEntity).CurrentValues.SetValues(entity);
            this.Context.Entry(originalEntity).State = EntityState.Modified;
            this.Commit();
            return(entity.Id.ToString());
        }
예제 #11
0
 public ActionResult Edit([Bind(Include = "QuoteRequestNo,Size,PUDepot,SysDate,DelStreetNum,DelStreetName,DelArea,DelCity,DelCode,Instruct,price,Email")] RFQ rFQ)
 {
     if (ModelState.IsValid)
     {
         db.Entry(rFQ).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(rFQ));
 }
예제 #12
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            using (BTCEntities db = new BTCEntities())
            {
                RFQ rFQ = await db.RFQ.FindAsync(id);

                db.RFQ.Remove(rFQ);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
        }
예제 #13
0
        private void Save(RFQModel model)
        {
            RFQ entity = getEntityByModel(model);

            string result = string.Empty;

            if (entity.IsValid())
            {
                if (model.Id > 0)
                {
                    result = service.Update(entity);
                }
                else
                {
                    result = service.Insert(entity);
                }

                if (!string.IsNullOrEmpty(result))
                {
                    //var savedLines = getDetailByOrderId(Convert.ToInt64(result));
                    IList <RFQDetailModel> savedLines = service.GetAllRFQDetail(Convert.ToInt64(result)).Select(x => new RFQDetailModel(x)).ToList();
                    if (savedLines.Count() > model.RFQDetail.Count())
                    {
                        var tobeDeleted = savedLines.Take(savedLines.Count() - model.RFQDetail.Count());
                        foreach (var item in tobeDeleted)
                        {
                            service.DeleteRFQDetail(item.Id);
                        }
                        savedLines = service.GetAllRFQDetail(Convert.ToInt64(result)).Select(x => new RFQDetailModel(x)).ToList();
                    }

                    foreach (var detail in model.RFQDetail)
                    {
                        RFQDetail detailEntity = getEntityByModel(detail);
                        if (detailEntity.IsValid())
                        {
                            detailEntity.RFQId = Convert.ToInt64(result);
                            if (savedLines.Count() > 0)
                            {
                                detailEntity.Id = savedLines.FirstOrDefault().Id;
                                savedLines.Remove(savedLines.FirstOrDefault(rec => rec.Id == detailEntity.Id));
                                service.UpdateRFQDetail(detailEntity);
                            }
                            else
                            {
                                service.InsertRFQDetail(detailEntity);
                            }
                        }
                    }
                }
            }
        }
예제 #14
0
        public ActionResult Create([Bind(Include = "QuoteRequestNo,Size,PUDepot,SysDate,DelStreetNum,DelStreetName,DelArea,DelCity,DelCode,Instruct,price,Email")] RFQ obj)
        {
            if (ModelState.IsValid)
            {
                obj.price   = obj.CalcTotal();
                obj.SysDate = System.DateTime.Now;
                obj.Email   = User.Identity.GetUserName();
                db.rfq.Add(obj);
                db.SaveChanges();
                return(RedirectToAction("Details/" + obj.QuoteRequestNo));
            }

            return(View(obj));
        }
예제 #15
0
        // GET: RFQs/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RFQ rFQ = db.rfq.Find(id);

            if (rFQ == null)
            {
                return(HttpNotFound());
            }
            return(View(rFQ));
        }
        public async Task <ActionResult <RFQ> > GetCarInsuranceQuote(RFQ info)
        {
            // for this demo, we're only going to be processing approximately 30 quotes each per Insurer on the panel.
            var chance = new Chance(_availability);

            // check if we're being throttled
            // ------------------------------
            if (BackoffSimulator.IsCurrentlyLimiting <RFQ>(DateTime.Now))
            {
                Response.Headers.Add("Retry-After", BackoffSimulator.HowLong <RFQ>().ToString());
                return(StatusCode((int)HttpStatusCode.TooManyRequests));
            }

            // `429` Simulate Too many requests with backoff
            // --------------------------------------------
            if (chance.ShouldBackOff())
            {
                // poor mans rate limiter, simulate an upstream partner service, e.g. a panel member providing car quotes. (insurance company X)
                BackoffSimulator.TakeServiceOfflineUntil <RFQ>(DateTime.Now.AddSeconds(20));
                Response.Headers.Add("Retry-After", "20");
                return(StatusCode((int)HttpStatusCode.TooManyRequests));
            }

            // not doing this for now.
            //// car reg contains `404`
            //// ----------------------
            //// should return 404 `Not found`, a retry should never succeed.
            //if (info.RegNo.Contains("-404-"))
            //{
            //	return NotFound();
            //}

            // car quote service goes `BOOM`!
            // ----------------------
            if (chance.GoBoom())
            {
                throw new Exception($"BOOM, {_quoterConfig.Name} service has died! and will not be coming back online for a few hours, perhaps 1 or even 2 days!");
            }

            // DO THE ACTUAL FAKE QUOTE
            // ----------------------
            var id = Guid.NewGuid();

            var quote = new Quote(id, ((decimal)_rnd.Next(1000)) / 10M, _quoterConfig.Name, info);
            await Task.Delay(_rnd.Next(_speed));

            _quotes.Add(id, quote);
            return(Ok(quote));
        }
예제 #17
0
        // GET: RFQ/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            using (BTCEntities db = new BTCEntities())
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                RFQ rFQ = await db.RFQ.FindAsync(id);

                if (rFQ == null)
                {
                    return(HttpNotFound());
                }
                return(View(rFQ));
            }
        }
예제 #18
0
        public async Task <ActionResult> Edit([Bind(Include = "ID,TravelAgencyID,TravelRequestID,UserID,Remarks,Processing,ProcessingSection,IsDeleted")] RFQ rFQ)
        {
            using (BTCEntities db = new BTCEntities())
            {
                if (ModelState.IsValid)
                {
                    db.Entry(rFQ).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    return(RedirectToAction("Index"));
                }
                ViewBag.TravelAgencyID  = new SelectList(db.TravelAgency, "AgencyID", "AgencyCode", rFQ.TravelAgencyID);
                ViewBag.TravelRequestID = new SelectList(db.TravelRequests, "TravelRequestID", "ApplicationNumber", rFQ.TravelRequestID);
                ViewBag.UserID          = new SelectList(db.Users, "UserId", "Username", rFQ.UserID);
                return(View(rFQ));
            }
        }
예제 #19
0
 public RFQModel(RFQ entity)
 {
     if (entity != null)
     {
         this.BuyerId    = entity.BuyerId;
         this.CloseDate  = entity.CloseDate;
         this.CompanyId  = entity.CompanyId;
         this.CreateBy   = entity.CreateBy;
         this.CreateDate = entity.CreateDate;
         this.Id         = entity.Id;
         this.RFQDate    = entity.RFQDate;
         this.RFQNo      = entity.RFQNo;
         this.Status     = entity.Status;
         this.UpdateBy   = entity.UpdateBy;
         this.UpdateDate = entity.UpdateDate;
     }
 }
예제 #20
0
        public async Task <ActionResult> Create([Bind(Include = "ID,TravelAgencyID,TravelRequestID,UserID,Remarks,Processing,ProcessingSection,IsDeleted")] RFQ rFQ)
        {
            using (BTCEntities db = new BTCEntities())
            {
                if (ModelState.IsValid)
                {
                    rFQ.RFQName = db.TravelRequests.Where(a => a.ID == rFQ.TravelRequestID).FirstOrDefault().ApplicationNumber;
                    db.RFQ.Add(rFQ);
                    await db.SaveChangesAsync();

                    return(RedirectToAction("Index"));
                }

                ViewBag.TravelAgencyID  = new SelectList(db.TravelAgency, "AgencyID", "AgencyCode", rFQ.TravelAgencyID);
                ViewBag.TravelRequestID = new SelectList(db.TravelRequests, "TravelRequestID", "ApplicationNumber", rFQ.TravelRequestID);
                ViewBag.UserID          = new SelectList(db.Users, "UserId", "Username", rFQ.UserID);
                return(View(rFQ));
            }
        }
예제 #21
0
    public void fillWithEntity(RFQ rfq)
    {
        /*Fields repleaced by the next ones. Required by Seth*/
        //txtProductionLeadTime.Text = rfq.ProductionLeadTime;
        //txtProductionToolingLeadTime.Text = rfq.ProductionToolingLeadTime;
        //txtPrototypeToolingLeadTime.Text = rfq.PrototypeToolingLeadTime;
        //txtPrototypePieceLeadTime.Text = rfq.PrototypePieceLeadTime;
        //txtLeadTimePPAP.Text = rfq.LeadTimePPAP;
        ///*********************************************************/

        //txtLeadTimeFirstProductionOrder.Text = rfq.LeadTimeFirstProductionOrder;
        //txtLeadTimePPAP_FAIR.Text = rfq.LeadTimePPAPFAIR;
        //txtLeadTimeNormalProductionOrders.Text = rfq.LeadTimeNormalProductionOrders;

        /*********************************************************/


        //cboUMWeight.SelectedValue = rfq.UmWeight; Not to be used anymore: always lb
    }
예제 #22
0
파일: RFQ.aspx.cs 프로젝트: Capsonic/APQM
    public void updateAttachmentsToBuyer(ref RFQ rfq)
    {
        rfq.AttachmentsToBuyer = null;
        string baseInboxAttachmentsPath = ConfigurationManager.AppSettings["RFQAttachmentsInbox"];

        if (rfq.InboxAttachmentsFolder.Trim() != "" && Directory.Exists(baseInboxAttachmentsPath + rfq.InboxAttachmentsFolder.Trim()))
        {
            List <RFQAttachments> rfqInboxAttachmentsList = new List <RFQAttachments>();
            DirectoryInfo         directory = new DirectoryInfo(baseInboxAttachmentsPath + rfq.InboxAttachmentsFolder);
            foreach (FileInfo file in directory.GetFiles())
            {
                RFQAttachments rfqAttachment = new RFQAttachments();
                rfqAttachment.FileName  = file.Name;
                rfqAttachment.Directory = rfq.InboxAttachmentsFolder;
                rfqInboxAttachmentsList.Add(rfqAttachment);
            }
            rfq.AttachmentsToBuyer = rfqInboxAttachmentsList;
        }
    }
예제 #23
0
        // GET: RFQ/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            using (BTCEntities db = new BTCEntities())
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                RFQ rFQ = await db.RFQ.FindAsync(id);

                if (rFQ == null)
                {
                    return(HttpNotFound());
                }
                ViewBag.TravelAgencyID  = new SelectList(db.TravelAgency, "AgencyID", "AgencyCode", rFQ.TravelAgencyID);
                ViewBag.TravelRequestID = new SelectList(db.TravelRequests, "TravelRequestID", "ApplicationNumber", rFQ.TravelRequestID);
                ViewBag.UserID          = new SelectList(db.Users, "UserId", "Username", rFQ.UserID);
                return(View(rFQ));
            }
        }
예제 #24
0
파일: RFQ.aspx.cs 프로젝트: Capsonic/APQM
    private string getRFQbyID(long id)
    {
        RFQ rfq = rfq_CRUD.readById(id);

        rfq.User = user_CRUD.readById(rfq.CreatedBy);

        rfq.RfqAcr = rfqACR_CRUD.readByParentID(rfq.Id);

        rfq.RfqEAV = rfqEAV_CRUD.readByParentID(rfq.Id);

        foreach (RFQEAV rfqEAV in rfq.RfqEAV)
        {
            List <RFQDetail> rfqDetail = rfqDetail_CRUD.readByParentID(rfqEAV.Id);
            rfqEAV.RfqDetail = rfqDetail;
        }

        updateAttachmentsToBuyer(ref rfq);
        updateAttachmentsToVendor(ref rfq);

        return(JsonConvert.SerializeObject(rfq));
    }
예제 #25
0
        public ActionResult DeleteRFQ(int?id)
        {
            using (BTCEntities db = new BTCEntities())
            {
                RFQ rfqitem = db.RFQ.Include(a => a.TravelRequests).Include(a => a.TravelAgency).Include(a => a.Users).Where(a => a.ID == id).FirstOrDefault();

                if (ModelState.IsValid)
                {
                    rfqitem.IsDeleted = true;

                    db.RFQ.Attach(rfqitem);
                    var entry = db.Entry(rfqitem);
                    entry.Property(a => a.IsDeleted).IsModified = true;
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                else
                {
                    var           errlist = ModelState.Values.Where(e => e.Errors.Count > 0).Select(a => a.Errors);
                    List <string> sberr   = new List <string>();
                    foreach (var item in errlist)
                    {
                        sberr.Add(item[0].ErrorMessage);
                    }
                    TempData["ErrorMessage"] = sberr.ToList();
                }

                ViewBag.TravelAgency = db.TravelAgency.ToList();
                ViewBag.Cities       = db.City.ToList();
                ViewBag.Currencies   = db.Currency.ToList();
                ViewBag.ApprovalBy   = db.Users.ToList();
                ViewBag.fileUploader = db.AttachmentLink.Where(a => a.AttachmentFor == (rfqitem.RFQName + "Pro" + rfqitem.ProcessingSection + "Trav" + rfqitem.TravelAgencyID)).Select(x => x.Attachments).ToList();
                MasterRFQ            = rfqitem;
                using (EmployeeDetailsDBService EmpDBService = new EmployeeDetailsDBService("", rfqitem.TravelRequests.Users1.HREmployeeID.ToString()))
                {
                    ViewBag.FullEmployeeDetails = EmpDBService.FullEmployeeDetails();
                }
                return(View(rfqitem));
            }
        }
예제 #26
0
파일: RFQ.aspx.cs 프로젝트: Capsonic/APQM
    private string getRFQ()
    {
        GatewayResponse response = new GatewayResponse();
        long            id       = -1;

        try
        {
            id = long.Parse(Request["id"]);
        }
        catch (Exception ex)
        {
            response.ErrorThrown         = true;
            response.ResponseDescription = "Bad request.";
            return(JsonConvert.SerializeObject(response));
        }

        RFQ rfq = rfq_CRUD.readById(id);

        rfq.User = user_CRUD.readById(rfq.CreatedBy);

        rfq.RfqAcr = rfqACR_CRUD.readByParentID(rfq.Id);

        rfq.RfqEAV = rfqEAV_CRUD.readByParentID(rfq.Id);

        foreach (RFQEAV rfqEAV in rfq.RfqEAV)
        {
            List <RFQDetail> rfqDetail = rfqDetail_CRUD.readByParentID(rfqEAV.Id);
            rfqEAV.RfqDetail = rfqDetail;
        }

        updateAttachmentsToBuyer(ref rfq);
        updateAttachmentsToVendor(ref rfq);

        response.ErrorThrown         = false;
        response.ResponseDescription = "OK";
        response.Result = rfq;

        return(JsonConvert.SerializeObject(response));
    }
예제 #27
0
 public bool finalize()
 {
     if (saveRFQ())
     {
         RFQ rfq = rfqCRUD.readById(this.rfq.Id);
         rfq.Status = "COMPLETED";
         if (rfq.NoQuote)
         {
             rfq.Status = "NO QUOTE";
         }
         rfq.DateFilledOut = DateTime.Now;
         if (!rfqCRUD.update(rfq))
         {
             Navigator.goToPage("~/Error.aspx", "ERROR:" + rfqCRUD.ErrorMessage);
             return(false);
         }
     }
     else
     {
         return(false);
     }
     return(true);
 }
예제 #28
0
    public string sendRFQ()
    {
        List <RFQ>      resultRFQs = new List <RFQ>();
        GatewayResponse response   = new GatewayResponse();
        String          s;
        NewRFQScreen    newRFQScreen;

        try
        {
            s            = new StreamReader(Request.InputStream).ReadToEnd();
            newRFQScreen = JsonConvert.DeserializeObject <NewRFQScreen>(s);
        }
        catch (Exception ex)
        {
            response.ErrorThrown         = true;
            response.ResponseDescription = "ERROR: When trying to parse JSON in server. " + ex.Message;
            return(JsonConvert.SerializeObject(response));
        }

        RFQNumberCRUD rfqNumberCRUD  = new RFQNumberCRUD();
        bomDetailCRUD bomDetail_CRUD = new bomDetailCRUD();
        UserCRUD      user_CRUD      = new UserCRUD();

        string baseBOMAttachmentsPath = ConfigurationManager.AppSettings["BOMLineAttachments"];
        string baseRFQAttachmentsPath = ConfigurationManager.AppSettings["RFQAttachmentsSent"];

        string strAuthUser = HttpContext.Current.User.Identity.Name;
        User   user        = user_CRUD.readById(strAuthUser);

        List <SIFDetail> EAUsList = newRFQScreen.SIFVolumesList;

        if (EAUsList.Count == 0)
        {
            response.ErrorThrown         = true;
            response.ResponseDescription = "ERROR: Cannot create RFQ without EAU specified.";
            return(JsonConvert.SerializeObject(response));
        }

        List <RFQEAV> newEAUList = new List <RFQEAV>();

        foreach (SIFDetail eau in EAUsList)
        {
            RFQEAV eauParsed = new RFQEAV();
            eauParsed.Volume = eau.ProjectedAnnualVolume;
            eauParsed.Year   = eau.ProgramYear;
            RFQEAV alreadyExists = newEAUList.Find(eauInternal => eauInternal.Volume == eauParsed.Volume);
            if (alreadyExists == null)
            {
                newEAUList.Add(eauParsed);
            }
            else
            {
                alreadyExists.Year = alreadyExists.Year.Trim() + ", " + eauParsed.Year.Trim();
            }
        }

        List <BOMDetail> bomDetailList = newRFQScreen.BomDetailList;


        ConnectionManager CM = new ConnectionManager();

        Data_Base_MNG.SQL DM = CM.getDataManager();

        if (newRFQScreen.SupplierList.Count > 0)
        {
            foreach (Supplier supplier in newRFQScreen.SupplierList)
            {
                foreach (BOMDetail component in bomDetailList)
                {
                    RFQNumberEntity rfqNumber = new RFQNumberEntity();

                    rfqNumber.BOMDetailKey = component.Id;
                    rfqNumber.SifHeaderKey = newRFQScreen.SIFHeaderID;
                    rfqNumber.RFQNumber    = rfqNumberCRUD.generateNewRFQNumber(rfqNumber.SifHeaderKey);

                    if (rfqNumber.RFQNumber == -1)
                    {
                        response.ErrorThrown         = true;
                        response.ResponseDescription = "ERROR: There was an error generating a new RFQ number.";
                        return(JsonConvert.SerializeObject(response));
                    }

                    CM = new ConnectionManager();
                    DM = CM.getDataManager();

                    /*Begin Transaction*/
                    DM.Open_Connection("Send New RFQ");

                    RFQ             rfq = new RFQ();
                    RFQNumberEntity rfqNumberGenereated = rfqNumberCRUD.create_return_object(rfqNumber, ref DM);
                    if (rfqNumberCRUD.ErrorOccur)
                    {
                        response.ErrorThrown         = true;
                        response.ResponseDescription = "ERROR:" + rfqNumberCRUD.ErrorMessage;
                        return(JsonConvert.SerializeObject(response));
                    }
                    else
                    {
                        //rfq.SentAttachmentsFolder = newRFQScreen.FolderAttachments;

                        newRFQScreen.FolderAttachments = newRFQScreen.FolderAttachments.Trim();
                        if (newRFQScreen.FolderAttachments != "")
                        {
                            if (System.IO.Directory.Exists((baseRFQAttachmentsPath + newRFQScreen.FolderAttachments)))
                            {
                                DirectoryInfo directory = new DirectoryInfo((baseRFQAttachmentsPath + newRFQScreen.FolderAttachments));
                                if (directory.GetFiles().Length > 0)
                                {
                                    string folderName = "";
                                    do
                                    {
                                        DateTime date = DateTime.Now;
                                        folderName = date.Year.ToString() + date.Month.ToString() +
                                                     date.Day.ToString() + "_" + MD5HashGenerator.GenerateKey(date);
                                    } while (Directory.Exists((baseRFQAttachmentsPath + folderName)));
                                    Directory.CreateDirectory((baseRFQAttachmentsPath + folderName));
                                    rfq.SentAttachmentsFolder = folderName;


                                    foreach (FileInfo file in directory.GetFiles())
                                    {
                                        try
                                        {
                                            File.Copy(file.FullName, (baseRFQAttachmentsPath + rfq.SentAttachmentsFolder + @"\" + file.Name), true);
                                        }
                                        catch (Exception ex)
                                        {
                                            response.ErrorThrown         = true;
                                            response.ResponseDescription = "ERROR:" + ex.Message;
                                            return(JsonConvert.SerializeObject(response));
                                        }
                                    }
                                }
                            }
                        }

                        foreach (Attachment bomAttachment in component.AttachmentsList)
                        {
                            if (rfq.SentAttachmentsFolder.Trim() == "")
                            {
                                string folderName = "";
                                do
                                {
                                    DateTime date = DateTime.Now;
                                    folderName = date.Year.ToString() + date.Month.ToString() +
                                                 date.Day.ToString() + "_" + MD5HashGenerator.GenerateKey(date);
                                } while (Directory.Exists((baseRFQAttachmentsPath + folderName)));
                                Directory.CreateDirectory((baseRFQAttachmentsPath + folderName));
                                rfq.SentAttachmentsFolder = folderName;
                            }
                            string currentPathAttachmentSource = baseBOMAttachmentsPath + bomAttachment.Directory + @"\" + bomAttachment.FileName;
                            string currentPathAttachmentTarget = baseRFQAttachmentsPath + rfq.SentAttachmentsFolder + @"\" + bomAttachment.FileName;
                            try
                            {
                                File.Copy(currentPathAttachmentSource, currentPathAttachmentTarget, true);
                            }
                            catch (Exception e)
                            {
                                response.ErrorThrown         = true;
                                response.ResponseDescription = "ERROR:" + e.Message;
                                return(JsonConvert.SerializeObject(response));
                            }
                        }


                        RfqCRUD rfqCRUD = new RfqCRUD();

                        rfq.SupplierId       = supplier.Id;
                        rfq.SupplierName     = supplier.SupplierName;
                        rfq.SentToVendor     = DateTime.Now;
                        rfq.LastEmail        = supplier.ContactEmail;
                        rfq.Status           = "PENDING";
                        rfq.BomDetailId      = component.Id;
                        rfq.Um               = component.Um;
                        rfq.RfqNumberKey     = rfqNumberGenereated.Id;
                        rfq.RfqGenerated     = rfqNumberGenereated.RfqGenerated;
                        rfq.DueDate          = newRFQScreen.DueDate;
                        rfq.MarketSectorID   = newRFQScreen.MarketSectorID;
                        rfq.DrawingLevel     = newRFQScreen.DrawingLevel;
                        rfq.TargetPrice      = newRFQScreen.TargetPrice;
                        rfq.CommentsToVendor = newRFQScreen.CommentsToVendor;


                        rfq.CreatedBy = strAuthUser;

                        string idGenerated = rfqCRUD.createAndReturnIdGenerated(rfq, component, ref DM);

                        if (!rfqCRUD.ErrorOccur)
                        {
                            rfq.Id = long.Parse(idGenerated);

                            foreach (RFQEAV eau in newEAUList)
                            {
                                RFQEAVCRUD rfqEAV_CRUD      = new RFQEAVCRUD();
                                RFQEAV     rfqEAV_toPersist = new RFQEAV();
                                rfqEAV_toPersist.RfqHeaderKey = long.Parse(idGenerated);
                                rfqEAV_toPersist.Volume       = eau.Volume * component.Qty;
                                rfqEAV_toPersist.Year         = eau.Year;
                                rfqEAV_toPersist.Status       = "CREATED";
                                rfqEAV_CRUD.createAndReturnIdGenerated(rfqEAV_toPersist, ref DM);
                                if (rfqEAV_CRUD.ErrorOccur)
                                {
                                    response.ErrorThrown         = true;
                                    response.ResponseDescription = "ERROR:" + rfqEAV_CRUD.ErrorMessage;
                                    return(JsonConvert.SerializeObject(response));
                                }
                            }

                            TokenCRUD token_CRUD = new TokenCRUD();
                            Token     token      = new Token();
                            token.Subject     = "RFQ";
                            token.SubjectKey  = long.Parse(idGenerated);
                            token.TokenNumber = MD5HashGenerator.GenerateKey(DateTime.Now);
                            if (token_CRUD.create(token, ref DM))
                            {
                                Email       NewMail = new Email();
                                MailMessage Message = new MailMessage();
                                try
                                {
                                    Message.From = new MailAddress("*****@*****.**", "*****@*****.**");
                                    Message.To.Add(new MailAddress(supplier.ContactEmail.ToString()));
                                    Message.Subject      = "Request For Quote";
                                    Message.IsBodyHtml   = true;
                                    Message.BodyEncoding = System.Text.Encoding.UTF8;

                                    var url             = ResolveUrl("~/Vendor/Email_RFQ_Request.htm");
                                    var strEmailContent = HTMLContent(url);
                                    strEmailContent = strEmailContent.Replace("{BuyerName}", user.Name);
                                    strEmailContent = strEmailContent.Replace("{BuyerPhone}", user.Phone1);
                                    strEmailContent = strEmailContent.Replace("{BuyerEmail}", user.Email);
                                    strEmailContent = strEmailContent.Replace("{RFQ Number}", rfqNumber.RfqGenerated);
                                    strEmailContent = strEmailContent.Replace("{Part Number}", component.PartNumber);
                                    strEmailContent = strEmailContent.Replace("{RFQLink}", "http://" + Request.Url.Authority + Request.ApplicationPath + "/Vendor/RFQHandler.ashx?token=" + token.TokenNumber);

                                    Message.Body = strEmailContent;


                                    NewMail.SendMail(Message);
                                }
                                catch (Exception ex)
                                {
                                    DM.RollBack();
                                    response.ErrorThrown         = true;
                                    response.ResponseDescription = "ERROR: Could not send email to: " + supplier.ContactEmail.ToString() + "; " + ex.Message;
                                    return(JsonConvert.SerializeObject(response));
                                }
                            }
                            else
                            {
                                response.ErrorThrown         = true;
                                response.ResponseDescription = "ERROR: " + token_CRUD.ErrorMessage;
                                return(JsonConvert.SerializeObject(response));
                            }
                        }
                        else
                        {
                            response.ErrorThrown         = true;
                            response.ResponseDescription = "ERROR: " + rfqCRUD.ErrorMessage;
                            return(JsonConvert.SerializeObject(response));
                        }
                    }

                    DM.CommitTransaction();
                    DM.Close_Open_Connection();

                    if (DM.ErrorOccur)
                    {
                        response.ErrorThrown         = true;
                        response.ResponseDescription = "ERROR: " + DM.Error_Mjs;
                        return(JsonConvert.SerializeObject(response));
                    }
                    resultRFQs.Add(rfq);
                }
            }
        }

        response.ErrorThrown         = false;
        response.ResponseDescription = "RFQs created successfully.";
        response.Result = resultRFQs;
        return(JsonConvert.SerializeObject(response));
    }
 public RfqReceived(RFQ rfq)
 {
     RFQ = rfq;
 }
예제 #30
0
파일: RFQ.aspx.cs 프로젝트: Capsonic/APQM
    private string updateRFQ()
    {
        String s   = new StreamReader(Request.InputStream).ReadToEnd();
        RFQ    rfq = JsonConvert.DeserializeObject <RFQ>(s);

        if (rfq.Status == "COMPLETED")
        {
            if (rfq.NoQuote)
            {
                rfq.Status = "NO QUOTE";
            }
        }

        /*Begin Transaction*/
        ConnectionManager CM = new ConnectionManager();

        Data_Base_MNG.SQL DM = CM.getDataManager();

        DM.Open_Connection("RFQ Update");
        if (!rfq_CRUD.update(rfq, ref DM))
        {
            return("ERROR:" + rfq_CRUD.ErrorMessage);
        }

        foreach (RFQEAV rfqEAVLocal in rfq.RfqEAV)
        {
            if (!rfqEAV_CRUD.update(rfqEAVLocal, ref DM))
            {
                return("ERROR:" + rfqEAV_CRUD.ErrorMessage);
            }

            if (!rfqDetail_CRUD.deleteByParentID(rfqEAVLocal.Id, ref DM))
            {
                return("ERROR:" + rfqDetail_CRUD.ErrorMessage);
            }

            foreach (RFQDetail rfqDetailCurrent in rfqEAVLocal.RfqDetail)
            {
                rfqDetailCurrent.RfqEAVKey = rfqEAVLocal.Id;
                if (!rfqDetail_CRUD.create(rfqDetailCurrent, ref DM))
                {
                    return("ERROR:" + rfqDetail_CRUD.ErrorMessage);
                }
            }
        }
        if (!rfqACR_CRUD.deleteByParentID(rfq.Id, ref DM))
        {
            return("ERROR:" + rfqACR_CRUD.ErrorMessage);
        }
        foreach (RFQACR currentACR in rfq.RfqAcr)
        {
            currentACR.RfqHeaderKey = rfq.Id;
            if (!rfqACR_CRUD.create(currentACR, ref DM))
            {
                return("ERROR:" + rfqACR_CRUD.ErrorMessage);
            }
        }

        DM.CommitTransaction();
        DM.Close_Open_Connection();

        if (DM.ErrorOccur)
        {
            return("ERROR:" + DM.Error_Mjs);
        }

        return(getRFQbyID(rfq.Id));
    }