Example #1
0
        public HttpResponseMessage SaveQuotationMasterDetails(object[] data)
        {
            PurchaseQuotationMaster QuotationMaster  = JsonConvert.DeserializeObject <PurchaseQuotationMaster>(data[0].ToString());
            List <vmQuotation>      QuotationDetails = JsonConvert.DeserializeObject <List <vmQuotation> >(data[1].ToString());
            int    menuID = Convert.ToInt16(data[2]);
            string result = "";

            try
            {
                if (ModelState.IsValid && QuotationMaster != null && QuotationDetails.Count > 0 && menuID != null)
                {
                    result = objQuotationService.SaveQuotationMasterDetails(QuotationMaster, QuotationDetails, menuID);
                }
                else
                {
                    result = "";
                }
            }
            catch (Exception e)
            {
                e.ToString();
                result = "";
            }

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
Example #2
0
        public string SaveQuotationMasterDetails(PurchaseQuotationMaster QuotationMaster, List <PurchaseQuotationDetail> QuotationDetails, int menuID)
        {
            //Declerations
            string result = string.Empty; string customCode = string.Empty; string CustomNo = string.Empty;
            int    RequisitionID = Convert.ToInt32(QuotationMaster.QuotationID), SDetailRowNum = 0, UDetailRowNum = 0;
            long   FirstDigit = 0, OtherDigits = 0, nextDetailId = 0; int NextId = 0;

            GenericFactory_EF_QuotationMaster = new PurchaseQuotationMaster_EF();
            GenericFactory_EF_QuotationDetail = new PurchaseQuotationDetail_EF();
            List <PurchaseQuotationDetail> objRqDetails = new List <PurchaseQuotationDetail>();
            List <InvRequisitionDetail>    SobjDetails = new List <InvRequisitionDetail>();

            //   SDetailRowNum = Convert.ToInt32(RequisitionDetails.Where(s => s.ModelState == "Save").Count());
            //   UDetailRowNum = Convert.ToInt32(RequisitionDetails.Where(s => s.ModelState == "Update").Count());
            try
            {
                using (_ctxCmn = new ERP_Entities())
                {
                    //Transaction Occur here************************************************
                    using (TransactionScope transaction = new TransactionScope())
                    {
                        if (RequisitionID > 0)
                        {
                            //**************Master Model************************************************
                            //var lstInvReqMaster = GenericFactory_EF_RequisitionMaster.GetAll().FirstOrDefault(x => x.RequisitionID == RequisitionID);
                            //lstInvReqMaster.UpdateBy = RequisitionMaster.CreateBy;
                            //lstInvReqMaster.UpdateOn = DateTime.Now;
                            //lstInvReqMaster.UpdatePc =  HostService.GetIP();
                            //lstInvReqMaster.RequisitionBy = RequisitionMaster.RequisitionBy;
                            //lstInvReqMaster.RequisitionDate = RequisitionMaster.RequisitionDate;
                            //lstInvReqMaster.Remarks = RequisitionMaster.Remarks;
                            //lstInvReqMaster.Purpose = RequisitionMaster.Purpose;

                            ////*************Details Model************************************************
                            //if (UDetailRowNum > 0)
                            //{
                            //    foreach (vmRequisitionDetails ivrd in RequisitionDetails.Where(x => x.ModelState == "Update"))
                            //    {
                            //        InvRequisitionDetail objRequisitionDetail = GenericFactory_EF_RequisitionDetail.GetAll().FirstOrDefault(x => x.RequisitionID == RequisitionID && x.RequisitionDetailID == ivrd.RequisitionDetailID);
                            //        objRequisitionDetail.Qty = ivrd.Qty;
                            //        objRequisitionDetail.UpdateBy = RequisitionMaster.CreateBy;
                            //        objRequisitionDetail.UpdateOn = DateTime.Now;
                            //        objRequisitionDetail.UpdatePc =  HostService.GetIP();
                            //        objRqDetails.Add(objRequisitionDetail);
                            //    }
                            //}
                            //if (SDetailRowNum > 0)
                            //{
                            //    nextDetailId = Convert.ToInt64(GenericFactory_EF_RequisitionDetail.getMaxID("InvRequisitionDetail"));
                            //    FirstDigit = Convert.ToInt64(nextDetailId.ToString().Substring(0, 1));
                            //    OtherDigits = Convert.ToInt64(nextDetailId.ToString().Substring(1, nextDetailId.ToString().Length - 1));
                            //    foreach (vmRequisitionDetails ivrd in RequisitionDetails.Where(x => x.ModelState == "Save"))
                            //    {
                            //        InvRequisitionDetail objRequisitionDetail = new InvRequisitionDetail();
                            //        objRequisitionDetail.RequisitionDetailID = Convert.ToInt64(FirstDigit + "" + OtherDigits);
                            //        objRequisitionDetail.RequisitionID = RequisitionMaster.RequisitionID;
                            //        objRequisitionDetail.ItemID = ivrd.ItemID;
                            //        objRequisitionDetail.UnitID = (int)ivrd.UnitID;
                            //        objRequisitionDetail.LotID = ivrd.LotID;
                            //        objRequisitionDetail.BatchID = ivrd.BatchID;
                            //        objRequisitionDetail.Qty = ivrd.Qty;
                            //        objRequisitionDetail.UnitPrice = ivrd.UnitPrice;
                            //        objRequisitionDetail.Amount = ivrd.Amount;
                            //        objRequisitionDetail.CreateBy = RequisitionMaster.CreateBy;
                            //        objRequisitionDetail.CreateOn = DateTime.Now;
                            //        objRequisitionDetail.IsDeleted = false;
                            //        objRequisitionDetail.CreatePc =  HostService.GetIP();
                            //        SobjDetails.Add(objRequisitionDetail);
                            //        OtherDigits++;
                            //    }
                            //}


                            ////RequisitionID
                            ////**************Master Transaction Update************************************************
                            //if (lstInvReqMaster != null)
                            //{
                            //    GenericFactory_EF_RequisitionMaster.Update(lstInvReqMaster);
                            //    GenericFactory_EF_RequisitionMaster.Save();
                            //}
                            ////RequisitionDetailID
                            //// **************Details Transaction Update************************************************
                            //if (objRqDetails.Count != 0)
                            //{
                            //    GenericFactory_EF_RequisitionDetail.UpdateList(objRqDetails);
                            //    GenericFactory_EF_RequisitionDetail.Save();
                            //}
                            //if (SobjDetails.Count != 0)
                            //{
                            //    GenericFactory_EF_RequisitionDetail.InsertList(SobjDetails);
                            //    GenericFactory_EF_RequisitionDetail.Save();
                            //    GenericFactory_EF_RequisitionDetail.updateMaxID("InvRequisitionDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1)));
                            //}

                            ////**************Commit Transaction************************************************
                            //// _ctxCmn.SaveChanges();
                            //transaction.Complete();
                            //result = customCode;
                        }
                        else
                        {
                            //Initialisation ************************************************
                            NextId       = Convert.ToInt16(GenericFactory_EF_QuotationMaster.getMaxID("PurchaseQuotationMaster"));
                            nextDetailId = Convert.ToInt64(GenericFactory_EF_QuotationDetail.getMaxID("PurchaseQuotationDetail"));
                            FirstDigit   = Convert.ToInt64(nextDetailId.ToString().Substring(0, 1));
                            OtherDigits  = Convert.ToInt64(nextDetailId.ToString().Substring(1, nextDetailId.ToString().Length - 1));
                            CustomNo     = GenericFactory_EF_QuotationMaster.getCustomCode(menuID, Convert.ToDateTime(QuotationMaster.QuotationDate), QuotationMaster.CompanyID, 1, 1); // QuotationMaster.CompanyID

                            if ((customCode != "") || (customCode != null))
                            {
                                customCode = CustomNo;
                            }
                            else
                            {
                                customCode = NextId.ToString();
                            }
                            //**************Master Model************************************************
                            QuotationMaster.QuotationID = NextId;
                            QuotationMaster.CreateOn    = DateTime.Now;
                            QuotationMaster.CreatePc    = HostService.GetIP();
                            QuotationMaster.QuotationNo = customCode;

                            //*************Details Model************************************************
                            foreach (PurchaseQuotationDetail ivrd in QuotationDetails)
                            {
                                PurchaseQuotationDetail objDetail = new PurchaseQuotationDetail();
                                objDetail.QuotationDetailID = Convert.ToInt64(FirstDigit + "" + OtherDigits);
                                objDetail.QuotationID       = NextId;
                                objDetail.ItemID            = ivrd.ItemID;
                                objDetail.UnitID            = (int)ivrd.UnitID;
                                objDetail.Qty                 = ivrd.Qty;
                                objDetail.UnitPrice           = ivrd.UnitPrice;
                                objDetail.Amount              = ivrd.Amount;
                                objDetail.FOBValue            = ivrd.FOBValue;
                                objDetail.TransportTypeID     = ivrd.TransportTypeID;
                                objDetail.FreightCharge       = ivrd.FreightCharge;
                                objDetail.DischargeLocationID = ivrd.DischargeLocationID;
                                objDetail.LoadingLocationID   = ivrd.LoadingLocationID;
                                objDetail.CreateBy            = QuotationMaster.CreateBy;
                                objDetail.CreateOn            = DateTime.Now;
                                objDetail.IsDeleted           = false;
                                objDetail.CreatePc            = HostService.GetIP();
                                objRqDetails.Add(objDetail);
                                OtherDigits++;
                            }

                            //QuotationID
                            //**************Master Transaction Save************************************************
                            _ctxCmn.PurchaseQuotationMasters.Add(QuotationMaster);

                            //QuotationIDDetailID
                            //**************Details Transaction Save************************************************
                            _ctxCmn.PurchaseQuotationDetails.AddRange(objRqDetails);
                            _ctxCmn.SaveChanges();

                            //**************Reset Transaction************************************************
                            GenericFactory_EF_QuotationMaster.updateMaxID("PurchaseQuotationMaster", Convert.ToInt64(NextId));
                            GenericFactory_EF_QuotationMaster.updateCustomCode(menuID, DateTime.Now, 1, 1, 1);              // QuotationMaster.CompanyID
                            GenericFactory_EF_QuotationDetail.updateMaxID("PurchaseQuotationDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1)));

                            //**************Commit Transaction************************************************
                            transaction.Complete();
                            result = customCode;
                        }
                    }
                }
            }
            catch (Exception)
            {
                result = "-1";
            }

            return(result);
        }