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);