using _0_Framework.Application; using CompanyManagment.App.Contracts.FinancialStatment; using CompanyManagment.App.Contracts.FinancilTransaction; using Microsoft.AspNetCore.Mvc; using PersianTools.Core; using ServiceHost.BaseControllers; namespace ServiceHost.Areas.Admin.Controllers; public class FinancialStatementController : AdminBaseController { private readonly IFinancialStatmentApplication _financialStatementApplication; private readonly IFinancialTransactionApplication _financialTransactionApplication; public FinancialStatementController(IFinancialStatmentApplication financialStatementApplication, IFinancialTransactionApplication financialTransactionApplication) { _financialStatementApplication = financialStatementApplication; _financialTransactionApplication = financialTransactionApplication; } /// /// گرفتن جزئیات وضعیت مالی با آیدی طرف حساب /// /// /// /// [HttpGet("contracting-party/{id}")] public async Task> GetDetailsByContractingParty( long id, FinancialStatementSearchModel searchModel) { var data = await _financialStatementApplication.GetDetailsByContractingParty(id, searchModel); return data; } /// /// گرفتن جزییات ویرایش /// /// /// [HttpGet("edit/{id}")] public ActionResult GetEditDetails(long id) { var res = _financialTransactionApplication.GetDetails(id); return res; } /// /// حذف بلاک /// /// /// [HttpPost("removeBlocked/{id}")] public ActionResult RemoveBlocked(long id) { var res = _financialTransactionApplication.RemoveBlocked(id); return res; } /// /// ایجاد /// /// /// [HttpPost] public ActionResult Create([FromBody] CreateFinancialStatment command) { var res = _financialStatementApplication.Create(command); return res; } /// /// ویرایش /// /// /// [HttpPut] public ActionResult Edit([FromBody] EditFinancialTransactionRequest request) { var command = new EditFinancialTransaction { Id = request.Id, TdateFa = request.TDateFa, TypeOfTransaction = request.TypeOfTransaction, DescriptionOption = request.DescriptionOption, Description = request.Description, DeptorString = request.DeptorString, CreditorString = request.CreditorString }; var result = _financialTransactionApplication.Edit(command); return result; } /// /// حذف /// /// /// [HttpDelete("{id}")] public IActionResult RemoveTransaction(long id) { var res = _financialTransactionApplication.RemoveFinancialTransaction(id); if (res.IsSuccedded) return new JsonResult(new { success = true }); return new JsonResult(new { success = false }); } } public record EditFinancialTransactionRequest( long Id, string TDateFa, string TypeOfTransaction, string DescriptionOption, string Description, string DeptorString, string CreditorString);