Example #1
0
        public HttpResponseMessage SaveUpdateCSMasterNdetails(object[] data)
        {
            PurchaseCSMaster        itemMaster  = JsonConvert.DeserializeObject <PurchaseCSMaster>(data[0].ToString());
            List <PurchaseCSDetail> itemDetails = JsonConvert.DeserializeObject <List <PurchaseCSDetail> >(data[1].ToString());
            int    menuID = Convert.ToInt16(data[2]);
            string result = "";

            try
            {
                if (ModelState.IsValid && itemMaster != null && itemDetails.Count > 0 && menuID > 0)
                {
                    result = objComparative.SaveUpdateCSMasterNdetails(itemMaster, itemDetails, menuID);
                    PONo   = result;
                }
                else
                {
                    result = "";
                }
            }
            catch (Exception e)
            {
                e.ToString();
                result = "";
            }

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
        public string SaveUpdateCSMasterNdetails(PurchaseCSMaster CSMaster, List <PurchaseCSDetail> CSDetails, int menuID)
        {
            _ctxCmn = new ERP_Entities();
            GenericFactory_EF_CmnCombo = new CmnCombo_EF();
            string result = "";

            if (CSMaster.CSID > 0)
            {
                //using (TransactionScope transaction = new TransactionScope())
                //{
                //    try
                //    {
                //        Int64 poID = chMaster.POID;
                //        IEnumerable<PurchasePOMaster> lstPurchasePOMaster = (from qcm in _ctxCmn.PurchasePOMasters.Where(m => m.POID == poID && m.CompanyID == chMaster.CompanyID) select qcm).ToList();
                //        PurchasePOMaster objPurchasePOMaster = new PurchasePOMaster();
                //        foreach (PurchasePOMaster qcms in lstPurchasePOMaster)
                //        {
                //            qcms.UpdateBy = chMaster.CreateBy;
                //            qcms.UpdateOn = DateTime.Now;
                //            qcms.UpdatePc =  HostService.GetIP();
                //            qcms.POID = chMaster.POID;
                //            qcms.CurrencyID = chMaster.CurrencyID;
                //            qcms.Amount = chMaster.Amount;
                //            qcms.PODate = chMaster.PODate;
                //            qcms.BankAccountNo = chMaster.BankAccountNo;
                //            qcms.DepartmentID = chMaster.DepartmentID;
                //            qcms.TransactionTypeID = chMaster.TransactionTypeID;
                //            qcms.BankBranchID = chMaster.BankBranchID;
                //            qcms.IsDeleted = false;
                //            qcms.BankID = chMaster.BankID;
                //            qcms.PartyID = chMaster.PartyID;
                //            //qcms.PIID = chMaster.PIID;
                //            qcms.CompanyID = chMaster.CompanyID;
                //            qcms.ExpireDate = chMaster.ExpireDate;
                //            //qcms.FRID= chMaster.FRID;
                //            qcms.LCorVoucherorLcafDate = chMaster.LCorVoucherorLcafDate;
                //            qcms.LCorVoucherorLcafNo = chMaster.LCorVoucherorLcafNo;
                //            qcms.MoneyTransactionTypeID = chMaster.MoneyTransactionTypeID;
                //            qcms.OrderTypeID = chMaster.OrderTypeID;
                //            qcms.RequisitionID = qcms.RequisitionID;
                //            qcms.ShipmentDate = qcms.ShipmentDate;
                //            objPurchasePOMaster = qcms;
                //        }
                //        List<PurchasePODetail> lstPurchasePODetail = new List<PurchasePODetail>();
                //        foreach (PurchasePODetail qcdt in chDetails)
                //        {
                //            PurchasePODetail objPurchasePODetail = (from qcdetl in _ctxCmn.PurchasePODetails.Where(m => m.PODetailID == qcdt.PODetailID) select qcdetl).FirstOrDefault();

                //            objPurchasePODetail.Amount = qcdt.Amount;
                //            objPurchasePODetail.FOBValue = qcdt.FOBValue;
                //            objPurchasePODetail.FreightCharge = qcdt.FreightCharge;
                //            objPurchasePODetail.HSCode = qcdt.HSCode;
                //            objPurchasePODetail.ItemID = qcdt.ItemID;
                //            objPurchasePODetail.NetWeight = qcdt.NetWeight;
                //            objPurchasePODetail.IsDeleted = false;
                //            objPurchasePODetail.GrossWeight = qcdt.GrossWeight;
                //            objPurchasePODetail.OriginCountryID = qcdt.OriginCountryID;
                //            objPurchasePODetail.NetWeight = qcdt.NetWeight;
                //            objPurchasePODetail.PackingQty = qcdt.PackingQty;
                //            objPurchasePODetail.PackingUnitID = qcdt.PackingUnitID;
                //            objPurchasePODetail.Qty = qcdt.Qty;
                //            objPurchasePODetail.UnitID = qcdt.UnitID;
                //            objPurchasePODetail.UnitPrice = qcdt.UnitPrice;
                //            objPurchasePODetail.WeightUnitID = qcdt.WeightUnitID;
                //            objPurchasePODetail.UpdateBy = chMaster.CreateBy;
                //            objPurchasePODetail.UpdateOn = DateTime.Now;
                //            objPurchasePODetail.UpdatePc =  HostService.GetIP();
                //            lstPurchasePODetail.Add(objPurchasePODetail);

                //        }
                //        _ctxCmn.SaveChanges();

                //        //**********----------------------Start File Upload----------------------**********
                //        GenericFactory_CmnDocument = new CmnDocument_EF();
                //        int DocumentID = Convert.ToInt16(GenericFactory_CmnDocument.getMaxID("CmnDocument"));
                //        List<CmnDocument> lstCmnDocument = new List<CmnDocument>();

                //        for (int i = 1; i <= fileNames.Count; i++)
                //        {
                //            CmnDocument objCmnDocument = new CmnDocument();
                //            objCmnDocument.DocumentID = DocumentID;
                //            objCmnDocument.DocumentPahtID = 2;
                //            //objCmnDocument.DocumentName = fileNames[i].ToString();
                //            string extension = System.IO.Path.GetExtension(fileNames[i - 1].ToString());
                //            objCmnDocument.DocumentName = chMaster.PONo + "_Doc_" + i + extension;
                //            objCmnDocument.TransactionID = chMaster.POID;
                //            objCmnDocument.TransactionTypeID = 22;
                //            objCmnDocument.CompanyID = chMaster.CompanyID;
                //            objCmnDocument.CreateBy = Convert.ToInt16(chMaster.CreateBy);
                //            objCmnDocument.CreateOn = DateTime.Now;
                //            objCmnDocument.CreatePc =  HostService.GetIP();
                //            objCmnDocument.IsDeleted = false;

                //            objCmnDocument.IsDeleted = false;
                //            lstCmnDocument.Add(objCmnDocument);

                //            DocumentID++;
                //        }

                //        GenericFactory_CmnDocument.InsertList(lstCmnDocument);
                //        GenericFactory_CmnDocument.Save();
                //        GenericFactory_CmnDocument.updateMaxID("CmnDocument", Convert.ToInt64(DocumentID - 1));

                //        //**********----------------------File upload completed----------------------**********

                //        transaction.Complete();
                //        result = chMaster.PONo.ToString();
                //    }
                //    catch (Exception e)
                //    {
                //        e.ToString();
                //        result = "";
                //    }
                //}
            }
            else
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    try
                    {
                        //...........START  new maxId...............//
                        long NextId         = Convert.ToInt16(GenericFactory_EF_CmnCombo.getMaxID("PurchaseCSMaster"));
                        long FirstDigit     = 0;
                        long OtherDigits    = 0;
                        long nextChDetailId = Convert.ToInt16(GenericFactory_EF_CmnCombo.getMaxID("PurchaseCSDetail"));
                        FirstDigit  = Convert.ToInt64(nextChDetailId.ToString().Substring(0, 1));
                        OtherDigits = Convert.ToInt64(nextChDetailId.ToString().Substring(1, nextChDetailId.ToString().Length - 1));
                        //..........END new maxId....................//


                        //......... START for custom code........... //

                        string customCode = "";
                        string CustomNo   = GenericFactory_EF_CmnCombo.getCustomCode(menuID, Convert.ToDateTime(CSMaster.CSDate), CSMaster.CompanyID ?? 1, 1, 1);

                        if (CustomNo != null)
                        {
                            customCode = CustomNo;
                        }
                        else
                        {
                            customCode = NextId.ToString();
                        }

                        //.........END for custom code............ //

                        string newChNo = customCode;
                        CSMaster.CSID      = NextId;
                        CSMaster.CreateOn  = DateTime.Now;
                        CSMaster.CreatePc  = HostService.GetIP();
                        CSMaster.CSNo      = customCode;
                        CSMaster.IsDeleted = false;

                        List <PurchaseCSDetail> lstCSDetail = new List <PurchaseCSDetail>();
                        foreach (PurchaseCSDetail sdtl in CSDetails)
                        {
                            PurchaseCSDetail objchDetail = new PurchaseCSDetail();
                            objchDetail.CSDetailID    = Convert.ToInt64(FirstDigit + "" + OtherDigits);//nextQCDetailId;
                            objchDetail.CSID          = NextId;
                            objchDetail.FOBValue      = sdtl.FOBValue;
                            objchDetail.FreightCharge = sdtl.FreightCharge;
                            objchDetail.PartyID       = sdtl.PartyID;
                            objchDetail.CurrencyID    = sdtl.CurrencyID;
                            objchDetail.ItemID        = sdtl.ItemID;
                            objchDetail.UnitID        = sdtl.UnitID;
                            objchDetail.Qty           = sdtl.Qty;
                            objchDetail.UnitPrice     = sdtl.UnitPrice;
                            objchDetail.Amount        = sdtl.Amount;
                            objchDetail.IsDeleted     = false;
                            objchDetail.CreateBy      = CSMaster.CreateBy;
                            objchDetail.CreateOn      = DateTime.Now;
                            objchDetail.CreatePc      = HostService.GetIP();
                            lstCSDetail.Add(objchDetail);
                            OtherDigits++;
                        }

                        _ctxCmn.PurchaseCSMasters.Add(CSMaster);

                        //............Update MaxID.................//
                        GenericFactory_EF_CmnCombo.updateMaxID("PurchaseCSMaster", Convert.ToInt64(NextId));
                        //............Update CustomCode.............//
                        GenericFactory_EF_CmnCombo.updateCustomCode(menuID, Convert.ToDateTime(CSMaster.CSDate), CSMaster.CompanyID ?? 1, 1, 1);
                        _ctxCmn.PurchaseCSDetails.AddRange(lstCSDetail);

                        //............Update MaxID.................//
                        GenericFactory_EF_CmnCombo.updateMaxID("PurchaseCSDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1)));
                        _ctxCmn.SaveChanges();

                        transaction.Complete();
                        result = customCode;
                    }
                    catch (Exception e)
                    {
                        result = "";
                    }
                }
            }
            return(result);
        }