Beispiel #1
0
        public HttpResponseMessage SaveUpdateQAMasterDetail(object[] data)
        {
            vmFinishingInspactionDetail        Master = JsonConvert.DeserializeObject <vmFinishingInspactionDetail>(data[0].ToString());
            List <vmFinishingInspactionDetail> Detail = JsonConvert.DeserializeObject <List <vmFinishingInspactionDetail> >(data[1].ToString());
            vmCmnParameters objcmnParam = JsonConvert.DeserializeObject <vmCmnParameters>(data[2].ToString());
            string          result      = string.Empty;

            try
            {
                result = _iQmgt.SaveUpdateQAMasterDetail(Master, Detail, objcmnParam);
            }
            catch (Exception e)
            {
                e.ToString();
                result = "";
            }
            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
Beispiel #2
0
        public string SaveUpdateQAMasterDetail(vmFinishingInspactionDetail Master, List <vmFinishingInspactionDetail> Detail, vmCmnParameters objcmnParam)
        {
            string result = string.Empty;

            using (var transaction = new TransactionScope())
            {
                //*********************************************Start Initialize Variable*****************************************
                long MasterId = 0, DetailId = 0, FirstDigit = 0, OtherDigits = 0; string CustomNo = string.Empty, QANo = string.Empty;
                //***************************************End Initialize Variable*************************************************

                //**************************Start Initialize Generic Repository Based on table***********************************
                GenericFactory_PrdFinishingQAMaster_EF = new PrdFinishingQAMaster_EF();
                GenericFactory_PrdFinishingQADetail_EF = new PrdFinishingQADetail_EF();
                //****************************End Initialize Generic Repository Based on table***********************************

                //**********************************Start Create Related Table Instance to Save**********************************
                var MasterItem = new PrdFinishingQAMaster();
                var DetailItem = new List <PrdFinishingQADetail>();
                //************************************End Create Related Table Instance to Save**********************************

                //*************************************Start Create Model Instance to get Data***********************************
                vmFinishingInspactionDetail item = new vmFinishingInspactionDetail();
                //***************************************End Create Model Instance to get Data***********************************

                //**************************************************Start Main Operation************************************************
                if (Detail.Count > 0)
                {
                    try
                    {
                        if (Master.QAID == 0)
                        {
                            //***************************************************Start Save Operation************************************************
                            //**********************************************Start Generate Master & Detail ID****************************************
                            MasterId    = Convert.ToInt16(GenericFactory_PrdFinishingQAMaster_EF.getMaxID("PrdFinishingQAMaster"));
                            DetailId    = Convert.ToInt64(GenericFactory_PrdFinishingQADetail_EF.getMaxID("PrdFinishingQADetail"));
                            FirstDigit  = Convert.ToInt64(DetailId.ToString().Substring(0, 1));
                            OtherDigits = Convert.ToInt64(DetailId.ToString().Substring(1, DetailId.ToString().Length - 1));
                            //***********************************************End Generate Master & Detail ID*****************************************

                            CustomNo = GenericFactory_PrdFinishingQAMaster_EF.getCustomCode(objcmnParam.menuId, DateTime.Now, objcmnParam.loggedCompany, 1, 1);
                            if (CustomNo == null || CustomNo == "")
                            {
                                QANo = MasterId.ToString();
                            }
                            else
                            {
                                QANo = CustomNo;
                            }

                            MasterItem = new PrdFinishingQAMaster
                            {
                                QAID      = MasterId,
                                QANo      = QANo,
                                ItemID    = (long)Master.ItemID,
                                QADate    = (DateTime)Master.QADate,
                                FromDate  = Master.FromDate,
                                ToDate    = Master.ToDate,
                                Remarks   = Master.Remarks,
                                QATypeID  = objcmnParam.tTypeId,
                                IsDeleted = false,

                                CompanyID = objcmnParam.loggedCompany,
                                CreateBy  = objcmnParam.loggeduser,
                                CreateOn  = DateTime.Now,
                                CreatePc  = HostService.GetIP()
                            };

                            for (int i = 0; i < Detail.Count; i++)
                            {
                                item = Detail[i];
                                var Detailitem = new PrdFinishingQADetail
                                {
                                    QADetailID         = Convert.ToInt64(FirstDigit + "" + OtherDigits),
                                    QAID               = MasterId,
                                    InspactionDateilID = (long)item.InspactionDateilID,
                                    InspactionID       = (long)item.InspactionID,
                                    LPercent           = item.LPercent,
                                    WPercent           = item.WPercent,
                                    GradeID            = item.ItemGradeID,
                                    IsNotDeliverable   = item.IsNotDeliverable,
                                    Remarks            = item.Remarks,

                                    CompanyID = objcmnParam.loggedCompany,
                                    CreateBy  = objcmnParam.loggeduser,
                                    CreateOn  = DateTime.Now,
                                    CreatePc  = HostService.GetIP(),
                                    IsDeleted = false
                                };
                                DetailItem.Add(Detailitem);
                                OtherDigits++;
                            }
                            //***************************************************End Save Operation************************************************
                        }
                        else
                        {
                            //***********************************Start Get Data From Related Table to Update*********************************
                            var MasterAll = GenericFactory_PrdFinishingQAMaster_EF.GetAll().Where(x => x.QAID == Master.QAID && x.CompanyID == objcmnParam.loggedCompany);
                            var DetailAll = GenericFactory_PrdFinishingQADetail_EF.GetAll().Where(x => x.QAID == Master.QAID && x.CompanyID == objcmnParam.loggedCompany).ToList();
                            //*************************************End Get Data From Related Table to Update*********************************

                            //***************************************************Start Update Operation********************************************
                            MasterItem          = MasterAll.First(x => x.QAID == Master.QAID);
                            MasterItem.QADate   = (DateTime)Master.QADate;
                            MasterItem.ItemID   = (long)Master.ItemID;
                            MasterItem.FromDate = Master.FromDate;
                            MasterItem.ToDate   = Master.ToDate;
                            MasterItem.Remarks  = Master.Remarks;

                            MasterItem.QATypeID  = objcmnParam.tTypeId;
                            MasterItem.CompanyID = objcmnParam.loggedCompany;
                            MasterItem.UpdateBy  = objcmnParam.loggeduser;
                            MasterItem.UpdateOn  = DateTime.Now;
                            MasterItem.UpdatePc  = HostService.GetIP();
                            MasterItem.IsDeleted = false;

                            for (int i = 0; i < Detail.Count; i++)
                            {
                                item = Detail[i];
                                foreach (PrdFinishingQADetail d in DetailAll.Where(d => d.QAID == Master.QAID && d.QADetailID == item.QADetailID))
                                {
                                    d.InspactionDateilID = (long)item.InspactionDateilID;
                                    d.InspactionID       = (long)item.InspactionID;
                                    d.LPercent           = item.LPercent;
                                    d.WPercent           = item.WPercent;
                                    d.GradeID            = item.ItemGradeID;
                                    d.IsNotDeliverable   = item.IsNotDeliverable;
                                    d.Remarks            = item.Remarks;

                                    d.CompanyID = objcmnParam.loggedCompany;
                                    d.UpdateBy  = objcmnParam.loggeduser;
                                    d.UpdateOn  = DateTime.Now;
                                    d.UpdatePc  = HostService.GetIP();
                                    d.IsDeleted = false;

                                    DetailItem.Add(d);
                                    break;
                                }
                            }
                            //***************************************************End Update Operation********************************************
                        }

                        if (Master.QAID > 0)
                        {
                            //***************************************************Start Update************************************************
                            if (MasterItem != null)
                            {
                                GenericFactory_PrdFinishingQAMaster_EF.Update(MasterItem);
                                GenericFactory_PrdFinishingQAMaster_EF.Save();
                            }
                            if (DetailItem != null && DetailItem.Count != 0)
                            {
                                GenericFactory_PrdFinishingQADetail_EF.UpdateList(DetailItem.ToList());
                                GenericFactory_PrdFinishingQADetail_EF.Save();
                            }
                            //***************************************************End Update************************************************
                        }
                        else
                        {
                            //***************************************************Start Save************************************************
                            if (MasterItem != null)
                            {
                                GenericFactory_PrdFinishingQAMaster_EF.Insert(MasterItem);
                                GenericFactory_PrdFinishingQAMaster_EF.Save();
                                GenericFactory_PrdFinishingQAMaster_EF.updateMaxID("PrdFinishingQAMaster", Convert.ToInt64(MasterId));
                            }
                            if (DetailItem != null && DetailItem.Count != 0)
                            {
                                GenericFactory_PrdFinishingQADetail_EF.InsertList(DetailItem.ToList());
                                GenericFactory_PrdFinishingQADetail_EF.Save();
                                GenericFactory_PrdFinishingQADetail_EF.updateMaxID("PrdFinishingQADetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1)));
                            }
                            //******************************************************End Save************************************************
                        }

                        transaction.Complete();
                        result = MasterItem.QANo;
                    }
                    catch (Exception e)
                    {
                        e.ToString();
                        result = "";
                    }
                }
                else
                {
                    result = "";
                }
            }
            return(result);
            //**************************************************End Main Operation************************************************
        }
        public string SaveUpdateFebricInspection(PrdFinishingInspactionMaster Master, List <vmFinishingInspactionDetail> Detail, vmCmnParameters objcmnParam)
        {
            string result = string.Empty;

            using (var transaction = new TransactionScope())
            {
                //*********************************************Start Initialize Variable*****************************************
                long MasterId = 0, DetailId = 0, FirstDigit = 0, OtherDigits = 0; string CustomNo = string.Empty, InspactionNo = string.Empty;
                //***************************************End Initialize Variable*************************************************

                //**************************Start Initialize Generic Repository Based on table***********************************
                GenericFactory_EFFinishingInspactionMaster  = new PrdFinishingInspactionMaster_EF();
                GenericFactory_EFFinishingInspactionDetails = new PrdFinishingInspactionDetail_EF();
                //****************************End Initialize Generic Repository Based on table***********************************

                //**********************************Start Create Related Table Instance to Save**********************************
                var MasterItem  = new PrdFinishingInspactionMaster();
                var DetailItem  = new List <PrdFinishingInspactionDetail>();
                var DetailItems = new List <PrdFinishingInspactionDetail>();
                //************************************End Create Related Table Instance to Save**********************************

                //*************************************Start Create Model Instance to get Data***********************************
                vmFinishingInspactionDetail  item    = new vmFinishingInspactionDetail();
                vmFinishingInspactionDetail  items   = new vmFinishingInspactionDetail();
                PrdFinishingInspactionDetail itemdel = new PrdFinishingInspactionDetail();
                //***************************************End Create Model Instance to get Data***********************************

                var SDetail = Detail.Where(x => x.InspactionID == 0).ToList();
                var UDetail = Detail.Where(x => x.InspactionID != 0).ToList();
                //**************************************************Start Main Operation************************************************
                if (Detail.Count > 0)
                {
                    try
                    {
                        if (Master.InspactionID == 0)
                        {
                            //***************************************************Start Save Operation************************************************
                            //**********************************************Start Generate Master & Detail ID****************************************
                            MasterId    = Convert.ToInt16(GenericFactory_EFFinishingInspactionMaster.getMaxID("PrdFinishingInspactionMaster"));
                            DetailId    = Convert.ToInt64(GenericFactory_EFFinishingInspactionDetails.getMaxID("PrdFinishingInspactionDetail"));
                            FirstDigit  = Convert.ToInt64(DetailId.ToString().Substring(0, 1));
                            OtherDigits = Convert.ToInt64(DetailId.ToString().Substring(1, DetailId.ToString().Length - 1));
                            //***********************************************End Generate Master & Detail ID*****************************************

                            CustomNo = GenericFactory_EFFinishingInspactionMaster.getCustomCode(objcmnParam.menuId, DateTime.Now, objcmnParam.loggedCompany, 1, 1);
                            if (CustomNo == null || CustomNo == "")
                            {
                                InspactionNo = MasterId.ToString();
                            }
                            else
                            {
                                InspactionNo = CustomNo;
                            }

                            MasterItem = new PrdFinishingInspactionMaster
                            {
                                InspactionID    = MasterId,
                                InspactionNo    = InspactionNo,
                                FinishingMRRID  = Master.FinishingMRRID,
                                ItemID          = Master.ItemID,
                                SetID           = Master.SetID,
                                WeivingMRRID    = Master.WeivingMRRID,
                                SizeMRRID       = Master.SizeMRRID,
                                MachineConfigID = Master.MachineConfigID,
                                ShiftID         = Master.ShiftID,
                                PlateID         = Master.PlateID,
                                OperatorID      = Master.OperatorID,
                                Date            = Master.Date,
                                Remarks         = Master.Remarks,
                                IsQAComplete    = false,
                                IsDeleted       = false,

                                CompanyID = objcmnParam.loggedCompany,
                                CreateBy  = objcmnParam.loggeduser,
                                CreateOn  = DateTime.Now,
                                CreatePc  = HostService.GetIP()
                            };

                            for (int i = 0; i < Detail.Count; i++)
                            {
                                item = Detail[i];
                                var Detailitem = new PrdFinishingInspactionDetail
                                {
                                    InspactionDateilID = Convert.ToInt64(FirstDigit + "" + OtherDigits),
                                    InspactionID       = MasterId,
                                    BeamNo             = item.BeamNo,
                                    RollNo             = item.RollNo,
                                    Length             = item.GreigeLength,
                                    UnitID             = item.UnitID,
                                    Piece          = item.Piece,
                                    DefecetPointID = item.DefectPoint,
                                    GrossWeight    = item.GrossWt,
                                    NetWeight      = item.NetWt,
                                    Remarks        = item.Remarks,

                                    CompanyID = objcmnParam.loggedCompany,
                                    CreateBy  = objcmnParam.loggeduser,
                                    CreateOn  = DateTime.Now,
                                    CreatePc  = HostService.GetIP(),
                                    IsDeleted = false
                                };
                                DetailItem.Add(Detailitem);
                                OtherDigits++;
                            }
                            //***************************************************End Save Operation************************************************
                        }
                        else
                        {
                            //***********************************Start Get Data From Related Table to Update*********************************
                            var MasterAll = GenericFactory_EFFinishingInspactionMaster.GetAll().Where(x => x.InspactionID == Master.InspactionID && x.CompanyID == objcmnParam.loggedCompany);
                            var DetailAll = GenericFactory_EFFinishingInspactionDetails.GetAll().Where(x => x.InspactionID == Master.InspactionID && x.CompanyID == objcmnParam.loggedCompany).ToList();
                            //*************************************End Get Data From Related Table to Update*********************************

                            //***************************************************Start Update Operation********************************************
                            MasterItem = MasterAll.First(x => x.InspactionID == Master.InspactionID);
                            MasterItem.FinishingMRRID  = Master.FinishingMRRID;
                            MasterItem.ItemID          = Master.ItemID;
                            MasterItem.SetID           = Master.SetID;
                            MasterItem.WeivingMRRID    = Master.WeivingMRRID;
                            MasterItem.SizeMRRID       = Master.SizeMRRID;
                            MasterItem.MachineConfigID = Master.MachineConfigID;
                            MasterItem.ShiftID         = Master.ShiftID;
                            MasterItem.PlateID         = Master.PlateID;
                            MasterItem.OperatorID      = Master.OperatorID;
                            MasterItem.Date            = Master.Date;
                            MasterItem.Remarks         = Master.Remarks;

                            MasterItem.CompanyID = objcmnParam.loggedCompany;
                            MasterItem.UpdateBy  = objcmnParam.loggeduser;
                            MasterItem.UpdateOn  = DateTime.Now;
                            MasterItem.UpdatePc  = HostService.GetIP();
                            MasterItem.IsDeleted = false;

                            for (int i = 0; i < UDetail.Count; i++)
                            {
                                item = UDetail[i];
                                foreach (PrdFinishingInspactionDetail d in DetailAll.Where(d => d.InspactionID == Master.InspactionID && d.InspactionDateilID == item.InspactionDateilID))
                                {
                                    d.BeamNo         = item.BeamNo;
                                    d.RollNo         = item.RollNo;
                                    d.Length         = item.GreigeLength;
                                    d.UnitID         = item.UnitID;
                                    d.Piece          = item.Piece;
                                    d.DefecetPointID = item.DefectPoint;
                                    d.GrossWeight    = item.GrossWt;
                                    d.NetWeight      = item.NetWt;
                                    d.Remarks        = item.Remarks;

                                    d.CompanyID = objcmnParam.loggedCompany;
                                    d.UpdateBy  = objcmnParam.loggeduser;
                                    d.UpdateOn  = DateTime.Now;
                                    d.UpdatePc  = HostService.GetIP();
                                    d.IsDeleted = false;

                                    DetailItem.Add(d);
                                    break;
                                }
                            }
                            if (SDetail != null && SDetail.Count != 0)
                            {
                                for (int i = 0; i < SDetail.Count; i++)
                                {
                                    item        = SDetail[i];
                                    DetailId    = Convert.ToInt64(GenericFactory_EFFinishingInspactionDetails.getMaxID("PrdFinishingInspactionDetail"));
                                    FirstDigit  = Convert.ToInt64(DetailId.ToString().Substring(0, 1));
                                    OtherDigits = Convert.ToInt64(DetailId.ToString().Substring(1, DetailId.ToString().Length - 1));

                                    var Detailitems = new PrdFinishingInspactionDetail
                                    {
                                        InspactionDateilID = Convert.ToInt64(FirstDigit + "" + OtherDigits),
                                        InspactionID       = Master.InspactionID,
                                        BeamNo             = item.BeamNo,
                                        RollNo             = item.RollNo,
                                        Length             = item.GreigeLength,
                                        UnitID             = item.UnitID,
                                        Piece          = item.Piece,
                                        DefecetPointID = item.DefectPoint,
                                        GrossWeight    = item.GrossWt,
                                        NetWeight      = item.NetWt,
                                        Remarks        = item.Remarks,

                                        CompanyID = objcmnParam.loggedCompany,
                                        CreateBy  = objcmnParam.loggeduser,
                                        CreateOn  = DateTime.Now,
                                        CreatePc  = HostService.GetIP(),
                                        IsDeleted = false
                                    };
                                    DetailItems.Add(Detailitems);
                                    GenericFactory_EFFinishingInspactionDetails.updateMaxID("PrdFinishingInspactionDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits)));
                                }
                            }

                            if (UDetail.Count < DetailAll.Count())
                            {
                                for (int i = 0; i < DetailAll.Count(); i++)
                                {
                                    itemdel = DetailAll[i];

                                    var delDetail = (from del in DetailItem.Where(x => x.InspactionDateilID == itemdel.InspactionDateilID) select del.InspactionDateilID).FirstOrDefault();
                                    if (delDetail != itemdel.InspactionDateilID)
                                    {
                                        var tem = DetailAll.FirstOrDefault(d => d.InspactionID == Master.InspactionID && d.InspactionDateilID == itemdel.InspactionDateilID);
                                        tem.CompanyID = objcmnParam.loggedCompany;
                                        tem.DeleteBy  = objcmnParam.loggeduser;
                                        tem.DeleteOn  = DateTime.Now;
                                        tem.DeletePc  = HostService.GetIP();
                                        tem.IsDeleted = true;
                                        DetailItem.Add(tem);
                                    }
                                }
                            }
                            //***************************************************End Update Operation********************************************
                        }

                        if (Master.InspactionID > 0)
                        {
                            //***************************************************Start Update************************************************
                            if (MasterItem != null)
                            {
                                GenericFactory_EFFinishingInspactionMaster.Update(MasterItem);
                                GenericFactory_EFFinishingInspactionMaster.Save();
                            }
                            if (DetailItem != null && DetailItem.Count != 0)
                            {
                                GenericFactory_EFFinishingInspactionDetails.UpdateList(DetailItem.ToList());
                                GenericFactory_EFFinishingInspactionDetails.Save();
                            }
                            if (DetailItems != null && DetailItems.Count != 0)
                            {
                                GenericFactory_EFFinishingInspactionDetails.InsertList(DetailItems.ToList());
                                GenericFactory_EFFinishingInspactionDetails.Save();
                            }
                            //***************************************************End Update************************************************
                        }
                        else
                        {
                            //***************************************************Start Save************************************************
                            if (MasterItem != null)
                            {
                                GenericFactory_EFFinishingInspactionMaster.Insert(MasterItem);
                                GenericFactory_EFFinishingInspactionMaster.Save();
                                GenericFactory_EFFinishingInspactionMaster.updateMaxID("PrdFinishingInspactionMaster", Convert.ToInt64(MasterId));
                            }
                            if (DetailItem != null && DetailItem.Count != 0)
                            {
                                GenericFactory_EFFinishingInspactionDetails.InsertList(DetailItem.ToList());
                                GenericFactory_EFFinishingInspactionDetails.Save();
                                GenericFactory_EFFinishingInspactionDetails.updateMaxID("PrdFinishingInspactionDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1)));
                            }
                            //******************************************************End Save************************************************
                        }

                        transaction.Complete();
                        result = MasterItem.InspactionNo;
                    }
                    catch (Exception e)
                    {
                        e.ToString();
                        result = "";
                    }
                }
                else
                {
                    result = "";
                }
            }
            return(result);
            //**************************************************End Main Operation************************************************
        }