public ActionResponse <DailyRequest> Save_Daily(DailyRequest model) { ActionResponse <DailyRequest> response = new ActionResponse <DailyRequest>() { Response = model, ResponseType = ResponseType.Ok }; using (MspDbContext _db = new MspDbContext()) { using (DbContextTransaction transaction = _db.Database.BeginTransaction()) { try { int saleOwnerId = 0; if (response.Response.dailyOwner.RecId == 0) { DailyOwner dailyOwner = base.Map <DailyOwnerDTO, DailyOwner>(model.dailyOwner); _db.DailyOwner.Add(dailyOwner); _db.SaveChanges(); saleOwnerId = dailyOwner.RecId; } else { var entity = _db.DailyOwner.FirstOrDefault(x => x.RecId == response.Response.dailyOwner.RecId); if (entity != null) { _db.Entry(entity).CurrentValues.SetValues(model.dailyOwner); _db.Entry(entity).State = System.Data.Entity.EntityState.Modified; } } foreach (var item in model.dailyTrans) { if (item.RecId == 0) { item.OwnerId = saleOwnerId; _db.DailyTrans.Add(base.Map <DailyTransDTO, DailyTrans>(item)); } else { var entity = _db.DailyTrans.FirstOrDefault(x => x.RecId == item.RecId); if (entity != null) { _db.Entry(entity).CurrentValues.SetValues(item); _db.Entry(entity).State = System.Data.Entity.EntityState.Modified; } } } _db.SaveChanges(); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); response.Message = e.ToString(); response.ResponseType = ResponseType.Error; } } } return(response); }
private void do_Save() { try { var control = _repository.Run <DailyService, List <DailyOwnerDTO> >(x => x.Get_List_DailyOwner_Control()); if (control.Count > 0) { XtraMessageBox.Show("Bugün için oluşturulan Gün Sonu işlemleri Vardır. Lütfen Siliniz.", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //1-Gelir/2-Gider/Expense - Gider//Revune - Gelir _saleOwner = _repository.Run <SaleService, List <SaleOwnerDTO> >(x => x.GetList_Date(DateTime.Today)); var caseMovements = _repository.Run <CaseService, List <CaseMovementDTO> >(x => x.Get_List_CaseMovement_Date(AppMain.CompanyRecId)); _caseMovements = caseMovements.Where(x => x.SaleOwnerId == null || x.SaleOwnerId == 0).ToList(); decimal _saleAmount = _saleOwner.Sum(x => x.TotalPrice.GetValueOrDefault()); decimal __Amount = _saleOwner.Sum(x => x.TotalPrice.GetValueOrDefault()) + _caseMovements.Where(x => x.IslemTuru == 1).Sum(x => x.Tutar.GetValueOrDefault()); DailyOwnerDTO DailyOwner = new DailyOwnerDTO() { Date = DateTime.Now, CompanyRecId = AppMain.CompanyRecId, Deleted = false, Remark = DateTime.Today.ToString() + " - " + textEdit1.EditValue.ToString(), Amount = __Amount - _caseMovements.Where(x => x.IslemTuru == 2).Sum(x => x.Tutar.GetValueOrDefault()), SaleAmount = _saleAmount, CardAmount = _saleOwner.Where(x => x.PaymentType == 2).Sum(x => x.TotalPrice), CashAmount = _saleOwner.Where(x => x.PaymentType == 1).Sum(x => x.TotalPrice), RetailSaleCount = _saleOwner.Count, RetailSaleAmount = _saleAmount, Revenue = __Amount, Expense = _caseMovements.Where(x => x.IslemTuru == 2).Sum(x => x.Tutar), }; #region DailyTrans foreach (var item in _saleOwner) { var saleTrans = _repository.Run <SaleService, List <SaleTransDTO> >(x => x.Get_List_SaleOwner(item.RecId)); if (saleTrans.Count > 0) { _saleTrans.AddRange(saleTrans); } } foreach (var item in _saleTrans) { DailyTransDTO dailyTrans = new DailyTransDTO() { Date = DateTime.Now, SaleTransId = item.SaleOwnerId, Quantity = item.ProductQuantity, Amount = item.ProductPrice, CaseOwnerId = 0, Type = 1, CompanyRecId = AppMain.CompanyRecId, OwnerId = 0 }; _dailyTrans.Add(dailyTrans); } foreach (var item in _caseMovements) { DailyTransDTO dailyTrans = new DailyTransDTO() { Amount = item.Tutar, Type = 2, SaleTransId = 0, CaseOwnerId = item.RecId, Quantity = 0, CompanyRecId = AppMain.CompanyRecId, Date = DateTime.Now, OwnerId = 0, }; _dailyTrans.Add(dailyTrans); } #endregion var req = new DailyRequest { dailyOwner = DailyOwner, dailyTrans = _dailyTrans }; var response = _repository.Run <DailyService, ActionResponse <DailyRequest> >(x => x.Save_Daily(req)); if (response.ResponseType != ResponseType.Ok) { DevExpress.XtraEditors.XtraMessageBox.Show(response.Message, "HATA", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { XtraMessageBox.Show("İşlem Tamamlandı..", "ONAY", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } } catch (Exception ex) { XtraMessageBox.Show(ex.Message); } }