예제 #1
0
        public DCRChemistVisitResut InsertDCRChemistVisitData(DCRChemistVisit objChemistVisit)
        {
            objdlDCRChemistVisit         = new DL_DCRChemistVisit();
            _objCurrentInfo              = new CurrentInfo();
            objChemistVisit.Company_Code = _objCurrentInfo.GetCompanyCode();
            objChemistVisit.Company_Id   = 10;
            objChemistVisit.DCR_Code     = _objCurrentInfo.GetDCRCode(objChemistVisit.DCR_Actual_Date);
            objChemistVisit.Region_Code  = _objCurrentInfo.GetRegionCode();
            objChemistVisit.User_code    = _objCurrentInfo.GetUserCode();

            objChemistVisit.CV_Visit_latitude  = _objCurrentInfo.GetLattitude();
            objChemistVisit.CV_Visit_Longitude = _objCurrentInfo.GetLongitude();

            if (objChemistVisit.lsAttachment != null)
            {
                objChemistVisit.lsAttachment = objChemistVisit.lsAttachment.Where(x => x.Status == "1").ToList();
            }
            if (objChemistVisit.lsPOBOrderHeader != null && objChemistVisit.lsPOBOrderHeader.Count > 0)
            {
                objChemistVisit.lsPOBOrderHeader.ForEach(x => x.Created_By = objChemistVisit.User_code);
            }

            if (objChemistVisit.lsRCPA_Own_Products != null)
            {
                // objChemistVisit.lsRCPA_Own_Products.ForEach(x => x.Qty = 10);
                //objChemistVisit.lsRCPA_Own_Products.ForEach(x => x.Customer_Name = x.Customer_Name.Substring(0, 30));
                objChemistVisit.lsRCPA_Own_Products = objChemistVisit.lsRCPA_Own_Products.Where(x => x.Customer_Name != null && x.Qty != null && x.Product_Code != null && x.Product_Name != null).ToList();
            }
            //if (objChemistVisit.lsRCPA_Competitor_Products != null)
            //   objChemistVisit.lsRCPA_Competitor_Products.ForEach(x => x.Qty = 10);
            if (objChemistVisit.lsPOBOrderHeader != null && objChemistVisit.lsPOBOrderHeader.Count > 0)
            {
                objChemistVisit.lsPOBOrderHeader.ForEach(x => x.Favouring_User_Code   = _objCurrentInfo.GetUserCode());
                objChemistVisit.lsPOBOrderHeader.ForEach(x => x.Favouring_Region_Code = _objCurrentInfo.GetRegionCode());
            }

            //Sample
            List <DCR_CV_Sample_Promotion> IDCRProductBatchModel = objChemistVisit.lsSample_Promotion;

            if (objChemistVisit.lsSample_Promotion != null && objChemistVisit.lsSample_Promotion.ToList().Count != 0)
            {
                objChemistVisit.lsSample_Promotion = objChemistVisit.lsSample_Promotion.ToList().GroupBy(x => x.Product_Code).Select(y => y.First()).ToList();
            }
            List <DCR_CV_Sample_Promotion> lsbatch = new List <DCR_CV_Sample_Promotion>();

            if (IDCRProductBatchModel != null && IDCRProductBatchModel.ToList().Count > 0)
            {
                foreach (var item in objChemistVisit.lsSample_Promotion.ToList())
                {
                    DCR_CV_Sample_Promotion obj = new DCR_CV_Sample_Promotion();
                    var single_pro = IDCRProductBatchModel.Where(x => x.Product_Code == item.Product_Code);
                    if (single_pro.ToList().Count > 0)
                    {
                        //obj.DCR_Product_Code = single_pro.ToList()[0].ch;
                        obj.Batch_Number     = single_pro.ToList()[0].Batch_Number;
                        obj.Product_Code     = single_pro.ToList()[0].Product_Code;
                        obj.CV_Customer_Name = objChemistVisit.Chemists_Name;
                        var quentity = 0;

                        for (int i = 0; i < single_pro.ToList().Count; i++)
                        {
                            if (single_pro.ToList()[i].Quantity_Provided.ToString() != "")
                            {
                                quentity += Convert.ToInt32(single_pro.ToList()[i].Quantity_Provided);
                            }
                        }
                        obj.Quantity_Provided = quentity;
                    }
                    else
                    {
                        //obj.DCR_Product_Code = item.DCR_Product_Code;
                        obj.Batch_Number      = item.Batch_Number;
                        obj.Product_Code      = item.Product_Code;
                        obj.Quantity_Provided = item.Quantity_Provided;
                    }
                    lsbatch.Add(obj);
                }
                objChemistVisit.lsSample_Promotion = null;
                objChemistVisit.lsSample_Promotion = lsbatch;
            }

            List <DCR_CV_Sample_Promotion> lsbatchProduct = new List <DCR_CV_Sample_Promotion>();

            if (IDCRProductBatchModel != null && IDCRProductBatchModel.ToList().Count > 0)
            {
                IDCRProductBatchModel = IDCRProductBatchModel.Where(x => x.Batch_Number != "" && x.Batch_Number != null).ToList();
            }
            if (objChemistVisit.lsSample_Promotion != null && IDCRProductBatchModel != null && objChemistVisit.lsSample_Promotion.ToList().Count > 0 && IDCRProductBatchModel.ToList().Count > 0)
            {
                foreach (var item in objChemistVisit.lsSample_Promotion.ToList())
                {
                    var sigle_pro = IDCRProductBatchModel.ToList().Where(x => x.Product_Code == item.Product_Code);
                    for (int i = 0; i < sigle_pro.ToList().Count; i++)
                    {
                        DCR_CV_Sample_Promotion obj = new DCR_CV_Sample_Promotion();
                        // obj.DCR_Product_Code = item.DCR_Product_Code;
                        obj.Product_Code      = sigle_pro.ToList()[i].Product_Code;
                        obj.Quantity_Provided = sigle_pro.ToList()[i].Quantity_Provided;
                        obj.Batch_Number      = sigle_pro.ToList()[i].Batch_Number;
                        lsbatchProduct.Add(obj);
                    }
                }
                IDCRProductBatchModel = null;
                IDCRProductBatchModel = lsbatchProduct;
                objChemistVisit.lsSample_Promotion_Batch = lsbatchProduct;
            }
            return(objdlDCRChemistVisit.InsertDCRChemistVisitData(objChemistVisit));
        }