invoice
This commit is contained in:
84
Back/Validations/AddOrUpdateInvoiceValidation.cs
Normal file
84
Back/Validations/AddOrUpdateInvoiceValidation.cs
Normal file
@@ -0,0 +1,84 @@
|
||||
using Back.Common;
|
||||
using Back.Data.Contracts;
|
||||
using Back.Data.Models;
|
||||
using Back.Services;
|
||||
using FluentValidation;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Shared.DTOs;
|
||||
|
||||
namespace Back.Validations
|
||||
{
|
||||
public class AddOrUpdateInvoiceValidation : AbstractValidator<Tuple<int, NUInvoiceDTO, eActionValidation>>
|
||||
{
|
||||
public AddOrUpdateInvoiceValidation(IAsyncRepository<Pattern> patternRepo, servCustomer servCustomer
|
||||
, servInvoice servInvoice, CheckPermission checkPermission)
|
||||
{
|
||||
When(m => m.Item3 == eActionValidation.update, () =>
|
||||
{
|
||||
RuleFor(r => r)
|
||||
.Custom((model, context) =>
|
||||
{
|
||||
if (model.Item2.ID == null || model.Item2.ID <= 0)
|
||||
context.AddFailure("شناسه صورتحساب در حالت ویرایش نمی تواند خالی باشد");
|
||||
|
||||
else if (!servInvoice.ExistInvoiceByInvoiceID(model.Item1,model.Item2.ID.Value ).Result)
|
||||
context.AddFailure("ضورتحساب یافت نشد");
|
||||
});
|
||||
|
||||
});
|
||||
When(m => m.Item3 == eActionValidation.add, () =>
|
||||
{
|
||||
RuleFor(r => r.Item1)
|
||||
.Custom((CompanyID, context) =>
|
||||
{
|
||||
if (!checkPermission.AllowAddInvoiceInCompany(CompanyID).Result)
|
||||
context.AddFailure("اضافه کردن صورتحساب محدود شده است");
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
RuleFor(r => r.Item2.Title)
|
||||
.NotNull().WithMessage("عنوان نمی تواند خالی باشد")
|
||||
.NotEmpty().WithMessage("عنوان نمی تواند خالی باشد")
|
||||
.MinimumLength(3).WithMessage("عنوان حداقل باید 3 کاراکتر باشد");
|
||||
|
||||
RuleFor(r => r.Item2.PatternID)
|
||||
.Custom((PatternID, context) =>
|
||||
{
|
||||
if (PatternID!=null && PatternID > 0 && !patternRepo.Get(w => w.Status && w.ID == PatternID).AnyAsync().Result)
|
||||
context.AddFailure("الگوی صورتحساب معتبر نیست");
|
||||
});
|
||||
|
||||
RuleFor(r => r)
|
||||
.Custom((model, context) =>
|
||||
{
|
||||
if (model.Item2.CustomerID == null || model.Item2.CustomerID <=0)
|
||||
context.AddFailure("برای صدور صورتحساب باید مشتری تعریف شود");
|
||||
|
||||
else if (!servCustomer.ExistCustomerByCustomerID(model.Item2.CustomerID, model.Item1).Result)
|
||||
context.AddFailure("مشتری یافت نشد");
|
||||
});
|
||||
|
||||
RuleFor(r => r.Item2.InvoiceDate)
|
||||
.Custom((InvoiceDate, context) =>
|
||||
{
|
||||
if (string.IsNullOrEmpty(InvoiceDate))
|
||||
context.AddFailure("تاریخ ایجاد صورتحساب نمی تواند خالی باشد");
|
||||
|
||||
else if (InvoiceDate.Trim().ToMiladi() > DateTime.Now)
|
||||
context.AddFailure("تاریخ ایجاد صورتحساب نمی تواند از امروز جلوتر باشد");
|
||||
});
|
||||
|
||||
RuleFor(r => r.Item2.InvoicIssueDate)
|
||||
.Custom((InvoicIssueDate, context) =>
|
||||
{
|
||||
if (string.IsNullOrEmpty(InvoicIssueDate))
|
||||
context.AddFailure("تاریخ صدور صورتحساب نمی تواند خالی باشد");
|
||||
|
||||
else if (InvoicIssueDate.Trim().ToMiladi() > DateTime.Now)
|
||||
context.AddFailure("تاریخ صدور صورتحساب نمی تواند از امروز جلوتر باشد");
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user