public async Task <IActionResult> GetByMaster(int MasterId) { var QueryData = await this.repository.GetAllAsQueryable() .Where(x => x.ProjectCodeMasterId == MasterId).ToListAsync(); var QueryDetailMiss = await this.repositoryDetail.GetAllAsQueryable() .Where(x => x.ProjectCodeMasterId == MasterId && !QueryData.Select(z => z.Code).Contains(x.ProjectCodeDetailCode)) .ToListAsync(); if (QueryDetailMiss.Any()) { foreach (var item in QueryDetailMiss) { var nProjectCodeSub = new ProjectCodeSub { CreateDate = DateTime.Now, Creator = "ByCoding", ProjectCodeMasterId = MasterId, Code = item.ProjectCodeDetailCode, Name = item.Description, }; await this.repository.AddAsync(nProjectCodeSub); } QueryData = await this.repository.GetAllAsQueryable() .Where(x => x.ProjectCodeMasterId == MasterId).ToListAsync(); } return(new JsonResult(QueryData.Where(x => x.ProjectSubStatus == ProjectSubStatus.Use), this.DefaultJsonSettings)); }
public async Task <IActionResult> Post([FromBody] ProjectCodeSub nProjectCodeSub) { if (nProjectCodeSub != null) { var temp = await this.repository.GetAllAsQueryable() .Where(x => x.ProjectCodeMasterId == nProjectCodeSub.ProjectCodeMasterId && x.Code.ToLower().Trim().Equals(nProjectCodeSub.Code.ToLower().Trim())) .FirstOrDefaultAsync(); if (temp == null) { nProjectCodeSub = helpers.AddHourMethod(nProjectCodeSub); nProjectCodeSub.CreateDate = DateTime.Now; nProjectCodeSub.Creator = nProjectCodeSub.Creator ?? "Someone"; // Trim nProjectCodeSub.Code = nProjectCodeSub.Code.Trim(); if (!nProjectCodeSub.ProjectSubStatus.HasValue || nProjectCodeSub.ProjectSubStatus == null) { nProjectCodeSub.ProjectSubStatus = ProjectSubStatus.Use; } //if (nProjectCodeSub.ProjectCodeMaster != null) // nProjectCodeSub.ProjectCodeMaster = null; if (nProjectCodeSub.ProjectSubParent != null) { nProjectCodeSub.ProjectSubParent = null; } return(new JsonResult(await this.repository.AddAsync(nProjectCodeSub), this.DefaultJsonSettings)); } else { return(new JsonResult(temp, this.DefaultJsonSettings)); } } return(NotFound(new { Error = "Not found ProjectCodeSub data !!!" })); }
public async Task <IActionResult> PutByNumber(int key, [FromBody] ProjectCodeSub uProjectCodeSub) { var Message = "Not found ProjectCodeSub data."; try { if (uProjectCodeSub != null) { // add hour to DateTime to set Asia/Bangkok uProjectCodeSub = helpers.AddHourMethod(uProjectCodeSub); uProjectCodeSub.ModifyDate = DateTime.Now; uProjectCodeSub.Modifyer = uProjectCodeSub.Modifyer ?? "Someone"; if (!uProjectCodeSub.ProjectSubStatus.HasValue || uProjectCodeSub.ProjectSubStatus == null) { uProjectCodeSub.ProjectSubStatus = ProjectSubStatus.Use; } //if (uProjectCodeSub.ProjectCodeMaster != null) // uProjectCodeSub.ProjectCodeMaster = null; if (uProjectCodeSub.ProjectSubParent != null) { uProjectCodeSub.ProjectSubParent = null; } return(new JsonResult(await this.repository.UpdateAsync(uProjectCodeSub, key), this.DefaultJsonSettings)); } } catch (Exception ex) { Message = $"Has error {ex.ToString()}"; } return(NotFound(new { Error = Message })); }
public async Task <IActionResult> GetRequirePaintingMasterHasWait() { string Message = ""; try { var QueryData = this.repository.GetAllAsQueryable() .Include(x => x.ProjectCodeSub) .AsQueryable(); QueryData = QueryData.Where( x => (x.RequirePaintingStatus == RequirePaintingStatus.Waiting)); var GetData = await QueryData.ToListAsync(); if (GetData.Any()) { var dataTable = new List <IDictionary <String, Object> >(); List <string> columns = new List <string>() { "JobNumber", "Employee" }; foreach (var item in GetData.Where(x => x.RequireDate != null) .OrderBy(x => x.RequireDate) .GroupBy(x => x.RequireDate.Value.Date) .Select(x => x.Key)) { columns.Add(item.ToString("dd/MM/yy")); } foreach (var ProjectCodeSub in GetData.GroupBy(x => x.ProjectCodeSub)) { foreach (var RequireEmp in ProjectCodeSub.GroupBy(x => x.RequireEmp)) { if (RequireEmp == null) { continue; } else { var Employee = await this.repositoryEmp.GetAsync(RequireEmp.Key); IDictionary <String, Object> rowData = new ExpandoObject(); var EmployeeReq = RequireEmp.Key != null ? $"{(Employee?.NameThai ?? "")}" : "No-Data"; // add column time rowData.Add(columns[1], EmployeeReq); foreach (var item in RequireEmp) { // Get ProjectMaster var ProjectMaster = await this.repositoryProMas.GetAsync(item.ProjectCodeSub.ProjectCodeMasterId ?? 0); string JobNumber = $"{ProjectMaster?.ProjectCode ?? "No-Data"}/{(item.ProjectCodeSub == null ? "No-Data" : item.ProjectCodeSub.Code)}"; // if don't have type add item to rowdata if (!rowData.Keys.Any(x => x == "JobNumber")) { rowData.Add(columns[0], JobNumber); } var key = columns.Where(y => y.Contains(item.RequireDate.Value.ToString("dd/MM/yy"))).FirstOrDefault(); // if don't have data add it to rowData if (!rowData.Keys.Any(x => x == key)) { rowData.Add(key, $"คลิกที่ไอคอน เพื่อแสดงข้อมูล#{item.RequirePaintingMasterId}"); } else { rowData[key] += $"#{item.RequirePaintingMasterId}"; } } dataTable.Add(rowData); } } } if (dataTable.Any()) { return(new JsonResult(new { Columns = columns, DataTable = dataTable }, this.DefaultJsonSettings)); } } } catch (Exception ex) { Message = $"Has error {ex.ToString()}"; } return(NotFound(new { Error = Message })); }