add new metod "CreateFromBankGateway"
This commit is contained in:
@@ -10,6 +10,12 @@ namespace CompanyManagment.App.Contracts.FinancialStatment;
|
||||
|
||||
public interface IFinancialStatmentApplication
|
||||
{
|
||||
/// <summary>
|
||||
/// ایجاد سند مالی از طریق درگاه بانکی
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
OperationResult CreateFromBankGateway(CreateFinancialStatment command);
|
||||
OperationResult Create(CreateFinancialStatment command);
|
||||
|
||||
List<FinancialStatmentViewModel> Search(FinancialStatmentSearchModel searchModel);
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using Company.Domain.ContarctingPartyAgg;
|
||||
using Company.Domain.FinancialStatmentAgg;
|
||||
using CompanyManagment.App.Contracts.FinancialStatment;
|
||||
using CompanyManagment.App.Contracts.FinancilTransaction;
|
||||
using Microsoft.AspNetCore.Components.Forms;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace CompanyManagment.Application;
|
||||
@@ -12,11 +15,70 @@ public class FinancialStatmentApplication : IFinancialStatmentApplication
|
||||
{
|
||||
private readonly IFinancialStatmentRepository _financialStatmentRepository;
|
||||
private readonly IFinancialTransactionApplication _financialTransactionApplication;
|
||||
private readonly IPersonalContractingPartyRepository _contractingPartyRepository;
|
||||
|
||||
public FinancialStatmentApplication(IFinancialStatmentRepository financialStatmentRepository, IFinancialTransactionApplication financialTransactionApplication)
|
||||
public FinancialStatmentApplication(IFinancialStatmentRepository financialStatmentRepository, IFinancialTransactionApplication financialTransactionApplication, IPersonalContractingPartyRepository contractingPartyRepository)
|
||||
{
|
||||
_financialStatmentRepository = financialStatmentRepository;
|
||||
_financialTransactionApplication = financialTransactionApplication;
|
||||
_contractingPartyRepository = contractingPartyRepository;
|
||||
}
|
||||
|
||||
public OperationResult CreateFromBankGateway(CreateFinancialStatment command)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
|
||||
if (command.Creditor == 0)
|
||||
return op.Failed("فیلد بدهکار خالیاست");
|
||||
|
||||
if (_financialStatmentRepository.Exists(x => x.ContractingPartyId == command.ContractingPartyId))
|
||||
{
|
||||
var financialStatment =
|
||||
_financialStatmentRepository.GetDetailsByContractingPartyId(command.ContractingPartyId);
|
||||
var transaction = new CreateFinancialTransaction()
|
||||
{
|
||||
FinancialStatementId = financialStatment.Id,
|
||||
TdateGr = DateTime.Now,
|
||||
TdateFa = DateTime.Now.ToFarsi(),
|
||||
Description = command.Description,
|
||||
Deptor = 0,
|
||||
Creditor = command.Creditor,
|
||||
TypeOfTransaction = command.TypeOfTransaction,
|
||||
DescriptionOption = command.DescriptionOption
|
||||
};
|
||||
|
||||
var createTransaction = _financialTransactionApplication.Create(transaction);
|
||||
if (createTransaction.IsSuccedded)
|
||||
return op.Succcedded();
|
||||
return op.Failed("خطا در انجام عملیات");
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
var contractingPartyName = _contractingPartyRepository.GetFullName(command.ContractingPartyId);
|
||||
var statement = new FinancialStatment(command.ContractingPartyId, contractingPartyName);
|
||||
_financialStatmentRepository.Create(statement);
|
||||
_financialStatmentRepository.SaveChanges();
|
||||
|
||||
var transaction = new CreateFinancialTransaction()
|
||||
{
|
||||
FinancialStatementId = statement.id,
|
||||
TdateGr = DateTime.Now,
|
||||
TdateFa = DateTime.Now.ToFarsi(),
|
||||
Description = command.Description,
|
||||
Deptor = 0,
|
||||
Creditor = command.Creditor,
|
||||
Balance = 0,
|
||||
TypeOfTransaction = command.TypeOfTransaction,
|
||||
DescriptionOption = command.DescriptionOption
|
||||
|
||||
|
||||
};
|
||||
var createTransaction = _financialTransactionApplication.Create(transaction);
|
||||
if (createTransaction.IsSuccedded)
|
||||
return op.Succcedded();
|
||||
return op.Failed("خطا در انجام عملیات");
|
||||
}
|
||||
}
|
||||
|
||||
public OperationResult Create(CreateFinancialStatment command)
|
||||
|
||||
@@ -85,19 +85,16 @@ public class GeneralController : GeneralBaseController
|
||||
{
|
||||
var command = new CreateFinancialStatment()
|
||||
{
|
||||
|
||||
ContractingPartyId = transaction.ContractingPartyId,
|
||||
TdateFa = DateTime.Now.ToFarsi(),
|
||||
Deptor = 0,
|
||||
Creditor = transaction.Amount,
|
||||
DeptorString = "0",
|
||||
CreditorString = transaction.Amount.ToMoney(),
|
||||
TypeOfTransaction = "credit",
|
||||
DescriptionOption = "بابت قرارداد مابین (روابط کار)",
|
||||
Description = "درگاه بانکی ",
|
||||
Description = "درگاه بانکی",
|
||||
|
||||
};
|
||||
var statementResult = _financialStatmentApplication.Create(command);
|
||||
var statementResult = _financialStatmentApplication.CreateFromBankGateway(command);
|
||||
if (!statementResult.IsSuccedded)
|
||||
{
|
||||
return await HandleFailedTransaction(transaction, paymentTransactionId);
|
||||
|
||||
Reference in New Issue
Block a user