924 lines
44 KiB
C#
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
|
|
}
|
|
}
|