/// <summary> /// Funcion para generar un nuevo id para el registro en el historial del ticket /// </summary> /// <param name="ticketId">Id del ticket a generar un nuevo registro</param> /// <returns>Id del nuevo registro para el ticket</returns> public static int GenerateRecordId(long ticketId) { int recordNumber; using (var db = new dbGoldenTicket()) { recordNumber = (from tblRecordAux in db.TK_DT_RECORDS where tblRecordAux.TK_HD_TICKETS_ID == ticketId select tblRecordAux).Distinct().Count() + 1; } return(recordNumber); }
/// <summary> /// Agrega un nuevo registro en el historial de un ticket /// </summary> /// <param name="ticketRecord">Objeto con la informacion a agregar en el historial del ticket</param> /// <returns>TicketRegisterResult con la secuencia del nuevo registro</returns> public TicketRegisterResult UpdateRecord(TK_DT_RECORDS ticketRecord) { var result = new TicketRegisterResult(); using (var db = new dbGoldenTicket()) { ticketRecord.TK_DT_RECORDS_ID = GenerateRecordId(ticketRecord.TK_HD_TICKETS_ID); db.TK_DT_RECORDS.Add(ticketRecord); db.SaveChanges(); result.SequenceNewTicket = ticketRecord.TK_DT_RECORDS_ID; result.Success = true; result.Message = "op_exitosa"; } return(result); }
/// <summary> /// Valida si un ticket le pertenece a la persona que lo esta consultando /// </summary> /// <param name="ticketId">Id del ticket a validar</param> /// <param name="userId">Usuario a validar</param> /// <returns>Booleano que indica si al usuario le pertenece el ticket</returns> public bool ValidateTicketOwner(long ticketId, string userId) { var result = false; try { using (var db = new dbGoldenTicket()) { var query = from tblTicket in db.TK_HD_TICKETS join tblRecord in db.TK_DT_RECORDS on tblTicket.TK_HD_TICKETS_ID equals tblRecord .TK_HD_TICKETS_ID where tblTicket.TK_HD_TICKETS_ID == ticketId && tblRecord.TK_BT_EMPLOYEES_ID == userId && tblRecord.TK_DT_RECORDS_ID == ( from tblTicketAux in db.TK_HD_TICKETS join tblRecordAux in db.TK_DT_RECORDS on tblTicketAux.TK_HD_TICKETS_ID equals tblRecordAux .TK_HD_TICKETS_ID where tblTicket.TK_HD_TICKETS_ID == tblTicketAux.TK_HD_TICKETS_ID select tblRecordAux.TK_DT_RECORDS_ID ).Max() select tblTicket; result = query.Any(); } } catch (DbEntityValidationException ex) { //Falló al tratar de registrar datos en la base de datos foreach (var e in ex.EntityValidationErrors) { foreach (var validationError in e.ValidationErrors) { Console.WriteLine("Property: " + validationError.PropertyName + " Error: " + validationError.ErrorMessage); } } } return(result); }
/// <summary> /// Funcion que dados los datos de un ticket se crea un nuevo elemento /// y su inicio en el historial /// </summary> /// <param name="ticketRecord">Objeto con los datos para el historial del ticket</param> /// <param name="ticket">objeto con los datos del ticket para su creacion </param> /// <returns>TicketRegisterResult con el folio y id del ticket nuevo</returns> public TicketRegisterResult CreateNewTicket(TK_HD_TICKETS ticket, TK_DT_RECORDS ticketRecord) { var result = new TicketRegisterResult(); using (var db = new dbGoldenTicket()) { db.TK_HD_TICKETS.Add(ticket); ticketRecord.TK_HD_TICKETS_ID = ticket.TK_HD_TICKETS_ID; ticketRecord.TK_DT_RECORDS_ID = GenerateRecordId(ticketRecord.TK_HD_TICKETS_ID); db.TK_DT_RECORDS.Add(ticketRecord); db.SaveChanges(); result.FolioNewTicket = ticket.FOLIO; result.IdNewTicket = ticket.TK_HD_TICKETS_ID; result.Success = true; result.Message = "op_exitosa"; } return(result); }
/// <summary> /// Funcion para generar el id del ticket /// </summary> /// <returns>Un string con el numero de ticket</returns> public static string GenerateTicketFolio() { string ticketNumber; using (var db = new dbGoldenTicket()) { var count = ( from tblTicketAux in db.TK_HD_TICKETS join tblRecordAux in db.TK_DT_RECORDS on tblTicketAux.TK_HD_TICKETS_ID equals tblRecordAux.TK_HD_TICKETS_ID where tblRecordAux.TK_CT_STATUS_ID == "ABT" && tblRecordAux.ACTIVITY_DATE.Year == DateTime.Today.Year && tblRecordAux.ACTIVITY_DATE.Month == DateTime.Today.Month && tblRecordAux.ACTIVITY_DATE.Day == DateTime.Today.Day select tblTicketAux.TK_HD_TICKETS_ID ).Distinct().Count() + 1; ticketNumber = DateTime.Now.ToString("yyyyMMdd") + count.ToString().PadLeft(4, '0'); } return(ticketNumber); }