first commit
This commit is contained in:
@@ -0,0 +1,159 @@
|
||||
using AutoMapper;
|
||||
using Complex.Application.Common;
|
||||
using Complex.Application.Utility;
|
||||
using Complex.Common.Dto;
|
||||
using Complex.Domain.Commons;
|
||||
using Complex.Domain.Entities;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Complex.Application.Services.TransactionServices
|
||||
{
|
||||
public interface ITransactionService
|
||||
{
|
||||
/*
|
||||
گزارش پرداختی های یک واحد
|
||||
گزارش وضعیت پرداخت واحدهای یک مجتمع
|
||||
ثبت یک تراکنش شارژ
|
||||
|
||||
*/
|
||||
}
|
||||
|
||||
public class TransactionService : ITransactionService
|
||||
{
|
||||
private readonly IComplexDBContext _complexDBContext;
|
||||
private IMapper _mapper;
|
||||
|
||||
public TransactionService(IComplexDBContext complexDBContext, IMapper mapper)
|
||||
{
|
||||
_complexDBContext = complexDBContext;
|
||||
_mapper = mapper;
|
||||
}
|
||||
|
||||
public ResultDto<List<TransactionDto>> UnitsByTransStateList(Guid complexId, Guid? UnitId, CommonRequestDto commonRequestDto)
|
||||
{
|
||||
var trans = _complexDBContext.Transactions.Include(t => t.TransactionTitle).Include(t => t.CostCycle).Include(t => t.Person).Where(t => t.ComplexId == complexId)
|
||||
.Where(t => UnitId.HasValue ? t.UnitId == UnitId : true)
|
||||
.ToPagedByOrder(commonRequestDto, out int rowCount).ToList();
|
||||
var result = trans.Select(t => new TransactionDto
|
||||
{
|
||||
Amount = t.Amount,
|
||||
CostCycleId = t.CostCycleId,
|
||||
CostCycleTitle = t.CostCycle.Title,
|
||||
Description = t.Description,
|
||||
PersonId = t.PersonId,
|
||||
PersonName = t.Person.FirstName + " " + t.Person.LastName,
|
||||
TransactionDate = t.TransactionDate,
|
||||
TransactionPersianDate = t.TransactionPersianDate,
|
||||
TransactionTitle = t.TransactionTitle.Title,
|
||||
UnitCostDate = t.UnitCost.Date,
|
||||
UnitId = t.UnitId,
|
||||
UnitName = t.Unit.UnitName
|
||||
}).ToList();
|
||||
return new ResultDto<List<TransactionDto>>
|
||||
{
|
||||
Data = result,
|
||||
IsSuccess = true,
|
||||
};
|
||||
}
|
||||
public ResultDto PayCosts(List<long> UnitCostIds, Guid UnitId, long Amount,
|
||||
string UserPhone, string Description)
|
||||
{
|
||||
var costs = _complexDBContext.UnitCosts.Include(uc => uc.CostCycle)
|
||||
.Where(uc => UnitCostIds.Contains(uc.Id) && !uc.TransactionId.HasValue).ToList();
|
||||
var savedAmount = costs.Sum(c => c.CostCycle.Amount);
|
||||
if (savedAmount != Amount)
|
||||
return new ResultDto
|
||||
{
|
||||
IsSuccess = false,
|
||||
Message = "مبلغ صحیح نمی باشد"
|
||||
};
|
||||
|
||||
foreach (var c in costs)
|
||||
{
|
||||
var newTrans = new Transaction
|
||||
{
|
||||
PersonId = UserPhone,
|
||||
TransactionDate = DateTime.Now,
|
||||
Amount = c.CostCycle.Amount,
|
||||
CostCycleId = c.CostCycleId,
|
||||
UnitId = UnitId,
|
||||
TransactionTitleId = c.CostCycle.IncomeCostTitleId,
|
||||
ComplexId = c.CostCycle.ComplexId,
|
||||
Description = Description,
|
||||
TransactionPersianDate = PersianDate.GetDate(DateTime.Now),
|
||||
UnitCostId = c.Id
|
||||
};
|
||||
c.Transaction = newTrans;
|
||||
//_complexDBContext.Transactions.Add(newTrans);
|
||||
}
|
||||
_complexDBContext.SaveChanges();
|
||||
return new ResultDto
|
||||
{
|
||||
IsSuccess = true,
|
||||
Message = "ثبت با موفقیت انجام شد"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public class TransactionDto
|
||||
{
|
||||
public string TransactionTitle { set; get; }
|
||||
public string TransactionPersianDate { set; get; }
|
||||
public DateTime TransactionDate { set; get; }
|
||||
public long Amount { set; get; } = 0;
|
||||
public string? Description { set; get; }
|
||||
public Guid? CostCycleId { set; get; }
|
||||
public string CostCycleTitle { set; get; }
|
||||
public Guid? UnitId { set; get; }
|
||||
public string UnitName { set; get; }
|
||||
//public string? TrackingCode { set; get; }
|
||||
//public long Remaining { set; get; } = 0;
|
||||
|
||||
public DateOnly UnitCostDate { set; get; }
|
||||
public string PersonId { set; get; }
|
||||
public string PersonName { set; get; }
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
public class UnitTrancactionStateDto
|
||||
{
|
||||
public Guid UnitId { get; set; }
|
||||
public string UnitTitle { get; set; }
|
||||
/// <summary>
|
||||
/// مقدار شارژ پرداخت نشده
|
||||
/// </summary>
|
||||
public int ChargeNoPayAmount { get; set; }
|
||||
/// <summary>
|
||||
/// تعداد شارژ پرداخت نشده
|
||||
/// </summary>
|
||||
public int ChargeNoPayCount { get; set; }
|
||||
/// <summary>
|
||||
/// مقدار پرداخت نشده غیر شارژ
|
||||
/// </summary>
|
||||
public int OtherNoPayAmount { get; set; }
|
||||
/// <summary>
|
||||
/// میزان پرداخت کرده
|
||||
/// </summary>
|
||||
public long PayAmountInYear { set; get; }
|
||||
/// <summary>
|
||||
/// تعداد شارژ پرداخت شده
|
||||
/// </summary>
|
||||
public int ChargePayCountInYear { set; get; }
|
||||
}
|
||||
public class UnitsByTransState
|
||||
{
|
||||
public Guid UnitId { set; get; }
|
||||
public string UnitName { set; get; }
|
||||
public string UnitUserMobile { set; get; }
|
||||
public string UnitUserFullName { set; get; }
|
||||
public int ChargeReminigCount { set; get; }
|
||||
}
|
||||
*/
|
||||
}
|
||||
Reference in New Issue
Block a user