Example #1
0
 public DTO.QCReportDTO DB2DTO_GetQCReport(QCReportMng_QCReport_View2 dbItems)
 {
     return(AutoMapper.Mapper.Map <QCReportMng_QCReport_View2, DTO.QCReportDTO>(dbItems));
 }
Example #2
0
        public DTO.EditForm GetData(int id, int?saleOrderDetailID, int?factoryID, string itemFactoryOrderLink, int?clientID, string articleCode, out Notification notification)
        {
            notification = new Notification()
            {
                Type = NotificationType.Success
            };
            DTO.EditForm data = new DTO.EditForm();
            data.Data = new DTO.QCReportDTO();
            data.Data.QCReportSummaryDTOs            = new List <DTO.QCReportSummaryDTO>();
            data.Data.QCReportDetailDTOs             = new List <DTO.QCReportDetailDTO>();
            data.Data.QCReportDefectDTOs             = new List <DTO.QCReportDefectDTO>();
            data.Data.QCReportImageDTOs              = new List <DTO.QCReportImageDTO>();
            data.SupportInspectionStages             = new List <DTO.SupportInspectionStage>();
            data.SupportInspectionResults            = new List <DTO.SupportInspectionResult>();
            data.SupportSummaryResults               = new List <DTO.SupportSummaryResult>();
            data.SupportPackagingMethods             = new List <DTO.SupportPackagingMethod>();
            data.QCReportTestEnvironmentCategoryDTOs = new List <DTO.QCReportTestEnvironmentCategoryDTO>();
            data.Data.QCReportFactoryOrderDetailDTOs = new List <DTO.QCReportFactoryOrderDetailDTO>();
            data.ListPIFromFactoryOrderDTOs          = new List <DTO.ListPIFromFactoryOrderDTO>();
            try
            {
                using (var context = CreateContext())
                {
                    if (id != 0)
                    {
                        QCReportMng_QCReport_View2 dbItem = context.QCReportMng_QCReport_View2.FirstOrDefault(s => s.QCReportID == id);
                        if (dbItem == null)
                        {
                            notification = new Notification()
                            {
                                Type = NotificationType.Error, Message = "Can not find data."
                            };
                            return(data);
                        }
                        data.Data = converter.DB2DTO_GetQCReport(dbItem);
                        data.SupportInspectionStages             = converter.DB2DTO_GetInspectionStage(context.SupportMng_InspectionStage_View.ToList());
                        data.SupportInspectionResults            = converter.DB2DTO_GetInspectionResult(context.SupportMng_InspectionResult_View.ToList());
                        data.SupportSummaryResults               = converter.DB2DTO_GetSummaryResult(context.SupportMng_QCReportSummaryResult_View.ToList());
                        data.SupportPackagingMethods             = converter.DB2DTO_GetPackagingMethod(context.QCReportMng_PackagingMethod_View.ToList());
                        data.QCReportTestEnvironmentCategoryDTOs = converter.DB2DTO_GetTestEnvironmentCategory(context.QCReportMng_QCReportTestEnvironmentCategory_View.ToList());

                        if (data.Data.QCReportTestEnvironmentDTOs.Count == 0)
                        {
                            data.QCReportTestEnvironmentCategoryDTOs = converter.DB2DTO_GetTestEnvironmentCategory(context.QCReportMng_QCReportTestEnvironmentCategory_View.ToList());
                            CopyQCReportTestEnvironmentDTOs(data.QCReportTestEnvironmentCategoryDTOs, data.Data);
                        }

                        //Load listFactoryOrderDetail
                        if (data.Data.QCReportFactoryOrderDetailDTOs.Count > 0)
                        {
                            var dbFirstItem = context.QCReportMng_QCReportFactoryOrderDetail_View.FirstOrDefault(o => o.QCReportID == id);
                            data.ListPIFromFactoryOrderDTOs = converter.DB2DTO_ListPIFromFactoryOrderDTO(context.QCReportMng_function_SearchListPIFromFactoryOrder(dbFirstItem.FactoryID, dbFirstItem.ClientID, dbFirstItem.ArticleCode).ToList());
                            var list = "";
                            for (var j = 0; j < data.Data.QCReportFactoryOrderDetailDTOs.Count; j++)
                            {
                                var jItem = data.Data.QCReportFactoryOrderDetailDTOs[j];
                                if (list != "")
                                {
                                    list += ',';
                                }
                                list += jItem.FactoryOrderDetailID;
                            }

                            string[] idFactoryOrderDetail = list.Split(',');
                            var      index = -1;


                            foreach (var sItem in data.ListPIFromFactoryOrderDTOs.ToList())
                            {
                                var check = false;
                                foreach (var item in idFactoryOrderDetail)
                                {
                                    if (sItem.FactoryOrderDetailID == Convert.ToInt32(item))
                                    {
                                        check = true;
                                        break;
                                    }
                                }
                                if (check == false)
                                {
                                    DTO.QCReportFactoryOrderDetailDTO factoryOrderDetailDTO = new DTO.QCReportFactoryOrderDetailDTO();
                                    factoryOrderDetailDTO.AdditionalRemark = sItem.AdditionalRemark;
                                    factoryOrderDetailDTO.IsSelected       = false;
                                    factoryOrderDetailDTO.LDS                          = sItem.LDS;
                                    factoryOrderDetailDTO.OrderQnt                     = sItem.OrderQnt;
                                    factoryOrderDetailDTO.ProductionStatus             = sItem.ProductionStatus;
                                    factoryOrderDetailDTO.FactoryOrderUD               = sItem.FactoryOrderUD;
                                    factoryOrderDetailDTO.ProformaInvoiceNo            = sItem.ProformaInvoiceNo;
                                    factoryOrderDetailDTO.QCReportFactoryOrderDetailID = index;
                                    factoryOrderDetailDTO.FactoryID                    = sItem.FactoryID;
                                    factoryOrderDetailDTO.FactoryOrderDetailID         = sItem.FactoryOrderDetailID;
                                    factoryOrderDetailDTO.FactoryOrderID               = sItem.FactoryOrderID;
                                    data.Data.QCReportFactoryOrderDetailDTOs.Add(factoryOrderDetailDTO);
                                    index = index - 1;
                                }
                            }
                        }
                    }
                    else
                    {
                        var dbInitItem = context.QCReportMng_QCReportSetting_SearchView.FirstOrDefault(o => o.SaleOrderDetailID == saleOrderDetailID && o.FactoryID == factoryID);
                        if (dbInitItem == null)
                        {
                            notification.Type    = NotificationType.Error;
                            notification.Message = "Can not find data init";

                            return(data);
                        }
                        // show Init to Edit
                        data.Data.SaleOrderDetailID = dbInitItem.SaleOrderDetailID;
                        data.Data.FactoryID         = dbInitItem.FactoryID;
                        data.Data.FactoryName       = dbInitItem.FactoryName;
                        data.Data.FactoryUD         = dbInitItem.FactoryUD;
                        data.Data.ClientID          = dbInitItem.ClientID;
                        data.Data.ClientUD          = dbInitItem.ClientUD;
                        data.Data.ProformaInvoiceNo = dbInitItem.ProformaInvoiceNo;
                        data.Data.ArticleCode       = dbInitItem.ArticleCode;
                        data.Data.Description       = dbInitItem.Description;
                        data.Data.Quantity          = dbInitItem.Quantity;
                        data.Data.AQLCritical       = 0;
                        data.Data.AQLMajor          = Convert.ToDecimal(2.50);
                        data.Data.AQLMinor          = 4;

                        //Add List FactoryOrderDetail
                        if (itemFactoryOrderLink != "" && itemFactoryOrderLink != null)
                        {
                            data.ListPIFromFactoryOrderDTOs = converter.DB2DTO_ListPIFromFactoryOrderDTO(context.QCReportMng_function_SearchListPIFromFactoryOrder(factoryID, clientID, articleCode).ToList());
                            string [] idFactoryOrderDetail = itemFactoryOrderLink.Split(',');
                            var       index    = -1;
                            var       orderQnt = 0;
                            foreach (var sItem in data.ListPIFromFactoryOrderDTOs.ToList())
                            {
                                var check = false;

                                foreach (var item in idFactoryOrderDetail)
                                {
                                    if (sItem.FactoryOrderDetailID == Convert.ToInt32(item))
                                    {
                                        check = true;
                                        break;
                                    }
                                }

                                if (check == true)
                                {
                                    DTO.QCReportFactoryOrderDetailDTO factoryOrderDetailDTO = new DTO.QCReportFactoryOrderDetailDTO();
                                    factoryOrderDetailDTO.AdditionalRemark = sItem.AdditionalRemark;
                                    factoryOrderDetailDTO.IsSelected       = true;
                                    factoryOrderDetailDTO.LDS                          = sItem.LDS;
                                    factoryOrderDetailDTO.OrderQnt                     = sItem.OrderQnt;
                                    factoryOrderDetailDTO.ProductionStatus             = sItem.ProductionStatus;
                                    factoryOrderDetailDTO.FactoryOrderUD               = sItem.FactoryOrderUD;
                                    factoryOrderDetailDTO.ProformaInvoiceNo            = sItem.ProformaInvoiceNo;
                                    factoryOrderDetailDTO.QCReportFactoryOrderDetailID = index;
                                    factoryOrderDetailDTO.FactoryID                    = sItem.FactoryID;
                                    factoryOrderDetailDTO.FactoryOrderDetailID         = sItem.FactoryOrderDetailID;
                                    factoryOrderDetailDTO.FactoryOrderID               = sItem.FactoryOrderID;
                                    data.Data.QCReportFactoryOrderDetailDTOs.Add(factoryOrderDetailDTO);
                                    if (sItem.OrderQnt != null)
                                    {
                                        orderQnt += (int)sItem.OrderQnt;
                                    }

                                    index = index - 1;
                                }
                                else
                                {
                                    DTO.QCReportFactoryOrderDetailDTO factoryOrderDetailDTO = new DTO.QCReportFactoryOrderDetailDTO();
                                    factoryOrderDetailDTO.AdditionalRemark = sItem.AdditionalRemark;
                                    factoryOrderDetailDTO.IsSelected       = false;
                                    factoryOrderDetailDTO.LDS                          = sItem.LDS;
                                    factoryOrderDetailDTO.OrderQnt                     = sItem.OrderQnt;
                                    factoryOrderDetailDTO.ProductionStatus             = sItem.ProductionStatus;
                                    factoryOrderDetailDTO.FactoryOrderUD               = sItem.FactoryOrderUD;
                                    factoryOrderDetailDTO.ProformaInvoiceNo            = sItem.ProformaInvoiceNo;
                                    factoryOrderDetailDTO.QCReportFactoryOrderDetailID = index;
                                    factoryOrderDetailDTO.FactoryID                    = sItem.FactoryID;
                                    factoryOrderDetailDTO.FactoryOrderDetailID         = sItem.FactoryOrderDetailID;
                                    factoryOrderDetailDTO.FactoryOrderID               = sItem.FactoryOrderID;
                                    data.Data.QCReportFactoryOrderDetailDTOs.Add(factoryOrderDetailDTO);
                                    index = index - 1;
                                }
                            }
                            data.Data.Quantity = orderQnt;
                        }

                        data.SupportInspectionStages             = converter.DB2DTO_GetInspectionStage(context.SupportMng_InspectionStage_View.ToList());
                        data.SupportInspectionResults            = converter.DB2DTO_GetInspectionResult(context.SupportMng_InspectionResult_View.ToList());
                        data.SupportSummaryResults               = converter.DB2DTO_GetSummaryResult(context.SupportMng_QCReportSummaryResult_View.ToList());
                        data.SupportPackagingMethods             = converter.DB2DTO_GetPackagingMethod(context.QCReportMng_PackagingMethod_View.ToList());
                        data.QCReportTestEnvironmentCategoryDTOs = converter.DB2DTO_GetTestEnvironmentCategory(context.QCReportMng_QCReportTestEnvironmentCategory_View.ToList());
                        CopyQCReportTestEnvironmentDTOs(data.QCReportTestEnvironmentCategoryDTOs, data.Data);
                    }
                }
            }
            catch (Exception ex)
            {
                notification = new Notification()
                {
                    Type = NotificationType.Error, Message = ex.Message
                };
                return(data);
            }
            return(data);
        }