public virtual IActionResult _ContractPaymentAdd(int Id = 0) { var item = new PaymentExpenditure(); var model = new PaymentExpenditureModel() { Id = Id }; if (Id > 0) { item = _contractService.GetPaymentExpenditureById(Id); model = item.ToModel <PaymentExpenditureModel>(); } return(PartialView(model)); }
public virtual IActionResult Create(Guid ExpenditureGuid, int AdvanceId = 0, int AcceptanceId = 0) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePaymentExpenditureCreate)) { return(AccessDeniedView()); } var model = new PaymentExpenditureModel { ExpenditureGuid = ExpenditureGuid }; if (AdvanceId > 0) { model.TypeId = (int)PaymentExpenditureType.Advance; var Advance = _paymentAdvanceService.GetPaymentAdvanceById(AdvanceId); model.UnitName = Advance.unit.Name; model.PaymentAdvanceId = AdvanceId; model.UnitId = (int)Advance.UnitId; model.TotalMoney = _priceFormatter.FormatPrice(Advance.TotalReceive.GetValueOrDefault(), true, Advance.currency); var acceptances = _contractService.getAllContractAcceptanceByAdvanceId(AdvanceId: AdvanceId); model.lstContractPayment = acceptances.Select(c => preparePaymentbyContractAcceptance(c)).ToList(); } else if (AcceptanceId > 0) { var acceptances = _contractService.getContractAcceptancebyId(Id: AcceptanceId); model.UnitId = (int)acceptances.UnitId; model.UnitName = acceptances.unit.Name; model.AcceptanceId = AcceptanceId; model.TotalMoney = acceptances.TotalAmount.ToVNStringNumber(); var AcceptanceSub = _contractService.GetallContractAcceptanceSubs(AcceptanceId: acceptances.Id, TypeId: (int)ContractAcceptancesType.NoiBo); model.lstContractPayment = AcceptanceSub.Select(c => preparePaymentbyContractAcceptanceSub(c)).ToList(); } else { var paymentExpenditure = _contractService.GetPaymentExpenditureByGuid(model.ExpenditureGuid); model = paymentExpenditure.ToModel <PaymentExpenditureModel>(); model.TotalMoney = model.TotalAmount.ToVNStringNumber(); model.lstContractPayment = _contractPaymentService.GetAllContractPaymentsByExpenditureId(model.Id).Select(c => c.ToModel <ContractPaymentModel>()).ToList(); }; model.AvailableCurrency = _currencyService.GetAllCurrencies().Select(c => new SelectListItem { Text = c.Name, Value = c.Id.ToString(), Selected = c.Id == model.CurrencyId }).ToList(); return(View(model)); }
public virtual IActionResult Create(PaymentExpenditureModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePaymentExpenditureCreate)) { return(AccessDeniedView()); } if (ModelState.IsValid && model.lstContractPayment.Count() > 0) { var noti = "admin.common.Added"; var item = new PaymentExpenditure(); if (model.Id > 0) { item = _contractService.GetPaymentExpenditureById(model.Id); } _contractModelFactory.PreparePaymentExpenditure(model, item); if (model.PaymentAdvanceId > 0) { item.PaymentAdvanceId = model.PaymentAdvanceId; item.AcceptanceId = null; } if (model.AcceptanceId > 0) { item.AcceptanceId = model.AcceptanceId; item.PaymentAdvanceId = null; } if (model.Id > 0) { _contractPaymentService.DeleteContractPaymentsByExpenditureId(item.Id); _contractService.UpdatePaymentExpenditure(item); noti = "admin.common.Updated"; } else { _contractService.InsertPaymentExpenditure(item); } foreach (ContractPaymentModel paymentModel in model.lstContractPayment) { var payment = new ContractPayment { CreatorId = _workContext.CurrentCustomer.Id, ApprovedDate = DateTime.Now, CreatedDate = DateTime.Now, IsReceipts = false, StatusId = (int)ContractPaymentStatus.Approved, }; var task = _workTaskService.GetTaskById(paymentModel.TaskId); payment.ExpenditureId = item.Id; payment.Description = item.Name + " " + task.Name; payment.Code = item.Code + task.Code; payment.TaskId = paymentModel.TaskId; payment.ContractId = task.ContractId; if (task.UnitId > 0) { payment.UnitId = (int)task.UnitId; } else { payment.UnitId = null; } if (task.CurrencyId > 0) { payment.CurrencyId = (int)task.CurrencyId; } else { payment.CurrencyId = (int)item.CurrencyId; } payment.Amount = paymentModel.Amount.ToNumber(); payment.TypeId = item.TypeId; _contractPaymentService.InsertContractPayment(payment); } return(JsonSuccessMessage(_localizationService.GetResource(noti), item.ToModel <PaymentExpenditureModel>())); } var list = ModelState.Values.Where(c => c.Errors.Count > 0).ToList(); return(JsonErrorMessage("Error", list)); }