Files
Backend-Api/CompanyManagment.Application/TaxLeftWorkCategoryApplication.cs
2024-07-05 21:36:15 +03:30

104 lines
5.3 KiB
C#

using System.Collections.Generic;
using _0_Framework.Application;
using Company.Domain.TaxJobCategoryAgg;
using Company.Domain.TaxLeftWorkCategoryAgg;
using Company.Domain.TaxLeftWorkItemAgg;
using CompanyManagment.App.Contracts.TaxLeftWorkCategory;
using CompanyManagment.App.Contracts.TaxLeftWorkItem;
namespace CompanyManagment.Application;
public class TaxLeftWorkCategoryApplication : ITaxLeftWorkCategoryApplication
{
private readonly ITaxLeftWorkCategoryRepository _taxLeftWorkCategoryRepository;
private readonly ITaxJobCategoryRepository _taxJobCategoryRepository;
private readonly ITaxLeftWorkItemApplication _taxLeftWorkItemApplication;
public TaxLeftWorkCategoryApplication(ITaxLeftWorkCategoryRepository taxLeftWorkCategoryRepository, ITaxJobCategoryRepository taxJobCategoryRepository, ITaxLeftWorkItemApplication taxLeftWorkItemApplication)
{
_taxLeftWorkCategoryRepository = taxLeftWorkCategoryRepository;
_taxJobCategoryRepository = taxJobCategoryRepository;
_taxLeftWorkItemApplication = taxLeftWorkItemApplication;
}
public OperationResult Create(CreateTaxLeftWorkCategory command)
{
var op = new OperationResult();
if (command.WorkshopId == 0 || string.IsNullOrWhiteSpace(command.WorkshopName))
return op.Failed("کارگاه مشخص نشده است");
if (command.EmployeeId == 0 || string.IsNullOrWhiteSpace(command.EmployeeName))
return op.Failed("پرسنل مشخص نشده است");
if (_taxLeftWorkCategoryRepository.Exists(x => x.WorkshopId == command.WorkshopId))
return op.Failed("کارگاه تکراری است");
if (string.IsNullOrWhiteSpace(command.JobTitle))
return op.Failed("سمت را وارد کنید");
if (string.IsNullOrWhiteSpace(command.JobCategoryCode))
return op.Failed("رسته را مشخص کنید");
if (string.IsNullOrWhiteSpace(command.TypeOfEmployment))
return op.Failed("نوع استخدام را مشخص کنید");
if (string.IsNullOrWhiteSpace(command.TypeOfInsurance))
return op.Failed("نوع بیمه را مشخص کنید");
if (string.IsNullOrWhiteSpace(command.TaxExempt))
return op.Failed("وضعیت معافیت مالیاتی را مشخص کنید");
if (string.IsNullOrWhiteSpace(command.Country))
return op.Failed("کشور را مشخص کنید");
if (string.IsNullOrWhiteSpace(command.EmploymentLocationStatus))
return op.Failed("وضعیت محل خدمت را مشخص کنید");
if (string.IsNullOrWhiteSpace(command.BudgetLawExceptions))
return op.Failed("استثنائات قانون بودجه را مشخص کنید");
if (string.IsNullOrWhiteSpace(command.PaymentType))
return op.Failed("نوع پرداخت را مشخص کنید");
if (string.IsNullOrWhiteSpace(command.CurrencyType))
return op.Failed("نوع ارز را مشخص کنید");
if (string.IsNullOrWhiteSpace(command.ExchangeRate))
return op.Failed("نرخ تسعیر را مشخص کنید");
if (command.TaxLeftWorkItemViewModels.Count == 0 || command.TaxLeftWorkItemViewModels == null)
return op.Failed("هیچ شروع بکاری وارد نشده است");
var checkDatesErr = TaxLeftWorkItemsCheckError(command.TaxLeftWorkItemViewModels);
if (!checkDatesErr.IsSuccedded)
return op.Failed(checkDatesErr.Message);
var jobCatId = _taxJobCategoryRepository.GetTaxJobCategoryByCode(command.JobCategoryCode);
var createTaxLeftWorkCategory = new TaxLeftWorkCategory(command.RetirementDate,command.JobTitle,command.JobCategoryCode,jobCatId.Id,
command.TypeOfEmployment,command.EmploymentLocationStatus,command.TypeOfInsurance,command.InsuranceName,command.InsuranceBranch,
command.TaxExempt,command.BudgetLawExceptions,command.PaymentType,command.CurrencyType,command.ExchangeRate,command.WorkshopId,
command.WorkshopName,command.EmployeeId,command.EmployeeName,command.Country);
_taxLeftWorkCategoryRepository.Create(createTaxLeftWorkCategory);
_taxLeftWorkCategoryRepository.SaveChanges();
//ثبت آیتم های تاریخ
foreach (var item in command.TaxLeftWorkItemViewModels)
{
var createItems = new CreateTaxLeftWorkItem()
{
TaxLeftWorkCategoryId = createTaxLeftWorkCategory.id,
StartWorkFa = item.StartWorkFa,
LeftWorkFa = item.LeftWorkFa,
};
_taxLeftWorkItemApplication.Create(createItems);
}
return op.Succcedded();
}
public OperationResult Edit(EditTaxLeftWorkCategory command)
{
throw new System.NotImplementedException();
}
public EditTaxLeftWorkCategory GetDetails(long id)
{
return _taxLeftWorkCategoryRepository.GetDetails(id);
}
public List<TaxLeftWorkCategoryViewModel> Search(TaxLeftWorkCategorySearchModel searchModel)
{
return _taxLeftWorkCategoryRepository.Search(searchModel);
}
public OperationResult TaxLeftWorkItemsCheckError(List<TaxLeftWorkItemViewModel> taxLeftWorkItemList)
{
return _taxLeftWorkCategoryRepository.TaxLeftWorkItemsCheckError(taxLeftWorkItemList);
}
}