public JsonResult InsertServiceRequire(Q_DailyRequire model) { ResponseBase rs; try { rs = BLLServiceInfo.Instance.InsertServiceRequire(model, AppGlobal.Connectionstring); if (!rs.IsSuccess) { JsonDataResult.Result = "ERROR"; JsonDataResult.ErrorMessages.AddRange(rs.Errors); } else { JsonDataResult.Result = "OK"; JsonDataResult.Data = rs.Data; } } catch (Exception ex) { throw ex; } return(Json(JsonDataResult)); }
public ResponseBase ThemPhieu(string connectString, int stt, int dichvuId, string maphieuDichVu, string maCongViec, string maLoaiCongViec, TimeSpan?serveTimeAllow, DateTime printTime) { var rs = new ResponseBase(); Q_DailyRequire rq = null, modelObj = new Q_DailyRequire(); int _serviceNumber = 0; using (var db = new QMSSystemEntities(connectString)) { if (!string.IsNullOrEmpty(maCongViec) && !string.IsNullOrEmpty(maLoaiCongViec)) { modelObj = LayGioPhucVuDuKien(db, maCongViec, maLoaiCongViec, modelObj); if (serveTimeAllow.HasValue) { modelObj.ServeTimeAllow = modelObj.ServeTimeAllow.Add(serveTimeAllow.Value); } serveTimeAllow = modelObj.ServeTimeAllow; } var ser = db.Q_Service.FirstOrDefault(x => x.Id == dichvuId); if (ser != null) { _serviceNumber = ser.StartNumber; if (!serveTimeAllow.HasValue) { serveTimeAllow = ser.TimeProcess.TimeOfDay; } } var nv = db.Q_ServiceStep.Where(x => !x.IsDeleted && !x.Q_Service.IsDeleted && x.ServiceId == dichvuId).OrderBy(x => x.Index).FirstOrDefault(); if (nv == null) { rs.IsSuccess = false; rs.Errors.Add(new Error() { MemberName = "Lỗi Nghiệp vụ", Message = "Lỗi: Dịch vụ này chưa được phân nghiệp vụ. Vui lòng liên hệ người quản lý hệ thống. Xin cám ơn!.." }); } else { modelObj.TicketNumber = stt; modelObj.ServiceId = dichvuId; modelObj.BusinessId = null; modelObj.PrintTime = printTime; modelObj.ServeTimeAllow = serveTimeAllow ?? new TimeSpan(0, 0, 0); modelObj.CustomerName = ""; // Name; modelObj.CustomerDOB = 0; // DOB; modelObj.CustomerAddress = ""; // Address; modelObj.MaBenhNhan = ""; // MaBenhNhan; modelObj.MaPhongKham = ""; // MaPhongKham; modelObj.STT_PhongKham = maphieuDichVu; modelObj.CarNumber = ""; // SoXe; modelObj.Q_DailyRequire_Detail = new Collection <Q_DailyRequire_Detail>(); var foundService = db.Q_Service.FirstOrDefault(x => x.Id == dichvuId); var detail = new Q_DailyRequire_Detail(); detail.Q_DailyRequire = modelObj; detail.MajorId = nv.MajorId; detail.StatusId = (int)eStatus.CHOXL; if (foundService != null && foundService.AutoEnd) { detail.StatusId = (int)eStatus.HOTAT; var now = DateTime.Now; var timeend = foundService.TimeAutoEnd != null ? foundService.TimeAutoEnd.Value.TimeOfDay : new TimeSpan(0, 10, 00); detail.ProcessTime = now; detail.EndProcessTime = now.AddMinutes(timeend.TotalMinutes); } modelObj.Q_DailyRequire_Detail.Add(detail); db.Q_DailyRequire.Add(modelObj); var sodanggoi = db.Q_DailyRequire_Detail.Where(x => x.Q_DailyRequire.ServiceId == dichvuId && x.StatusId == (int)eStatus.DAGXL).OrderByDescending(x => x.ProcessTime).FirstOrDefault(); var userIds = (from x in db.Q_UserMajor where x.MajorId == nv.MajorId && !x.IsDeleted select x.UserId).ToList(); var equipCodes = (from x in db.Q_Login where x.StatusId == (int)eStatus.LOGIN && userIds.Contains(x.UserId) && !x.Q_User.IsDeleted select x.EquipCode).ToList(); var tq = (from x in db.Q_Equipment where (equipCodes.Count == 0 && userIds.Count > 0 ? userIds.Contains(x.Code) : equipCodes.Contains(x.Code)) && !x.IsDeleted && !x.Q_Counter.IsDeleted select x.Q_Counter.Name).ToArray(); var tqs = String.Join("@", tq).Replace("@", ("" + System.Environment.NewLine)); db.SaveChanges(); rs.IsSuccess = true; rs.Data = (stt - 1); rs.Data_1 = detail.MajorId; rs.Records = (sodanggoi != null ? sodanggoi.Q_DailyRequire.TicketNumber : 0); rs.Data_2 = tqs; rs.Data_3 = modelObj.TicketNumber; rs.Data_4 = modelObj; } } return(rs); }
private Q_DailyRequire LayGioPhucVuDuKien(QMSSystemEntities db, string maCongViec, string maLoaiCongViec, Q_DailyRequire model) { DateTime processTime = new DateTime(2020, 1, 1, 00, 00, 00); string[] codes = maCongViec.Split(',').Select(x => x.Trim().ToUpper()).ToArray(); if (codes != null && codes.Length > 0) { var a = (from x in db.Q_WorkDetail where !x.IsDeleted select new ModelSelectItem() { Code = x.Q_Works.Code, Name = x.Q_WorkType.Code }).ToList(); var congviecs = (from x in db.Q_WorkDetail where !x.IsDeleted && codes.Contains(x.Q_Works.Code.Trim().ToUpper()) && maLoaiCongViec.Trim().ToUpper().Equals(x.Q_WorkType.Code.Trim().ToUpper()) select new { TimeProcess = x.TimeProcess, Id = x.Id }).ToArray(); model.Q_DailyRequire_WorkDetail = new List <Q_DailyRequire_WorkDetail>(); for (int i = 0; i < congviecs.Count(); i++) { processTime = processTime.AddSeconds(congviecs[i].TimeProcess.TimeOfDay.TotalSeconds); model.Q_DailyRequire_WorkDetail.Add(new Q_DailyRequire_WorkDetail() { Q_DailyRequire = model, WorkDetailId = congviecs[i].Id }); } } model.ServeTimeAllow = processTime.TimeOfDay; return(model); }
public ResponseBase CapSoPhongKhamKhongHen(string connectString, int dichvuId, DateTime printTime) { var rs = new ResponseBase(); var modelObj = new Q_DailyRequire(); int _serviceStartNumber = 0; TimeSpan?serveTimeAllow = new TimeSpan(0, 0, 0), tgGoiDK = new TimeSpan(0, 0, 0); using (var db = new QMSSystemEntities(connectString)) { var dichvu = db.Q_Service.FirstOrDefault(x => x.Id == dichvuId); if (dichvu != null) { _serviceStartNumber = dichvu.StartNumber; serveTimeAllow = dichvu.TimeProcess.TimeOfDay; } var nv = db.Q_ServiceStep .Where(x => !x.IsDeleted && !x.Q_Service.IsDeleted && x.ServiceId == dichvuId) .OrderBy(x => x.Index) .FirstOrDefault(); if (nv == null) { rs.IsSuccess = false; rs.Errors.Add(new Error() { MemberName = "Lỗi Nghiệp vụ", Message = "Lỗi: Dịch vụ này chưa được phân nghiệp vụ. Vui lòng liên hệ người quản lý hệ thống. Xin cám ơn!.." }); } else { int stt = 0; var lastTicket = db.Q_DailyRequire .Where(x => x.ServiceId == dichvuId && x.Type == (int)eDailyRequireType.KhamBenh) .OrderByDescending(x => x.TicketNumber) .FirstOrDefault(); if (lastTicket != null) { stt = lastTicket.TicketNumber + 1; } else { stt = _serviceStartNumber; } modelObj.TicketNumber = stt; modelObj.ServiceId = dichvuId; modelObj.BusinessId = null; modelObj.PrintTime = printTime; modelObj.ServeTimeAllow = serveTimeAllow ?? new TimeSpan(0, 0, 0); modelObj.Type = (int)eDailyRequireType.KhamBenh; modelObj.Q_DailyRequire_Detail = new Collection <Q_DailyRequire_Detail>(); var detail = new Q_DailyRequire_Detail(); detail.Q_DailyRequire = modelObj; detail.MajorId = nv.MajorId; detail.StatusId = (int)eStatus.CHOXL; if (dichvu != null && dichvu.AutoEnd) { detail.StatusId = (int)eStatus.HOTAT; var now = DateTime.Now; var timeend = dichvu.TimeAutoEnd != null ? dichvu.TimeAutoEnd.Value.TimeOfDay : new TimeSpan(0, 10, 00); detail.ProcessTime = now; detail.EndProcessTime = now.AddMinutes(timeend.TotalMinutes); } modelObj.Q_DailyRequire_Detail.Add(detail); db.Q_DailyRequire.Add(modelObj); var sodanggoi = db.Q_DailyRequire_Detail.Where(x => x.Q_DailyRequire.ServiceId == dichvuId && x.StatusId == (int)eStatus.DAGXL).OrderByDescending(x => x.ProcessTime).FirstOrDefault(); var userIds = (from x in db.Q_UserMajor where x.MajorId == nv.MajorId && !x.IsDeleted select x.UserId).ToList(); var equipCodes = (from x in db.Q_Login where x.StatusId == (int)eStatus.LOGIN && userIds.Contains(x.UserId) && !x.Q_User.IsDeleted select x.EquipCode).ToList(); var tq = (from x in db.Q_Equipment where (equipCodes.Count == 0 && userIds.Count > 0 ? userIds.Contains(x.Code) : equipCodes.Contains(x.Code)) && !x.IsDeleted && !x.Q_Counter.IsDeleted select x.Q_Counter.Name).ToArray(); var tqs = String.Join("@", tq).Replace("@", ("" + System.Environment.NewLine)); db.SaveChanges(); rs.IsSuccess = true; rs.Data = (stt - 1); rs.Data_1 = detail.MajorId; rs.Records = (sodanggoi != null ? sodanggoi.Q_DailyRequire.TicketNumber : 0); rs.Data_2 = tqs; rs.Data_3 = stt; } } return(rs); }
public ResponseBase InsertServiceRequire(Q_DailyRequire model, string connectString) { using (var db = new QMSSystemEntities(connectString)) { try { var result = new ResponseBase(); var checkExists = db.Q_DailyRequire.FirstOrDefault(x => x.PhoneNumber == model.PhoneNumber && x.ServiceId == model.ServiceId); if (checkExists != null) { result.IsSuccess = true; result.Data = "Khách hàng có Số điện thoại : " + checkExists.PhoneNumber + " <br/>đã đăng ký dịch vụ : " + checkExists.Q_Service.Name + "<br/>được cấp STT : " + checkExists.TicketNumber + "<br/>Thời gian phục vụ dự kiến :" + (checkExists.TGDKien.HasValue ? checkExists.TGDKien.Value.ToString("HH'h : 'mm") : ""); } else { var dichvu = db.Q_Service.Where(x => x.Id == model.ServiceId).FirstOrDefault(); var serviceMajor = db.Q_ServiceStep.Where(x => !x.IsDeleted).OrderBy(x => x.Index).FirstOrDefault(); double minutes = 0; DateTime time = DateTime.Now; if (dichvu != null && serviceMajor != null) { var phieuDV = db.Q_DailyRequire_Detail.Where(x => x.Q_DailyRequire.ServiceId == model.ServiceId).OrderByDescending(x => x.Q_DailyRequire.PrintTime).Select(x => new { PrintTime = x.Q_DailyRequire.PrintTime, TicketNumber = x.Q_DailyRequire.TicketNumber, StatusId = x.StatusId }).ToList(); model.PrintTime = time; // model.sta = eStatusName.Wating; if (phieuDV.Count > 0) { model.TicketNumber = phieuDV[0].TicketNumber + 1; var phieuDangXL = phieuDV.Where(x => (int)eStatus.DAGXL == x.StatusId).FirstOrDefault(); if (phieuDangXL != null) { minutes = (dichvu.TimeProcess.TimeOfDay).TotalMinutes * ((int)phieuDV[0].TicketNumber - (int)phieuDangXL.TicketNumber); } else { minutes = (dichvu.TimeProcess.TimeOfDay).TotalMinutes * phieuDV.Count; } model.TGDKien = time.AddMinutes(minutes); } else { model.TicketNumber = dichvu.StartNumber; model.TGDKien = time; } Q_DailyRequire_Detail modelDetail = new Q_DailyRequire_Detail(); modelDetail.Q_DailyRequire = model; modelDetail.MajorId = serviceMajor.MajorId; modelDetail.StatusId = (int)eStatus.CHOXL; model.Q_DailyRequire_Detail = new List <Q_DailyRequire_Detail>(); model.Q_DailyRequire_Detail.Add(modelDetail); db.Q_DailyRequire.Add(model); db.SaveChanges(); result.IsSuccess = true; result.Data = "Khách hàng có Số điện thoại : " + model.PhoneNumber + " <br/>đã chọn Dịch vụ : " + dichvu.Name + "<br/>được cấp STT : " + model.TicketNumber + "<br/>Thời gian phục vụ dự kiến :" + model.TGDKien.Value.ToString("HH'h : 'mm"); } else { result.IsSuccess = false; result.Errors.Add(new Error() { MemberName = "them", Message = "Không tìm thấy Dịch Vu theo yêu cầu.Vui lòng thử lại." }); } } return(result); } catch (Exception ex) { throw ex; } } }
private ResponseBase InPhieu(Q_DailyRequire model, string maKhoa) { return(BLLDailyRequire.Instance.API_PrintNewTicket(connectString, model, maKhoa)); }