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); }
/// <summary> /// This method is used to add or edit purchase quotation /// </summary> /// <param name="quotationData"></param> /// <returns></returns> public int AddUpdateQuotation(PurchaseQuotationForm quotationData) { int autoId = 0; //Add purchase quotation PurchaseQuotation obj = new PurchaseQuotation(); obj.ID = quotationData.Quotation.ID; obj.Sup_Id = quotationData.Quotation.SupplierID; obj.PQ_Conv_to_PO = quotationData.Quotation.PQ_Conv_to_PO; obj.PQ_Conv_to_PI = quotationData.Quotation.PQ_Conv_to_PI; //obj.PQ_Date = quotationData.Quotation.QuotationDate; obj.PQ_Date = quotationData.Quotation.QuotationDate; obj.PQ_GST_Amt = Convert.ToDecimal(quotationData.Quotation.TotalTax); obj.PQ_No = quotationData.Quotation.QuotationNo; obj.PQ_TandC = quotationData.Quotation.TermsAndConditions; obj.PQ_Tot_aft_Tax = Convert.ToDecimal(quotationData.Quotation.TotalAfterTax); obj.PQ_Tot_bef_Tax = Convert.ToDecimal(quotationData.Quotation.TotalBeforeTax); obj.PQ_Valid_for = quotationData.Quotation.ValidForDays; obj.Exc_Inc_GST = quotationData.Quotation.ExcIncGST; obj.IsDeleted = false; try { using (SASEntitiesEDM entities = new SASEntitiesEDM()) { if (entities.PurchaseQuotations.AsNoTracking().FirstOrDefault(x => x.ID == quotationData.Quotation.ID) == null) { //obj.CreatedBy = quotationData.PQModel.CreatedBy; obj.CreatedDate = DateTime.Now; entities.PurchaseQuotations.Add(obj); entities.SaveChanges(); autoId = obj.ID; } else { // obj.ModifiedBy = quotationData.PQModel.ModifiedBy; obj.ModifiedDate = DateTime.Now; entities.Entry(obj).State = EntityState.Modified; autoId = entities.SaveChanges(); } if (autoId > 0) { PurchaseQuotationDetail PQDetails; if (quotationData.QuotationDetails != null) { foreach (PurchaseQuotationDetailEntity PQDetailEntity in quotationData.QuotationDetails) { PQDetails = new PurchaseQuotationDetail(); PQDetails.PQ_ID = autoId; PQDetails.PQ_No = PQDetailEntity.PQNo; PQDetails.PandS_Code = PQDetailEntity.PandSCode; PQDetails.PandS_Name = PQDetailEntity.PandSName; PQDetails.PQ_Amount = PQDetailEntity.PQAmount; PQDetails.PQ_Discount = PQDetailEntity.PQDiscount; PQDetails.PQ_No = PQDetailEntity.PQNo; PQDetails.PQ_Price = Convert.ToDecimal(PQDetailEntity.PQPrice); PQDetails.PQ_Qty = PQDetailEntity.PQQty; PQDetails.GST_Code = PQDetailEntity.GSTCode; PQDetails.GST_Rate = PQDetailEntity.GSTRate; if (entities.PurchaseQuotationDetails.AsNoTracking().FirstOrDefault(x => x.ID == PQDetailEntity.ID) == null) { entities.PurchaseQuotationDetails.Add(PQDetails); entities.SaveChanges(); } else { entities.Entry(PQDetails).State = EntityState.Modified; entities.SaveChanges(); } } } } } return(autoId); } catch (Exception ex) { throw ex; } }
private void Controller_ObjectCreated(object sender, ObjectCreatedEventArgs e) { ListView lv = ((ListView)View); if (lv.CollectionSource is PropertyCollectionSource) { PropertyCollectionSource collectionSource = (PropertyCollectionSource)lv.CollectionSource; if (collectionSource.MasterObject != null) { int minvalue = 0; int maxvisorder = 0; if (collectionSource.MasterObjectType == typeof(StockTransferRequest) && e.CreatedObject.GetType() == typeof(StockTransferRequestDetail)) { StockTransferRequest masterobject = (StockTransferRequest)collectionSource.MasterObject; StockTransferRequestDetail currentobject = (StockTransferRequestDetail)e.CreatedObject; copyCon.GetStockDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder); currentobject.Oid = minvalue; currentobject.VisOrder = maxvisorder; if (sDtlS != null) { copyCon.copyClassStockTransferDocumentDetail(sDtlS, currentobject, e.ObjectSpace); } } else if (collectionSource.MasterObjectType == typeof(PurchaseOrder)) { PurchaseOrder masterobject = (PurchaseOrder)collectionSource.MasterObject; PurchaseOrderDetail currentobject = (PurchaseOrderDetail)e.CreatedObject; copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder); currentobject.Oid = minvalue; currentobject.VisOrder = maxvisorder; currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey); if (sDtl != null) { copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace); } } else if (collectionSource.MasterObjectType == typeof(PurchaseRequest)) { PurchaseRequest masterobject = (PurchaseRequest)collectionSource.MasterObject; PurchaseRequestDetail currentobject = (PurchaseRequestDetail)e.CreatedObject; copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder); currentobject.Oid = minvalue; currentobject.VisOrder = maxvisorder; if (masterobject.DocCur != null) { currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey); } if (sDtl != null) { copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace); } } else if (collectionSource.MasterObjectType == typeof(PurchaseDelivery)) { PurchaseDelivery masterobject = (PurchaseDelivery)collectionSource.MasterObject; PurchaseDeliveryDetail currentobject = (PurchaseDeliveryDetail)e.CreatedObject; copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder); currentobject.Oid = minvalue; currentobject.VisOrder = maxvisorder; if (masterobject.DocCur != null) { currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey); } if (sDtl != null) { copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace); } } else if (collectionSource.MasterObjectType == typeof(PurchaseReturn)) { PurchaseReturn masterobject = (PurchaseReturn)collectionSource.MasterObject; PurchaseReturnDetail currentobject = (PurchaseReturnDetail)e.CreatedObject; copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder); currentobject.Oid = minvalue; currentobject.VisOrder = maxvisorder; if (masterobject.DocCur != null) { currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey); } if (sDtl != null) { copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace); } } else if (collectionSource.MasterObjectType == typeof(PurchaseQuotation)) { PurchaseQuotation masterobject = (PurchaseQuotation)collectionSource.MasterObject; PurchaseQuotationDetail currentobject = (PurchaseQuotationDetail)e.CreatedObject; copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder); currentobject.Oid = minvalue; currentobject.VisOrder = maxvisorder; if (masterobject.DocCur != null) { currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey); } if (sDtl != null) { copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace); } } } } sDtl = null; sDtlS = null; }
public int UpdationQuotation(PurchaseQuotationForm quotationData) { try { using (SASEntitiesEDM entities = new SASEntitiesEDM()) { PurchaseQuotation obj = entities.PurchaseQuotations.Where(e => e.PQ_No == quotationData.Quotation.QuotationNo ).SingleOrDefault(); if (obj != null) { //obj.ID = quotationData.Quotation.ID; obj.Sup_Id = quotationData.Quotation.SupplierID; // obj.PQ_Conv_to_PO = quotationData.Quotation.PQ_Conv_to_PO; // obj.PQ_Conv_to_PI = quotationData.Quotation.PQ_Conv_to_PI; obj.PQ_Date = Convert.ToDateTime(quotationData.Quotation.QuotationDateStr); obj.PQ_GST_Amt = Convert.ToDecimal(quotationData.Quotation.TotalTax); obj.PQ_No = quotationData.Quotation.QuotationNo; obj.PQ_TandC = quotationData.Quotation.TermsAndConditions; obj.PQ_Tot_aft_Tax = Convert.ToDecimal(quotationData.Quotation.TotalAfterTax); obj.PQ_Tot_bef_Tax = Convert.ToDecimal(quotationData.Quotation.TotalBeforeTax); obj.PQ_Valid_for = quotationData.Quotation.ValidForDays; obj.Exc_Inc_GST = quotationData.Quotation.ExcIncGST; obj.ModifiedDate = DateTime.Now; entities.SaveChanges(); } var objPurchase = entities.PurchaseQuotationDetails.Where (e => e.PQ_ID == obj.ID).ToList(); if (objPurchase != null) { foreach (var item in objPurchase) { entities.PurchaseQuotationDetails.Remove(item); entities.SaveChanges(); } } PurchaseQuotationDetail PQDetails; if (quotationData.QuotationDetails != null) { foreach (PurchaseQuotationDetailEntity PQDetailEntity in quotationData.QuotationDetails) { PQDetails = new PurchaseQuotationDetail(); PQDetails.PQ_ID = obj.ID; PQDetails.PQ_No = PQDetailEntity.PQNo; PQDetails.PandS_Code = PQDetailEntity.PandSCode; PQDetails.PandS_Name = PQDetailEntity.PandSName; PQDetails.PQ_Amount = PQDetailEntity.PQAmount; PQDetails.PQ_Discount = PQDetailEntity.PQDiscount; PQDetails.PQ_No = PQDetailEntity.PQNo; PQDetails.PQ_Price = Convert.ToDecimal(PQDetailEntity.PQPrice); PQDetails.PQ_Qty = PQDetailEntity.PQQty; PQDetails.GST_Code = PQDetailEntity.GSTCode; PQDetails.GST_Rate = PQDetailEntity.GSTRate; entities.PurchaseQuotationDetails.Add(PQDetails); entities.SaveChanges(); } } return(obj.ID); } } catch (Exception ex) { throw ex; } }