Пример #1
0
        public ActionResult Edit(string prdkey)
        {
            ViewData["Product"] = _searchFacade.FindRfpProduct(prdkey);
            var rfq = _rfpFacade.GetRFQDetails(CurrentUser.User.org_key.ToString(), prdkey);

            if (rfq == null)
            {
                rfq = new RfpRequest()
                {
                    rfp_key = Guid.NewGuid()
                };
            }
            else
            {
                rfq.RACIContactList = _contactFacade.GetRACIContacts(new RACIFilter {
                    Org_key = CurrentUser.User.org_key, rfp_key = rfq.rfp_key.ToString()
                });

                var files = _rfpAttachmentFacade.GetWhere($"rfa_key in (select axr_rfa_key from attachment_x_request where axr_rfp_key='{rfq.rfp_key.ToString()}')");

                if (files != null && files.Where(p => p.rfa_type == "QA").Count() > 0)
                {
                    rfq.QuestionnaireFiles = string.Join(",", files.Where(p => p.rfa_type == "QA").Select(p => p.rfa_key));
                }

                if (files != null && files.Where(p => p.rfa_type == "AA").Count() > 0)
                {
                    rfq.RfpAttachments = string.Join(",", files.Where(p => p.rfa_type == "AA").Select(p => p.rfa_key));
                }
            }

            return(View(rfq));
        }
Пример #2
0
        public ActionResult Templates(RfpRequest entity)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    entity.rfp_prd_key = null;
                    entity.rfp_key     = Guid.NewGuid();
                    entity.rfp_org_key = CurrentUser.User.org_key;
                    var result = _rfpRequestFacade.Add(entity, CurrentUser.User.ct_key.ToString());

                    if (result.Success)
                    {
                        return(RedirectToAction("Templates", "RFP", new { rfp_key = entity.rfp_key.ToString() }));
                    }
                }

                return(View("Templates-Create", entity));
            }
            catch (Exception ex)
            {
                return(View("Templates-Create", entity));
            }
        }
Пример #3
0
        public ActionResult Edit(RfpRequest entity, string prdkey)
        {
            ViewData["Product"] = _searchFacade.FindRfpProduct(prdkey);
            if (entity.RACIContactList == null)
            {
                entity.RACIContactList = new List <ContactRACI>();
            }
            List <ContactRACI> existing_raci_contacts = _contactFacade.GetRACIContacts(new RACIFilter {
                Org_key = CurrentUser.User.org_key, rfp_key = entity.rfp_key.ToString()
            });

            var resp_contact = entity.RACIContactList.FirstOrDefault(p => p.lk5_key.ToString() == "5592b25d-d98a-4914-9c8e-ac28d6c11116");

            if (resp_contact == null)
            {
                ModelState.AddModelError("", "Please add team member with 'Responsible' role.");
            }

            try
            {
                if (ModelState.IsValid)
                {
                    entity.rfp_org_key = CurrentUser.User.org_key;
                    entity.rfp_prd_key = Guid.Parse(prdkey);

                    var current_rfp_resp = _rfpFacade.GetRFQDetails(CurrentUser.User.org_key.ToString(), prdkey);
                    Response <RfpRequest> result;

                    if (current_rfp_resp != null)
                    {
                        result = _rfpFacade.Update(entity, CurrentUser.User.ct_key.ToString());
                    }
                    else
                    {
                        result = _rfpFacade.Add(entity, CurrentUser.User.ct_key.ToString());
                    }

                    if (result.Success)
                    {
                        var file_list = new List <string>();
                        if (!string.IsNullOrWhiteSpace(entity.QuestionnaireFiles))
                        {
                            file_list.AddRange(entity.QuestionnaireFiles.Split(','));
                        }

                        foreach (string rfa_key in file_list)
                        {
                            _rfpAttachmentFacade.UpdateField(rfa_key, "rfa_rfp_key", entity.rfp_key.ToString(), string.Empty);
                            _rfpAttachmentFacade.UpdateField(rfa_key, "rfa_type", "QA", string.Empty);
                            _rfpAttachmentFacade.UpdateField(rfa_key, "delete_flag", "0", string.Empty);
                            _rfpAttachmentFacade.Attach_RfpRequest_File(rfa_key, entity.rfp_key.ToString());
                        }

                        file_list.Clear();

                        if (!string.IsNullOrWhiteSpace(entity.RfpAttachments))
                        {
                            file_list.AddRange(entity.RfpAttachments.Split(','));
                        }

                        foreach (string rfa_key in file_list)
                        {
                            _rfpAttachmentFacade.UpdateField(rfa_key, "rfa_rfp_key", entity.rfp_key.ToString(), string.Empty);
                            _rfpAttachmentFacade.UpdateField(rfa_key, "rfa_type", "AA", string.Empty);
                            _rfpAttachmentFacade.UpdateField(rfa_key, "delete_flag", "0", string.Empty);
                            _rfpAttachmentFacade.Attach_RfpRequest_File(rfa_key, entity.rfp_key.ToString());
                        }

                        // Delete removed contacts from RACI.
                        if (existing_raci_contacts != null && existing_raci_contacts.Count > 0)
                        {
                            foreach (var item in existing_raci_contacts)
                            {
                                _contactFacade.Delete_RACI_Contact(item.ct_key.ToString(), entity.rfp_key.ToString(), null);
                            }
                        }

                        // Save added contacts to RACI.
                        foreach (var contact in entity.RACIContactList)
                        {
                            //_contactFacade.Attach_Contact_Request(resp.Result.ct_key.ToString(), entity.rfp_key.ToString(), contact.role_id, contact.title, string.Empty);
                            _contactFacade.Add_RACI_Contact(contact.lk5_key.ToString(), contact.ct_key.ToString(), entity.rfp_key.ToString(), null, CurrentUser.User.ct_key.ToString());
                        }

                        // Save Request Respond Invitation
                        existing_raci_contacts = _contactFacade.GetRACIContacts(new RACIFilter {
                            Org_key = CurrentUser.User.org_key, rfp_key = entity.rfp_key.ToString()
                        });

                        if (existing_raci_contacts != null && existing_raci_contacts.Count > 0)
                        {
                            var responsible_contact = existing_raci_contacts.FirstOrDefault(p => p.lk5_key.ToString() == "5592b25d-d98a-4914-9c8e-ac28d6c11116");

                            if (responsible_contact != null)
                            {
                                var invitation = new RfpRespondInvitation
                                {
                                    inv_add_user    = CurrentUser.User.ct_key.ToString(),
                                    inv_change_user = CurrentUser.User.ct_key.ToString(),
                                    inv_ct_key      = responsible_contact.ct_key,
                                    inv_email       = responsible_contact.ct_email,
                                    inv_first_name  = responsible_contact.ct_first_name,
                                    inv_last_name   = responsible_contact.ct_last_name,
                                    inv_full_name   = $"{responsible_contact.ct_first_name} {responsible_contact.ct_last_name}",
                                    inv_key         = Guid.NewGuid(),
                                    inv_rfp_key     = entity.rfp_key
                                };

                                _rfpFacade.SaveRfpRespondInvitation(invitation);
                            }
                        }

                        return(RedirectToAction("", "dashboard"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Could not save RFQ");
                    }
                }

                return(View(entity));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(entity));
            }
        }
Пример #4
0
        public Response <RfpRequest> Add(RfpRequest item, string user)
        {
            try
            {
                item.rfp_key = Guid.NewGuid();
                DynamicParameters _params = new DynamicParameters();
                _params.Add("@rfp_key", item.rfp_key, DbType.Guid);
                _params.Add("@rfp_org_key", item.rfp_org_key, DbType.Guid);
                _params.Add("@rfp_prd_key", item.rfp_prd_key, DbType.Guid);
                _params.Add("@rfp_id", item.rfp_id, DbType.Int64);
                _params.Add("@rfp_name", item.rfp_name, DbType.String);
                _params.Add("@rfp_summary", item.rfp_summary, DbType.String);
                _params.Add("@rfp_background", item.rfp_background, DbType.String);
                _params.Add("@rfp_bid_number_in_LG", item.rfp_bid_number_in_LG, DbType.String);
                _params.Add("@rfp_pre_proposal_meeting_date", item.rfp_pre_proposal_meeting_date, DbType.DateTime);
                _params.Add("@rfp_pre_proposal_meeting_location", item.rfp_pre_proposal_meeting_location, DbType.String);
                _params.Add("@rfp_submission_instructions", item.rfp_submission_instructions, DbType.String);
                _params.Add("@rfp_type", item.rfp_type, DbType.Int32);
                _params.Add("@rfp_subtype", item.rfp_subtype, DbType.Int32);
                _params.Add("@rfp_solo_multiple_sources", item.rfp_solo_multiple_sources, DbType.String);
                _params.Add("@rfp_issue_date", item.rfp_issue_date, DbType.DateTime);
                _params.Add("@rfp_question_deadline", item.rfp_question_deadline, DbType.DateTime);
                _params.Add("@rfp_question_answer_deadline", item.rfp_question_answer_deadline, DbType.DateTime);
                _params.Add("@rfp_vendor_meeting_date", item.rfp_vendor_meeting_date, DbType.DateTime);
                _params.Add("@rfp_close_date", item.rfp_close_date, DbType.DateTime);
                _params.Add("@rfp_scoring_date", item.rfp_scoring_date, DbType.DateTime);
                _params.Add("@rfp_vendor_post_submission_meeting_date", item.rfp_vendor_post_submission_meeting_date, DbType.DateTime);
                _params.Add("@rfp_decision_date", item.rfp_decision_date, DbType.DateTime);
                _params.Add("@rfp_award_date", item.rfp_award_date, DbType.DateTime);
                _params.Add("@rfp_validation_date", item.rfp_validation_date, DbType.DateTime);
                _params.Add("@rfp_scope_of_work", item.rfp_scope_of_work, DbType.String);
                _params.Add("@rfp_sow_introduction", item.rfp_sow_introduction, DbType.String);
                _params.Add("@rfp_sow_solution_requirements", item.rfp_sow_solution_requirements, DbType.String);
                _params.Add("@rfp_sow_project_timeline", item.rfp_sow_project_timeline, DbType.String);
                _params.Add("@rfp_sow_cost", item.rfp_sow_cost, DbType.String);
                _params.Add("@rfp_skills", item.rfp_skills, DbType.String);
                _params.Add("@rfp_budget", item.rfp_budget, DbType.Double);
                _params.Add("@rfp_awarded", item.rfp_awarded, DbType.Double);
                _params.Add("@rfp_department", item.rfp_department, DbType.String);
                _params.Add("@rfp_view_count", item.rfp_view_count, DbType.Int32);
                _params.Add("@rfp_add_user", item.rfp_add_user, DbType.String);
                _params.Add("@rfp_questionnaire", item.rfp_questionnaire, DbType.String);
                _params.Add("@rfp_evaluation_process", item.rfp_evaluation_process, DbType.String);
                _params.Add("@rfp_evaluation_criteria", item.rfp_evaluation_criteria, DbType.String);
                _params.Add("@rfp_terms_conditions", item.rfp_terms_conditions, DbType.String);
                _params.Add("@rfp_date_notes", item.rfp_date_notes, DbType.String);
                _params.Add("@rfp_published", item.rfp_published, DbType.Boolean);
                _params.Add("@success", DbType.Boolean, direction: ParameterDirection.Output);

                var result = _dBConnection.Execute("USP_Rfp_Request_Add", _params, null, null, CommandType.StoredProcedure);

                return(new Response <RfpRequest>(item)
                {
                    Success = _params.Get <Int32>("success") == 1 ? true : false
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #5
0
 public Response <RfpRequest> Update(RfpRequest item, string user)
 {
     return(_rfpRequestRepositoryDAC.Update(item, user));
 }
Пример #6
0
 public Response <RfpRequest> Add(RfpRequest item, string user)
 {
     return(_rfpRequestRepositoryDAC.Add(item, user));
 }
Пример #7
0
        public ActionResult Create(RfpRequest entity)
        {
            ViewData["Categories"] = _prodTypeFacade.GetAll();
            var resp_contact = entity.RACIContactList.FirstOrDefault(p => p.lk5_key.ToString() == "5592b25d-d98a-4914-9c8e-ac28d6c11116");

            if (resp_contact == null)
            {
                ModelState.AddModelError("", "Please add team member with 'Responsible' role.");
            }

            try
            {
                if (ModelState.IsValid)
                {
                    entity.rfp_prd_key = null;
                    entity.rfp_org_key = CurrentUser.User.org_key;
                    var result = _rfpRequestFacade.Add(entity, CurrentUser.User.ct_key.ToString());

                    if (result.Success)
                    {
                        var file_list = new List <string>();
                        if (!string.IsNullOrWhiteSpace(entity.QuestionnaireFiles))
                        {
                            file_list.AddRange(entity.QuestionnaireFiles.Split(','));
                        }

                        foreach (string rfa_key in file_list)
                        {
                            _rfpAttachmentFacade.UpdateField(rfa_key, "rfa_rfp_key", entity.rfp_key.ToString(), string.Empty);
                            _rfpAttachmentFacade.UpdateField(rfa_key, "rfa_type", "QA", string.Empty);
                            _rfpAttachmentFacade.UpdateField(rfa_key, "delete_flag", "0", string.Empty);
                            _rfpAttachmentFacade.Attach_RfpRequest_File(rfa_key, entity.rfp_key.ToString());
                        }

                        file_list.Clear();

                        if (!string.IsNullOrWhiteSpace(entity.RfpAttachments))
                        {
                            file_list.AddRange(entity.RfpAttachments.Split(','));
                        }

                        foreach (string rfa_key in file_list)
                        {
                            _rfpAttachmentFacade.UpdateField(rfa_key, "rfa_rfp_key", entity.rfp_key.ToString(), string.Empty);
                            _rfpAttachmentFacade.UpdateField(rfa_key, "rfa_type", "AA", string.Empty);
                            _rfpAttachmentFacade.UpdateField(rfa_key, "delete_flag", "0", string.Empty);
                            _rfpAttachmentFacade.Attach_RfpRequest_File(rfa_key, entity.rfp_key.ToString());
                        }

                        // Save added contacts to RACI.
                        foreach (var contact in entity.RACIContactList)
                        {
                            _contactFacade.Add_RACI_Contact(contact.lk5_key.ToString(), contact.ct_key.ToString(), entity.rfp_key.ToString(), null, CurrentUser.User.ct_key.ToString());
                        }

                        return(RedirectToAction("", "rfp"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Could not save RFP");
                    }
                }

                return(View(entity));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(entity));
            }
        }