Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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 !!!" }));
        }
Esempio n. 3
0
        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 }));
        }