EOS/Controllers/TicketAdministration_DealerController.cs
Nidhi Bhargava f0c1ab20e1 code push
2025-09-04 16:25:07 +05:30

924 lines
44 KiB
C#

using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using GODATA.RoleServices;
using GODATA.AuthenticationServices;
using RestSharp;
using Newtonsoft.Json;
using GODATA.Models.TicketAdministration_Dealer;
using Kendo.Mvc.UI;
using Kendo.Mvc.Extensions;
using GODATA.Models.DropDownData;
namespace GODATA.Controllers
{
[GODATA.MvcApplication.SessionExpire]
public class TicketAdministration_DealerController : Controller
{
#region Global Variables
/// <summary>
/// Global variable for Ticket administration repository.
/// </summary>
private TicketAdministration_DealerRepository objTicketDealerAdministrationRepository = null;
/// <summary>
/// Global variable for Ticket administration repository.
/// </summary>
private DropDownDataRepository objDropDownDataRepository = null;
/// <summary>
/// Represent object of LoggingUtility class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// Represent string object contain log file path
/// </summary>
//string path = "~/Log/";
string path = System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// Represent string object contain log status
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// Represent string object contain Error log status
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// getting application name from AppSetting in web.config file
/// </summary>
private static string _appName = ConfigurationManager.AppSettings["ApplicationName"].ToString();
/// <summary>
/// getting web api token from AppSetting in web.config file
/// </summary>
private static string _securityToken = ConfigurationManager.AppSettings["RESTfulSecurityToken"].ToString();
/// <summary>
/// getting user's utc minutes from session
/// </summary>
private static string _timeOffSetMinutes = null;
/// <summary>
/// getting login user's id
/// </summary>
private static string _LoginUserId = null;
/// <summary>
/// getting login user's name
/// </summary>
private static string _LoginUserName = null;
/// <summary>
/// getting time zone id of user from AppSetting in web.config file
/// </summary>
private static string _TimeZoneId = ConfigurationManager.AppSettings["TimeZoneId"].ToString();
/// <summary>
/// getting web api url from AppSetting in web.config file
/// </summary>
private static string _RestClientUrl = ConfigurationManager.AppSettings["RestfulApiUrl"].ToString();
/// <summary>
/// getting login Dealer's Id
/// </summary>
private static string _DealerId = null;
#endregion
#region Get dealer's and van's tickets
/// <summary>
/// Get dealer tickets administration view
/// </summary>
/// <returns>return view</returns>
public ActionResult Index()
{
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
//Get open tickets history
List<OpenTicketDealerModel> oListOpenTicket = objTicketDealerAdministrationRepository.GetOpenTicketHistory().ToList();
//Get close tickets history
List<CloseTicketDealerModel> oListCloseTicket = objTicketDealerAdministrationRepository.GetCloseTicketHistory().ToList();
Int32 countTotalTicket = 0,
countDealerTotalTicket = 0,
countVanTotalTicket = 0,
countepsTotalTicket = 0;
countTotalTicket = oListOpenTicket.Count() + oListCloseTicket.Count();
countDealerTotalTicket = oListOpenTicket.Where(w => w.AssignedTo.Equals("dealer")).Count() + oListCloseTicket.Where(w => w.AssignedTo.Equals("dealer")).Count();
countVanTotalTicket = oListOpenTicket.Where(w => w.AssignedTo.Equals("van")).Count() + oListCloseTicket.Where(w => w.AssignedTo.Equals("van")).Count();
countepsTotalTicket = oListOpenTicket.Where(w => w.AssignedTo.Equals("eps")).Count() + oListCloseTicket.Where(w => w.AssignedTo.Equals("eps")).Count();
ViewBag.TotalTicket = countTotalTicket;
ViewBag.DealerTotalTicket = countDealerTotalTicket;
ViewBag.VanTotalTicket = countVanTotalTicket;
ViewBag.epsTotalTicket = countepsTotalTicket;
//Getting login user's id, name and utc minutes from session
_LoginUserId = Session["UserId"].ToString();
_LoginUserName = Session["UserName"].ToString();
_timeOffSetMinutes = Session["UtcMinute"].ToString();
_DealerId = Session["DealerId"].ToString();
ViewBag.SecurityToken = _securityToken;
ViewBag.Userid = _LoginUserId;
ViewBag.UserName = _LoginUserName;
ViewBag.UtcMinutes = _timeOffSetMinutes;
ViewBag.DealerId = _DealerId;
return View();
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// Get dealer's and his van's tickets history
/// </summary>
/// <param name="assignedToType">assigned to van or dealer</param>
/// <returns>return partial view of ticket history</returns>
public ActionResult TicketAdministrationDealer_GetTicketHistory(string assignedToType)
{
objLog.AddLogFile("TicketAdministrationDealer_GetTicketHistory", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
//Get open tickets history
List<OpenTicketDealerModel> oListOpenTicket = objTicketDealerAdministrationRepository.GetOpenTicketHistory().Where(w => w.AssignedTo.Equals(assignedToType)).ToList();
//Get close tickets history
List<CloseTicketDealerModel> oListCloseTicket = objTicketDealerAdministrationRepository.GetCloseTicketHistory().Where(w => w.AssignedTo.Equals(assignedToType)).ToList();
ViewBag.CloseTicketList = oListCloseTicket;
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return PartialView(oListOpenTicket);
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketAdministration_GetTicketHistory", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
#endregion
public string IsUserAllowEPS()
{
try
{
_LoginUserId = Session["UserId"].ToString();
var client = new RestSharp.RestClient(_RestClientUrl);
var request = new RestRequest("Api/EPS?role=tru&geteps=yes&seteps=yes&iseps=yes", Method.POST);
request.AddParameter("AuthEngineId", _LoginUserId);
var response = client.Execute(request);
if (response!=null)
{
return response.Content;
}
else
{
objLog.ErrorLogFile("IsUserAllowEPS", $"API call failed: {response.StatusDescription}", path, errorlogtf);
return null;
}
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketRepository_GetTicketStatusList", ex.Message, path, errorlogtf);
return "NA";
}
}
#region Get Ticket Full Details old
/// <summary>
/// Get open and close ticket details
/// </summary>
/// <param name="ticketId">ticket id</param>
/// <param name="ticketStatus">ticket status</param>
/// <returns>return ticket full details list</returns>
public ActionResult TicketAdministrationDealer_GetTicketDetails_Old(string ticketId, string ticketStatus)
{
objLog.AddLogFile("TicketAdministrationDealer_GetTicketDetails", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
//Get open and close ticket details list
List<TicketOpenCloseModel> oTicketOpenCloseModel = objTicketDealerAdministrationRepository.Restful_GetOpenCloseTicketDetails(ticketId, ticketStatus);
//store in temp data
TempData["TicketDetailsForUpdate"] = oTicketOpenCloseModel;
//Global variables
string VRegistrationNo = ""; string CustomerContactNo = ""; int RouteId = 0; string routeName = ""; string VModelNo = ""; string VModelTagging = "";
//Getting details of vehicle and customer from ticket details list
foreach (var item in oTicketOpenCloseModel)
{
VRegistrationNo = item.VehicleRegisterNumber.ToString();
CustomerContactNo = item.CustomerContactNo;
RouteId = item.RouteId;
}
//Get owner details
List<CustomerOwnerModel> oCustomerOwnerDetailsList = objTicketDealerAdministrationRepository.GetCustomerOwnerDetails(VRegistrationNo);
ViewBag.OwnerDetails = oCustomerOwnerDetailsList;
//Get vehicle details
List<VehicleModel> oVehicleDetailsList = objTicketDealerAdministrationRepository.GetVehicleDetailsRegistrationNoWise(VRegistrationNo);
ViewBag.VehicleDetails = oVehicleDetailsList;
foreach (var item12 in oVehicleDetailsList)
{
VModelNo = item12.ModelNumber;
}
//Get vehicle's product varient(model tagging)
List<VehicleModelModel> oVehicleModelList = objTicketDealerAdministrationRepository.GetVehicleModelList();
var oVModelTaggingList = oVehicleModelList.Where(w => w.VehicleTypeId.Equals(VModelNo));
foreach (var item13 in oVModelTaggingList)
{
VModelTagging = item13.VehicleTypeTagging;
}
ViewBag.ModelTagging = VModelTagging;
//Get customer details
List<CustomerModel> oCustomerList = objTicketDealerAdministrationRepository.GetCustomerDetails("", CustomerContactNo, "");
List<CustomerModel> itemCustomer = oCustomerList.Where(w => w.CustomerMobile1.Equals(CustomerContactNo)).ToList();
itemCustomer = itemCustomer.Where(w => w.VehicleRegistrationNumber.Equals(VRegistrationNo)).ToList();
itemCustomer = itemCustomer.Where(w => w.CustomerVehicleIsOwnwer.Equals(false)).ToList();
ViewBag.CustomerDetails = itemCustomer;
//Get route name
List<RouteModel> oRouteList = objTicketDealerAdministrationRepository.GetRoutesList();
var oRouteName = oRouteList.Where(w => w.Id.Equals(RouteId));
foreach (var item11 in oRouteName)
{
routeName = item11.Name;
}
ViewBag.Route = routeName;
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return PartialView(oTicketOpenCloseModel);
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketAdministrationDealer_GetTicketDetails", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
#endregion
#region Get Ticket Full Details
/// <summary>
/// Get Full details of ticket
/// </summary>
/// <param name="ticketId">selected ticket's id</param>
/// <param name="ticketStatus">ticket status open or close</param>
/// <returns>returns list type partia view</returns>
public ActionResult TicketAdministrationDealer_GetTicketDetails(string ticketId, string ticketStatus)
{
objLog.AddLogFile("TicketAdministrationDealer_GetTicketDetails", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
List<TicketOpenCloseModel> oTicketDetails = new List<TicketOpenCloseModel>();
oTicketDetails = objTicketDealerAdministrationRepository.Restful_GetOpenCloseTicketDetails(ticketId, ticketStatus);
//Global variables
int RouteId = 0; string routeName = "";
//Getting details of vehicle and customer from ticket details list
foreach (var item in oTicketDetails)
{
RouteId = item.RouteId;
}
//Get route name
List<RouteModel> oRouteList = objTicketDealerAdministrationRepository.GetRoutesList();
var oRouteName = oRouteList.Where(w => w.Id.Equals(RouteId));
foreach (var item11 in oRouteName)
{
routeName = item11.Name;
}
ViewBag.Route = routeName;
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return PartialView(oTicketDetails);
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketAdministrationDealer_GetTicketDetails", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
/// <summary>
/// Get caller/driver details of ticket
/// </summary>
/// <param name="CustomerContactNo">contact no. of caller/driver</param>
/// <param name="VRegistrationNo">vehicle's registration no. of caller/driver</param>
/// <returns>return json of list type</returns>
public ActionResult TicketAdministrationDealer_GetOpencloseTicketDriverDetails(string CustomerContactNo, string VRegistrationNo)
{
objLog.AddLogFile("TicketAdministrationDealer_GetOpencloseTicketDriverDetails", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
//Get customer details
List<CustomerModel> oCustomerList = objTicketDealerAdministrationRepository.GetCustomerDetails("", CustomerContactNo, "");
//List<CustomerModel> itemCustomer = oCustomerList.Where(w => w.CustomerMobile1.Equals(CustomerContactNo)).ToList();
List<CustomerModel> itemCustomer = oCustomerList.Where(w => w.VehicleRegistrationNumber.Equals(VRegistrationNo)).ToList();
itemCustomer = itemCustomer.Where(w => w.CustomerVehicleIsOwnwer.Equals(false)).ToList();
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(new { success = true, list = itemCustomer }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketAdministrationDealer_GetOpencloseTicketDriverDetails", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
/// <summary>
/// Get details of Vehicle's Owner
/// </summary>
/// <param name="VRegistrationNo">Vehicle's registration no.</param>
/// <returns>return list type json</returns>
public ActionResult TicketAdministrationDealer_GetOpencloseTicketOwnerDetails(string VRegistrationNo)
{
objLog.AddLogFile("TicketAdministrationDealer_GetOpencloseTicketOwnerDetails", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
//Get owner details
List<CustomerOwnerModel> oCustomerOwnerDetailsList = objTicketDealerAdministrationRepository.GetCustomerOwnerDetails(VRegistrationNo);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(new { success = true, list = oCustomerOwnerDetailsList }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketAdministrationDealer_GetOpencloseTicketOwnerDetails", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
/// <summary>
/// Get caller/driver's Vehicle details
/// </summary>
/// <param name="VRegistrationNo">vehicle's registration no.</param>
/// <returns>return list type json</returns>
public ActionResult TicketAdministrationDealer_GetOpencloseTicketVehicleDetails(string VRegistrationNo)
{
objLog.AddLogFile("TicketAdministrationDealer_GetOpencloseTicketVehicleDetails", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
string VModelNo = ""; string VModelTagging = ""; string VModelTaggingName = "";
//Get vehicle details
List<VehicleModel> oVehicleDetailsList = objTicketDealerAdministrationRepository.GetVehicleDetailsRegistrationNoWise(VRegistrationNo);
foreach (var item12 in oVehicleDetailsList)
{
VModelNo = item12.ModelNumber;
}
//Get vehicle's product varient(model tagging)
List<VehicleModelModel> oVehicleModelList = objTicketDealerAdministrationRepository.GetVehicleModelList();
var oVModelTaggingList = oVehicleModelList.Where(w => w.VehicleTypeId.Equals(VModelNo));
foreach (var item13 in oVModelTaggingList)
{
VModelTagging = item13.VehicleTypeTagging;
VModelTaggingName = item13.VehicleTypeName;
}
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(new { success = true, list = oVehicleDetailsList, vehicleModelTagging = VModelTagging, vehicleModelTaggingName = VModelTaggingName }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketAdministrationDealer_GetOpencloseTicketVehicleDetails", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
#region Get Escalation Level Membbers
/// <summary>
/// Method to get escalation level members name and contact no.
/// </summary>
/// <param name="dealer_id">Dealer Id</param>
/// <param name="vehicle_tagging">Vehicle Tagging</param>
/// <returns>return partial view</returns>
public ActionResult TicketAdministrationDealer_GetOpencloseTicketEscalationMembersDetails(string dealer_id, string vehicle_tagging)
{
objLog.AddLogFile("TicketAdministrationDealer_GetOpencloseTicketEscalationMembersDetails", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
//Get vehicle details
EscalationMemberLevel oEscalationMemberDetails = objTicketDealerAdministrationRepository.GetEscalationMemberDetailsDealerVehicleTypeWise(dealer_id, vehicle_tagging);
List<EscalationLevelList> oEscalationMemberDetailsList = oEscalationMemberDetails.EscalationLevelList;
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
//return Json(new { success = true, list = oEscalationMemberDetailsList }, JsonRequestBehavior.AllowGet);
return PartialView(oEscalationMemberDetailsList);
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketAdministrationDealer_GetOpencloseTicketEscalationMembersDetails", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
#endregion
#endregion
#region Get Ticket Activities
/// <summary>
/// Get open and close ticket activity view
/// </summary>
/// <param name="ticketId">open or close ticket id</param>
/// <param name="ticketStatus">open or close ticket status</param>
/// <returns>return view</returns>
[HttpPost]
public ActionResult TicketAdministrationDealer_ShowTicketActivityOpenClose(string ticketId, string ticketStatus)
{
objLog.AddLogFile("TicketAdministrationDealer_ShowTicketActivityOpenClose", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
objDropDownDataRepository = new DropDownDataRepository();
List<OpenTicketActivityDetails> oOpenTicketActivityList = null;
List<CloseTicketActivityDetails> oCloseTicketActivityList = null;
TicketModel oUpdateTicketModel = new TicketModel();
string description = "";
string splitDescription = "";
int ticketStatusId = 0;
var assignedTo = "";
//Bind ticket details from temp data
List<TicketOpenCloseModel> ticketDetailsList = new List<TicketOpenCloseModel>();
ticketDetailsList = objTicketDealerAdministrationRepository.Restful_GetOpenCloseTicketDetails(ticketId, ticketStatus);
ViewBag.TicketDetailsUpdate = ticketDetailsList;
foreach (var item in ticketDetailsList)
{
ViewBag.ticketId = item.TicketIdAlias;
if (item.TicketIdAlias.Contains("P"))
{
ViewBag.VehicleType = "EPS";
}
else
{
ViewBag.VehicleType = item.VehicleType;
}
ViewBag.VRegistrationNo = item.VehicleRegisterNumber;
ViewBag.ticketDefaultSla = item.DefaultSlaTime;
ViewBag.TicketStatus = item.TicketStatus;
ViewBag.OpportunityLossReason = item.OpportunityLossReason;
ViewBag.ChassisNo = item.ChassisNumber;
ViewBag.OdometerReading = item.OdoMeter;
ViewBag.PreviousOdometerReading = item.PreviousOdometerReading;
ticketStatusId = item.TicketStatus;
assignedTo = item.AssignedTo;
if (item.SuggestionComment == null)
{
description = "";
}
else
{
description = item.SuggestionComment.ToString();
}
//remove new line or new row tags from string
string[] splitDescriptionArr = description.Split('\r', '\n');
foreach (string descriptionString in splitDescriptionArr)
{
splitDescription += descriptionString;
}
ViewBag.DescriptionMultiline = splitDescription;
oUpdateTicketModel.SuggestionComment = splitDescription;
}
//Get ticket status list
List<TicketStatus> oTicketStatusList = objTicketDealerAdministrationRepository.GetTicketStatusList().OrderBy(o => o.SequenceNo).ToList();
//oTicketStatusList.re
oTicketStatusList.Remove(oTicketStatusList.Single(s => s.Id == 8));
//Check if ticket is closed
if (ticketStatusId == 5 || ticketStatusId == 7)
{
oTicketStatusList.RemoveRange(0, 4);
oTicketStatusList.RemoveAt(2);
if (ticketStatusId == 5)
{
oTicketStatusList.RemoveAt(1);
}
else
{
oTicketStatusList.RemoveAt(0);
}
ViewBag.TicketStatusList = oTicketStatusList;
}
//else if ticket is declined
else if (ticketStatusId == 6)
{
oTicketStatusList.RemoveRange(0, 7);
ViewBag.TicketStatusList = oTicketStatusList;
}
//else if ticket is in open state(1=New, 2=assign, 3=In progress, 4=Pre closure)
else if (ticketStatusId == 9)
{
ViewBag.TicketStatusList = oTicketStatusList.Where(r => r.Id == 3 || r.Id == 4).ToList(); ;
}
else
{
var removeLessThanSelectedStatus = oTicketStatusList.Where(r => r.Id < ticketStatusId).ToList();
var removeCloseStatus = oTicketStatusList.Where(r => r.Id == 5).FirstOrDefault();
var removeOpportunityLostStatus = oTicketStatusList.Where(r => r.Id == 7).FirstOrDefault();
foreach (var item in removeLessThanSelectedStatus)
{
oTicketStatusList.Remove(item);
}
oTicketStatusList.Remove(removeCloseStatus);
oTicketStatusList.Remove(removeOpportunityLostStatus);
//added on 26-03-2020(to show decline status to dealer only when status == assigned)
//if (assignedTo == "dealer" && ticketStatusId != 2)
if (assignedTo == "dealer" || assignedTo == "van")
{
var removeDecline = oTicketStatusList.Where(r => r.Id == 6).FirstOrDefault();
if (removeDecline != null)
{
oTicketStatusList.Remove(removeDecline);
}
}
else
{
if (ticketStatusId > 1 && ticketStatusId != 2)
{
var removeDecline = oTicketStatusList.Where(r => r.Id == 6).FirstOrDefault();
if (removeDecline != null)
{
oTicketStatusList.Remove(removeDecline);
}
}
else
{
// hiding status NEW for VAN tickets
var removeNew = oTicketStatusList.Where(r => r.Id == 1).FirstOrDefault();
if (removeNew != null)
{
oTicketStatusList.Remove(removeNew);
}
}
}
var tripStartObj = oTicketStatusList.Where(w => w.Id == 9).FirstOrDefault();
if (tripStartObj != null)
{
oTicketStatusList.Remove(tripStartObj);
}
var tripEndObj = oTicketStatusList.Where(w => w.Id == 8).FirstOrDefault();
if (tripEndObj != null)
{
oTicketStatusList.Remove(tripEndObj);
}
ViewBag.TicketStatusList = oTicketStatusList;
}
//Get opportunity lost reason
List<OpportunityLostReasonsModel> oOpportunityLostReasonList = objDropDownDataRepository.GetOpprtunityLostReasonsList();
ViewBag.OpportunityLostReasonList = oOpportunityLostReasonList;
//Get opportunity lost reason
oOpportunityLostReasonList = objDropDownDataRepository.GetAllDelayedReasonMorethan24Hrs();
ViewBag.ReasonForcloseTicketmorethan24Hrs = oOpportunityLostReasonList;
//Get close tickets activity if ticket status is close
if (ticketStatus == "close")
{
//close ticket api
oCloseTicketActivityList = objTicketDealerAdministrationRepository.GetCloseTicketActivityDetails(ticketId);
ViewBag.OpenTicketActivity = null;
ViewBag.CloseTicketActivity = oCloseTicketActivityList;
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return PartialView();
}
//else get open tickets activity
else
{
//open ticket api
oOpenTicketActivityList = objTicketDealerAdministrationRepository.GetOpenTicketActivityDetails(ticketId);
ViewBag.OpenTicketActivity = oOpenTicketActivityList;
ViewBag.CloseTicketActivity = null;
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return PartialView();
}
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketAdministrationDealer_ShowTicketActivityOpenClose", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
#endregion
#region Update Ticket Status
/// <summary>
/// Update ticket status
/// </summary>
/// <param name="model">Ticket model</param>
/// <returns>returns json success true or false</returns>
[HttpPost]
public ActionResult TicketAdministration_UpdateTicketOpenClose(TicketModel model)
{
objLog.AddLogFile("TicketAdministrationDealer_UpdateTicketOpenClose", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
TicketModel oUpdateTicketModel = new TicketModel();
if (model.AssignedTo == "dealer")
{
oUpdateTicketModel = objTicketDealerAdministrationRepository.UpdateTicketDetails(model);
//objLog.AddLogFile("TicketAdministrationDealer_UpdateTicketOpenClose", model, DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
//objLog.AddLogFile("TicketAdministrationDealer_UpdateTicketOpenClose", oUpdateTicketModel, DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
if (oUpdateTicketModel.Status.ToString() == "1")
{
//objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(new { success = true, ticketId = model.TicketId, ticketStatus = model.TicketStatus, message = oUpdateTicketModel.Message });
}
else if (oUpdateTicketModel.Status.ToString() == "2")
{
//objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(new { success = false, message = oUpdateTicketModel.Message });
}
else
{
//objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
//return Json(new { success = false, message = "update_ticket_failed" });
return Json(new { success = false, message = Convert.ToString(ConfigurationManager.AppSettings["update_ticket_failed"]) });
}
}
else if (model.AssignedTo == "van")
{
if (model.CurrentTicketStatus == 3 || model.CurrentTicketStatus == 9 || model.TicketStatus == 2 || model.TicketStatus == 4)
{
if (model.CurrentTicketStatus == 9)
{
model.TicketStatus =9; //commented existing condition on 03-05-2021
// model.TicketStatus = 4; //added new condition on 03-05-2021
}
oUpdateTicketModel = objTicketDealerAdministrationRepository.UpdateTicketDetails(model);
//objLog.AddLogFile("TicketAdministrationDealer_UpdateTicketOpenClose", model, DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
//objLog.AddLogFile("TicketAdministrationDealer_UpdateTicketOpenClose", oUpdateTicketModel, DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
if (oUpdateTicketModel.Status.ToString() == "1")
{
//objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(new { success = true, ticketId = model.TicketId, ticketStatus = model.TicketStatus, message = oUpdateTicketModel.Message });
}
else if (oUpdateTicketModel.Status.ToString() == "2")
{
//objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(new { success = false, message = oUpdateTicketModel.Message });
}
else
{
//objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
//return Json(new { success = false, message = "update_ticket_failed" });
return Json(new { success = false, message = Convert.ToString(ConfigurationManager.AppSettings["update_ticket_failed"]) });
}
}
else
{
//objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(new { success = false, message = "Please update Van reached status from EOS app for updating comments in “In Progress” Status" });
//return Json(new { success = false, message = Convert.ToString(ConfigurationManager.AppSettings["update_ticket_failed"]) });
}
}
else
{
//objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(new { success = false, message = "Please update Van reached status from EOS app for updating comments in “In Progress” Status" });
//return Json(new { success = false, message = Convert.ToString(ConfigurationManager.AppSettings["update_ticket_failed"]) });
}
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketAdministrationDealer_UpdateTicketOpenClose", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
#endregion
public JsonResult GetEngineNoByEOSApiSearch(string chassisBySearch)
{
objLog.AddLogFile("GetEngineNoByEOSApiSearch", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
List<Engine_SRCH_Model> oChassisList = new List<Engine_SRCH_Model>();
oChassisList = objTicketDealerAdministrationRepository.GetEngineNoByEOSApiSearch(chassisBySearch);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(oChassisList, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
objLog.ErrorLogFile("GetEngineNoByEOSApiSearch", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
public JsonResult GetChassisNoByEOSApiSearch(string chassisBySearch,string ticketID)
{
objLog.AddLogFile("GetChassisNoByEOSpiSearch", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
if (ticketID.Contains("P"))
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
List<Engine_SRCH_Model> oChassisList = new List<Engine_SRCH_Model>();
oChassisList = objTicketDealerAdministrationRepository.GetEngineNoByEOSApiSearch(chassisBySearch);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(oChassisList, JsonRequestBehavior.AllowGet);
}
else
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
List<CHASSIS_SRCH_Model> oChassisList = new List<CHASSIS_SRCH_Model>();
oChassisList = objTicketDealerAdministrationRepository.GetChassisNoByEOSApiSearch(chassisBySearch);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(oChassisList, JsonRequestBehavior.AllowGet);
}
}
catch (Exception ex)
{
objLog.ErrorLogFile("GetChassisNoByEOSpiSearch", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
// get Odometer by chassis number
/// <summary>
/// Get all vans and dealers list for ticket assignment
/// </summary>
/// <param name="chassisBySearch">selected state name</param>
/// <param name="ticketID">vans and dealers limit</param>
/// <returns>returns json list of vans and dealers</returns>
public JsonResult GetOdoMeterBYChassisNo(string chassisNumber, string ticketIDAlias)
{
objLog.AddLogFile("GetOdoMeterBYChassisNo", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
CHASSIS_ODOMETER_Model oOdoMeterModel = new CHASSIS_ODOMETER_Model();
oOdoMeterModel = objTicketDealerAdministrationRepository.GetOdoMeterBYChassisNumber(chassisNumber, ticketIDAlias);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(oOdoMeterModel, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
objLog.ErrorLogFile("GetChassisNoByEOSpiSearch", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
#region Reassign Ticket
/// <summary>
/// Get partial view as popup window for reassign ticket
/// </summary>
/// <returns>return partial view</returns>
public ActionResult TicketAdministration_DealerReassignTicket()
{
return PartialView();
}
#endregion
#region Get Dealers Own Vans
/// <summary>
/// Get all vans and dealers list for ticket assignment
/// </summary>
/// <param name="StateName">selected state name</param>
/// <param name="limit">vans and dealers limit</param>
/// <returns>returns json list of vans and dealers</returns>
public JsonResult GetDealersOwnVan(string StateName, string limit)
{
objLog.AddLogFile("TicketAdministrationDealer_GetAllNearestVansDealers", DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
try
{
objTicketDealerAdministrationRepository = new TicketAdministration_DealerRepository();
List<DealersOwnVanModel> oDealersOwnVanList = new List<DealersOwnVanModel>();
oDealersOwnVanList = objTicketDealerAdministrationRepository.GetDealersOwnVansList(StateName, limit);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
return Json(new { NearestVansDealers = oDealersOwnVanList }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
objLog.ErrorLogFile("TicketAdministrationDealer_GetAllNearestVansDealers", ex.Message, path, errorlogtf);
objLog.AddLogFile(DateTime.Now.ToString(ConfigurationManager.AppSettings["dateTimeFormat"]), path, logtf);
throw ex;
}
}
#endregion
#region ticket dealer reason view
/// <summary>
/// Get view of Kendo window to fill Reason for dealer ticket assignment
/// </summary>
/// <returns>partial view</returns>
public ActionResult Ticket_GetDealerTicketReasonView()
{
return PartialView();
}
/// <summary>
/// Get view of Kendo window to fill Reason for dealer ticket re-assignment
/// </summary>
/// <returns>partial view</returns>
public ActionResult Ticket_GetDealerTicketReassignReasonView()
{
return PartialView();
}
#endregion
}
}