コード例 #1
0
        public ActionResult GetBOMFileView(int pageNo, string order, string sort)
        {
            BOMFileFilterModel filter = new BOMFileFilterModel();

            filter.ProductsTypeID  = 2; // ccs products
            filter.Pagination.Page = pageNo;
            filter.Order           = order;
            filter.Sort            = sort;

            BOMFileViewModel model = core.GetBOMFileView(filter);

            return(Json(model, JsonRequestBehavior.AllowGet));
        }
コード例 #2
0
        public ActionResult MaterialBOMItem()
        {
            BOMFileFilterModel filter = new BOMFileFilterModel();

            filter.ProductsTypeID = 2; // ccs products
            filter.Order          = "CreatedDate";
            filter.Sort           = "desc";

            BOMFileViewModel model = core.GetBOMFileView(filter);

            ViewData["BOMFileViewModel"] = model;

            return(View());
        }
コード例 #3
0
        public static BOMFileViewModel GetBOMFileView(BOMFileFilterModel filter)
        {
            ACTION = "GetBOMFileView(BOMFileFilterModel)";
            try
            {
                ResponseModel response    = new ResponseModel();
                int           totalRecord = 0;
                decimal       lastVersion = 0;

                var model = BOMFileDAL.GetBOMFileList(filter, ref totalRecord, ref response, ref lastVersion);
                filter.Pagination.TotalRecord = totalRecord;

                PaginationModel pagination = new PaginationModel(totalRecord, filter.Pagination.Page, filter.Pagination.Take);
                filter.Pagination         = pagination;
                filter.LastBOMFileVersion = lastVersion;

                return(new BOMFileViewModel()
                {
                    Action = ACTION,
                    Source = SOURCE,
                    Status = response.Status,
                    Message = response.Message,
                    List = model,
                    Filter = filter
                });
            }
            catch (Exception ex)
            {
                return(new BOMFileViewModel()
                {
                    Action = ACTION,
                    Source = SOURCE,
                    Status = false,
                    Message = ex.Message,
                    List = null,
                    Filter = filter
                });
            }
        }
コード例 #4
0
        public static List <BOMFileModel> GetBOMFileList(BOMFileFilterModel filter, ref int totalRecord, ref ResponseModel response, ref decimal lastVersion)
        {
            ACTION = "GetBOMFileList(BOMFileFilterModel)";
            try
            {
                using (UTMMABCDBEntities context = new UTMMABCDBEntities())
                {
                    filter.BOMFileIDs = filter.BOMFileIDs != null ? filter.BOMFileIDs : new int[] { };
                    var IQuery = context.USR_TMMA_BOM_FILE
                                 .Where(o =>
                                        (!string.IsNullOrEmpty(filter.Keywords) ?
                                         (o.RecObjectName.Contains(filter.Keywords)) ||
                                         (o.CreatedBy.Contains(filter.Keywords))
                        : true) &&
                                        (filter.BOMFileID.HasValue ? o.BOMFileID == filter.BOMFileID.Value : true) &&
                                        (filter.BOMFileIDs.Count() > 0 ? filter.BOMFileIDs.Contains(o.BOMFileID) : true) &&
                                        (!string.IsNullOrEmpty(filter.RecObjectName) ? filter.CreatedBy.Contains(o.RecObjectName) : true) &&
                                        (filter.ProductsTypeID.HasValue ? o.ProductsTypeID == filter.ProductsTypeID.Value : true) &&
                                        (filter.IsActive.HasValue ? o.IsActive == 1 : true)
                                        );

                    totalRecord = IQuery.Count();

                    var lists = filter.Sort == "asc"
                        ? filter.Order == "RecObjectName" ? IQuery.OrderBy(o => o.RecObjectName)
                        : filter.Order == "UserSAP" ? IQuery.OrderBy(o => o.UserSAP)
                        : filter.Order == "Version" ? IQuery.OrderBy(o => o.BOMFileVersion)
                        : filter.Order == "Status" ? IQuery.OrderBy(o => o.BOMFileStatus)
                        : filter.Order == "ValidDate" ? IQuery.OrderBy(o => o.ValidDate)
                        : filter.Order == "CreatedBy" ? IQuery.OrderBy(o => o.CreatedBy)
                        : filter.Order == "CreatedDate" ? IQuery.OrderBy(o => o.CreatedDate)
                        : IQuery.OrderBy(o => o.CreatedDate)
                        : filter.Order == "RecObjectName" ? IQuery.OrderByDescending(o => o.RecObjectName)
                        : filter.Order == "UserSAP" ? IQuery.OrderByDescending(o => o.UserSAP)
                        : filter.Order == "Version" ? IQuery.OrderByDescending(o => o.BOMFileVersion)
                        : filter.Order == "Status" ? IQuery.OrderByDescending(o => o.BOMFileStatus)
                        : filter.Order == "ValidDate" ? IQuery.OrderByDescending(o => o.ValidDate)
                        : filter.Order == "CreatedBy" ? IQuery.OrderByDescending(o => o.CreatedBy)
                        : filter.Order == "CreatedDate" ? IQuery.OrderByDescending(o => o.CreatedDate)
                        : IQuery.OrderByDescending(o => o.CreatedDate);

                    lastVersion = IQuery.OrderByDescending(o => o.BOMFileVersion).FirstOrDefault().BOMFileVersion.GetValueOrDefault();

                    List <USR_TMMA_BOM_FILE> list = filter.Pagination.IsPaging ? lists.Skip(filter.Pagination.Skip).Take(filter.Pagination.Take).ToList() : lists.ToList();

                    List <BOMFileModel> mList = Mapping(list);

                    response = new ResponseModel()
                    {
                        Source  = SOURCE,
                        Action  = ACTION,
                        Status  = true,
                        Message = "Success"
                    };

                    return(mList);
                }
            }
            catch (Exception ex)
            {
                totalRecord = 0;

                response = new ResponseModel()
                {
                    Source  = SOURCE,
                    Action  = ACTION,
                    Status  = false,
                    Message = ex.Message
                };

                return(null);
            }
        }
コード例 #5
0
ファイル: Core.cs プロジェクト: champ6803/TMMAConversion
 public BOMFileViewModel GetBOMFileView(BOMFileFilterModel filter)
 {
     return(BOMFileBLL.GetBOMFileView(filter));
 }
コード例 #6
0
        public ActionResult UploadBOMFile()
        {
            try
            {
                if (Request.Files.Count > 0 && Request.Form.Count > 0)
                {
                    string fileName = Path.GetFileNameWithoutExtension(Request.Files[0].FileName);

                    if (String.Equals("CCSBOM", fileName, StringComparison.OrdinalIgnoreCase))
                    {
                        foreach (string file in Request.Files)
                        {
                            var      fileContent   = Request.Files[file];
                            var      user          = Request.Form["User"];
                            var      recObjectName = Request.Form["RecObjectName"];
                            DateTime validDate     = DateTime.ParseExact(Request.Form["ValidDate"], "dd/MM/yyyy", usCulture);

                            if (fileContent != null && fileContent.ContentLength > 0)
                            {
                                string extension = Path.GetExtension(fileContent.FileName).ToLower();

                                string[] validFileTypes = { ".xls", ".xlsx", ".xlsm" }; //init file type

                                var path = Path.Combine(Server.MapPath("~/Files/CCS/Excels/BOM"), fileContent.FileName);

                                if (validFileTypes.Contains(extension))
                                {
                                    if (System.IO.File.Exists(path))
                                    {
                                        //System.IO.File.Delete(path);
                                        string[] filePaths = Directory.GetFiles(Server.MapPath("~/Files/CCS/Excels/BOM"));
                                        foreach (string filePath in filePaths)
                                        {
                                            System.IO.File.Delete(filePath);
                                        }
                                    }

                                    fileContent.SaveAs(path);

                                    log.Info("========== Save File Success =========");

                                    int version = 0;
                                    SaveBOMFileVersion(path, recObjectName, user, validDate, ref version);

                                    BOMFileFilterModel filter = new BOMFileFilterModel();
                                    filter.ProductsTypeID = 2; // CCS
                                    filter.Sort           = "desc";
                                    BOMFileViewModel model = core.GetBOMFileView(filter);

                                    return(Json(model, JsonRequestBehavior.AllowGet));
                                }
                                else
                                {
                                    log.Error("========== Please Upload Files in .xls or .xlsx format. =========");

                                    return(Json(new ResponseModel()
                                    {
                                        Message = "Please Upload Files in .xls or .xlsx format.",
                                        Status = false
                                    }, JsonRequestBehavior.AllowGet));
                                }
                            }
                        }
                    }
                    else
                    {
                        log.Error("========== File Name Incorrect. =========");

                        return(Json(new ResponseModel()
                        {
                            Message = "File Name Incorrect.",
                            Status = false
                        }, JsonRequestBehavior.AllowGet));
                    }
                }

                log.Error("========== Please Insert File. =========");

                return(Json(new ResponseModel()
                {
                    Message = "Please Insert File.",
                    Status = false
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                log.Error("========== " + ex.Message + " =========");

                return(Json(new ResponseModel()
                {
                    Message = ex.Message,
                    Status = false
                }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #7
0
        public ActionResult GenerateCreateBOMTextFile(int bomFileID, string fileName, string userSAP, string validDateText, string pathText, int pageNo, List <string> options, List <string> sheets)
        {
            try
            {
                var enUser   = Environment.UserName;
                var userName = !string.IsNullOrEmpty(enUser) ? enUser : Session["Username"].ToString();
                log.Info("========== Generate By " + userName + " =========");

                DateTime validDate = DateTime.ParseExact(validDateText, "dd/MM/yyyy", usCulture);
                string   path      = pathText;
                string   extension = Path.GetExtension(pathText).ToLower();

                //var pathRangeExcelJson = Path.Combine(Server.MapPath("~/"), "rangeExcel.json");
                //List<RangeExcelModel> items = new List<RangeExcelModel>();
                //using (StreamReader r = new StreamReader(pathRangeExcelJson))
                //{
                //    string json = r.ReadToEnd();
                //    items = JsonConvert.DeserializeObject<List<RangeExcelModel>>(json);
                //}

                List <SheetsModel> objSheetsList         = new List <SheetsModel>();
                List <SheetsModel> objSheetsActivityList = new List <SheetsModel>();

                if (sheets.Contains("Special Pack"))
                {
                    objSheetsList.Add(new SheetsModel()
                    {
                        Name = "Special Pack", Count = 1
                    });
                    objSheetsActivityList.Add(new SheetsModel()
                    {
                        Name = "Special Pack Activity", Count = 1
                    });
                }
                if (sheets.Contains("CCS Cut and Pack"))
                {
                    objSheetsList.Add(new SheetsModel()
                    {
                        Name = "CCS Cut and Pack", Count = 1
                    });
                    objSheetsActivityList.Add(new SheetsModel()
                    {
                        Name = "CCS Cut and Pack Activity", Count = 1
                    });
                }

                if (sheets.Contains("CCS PMMA"))
                {
                    objSheetsList.Add(new SheetsModel()
                    {
                        Name = "CCS PMMA", Count = 1
                    });
                    objSheetsActivityList.Add(new SheetsModel()
                    {
                        Name = "CCS PMMA Activity", Count = 1
                    });
                }

                if (sheets.Contains("Additive"))
                {
                    objSheetsList.Add(new SheetsModel()
                    {
                        Name = "Additive", Count = 1
                    });
                    objSheetsActivityList.Add(new SheetsModel()
                    {
                        Name = "Additive Activity", Count = 1
                    });
                }

                if (sheets.Contains("CCS Syrup"))
                {
                    objSheetsList.Add(new SheetsModel()
                    {
                        Name = "CCS Syrup", Count = 1
                    });
                    objSheetsActivityList.Add(new SheetsModel()
                    {
                        Name = "CCS Syrup Activity", Count = 1
                    });
                }

                if (sheets.Contains("CCS Initiator"))
                {
                    objSheetsList.Add(new SheetsModel()
                    {
                        Name = "CCS Initiator", Count = 1
                    });
                    objSheetsActivityList.Add(new SheetsModel()
                    {
                        Name = "CCS Initiator Activity", Count = 1
                    });
                }

                if (sheets.Contains("Packing Pattern"))
                {
                    objSheetsList.Add(new SheetsModel()
                    {
                        Name = "Packing Pattern", Count = 1
                    });
                    objSheetsActivityList.Add(new SheetsModel()
                    {
                        Name = "Packing Pattern Activity", Count = 1
                    });
                }

                if (sheets.Contains("Gasket"))
                {
                    objSheetsList.Add(new SheetsModel()
                    {
                        Name = "Gasket", Count = 1
                    });
                    objSheetsActivityList.Add(new SheetsModel()
                    {
                        Name = "Gasket Activity", Count = 1
                    });
                }

                if (sheets.Contains("Value Cullet"))
                {
                    objSheetsList.Add(new SheetsModel()
                    {
                        Name = "Value Cullet", Count = 1
                    });
                    objSheetsActivityList.Add(new SheetsModel()
                    {
                        Name = "Value Cullet Activity", Count = 1
                    });
                }

                List <List <DataTable> > dtList         = ExcelUtility.ReadCCSBOMExcel(path, extension, objSheetsList);
                List <List <DataTable> > dtActivityList = ExcelUtility.ReadCCSBOMActivityExcel(path, extension, objSheetsActivityList);

                // delete all files before generate new files
                string[] filePaths = Directory.GetFiles(Server.MapPath("~/Files/CCS/SAP/BOM"));
                foreach (string filePath in filePaths)
                {
                    System.IO.File.Delete(filePath);
                }

                int i = 0;
                foreach (var o in dtList) // map 1 by 1 bom and activity
                {
                    List <BOMHeaderModel> list1 = null;
                    List <BOMItemModel>   list2 = null;
                    ExcelUtility.ConvertCCSBOMExcelToCCSBOMModel(o, ref list1, ref list2);

                    List <BOMHeaderModel> acList1 = null;
                    List <BOMItemModel>   acList2 = null;
                    ExcelUtility.ConvertCCSBOMActivityExcelToCCSBOMActivityModel(dtActivityList[i], ref acList1, ref acList2);

                    //int limit = 100; // 100 items limit by header
                    //if (list1.Count() > limit)
                    //    int j = 1;
                    //{
                    //    int ht = 0;
                    //    int hc = 100; // number of hlist
                    //    int countHList = 100;
                    //    while (ht < list1.Count())
                    //    {
                    //        List<BOMHeaderModel> listHcut = new List<BOMHeaderModel>();
                    //        List<BOMHeaderModel> listHactcut = new List<BOMHeaderModel>();
                    //        int hlast = list1.Count();

                    //        int hCount = countHList > hlast ? hlast - ht : hc; // bom & act same

                    //        listHcut = list1.GetRange(ht, hCount);
                    //        listHactcut = acList1.GetRange(ht, hCount);

                    //        List<BOMHeaderModel> newList1 = BOMUtility.CheckBOMAlt(listHcut);

                    //        string textName = fileName + sheets[i].Replace(" ", "") + j;
                    //        string textExtension = ".txt";
                    //        string textPath = Path.Combine(Server.MapPath("~/Files/CCS/SAP/BOM"), textName);

                    //        SAPUtility.ConvertToMMABOMTextFile(newList1, list2, listHactcut, acList2, textPath, fileName, textExtension, userSAP, validDate, options);
                    //        ht += hc;
                    //        countHList += hc;
                    //        j++;
                    //    }
                    //}
                    //else
                    //{

                    List <BOMHeaderModel> newList1 = BOMUtility.CheckBOMAlt(list1);

                    string textName = fileName + sheets[i].Replace(" ", "");
                    log.Info("========== " + textName + " Start =========");
                    string textExtension = ".txt";
                    string textPath      = Path.Combine(Server.MapPath("~/Files/CCS/SAP/BOM"), textName);

                    SAPUtility.ConvertToMMABOMTextFile(newList1, list2, acList1, acList2, textPath, fileName, textExtension, userSAP, validDate, options);
                    //}
                    i++;
                }

                int BOMFileStatus = 3; // Create

                ResponseModel res = core.UpdateStatusBOMFile(bomFileID, BOMFileStatus);

                if (res.Status) // update status success
                {
                    log.Info("========== Update Status Success. =========");

                    BOMFileFilterModel filter = new BOMFileFilterModel();
                    filter.ProductsTypeID  = 2; // CCS
                    filter.Sort            = "desc";
                    filter.Pagination.Page = pageNo;
                    BOMFileViewModel model = core.GetBOMFileView(filter);

                    return(Json(model, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    log.Error("========== " + res.Message + " =========");

                    return(Json(res, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                log.Error("========== " + ex.Message + " =========");

                return(Json(new ResponseModel()
                {
                    Status = false,
                    Message = ex.Message
                }, JsonRequestBehavior.AllowGet));
            }
        }