public vmChemicalSetupMasterDetail GetSizingChemicalSetupMasterByID(vmCmnParameters objcmnParam, out int recordsTotal)
        {
            vmChemicalSetupMasterDetail objChemicalMasterByID = null;

            recordsTotal = 0;
            try
            {
                using (_ctxCmn = new ERP_Entities())
                {
                    objChemicalMasterByID = (from MP in _ctxCmn.PrdSizingChemicalSetups
                                             join CM in _ctxCmn.CmnItemMasters on MP.ItemID equals CM.ItemID
                                             join SD in _ctxCmn.PrdSetSetups on MP.SetID equals SD.SetID
                                             join UM in _ctxCmn.CmnUOMs on MP.UnitID equals UM.UOMID
                                             where MP.CompanyID == objcmnParam.loggedCompany && MP.IsDeleted == false &&
                                             MP.ChemicalSetupID == objcmnParam.id
                                             //&& objcmnParam.id == 0 ? true : IM.ItemID == objcmnParam.id
                                             orderby MP.ChemicalSetupID descending
                                             select new
                    {
                        ChemicalSetupID = MP.ChemicalSetupID,
                        ItemID = MP.ItemID,
                        ArticleNo = CM.ArticleNo,
                        SetID = MP.SetID,
                        SetNo = SD.SetNo,
                        DepartmentID = MP.DepartmentID,
                        Qty = MP.Qty,
                        UnitID = MP.UnitID,
                        UOMName = UM.UOMName
                    }).Select(x => new vmChemicalSetupMasterDetail
                    {
                        ChemicalSetupID = x.ChemicalSetupID,
                        ItemID          = x.ItemID,
                        ArticleNo       = x.ArticleNo,
                        SetID           = (long)x.SetID,
                        SetNo           = x.SetNo,
                        DepartmentID    = x.DepartmentID,
                        Qty             = x.Qty,
                        UnitID          = x.UnitID,
                        UOMName         = x.UOMName
                    }).FirstOrDefault();

                    //recordsTotal = objSetWiseMasterByID.Count();
                }
            }
            catch (Exception e)
            {
                e.ToString();
            }
            return(objChemicalMasterByID);
        }
        public IHttpActionResult GetSizingChemicalSetupMasterByID(object[] data)
        {
            vmChemicalSetupMasterDetail ListMasterByID = null;
            vmCmnParameters             objcmnParam    = JsonConvert.DeserializeObject <vmCmnParameters>(data[0].ToString());
            int recordsTotal = 0;

            try
            {
                ListMasterByID = objChemicalService.GetSizingChemicalSetupMasterByID(objcmnParam, out recordsTotal);
            }
            catch (Exception e)
            {
                e.ToString();
            }

            return(Json(new
            {
                recordsTotal,
                ListMasterByID
            }));
            //return objDOMaster.ToList();
        }
        public HttpResponseMessage SaveUpdateChemConsumptionInfo(object[] data)
        {
            vmChemicalSetupMasterDetail        itemMaster  = JsonConvert.DeserializeObject <vmChemicalSetupMasterDetail>(data[0].ToString());
            List <vmChemicalSetupMasterDetail> itemDetails = JsonConvert.DeserializeObject <List <vmChemicalSetupMasterDetail> >(data[1].ToString());
            vmCmnParameters objcmnParam = JsonConvert.DeserializeObject <vmCmnParameters>(data[2].ToString());

            string result = "";

            try
            {
                if (ModelState.IsValid)
                {
                    result = objFCC.SaveUpdateChemConsumptionInfo(itemMaster, itemDetails, objcmnParam);
                }
            }
            catch (Exception e)
            {
                e.ToString();
                result = "";
            }
            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
        public IHttpActionResult SaveUpdateSizingChemicalMasterDetail(object[] data)
        {
            string result = string.Empty;
            vmChemicalSetupMasterDetail        Master = JsonConvert.DeserializeObject <vmChemicalSetupMasterDetail>(data[0].ToString());
            List <vmChemicalSetupMasterDetail> Detail = JsonConvert.DeserializeObject <List <vmChemicalSetupMasterDetail> >(data[1].ToString());
            vmCmnParameters objcmnParam = JsonConvert.DeserializeObject <vmCmnParameters>(data[2].ToString());

            try
            {
                //if (ModelState.IsValid)
                //{
                result = objChemicalService.SaveUpdateSizingChemicalMasterDetail(Master, Detail, objcmnParam);
                //}
            }
            catch (Exception e)
            {
                e.ToString();
                result = "0";
            }
            return(Json(new
            {
                result
            }));
        }
        public string SaveUpdateSizingChemicalMasterDetail(vmChemicalSetupMasterDetail Master, List <vmChemicalSetupMasterDetail> Detail, vmCmnParameters objcmnParam)
        {
            string result = string.Empty;

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

                //**************************Start Initialize Generic Repository Based on table***********************************
                GFactory_EF_PrdSizingChemicalSetup       = new PrdSizingChemicalSetup_EF();
                GFactory_EF_PrdSizingChemicalSetupDetail = new PrdSizingChemicalSetupDetail_EF();
                //****************************End Initialize Generic Repository Based on table***********************************

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

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

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

                            MasterItem = new PrdSizingChemicalSetup
                            {
                                ChemicalSetupID = MasterId,
                                DepartmentID    = (int)objcmnParam.DepartmentID,
                                ItemID          = (long)Master.ItemID,
                                Qty             = (decimal)Master.Qty,
                                SetID           = Master.SetID,
                                UnitID          = (int)Master.UnitID,
                                UserID          = objcmnParam.loggeduser,

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

                            for (int i = 0; i < Detail.Count; i++)
                            {
                                item = Detail[i];
                                var Detailitem = new PrdSizingChemicalSetupDetail
                                {
                                    ChemicalSetupDetailID = Convert.ToInt64(FirstDigit + "" + OtherDigits),
                                    ChemicalSetupID       = MasterId,
                                    ChemicalID            = (long)item.ChemicalID,
                                    MaxQty = item.MaxQty,
                                    MinQty = (decimal)item.MinQty,
                                    UnitID = (int)item.UnitID,

                                    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 = GFactory_EF_PrdSizingChemicalSetup.GetAll().Where(x => x.ChemicalSetupID == Master.ChemicalSetupID && x.CompanyID == objcmnParam.loggedCompany);
                            var DetailAll = GFactory_EF_PrdSizingChemicalSetupDetail.GetAll().Where(x => x.ChemicalSetupID == Master.ChemicalSetupID && x.CompanyID == objcmnParam.loggedCompany).ToList();
                            //*************************************End Get Data From Related Table to Update*********************************

                            //***************************************************Start Update Operation********************************************
                            MasterItem = MasterAll.First(x => x.ChemicalSetupID == Master.ChemicalSetupID);
                            MasterItem.DepartmentID = (int)objcmnParam.DepartmentID;
                            MasterItem.ItemID       = (long)Master.ItemID;
                            MasterItem.Qty          = (decimal)Master.Qty;
                            MasterItem.SetID        = Master.SetID;
                            MasterItem.UnitID       = (int)Master.UnitID;
                            MasterItem.UserID       = objcmnParam.loggeduser;

                            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 (PrdSizingChemicalSetupDetail d in DetailAll.Where(d => d.ChemicalSetupID == Master.ChemicalSetupID && d.ChemicalSetupDetailID == item.ChemicalSetupDetailID))
                                {
                                    d.ChemicalID = (long)item.ChemicalID;
                                    d.MaxQty     = item.MaxQty;
                                    d.MinQty     = (decimal)item.MinQty;
                                    d.UnitID     = (int)item.UnitID;

                                    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(GFactory_EF_PrdSizingChemicalSetupDetail.getMaxID("PrdSizingChemicalSetupDetail"));
                                    FirstDigit  = Convert.ToInt64(DetailId.ToString().Substring(0, 1));
                                    OtherDigits = Convert.ToInt64(DetailId.ToString().Substring(1, DetailId.ToString().Length - 1));

                                    var Detailitems = new PrdSizingChemicalSetupDetail
                                    {
                                        ChemicalSetupDetailID = Convert.ToInt64(FirstDigit + "" + OtherDigits),
                                        ChemicalSetupID       = (long)Master.ChemicalSetupID,
                                        ChemicalID            = (long)item.ChemicalID,
                                        MaxQty = item.MaxQty,
                                        MinQty = (decimal)item.MinQty,
                                        UnitID = (int)item.UnitID,

                                        CompanyID = objcmnParam.loggedCompany,
                                        CreateBy  = objcmnParam.loggeduser,
                                        CreateOn  = DateTime.Now,
                                        CreatePc  = HostService.GetIP(),
                                        IsDeleted = false
                                    };
                                    DetailItems.Add(Detailitems);
                                    GFactory_EF_PrdSizingChemicalSetupDetail.updateMaxID("PrdSizingChemicalSetupDetail", 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.ChemicalSetupDetailID == itemdel.ChemicalSetupDetailID) select del.ChemicalSetupDetailID).FirstOrDefault();
                                    if (delDetail != itemdel.ChemicalSetupDetailID)
                                    {
                                        var tem = DetailAll.FirstOrDefault(d => d.ChemicalSetupID == Master.ChemicalSetupID && d.ChemicalSetupDetailID == itemdel.ChemicalSetupDetailID);
                                        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.ChemicalSetupID > 0)
                        {
                            //***************************************************Start Update************************************************
                            if (MasterItem != null)
                            {
                                GFactory_EF_PrdSizingChemicalSetup.Update(MasterItem);
                                GFactory_EF_PrdSizingChemicalSetup.Save();
                            }
                            if (DetailItem != null && DetailItem.Count != 0)
                            {
                                GFactory_EF_PrdSizingChemicalSetupDetail.UpdateList(DetailItem.ToList());
                                GFactory_EF_PrdSizingChemicalSetupDetail.Save();
                            }
                            if (DetailItems != null && DetailItems.Count != 0)
                            {
                                GFactory_EF_PrdSizingChemicalSetupDetail.InsertList(DetailItems.ToList());
                                GFactory_EF_PrdSizingChemicalSetupDetail.Save();
                            }
                            //***************************************************End Update************************************************
                        }
                        else
                        {
                            //***************************************************Start Save************************************************
                            if (MasterItem != null)
                            {
                                GFactory_EF_PrdSizingChemicalSetup.Insert(MasterItem);
                                GFactory_EF_PrdSizingChemicalSetup.Save();
                                GFactory_EF_PrdSizingChemicalSetup.updateMaxID("PrdSizingChemicalSetup", Convert.ToInt64(MasterId));
                            }
                            if (DetailItem != null && DetailItem.Count != 0)
                            {
                                GFactory_EF_PrdSizingChemicalSetupDetail.InsertList(DetailItem.ToList());
                                GFactory_EF_PrdSizingChemicalSetupDetail.Save();
                                GFactory_EF_PrdSizingChemicalSetupDetail.updateMaxID("PrdSizingChemicalSetupDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1)));
                            }
                            //******************************************************End Save************************************************
                        }

                        transaction.Complete();
                        result = "1";
                    }
                    catch (Exception e)
                    {
                        result = "";
                        e.ToString();
                    }
                }
                else
                {
                    result = "";
                }
            }
            return(result);
            //**************************************************End Main Operation************************************************
        }
        //public IEnumerable<vmChemicalSetupMasterDetail> GetChecmicalByID(vmCmnParameters objcmnParam)
        //{
        //    IEnumerable<vmChemicalSetupMasterDetail> objChemicalSetup = null;
        //    using (ERP_Entities _ctxCmn = new ERP_Entities())
        //    {
        //        try
        //        {
        //            objChemicalSetup = (from master in _ctxCmn.PrdFinishingChemicalSetups
        //                                join detail in _ctxCmn.PrdFinishingChemicalSetupDetails on master.FinChemicalStupID equals detail.FinChemicalStupID// into leftColorGroup
        //                                join FT in _ctxCmn.PrdFinishingTypes on master.FinishingProcessID equals FT.FinishingProcessID
        //                                join item in _ctxCmn.CmnItemMasters on detail.ChemicalID equals item.ItemID// into leftColorGroup
        //                                join uom in _ctxCmn.CmnUOMs on detail.UnitID equals uom.UOMID
        //                                where (FT.FInishTypeID == objcmnParam.id && master.IsDeleted == false)
        //                                select new vmChemicalSetupMasterDetail
        //                                {
        //                                    FinChemicalStupID = master.FinChemicalStupID,
        //                                    ChemicalID = detail.ChemicalID,
        //                                    MaxQty = detail.MaxQty,
        //                                    MinQty = detail.MinQty,
        //                                    ItemName = item.ItemName,
        //                                    UnitID = uom.UOMID,
        //                                    UOMName = uom.UOMName
        //                                }).Distinct().ToList();
        //        }
        //        catch (Exception e)
        //        {
        //            e.ToString();
        //        }
        //    }
        //    return objChemicalSetup;
        //}

        public string SaveUpdateChemConsumptionInfo(vmChemicalSetupMasterDetail ChemConsumptionInfo, List <vmChemicalSetupMasterDetail> DCDetailList, vmCmnParameters objcmnParam)
        {
            string result = string.Empty;

            using (TransactionScope transaction = new TransactionScope())
            {
                GenericFactory_EF_PrdFinishingConsumptionMaster = new PrdFinishingConsumptionMaster_EF();
                GenericFactory_EF_PrdFinishingConsumptionDetail = new PrdFinishingConsumptionDetail_EF();
                long MasterId = 0, DetailId = 0, FirstDigit = 0, OtherDigits = 0; string CustomNo = string.Empty, FinishingConsumptionNo = string.Empty;
                //PrdFinishingConsumptionMaster Master = new PrdFinishingConsumptionMaster();
                //List<PrdFinishingConsumptionDetail> Detail = new List<PrdFinishingConsumptionDetail>();
                PrdFinishingConsumptionMaster        Master = new PrdFinishingConsumptionMaster();
                List <PrdFinishingConsumptionDetail> Detail = new List <PrdFinishingConsumptionDetail>();
                vmChemicalSetupMasterDetail          item = new vmChemicalSetupMasterDetail();
                try
                {
                    if (ChemConsumptionInfo.FinishingConsumptionID == 0)
                    {
                        MasterId    = Convert.ToInt64(GenericFactory_EF_PrdFinishingConsumptionMaster.getMaxID("PrdFinishingConsumptionMaster"));
                        DetailId    = Convert.ToInt64(GenericFactory_EF_PrdFinishingConsumptionDetail.getMaxID("PrdFinishingConsumptionDetail"));
                        FirstDigit  = Convert.ToInt64(DetailId.ToString().Substring(0, 1));
                        OtherDigits = Convert.ToInt64(DetailId.ToString().Substring(1, DetailId.ToString().Length - 1));

                        CustomNo = GenericFactory_EF_PrdFinishingConsumptionMaster.getCustomCode(objcmnParam.menuId, DateTime.Now, objcmnParam.loggedCompany, objcmnParam.loggeduser, 1); // 1 for DB ID
                        if (CustomNo != null && CustomNo != "")
                        {
                            FinishingConsumptionNo = CustomNo;
                        }
                        else
                        {
                            FinishingConsumptionNo = MasterId.ToString();
                        }

                        Master = new PrdFinishingConsumptionMaster()
                        {
                            FinishingConsumptionID = MasterId,
                            FinishingConsumptionNo = FinishingConsumptionNo,
                            WeavingMRRID           = ChemConsumptionInfo.WeavingMRRID,
                            ItemID          = ChemConsumptionInfo.ItemID,
                            FinishingTypeID = ChemConsumptionInfo.FinishingTypeID,
                            Volume          = ChemConsumptionInfo.Volume,
                            ConsumptionDate = ChemConsumptionInfo.ConsumptionDate,
                            Remarks         = ChemConsumptionInfo.Remarks,
                            UnitID          = (int)ChemConsumptionInfo.UnitID,

                            IsDeleted         = false,
                            IsReleased        = false,
                            TransactionTypeID = objcmnParam.tTypeId,
                            CompanyID         = objcmnParam.loggedCompany,
                            CreateOn          = DateTime.Now,
                            CreateBy          = objcmnParam.loggeduser,
                            CreatePc          = HostService.GetIP(),
                        };

                        foreach (vmChemicalSetupMasterDetail sdtl in DCDetailList)
                        {
                            PrdFinishingConsumptionDetail objConsmuptionDetail = new PrdFinishingConsumptionDetail();
                            objConsmuptionDetail.FinishingConsumptionDetailID = Convert.ToInt64(FirstDigit + "" + OtherDigits);
                            objConsmuptionDetail.FinishingConsumptionID       = MasterId;
                            objConsmuptionDetail.ChemicalID      = sdtl.ChemicalID;
                            objConsmuptionDetail.UnitID          = sdtl.UnitID;
                            objConsmuptionDetail.RequiredQty     = sdtl.RequiredQty;
                            objConsmuptionDetail.AccQty          = sdtl.AccQty;
                            objConsmuptionDetail.Amount          = sdtl.Amount;
                            objConsmuptionDetail.BatchID         = sdtl.BatchID;
                            objConsmuptionDetail.SupplierID      = sdtl.SupplierID;
                            objConsmuptionDetail.ConsumptionDate = Master.ConsumptionDate;
                            objConsmuptionDetail.UnitPrice       = sdtl.UnitPrice;

                            objConsmuptionDetail.IsDeleted  = false;
                            objConsmuptionDetail.IsReleased = false;

                            objConsmuptionDetail.DepartmentID      = objcmnParam.DepartmentID;
                            objConsmuptionDetail.TransactionTypeID = objcmnParam.tTypeId;
                            objConsmuptionDetail.CompanyID         = objcmnParam.loggedCompany;
                            objConsmuptionDetail.CreateOn          = DateTime.Now;
                            objConsmuptionDetail.CreateBy          = objcmnParam.loggeduser;
                            objConsmuptionDetail.CreatePc          = HostService.GetIP();
                            Detail.Add(objConsmuptionDetail);

                            OtherDigits++;
                        }
                    }
                    else
                    {
                        Master = GenericFactory_EF_PrdFinishingConsumptionMaster.FindBy(m => m.FinishingConsumptionID == ChemConsumptionInfo.FinishingConsumptionID).FirstOrDefault();
                        Master.WeavingMRRID    = ChemConsumptionInfo.WeavingMRRID;
                        Master.ItemID          = ChemConsumptionInfo.ItemID;
                        Master.FinishingTypeID = ChemConsumptionInfo.FinishingTypeID;
                        Master.Volume          = ChemConsumptionInfo.Volume;;
                        Master.ConsumptionDate = ChemConsumptionInfo.ConsumptionDate;
                        Master.Remarks         = ChemConsumptionInfo.Remarks;
                        Master.UnitID          = (int)ChemConsumptionInfo.UnitID;

                        Master.TransactionTypeID = objcmnParam.tTypeId;
                        Master.CompanyID         = objcmnParam.loggedCompany;
                        Master.UpdateOn          = DateTime.Now;
                        Master.UpdateBy          = objcmnParam.loggeduser;
                        Master.UpdatePc          = HostService.GetIP();

                        foreach (vmChemicalSetupMasterDetail lcd in DCDetailList)
                        {
                            PrdFinishingConsumptionDetail FiniConDe = GenericFactory_EF_PrdFinishingConsumptionDetail.FindBy(m => m.FinishingConsumptionDetailID == lcd.FinishingConsumptionDetailID).FirstOrDefault();
                            FiniConDe.ChemicalID      = lcd.ChemicalID;
                            FiniConDe.UnitID          = lcd.UnitID;
                            FiniConDe.RequiredQty     = lcd.RequiredQty;
                            FiniConDe.AccQty          = lcd.AccQty;
                            FiniConDe.Amount          = lcd.Amount;
                            FiniConDe.BatchID         = lcd.BatchID;
                            FiniConDe.SupplierID      = lcd.SupplierID;
                            FiniConDe.ConsumptionDate = Master.ConsumptionDate;
                            FiniConDe.UnitPrice       = lcd.UnitPrice;

                            FiniConDe.DepartmentID      = objcmnParam.DepartmentID;
                            FiniConDe.TransactionTypeID = objcmnParam.tTypeId;
                            FiniConDe.CompanyID         = objcmnParam.loggedCompany;
                            FiniConDe.UpdateOn          = DateTime.Now;
                            FiniConDe.UpdateBy          = objcmnParam.loggeduser;
                            FiniConDe.UpdatePc          = HostService.GetIP();
                            Detail.Add(FiniConDe);
                        }
                    }

                    if (ChemConsumptionInfo.FinishingConsumptionID > 0)
                    {
                        GenericFactory_EF_PrdFinishingConsumptionMaster.Update(Master);
                        GenericFactory_EF_PrdFinishingConsumptionMaster.Save();

                        GenericFactory_EF_PrdFinishingConsumptionDetail.UpdateList(Detail);
                        GenericFactory_EF_PrdFinishingConsumptionDetail.Save();
                    }
                    else
                    {
                        GenericFactory_EF_PrdFinishingConsumptionMaster.Insert(Master);
                        GenericFactory_EF_PrdFinishingConsumptionMaster.Save();
                        GenericFactory_EF_PrdFinishingConsumptionMaster.updateMaxID("PrdFinishingConsumptionMaster", Convert.ToInt64(MasterId));
                        GenericFactory_EF_PrdFinishingConsumptionMaster.updateCustomCode(objcmnParam.menuId, DateTime.Now, objcmnParam.loggedCompany, 1, 1);

                        GenericFactory_EF_PrdFinishingConsumptionDetail.InsertList(Detail);
                        GenericFactory_EF_PrdFinishingConsumptionDetail.Save();
                        GenericFactory_EF_PrdFinishingConsumptionDetail.updateMaxID("PrdFinishingConsumptionDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1)));
                    }
                    transaction.Complete();
                    result = Master.FinishingConsumptionNo;
                }
                catch (Exception e)
                {
                    result = "";
                    e.ToString();
                }
            }
            return(result);
        }
示例#7
0
        public string SaveUpdateSizingChemicalMasterDetail(vmChemicalSetupMasterDetail Master, List <vmChemicalSetupMasterDetail> Detail, vmCmnParameters objcmnParam)
        {
            string result = string.Empty;

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

                //**************************Start Initialize Generic Repository Based on table***********************************
                GFactory_EF_PrdSizingChemicalConsumption       = new PrdSizingChemicalConsumption_EF();
                GFactory_EF_PrdSizingChemicalconsumptionDetail = new PrdSizingChemicalconsumptionDetail_EF();
                //****************************End Initialize Generic Repository Based on table***********************************

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

                //*************************************Start Create Model Instance to get Data***********************************
                vmChemicalSetupMasterDetail item = new vmChemicalSetupMasterDetail();
                //***************************************End Create Model Instance to get Data***********************************
                //**************************************************Start Main Operation************************************************
                if (Detail.Count > 0)
                {
                    try
                    {
                        if (Master.ChemicalConsumptionID == 0)
                        {
                            //***************************************************Start Save Operation************************************************
                            //**********************************************Start Generate Master & Detail ID****************************************
                            MasterId    = Convert.ToInt16(GFactory_EF_PrdSizingChemicalConsumption.getMaxID("PrdSizingChemicalConsumption"));
                            DetailId    = Convert.ToInt64(GFactory_EF_PrdSizingChemicalconsumptionDetail.getMaxID("PrdSizingChemicalconsumptionDetail"));
                            FirstDigit  = Convert.ToInt64(DetailId.ToString().Substring(0, 1));
                            OtherDigits = Convert.ToInt64(DetailId.ToString().Substring(1, DetailId.ToString().Length - 1));
                            //***********************************************End Generate Master & Detail ID*****************************************

                            MasterItem = new PrdSizingChemicalConsumption
                            {
                                ChemicalConsumptionID = MasterId,
                                DepartmentID          = (int)objcmnParam.DepartmentID,
                                ItemID          = (long)Master.ItemID,
                                SetID           = Master.SetID,
                                UserID          = objcmnParam.loggeduser,
                                ConsumptionDate = Master.ConsumptionDate,
                                Remarks         = Master.Remarks,

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

                            for (int i = 0; i < Detail.Count; i++)
                            {
                                item = Detail[i];
                                var Detailitem = new PrdSizingChemicalconsumptionDetail
                                {
                                    ChemicalConsumptionDetailID = Convert.ToInt64(FirstDigit + "" + OtherDigits),
                                    ChemicalConsumptionID       = MasterId,
                                    ChemicalID      = (long)item.ChemicalID,
                                    Qty             = item.Qty,
                                    UnitID          = (int)item.UnitID,
                                    Amount          = item.Amount,
                                    BatchID         = item.BatchID,
                                    SupplierID      = item.SupplierID,
                                    UnitPrice       = item.UnitPrice,
                                    ConsumptionDate = Master.ConsumptionDate,

                                    TransactionTypeID = objcmnParam.tTypeId,
                                    DepartmentID      = objcmnParam.DepartmentID,
                                    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 = GFactory_EF_PrdSizingChemicalConsumption.GetAll().Where(x => x.ChemicalConsumptionID == Master.ChemicalConsumptionID && x.CompanyID == objcmnParam.loggedCompany);
                            var DetailAll = GFactory_EF_PrdSizingChemicalconsumptionDetail.GetAll().Where(x => x.ChemicalConsumptionID == Master.ChemicalConsumptionID && x.CompanyID == objcmnParam.loggedCompany).ToList();
                            //*************************************End Get Data From Related Table to Update*********************************

                            //***************************************************Start Update Operation********************************************
                            MasterItem = MasterAll.First(x => x.ChemicalConsumptionID == Master.ChemicalConsumptionID);
                            MasterItem.DepartmentID    = (int)objcmnParam.DepartmentID;
                            MasterItem.ItemID          = (long)Master.ItemID;
                            MasterItem.SetID           = Master.SetID;
                            MasterItem.UserID          = objcmnParam.loggeduser;
                            MasterItem.ConsumptionDate = Master.ConsumptionDate;
                            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 < Detail.Count; i++)
                            {
                                item = Detail[i];
                                foreach (PrdSizingChemicalconsumptionDetail d in DetailAll.Where(d => d.ChemicalConsumptionID == Master.ChemicalConsumptionID && d.ChemicalConsumptionDetailID == item.ChemicalConsumptionDetailID))
                                {
                                    d.ChemicalID      = (long)item.ChemicalID;
                                    d.Qty             = item.Qty;
                                    d.UnitID          = (int)item.UnitID;
                                    d.Amount          = item.Amount;
                                    d.BatchID         = item.BatchID;
                                    d.SupplierID      = item.SupplierID;
                                    d.UnitPrice       = item.UnitPrice;
                                    d.ConsumptionDate = Master.ConsumptionDate;

                                    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.ChemicalConsumptionID > 0)
                        {
                            //***************************************************Start Update************************************************
                            if (MasterItem != null)
                            {
                                GFactory_EF_PrdSizingChemicalConsumption.Update(MasterItem);
                                GFactory_EF_PrdSizingChemicalConsumption.Save();
                            }
                            if (DetailItem != null && DetailItem.Count != 0)
                            {
                                GFactory_EF_PrdSizingChemicalconsumptionDetail.UpdateList(DetailItem.ToList());
                                GFactory_EF_PrdSizingChemicalconsumptionDetail.Save();
                            }
                            //***************************************************End Update************************************************
                        }
                        else
                        {
                            //***************************************************Start Save************************************************
                            if (MasterItem != null)
                            {
                                GFactory_EF_PrdSizingChemicalConsumption.Insert(MasterItem);
                                GFactory_EF_PrdSizingChemicalConsumption.Save();
                                GFactory_EF_PrdSizingChemicalConsumption.updateMaxID("PrdSizingChemicalConsumption", Convert.ToInt64(MasterId));
                            }
                            if (DetailItem != null && DetailItem.Count != 0)
                            {
                                GFactory_EF_PrdSizingChemicalconsumptionDetail.InsertList(DetailItem.ToList());
                                GFactory_EF_PrdSizingChemicalconsumptionDetail.Save();
                                GFactory_EF_PrdSizingChemicalconsumptionDetail.updateMaxID("PrdSizingChemicalconsumptionDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1)));
                            }
                            //******************************************************End Save************************************************
                        }

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