732 lines
29 KiB
C#
732 lines
29 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using _0_Framework.Application;
|
|
using CompanyManagment.App.Contracts.PersonalContractingParty;
|
|
using Company.Domain.ContarctingPartyAgg;
|
|
using Company.Domain.empolyerAgg;
|
|
using CompanyManagment.App.Contracts.Representative;
|
|
using Company.Domain.InstitutionContractAgg;
|
|
using CompanyManagment.EFCore.Repository;
|
|
|
|
namespace CompanyManagment.Application;
|
|
|
|
public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
|
|
{
|
|
private readonly IPersonalContractingPartyRepository _personalContractingPartyRepository;
|
|
private readonly IRepresentativeApplication _representativeApplication;
|
|
private readonly IEmployerRepository _employerRepository;
|
|
private readonly IInstitutionContractRepository _institutionContractRepository;
|
|
public bool nationalCodValid=false;
|
|
public bool idnumberIsOk = true;
|
|
public bool nameIsOk = true;
|
|
public bool nationalcodeIsOk = true;
|
|
public bool legalNameIsOk = true;
|
|
|
|
public bool registerIdIsOk = true;
|
|
public bool nationalIdIsOk = true;
|
|
public PersonalContractingPartyApplication(
|
|
IPersonalContractingPartyRepository personalContractingPartyRepository, IRepresentativeApplication representativeApplication, IEmployerRepository employerRepository, IInstitutionContractRepository institutionContractRepository)
|
|
{
|
|
_personalContractingPartyRepository = personalContractingPartyRepository;
|
|
_representativeApplication = representativeApplication;
|
|
_employerRepository = employerRepository;
|
|
_institutionContractRepository = institutionContractRepository;
|
|
|
|
}
|
|
|
|
public OperationResult Create(CreatePersonalContractingParty command)
|
|
{
|
|
var opration = new OperationResult();
|
|
if (_personalContractingPartyRepository.Exists(x =>
|
|
x.LName == command.LName && x.Nationalcode == command.Nationalcode && x.SureName == command.SureName ))
|
|
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
|
|
if (command.RepresentativeId < 1)
|
|
return opration.Failed("لطفا معرف را انتخاب کنید");
|
|
//if (_personalContractingPartyRepository2.Exists(x => x.IdNumber == command.IdNumber))
|
|
//{
|
|
// idnumberIsOk = false;
|
|
|
|
// return opration.Failed("شماره شناسنامه وارد شده تکراری است");
|
|
//}
|
|
//if (_personalContractingPartyRepository2.Exists(x => x.LName == command.LName))
|
|
//{
|
|
// nameIsOk = false;
|
|
|
|
// return opration.Failed("نام خانوادگی وارد شده تکراری است");
|
|
|
|
//}
|
|
if (_personalContractingPartyRepository.Exists(x => x.Nationalcode == command.Nationalcode && x.LName != command.LName))
|
|
{
|
|
nationalcodeIsOk = false;
|
|
|
|
return opration.Failed("کد ملی وارد شده تکراری است");
|
|
}
|
|
|
|
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode))
|
|
return opration.Failed("کد طرف حساب تکراری است");
|
|
|
|
try
|
|
{
|
|
|
|
|
|
char[] chArray = command.Nationalcode.ToCharArray();
|
|
int[] numArray = new int[chArray.Length];
|
|
var cunt = chArray.Length;
|
|
for (int i = 0; i < chArray.Length; i++)
|
|
{
|
|
numArray[i] = (int)char.GetNumericValue(chArray[i]);
|
|
}
|
|
int num2 = numArray[9];
|
|
switch (command.Nationalcode)
|
|
{
|
|
case "0000000000":
|
|
case "1111111111":
|
|
case "2222222222":
|
|
case "3333333333":
|
|
case "4444444444":
|
|
case "5555555555":
|
|
case "6666666666":
|
|
case "7777777777":
|
|
case "8888888888":
|
|
case "9999999999":
|
|
|
|
|
|
|
|
nationalCodValid = false;
|
|
return opration.Failed("کد ملی وارد شده صحیح نمی باشد");
|
|
|
|
|
|
}
|
|
int num3 = ((((((((numArray[0] * 10) + (numArray[1] * 9)) + (numArray[2] * 8)) + (numArray[3] * 7)) + (numArray[4] * 6)) + (numArray[5] * 5)) + (numArray[6] * 4)) + (numArray[7] * 3)) + (numArray[8] * 2);
|
|
int num4 = num3 - ((num3 / 11) * 11);
|
|
if ((((num4 == 0) && (num2 == num4)) || ((num4 == 1) && (num2 == 1))) || ((num4 > 1) && (num2 == Math.Abs((int)(num4 - 11)))) && cunt <= 10)
|
|
{
|
|
|
|
|
|
|
|
nationalCodValid = true;
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
nationalCodValid = false;
|
|
return opration.Failed("کد ملی وارد شده نا معتبر است");
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
|
|
nationalCodValid = false;
|
|
return opration.Failed("لطفا کد ملی 10 رقمی وارد کنید");
|
|
|
|
}
|
|
|
|
if (nationalCodValid && nationalcodeIsOk)
|
|
{
|
|
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
|
|
var personalContractingParty = new PersonalContractingParty(command.FName, command.LName,
|
|
command.Nationalcode, command.IdNumber, "*", "*",
|
|
"حقیقی",
|
|
command.Phone, command.AgentPhone, command.Address,command.RepresentativeId,representative.FullName,command.ArchiveCode,
|
|
command.State,command.City,command.Zone,command.SureName,null,null);
|
|
|
|
|
|
_personalContractingPartyRepository.Create(personalContractingParty);
|
|
_personalContractingPartyRepository.SaveChanges();
|
|
|
|
return opration.Succcedded();
|
|
|
|
}
|
|
else
|
|
{
|
|
return opration.Failed("خطایی رخ داده است");
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
public OperationResult Edit2(EditPersonalContractingParty command)
|
|
{
|
|
var opration = new OperationResult();
|
|
var personalContractingParty = _personalContractingPartyRepository.Get(command.Id);
|
|
if (personalContractingParty == null)
|
|
return opration.Failed("رکورد مورد نظر یافت نشد");
|
|
|
|
personalContractingParty.Edit2(command.Address);
|
|
|
|
_personalContractingPartyRepository.SaveChanges();
|
|
return opration.Succcedded();
|
|
}
|
|
|
|
public OperationResult CreateLegals(CreatePersonalContractingParty command)
|
|
{
|
|
|
|
var opration = new OperationResult();
|
|
if (_personalContractingPartyRepository.Exists(x =>
|
|
x.LName == command.LName && x.RegisterId == command.RegisterId && x.SureName == command.SureName))
|
|
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
|
|
if (command.RepresentativeId < 1)
|
|
return opration.Failed("لطفا معرف را انتخاب کنید");
|
|
|
|
|
|
|
|
if (_personalContractingPartyRepository.Exists(x => x.LName == command.LName && x.SureName == command.SureName))
|
|
{
|
|
legalNameIsOk = false;
|
|
return opration.Failed("نام شرکت وارد شده تکراری است");
|
|
}
|
|
if (_personalContractingPartyRepository.Exists(x => x.RegisterId == command.RegisterId && x.LName != command.LName))
|
|
{
|
|
registerIdIsOk = false;
|
|
return opration.Failed("شماره ثبت وارد شده تکراری است");
|
|
|
|
}
|
|
if (_personalContractingPartyRepository.Exists(x => x.NationalId == command.NationalId && x.LName != command.LName))
|
|
{
|
|
nationalIdIsOk = false;
|
|
return opration.Failed("شناسه ملی وارد شده تکراری است");
|
|
}
|
|
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode))
|
|
return opration.Failed("کد طرف حساب تکراری است");
|
|
|
|
|
|
if (legalNameIsOk && registerIdIsOk && nationalIdIsOk)
|
|
{
|
|
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
|
|
var legalContractingParty = new PersonalContractingParty("*", command.LName,
|
|
"*", "*", command.RegisterId, command.NationalId,
|
|
"حقوقی",
|
|
command.Phone, command.AgentPhone, command.Address,command.RepresentativeId, representative.FullName,command.ArchiveCode,
|
|
command.State, command.City, command.Zone,command.SureName,null,null);
|
|
|
|
|
|
_personalContractingPartyRepository.Create(legalContractingParty);
|
|
_personalContractingPartyRepository.SaveChanges();
|
|
|
|
return opration.Succcedded();
|
|
|
|
}
|
|
else
|
|
{
|
|
return opration.Failed("خطایی رخ داده است");
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
public OperationResult Edit(EditPersonalContractingParty command)
|
|
{
|
|
|
|
var opration = new OperationResult();
|
|
var personalContractingParty = _personalContractingPartyRepository.Get(command.Id);
|
|
if (personalContractingParty == null)
|
|
return opration.Failed("رکورد مورد نظر یافت نشد");
|
|
if (command.RepresentativeId < 1)
|
|
return opration.Failed("لطفا معرف را انتخاب کنید");
|
|
if (_personalContractingPartyRepository.Exists(x =>
|
|
x.LName == command.LName && x.Nationalcode == command.Nationalcode && x.SureName == command.SureName && x.id != command.Id))
|
|
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
|
|
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id))
|
|
return opration.Failed("کد طرف حساب تکراری است");
|
|
try
|
|
{
|
|
|
|
|
|
char[] chArray = command.Nationalcode.ToCharArray();
|
|
int[] numArray = new int[chArray.Length];
|
|
var cunt = chArray.Length;
|
|
for (int i = 0; i < chArray.Length; i++)
|
|
{
|
|
numArray[i] = (int)char.GetNumericValue(chArray[i]);
|
|
}
|
|
int num2 = numArray[9];
|
|
switch (command.Nationalcode)
|
|
{
|
|
case "0000000000":
|
|
case "1111111111":
|
|
case "22222222222":
|
|
case "33333333333":
|
|
case "4444444444":
|
|
case "5555555555":
|
|
case "6666666666":
|
|
case "7777777777":
|
|
case "8888888888":
|
|
case "9999999999":
|
|
|
|
nationalCodValid = false;
|
|
return opration.Failed("کد ملی وارد شده صحیح نمی باشد");
|
|
|
|
|
|
|
|
}
|
|
int num3 = ((((((((numArray[0] * 10) + (numArray[1] * 9)) + (numArray[2] * 8)) + (numArray[3] * 7)) + (numArray[4] * 6)) + (numArray[5] * 5)) + (numArray[6] * 4)) + (numArray[7] * 3)) + (numArray[8] * 2);
|
|
int num4 = num3 - ((num3 / 11) * 11);
|
|
if ((((num4 == 0) && (num2 == num4)) || ((num4 == 1) && (num2 == 1))) || ((num4 > 1) && (num2 == Math.Abs((int)(num4 - 11)))) && cunt <= 10)
|
|
{
|
|
|
|
|
|
|
|
nationalCodValid = true;
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
nationalCodValid = false;
|
|
return opration.Failed("کد ملی وارد شده نا معتبر است");
|
|
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
|
|
nationalCodValid = false;
|
|
return opration.Failed("لطفا کد ملی 10 رقمی وارد کنید");
|
|
|
|
|
|
}
|
|
|
|
if (nationalCodValid)
|
|
{
|
|
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
|
|
personalContractingParty.Edit(command.FName, command.LName,
|
|
command.Nationalcode, command.IdNumber,
|
|
command.Phone, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, command.ArchiveCode,
|
|
command.State, command.City, command.Zone,command.SureName);
|
|
|
|
_personalContractingPartyRepository.SaveChanges();
|
|
return opration.Succcedded();
|
|
}
|
|
else
|
|
{
|
|
return opration.Failed("خطایی رخ داده است");
|
|
}
|
|
|
|
}
|
|
|
|
public OperationResult EditLegal(EditPersonalContractingParty command)
|
|
{
|
|
|
|
var opration = new OperationResult();
|
|
var legalContractingParty = _personalContractingPartyRepository.Get(command.Id);
|
|
if (legalContractingParty == null)
|
|
return opration.Failed("رکورد مورد نظر یافت نشد");
|
|
|
|
if (_personalContractingPartyRepository.Exists(x =>
|
|
x.LName== command.LName && x.RegisterId == command.RegisterId &&x.SureName == command.SureName &&x.id != command.Id))
|
|
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
|
|
if (command.RepresentativeId < 1)
|
|
return opration.Failed("لطفا معرف را انتخاب کنید");
|
|
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id))
|
|
return opration.Failed("کد طرف حساب تکراری است");
|
|
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
|
|
legalContractingParty.EditLegal(command.LName, command.RegisterId,
|
|
command.NationalId,
|
|
command.Phone, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName,command.ArchiveCode,
|
|
command.State, command.City, command.Zone, command.SureName);
|
|
|
|
_personalContractingPartyRepository.SaveChanges();
|
|
return opration.Succcedded();
|
|
}
|
|
|
|
public EditPersonalContractingParty GetDetails(long id)
|
|
{
|
|
return _personalContractingPartyRepository.GetDetails(id);
|
|
}
|
|
|
|
public string IsBlockByEmployerId(long employerId)
|
|
{
|
|
return _personalContractingPartyRepository.IsBlockByEmployerId(employerId);
|
|
}
|
|
|
|
public EditPersonalContractingParty GetDetailsToEdit(long id)
|
|
{
|
|
return _personalContractingPartyRepository.GetDetailsToEdit(id);
|
|
|
|
}
|
|
|
|
public string GetFullName(long id)
|
|
{
|
|
return _personalContractingPartyRepository.GetFullName(id);
|
|
}
|
|
|
|
public List<PersonalContractingPartyViewModel> GetPersonalContractingParties()
|
|
{
|
|
return _personalContractingPartyRepository.GetPersonalContractingParties();
|
|
}
|
|
|
|
public List<PersonalContractingPartyViewModel> Search(PersonalContractingPartySearchModel searchModel2)
|
|
{
|
|
return _personalContractingPartyRepository.Search(searchModel2);
|
|
}
|
|
|
|
public int GetLastArchiveCode()
|
|
{
|
|
return _personalContractingPartyRepository.GetLastNewArchiveCode();
|
|
}
|
|
#region Mahan
|
|
public List<string> SearchByName(string name)
|
|
{
|
|
return _personalContractingPartyRepository.SearchByName(name);
|
|
}
|
|
#endregion
|
|
public ContractingPartyAndStatmentIdViewModel GetContractingpartyIdByAccountId(long accountId)
|
|
{
|
|
return _personalContractingPartyRepository.GetContractingpartyIdByAccountId(accountId);
|
|
}
|
|
|
|
|
|
#region NewByHeydari
|
|
|
|
public List<PersonalContractingPartyViewModel> GetPersonalContractingPartiesForNationalcode(string searchText)
|
|
{
|
|
return _personalContractingPartyRepository.GetPersonalContractingPartiesForNationalcode(searchText);
|
|
|
|
}
|
|
public List<PersonalContractingPartyViewModel> SearchForMain(PersonalContractingPartySearchModel searchModel2)
|
|
{
|
|
var result= _personalContractingPartyRepository.SearchForMain(searchModel2);
|
|
foreach (var item in result)
|
|
{
|
|
item.HasInstitutionContract = _personalContractingPartyRepository.GetHasContract(item.id);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public OperationResult DeletePersonalContractingParties(long id)
|
|
{
|
|
var opration = new OperationResult();
|
|
//همان لحظه قبل از آیا از حذف مطمئن هستید، پیغام باید نماییش داده شود که قرارداد مالی دارد
|
|
//if (_personalContractingPartyRepository2.GetHasContract(id))
|
|
//{
|
|
// return opration.Failed("HasInstitutionContract");
|
|
//}
|
|
|
|
//اونهایی که کارفرما یا قرارداد غیر فعال دارند غیر فعال می شوند
|
|
if (_employerRepository.Exists(x => x.ContractingPartyId == id)|| _institutionContractRepository.Exists(x => x.ContractingPartyId == id))
|
|
{
|
|
opration= _personalContractingPartyRepository.DeActiveAll(id);
|
|
return opration;
|
|
}
|
|
else
|
|
{
|
|
opration = _personalContractingPartyRepository.DeletePersonalContractingParties(id);
|
|
}
|
|
|
|
return opration;
|
|
}
|
|
|
|
|
|
|
|
public OperationResult Active(long id)
|
|
{
|
|
|
|
var opration = new OperationResult();
|
|
var contract = _personalContractingPartyRepository.Get(id);
|
|
if (contract == null)
|
|
return opration.Failed("رکورد مورد نظر یافت نشد");
|
|
return _personalContractingPartyRepository.ActiveAll(id);
|
|
|
|
|
|
//var opration = new OperationResult();
|
|
//var contract = _personalContractingPartyRepository2.Get(id);
|
|
//if (contract == null)
|
|
// return opration.Failed("رکورد مورد نظر یافت نشد");
|
|
//contract.Active();
|
|
//_personalContractingPartyRepository2.SaveChanges();
|
|
//return opration.Succcedded();
|
|
}
|
|
|
|
public OperationResult DeActive(long id)
|
|
{
|
|
var opration = new OperationResult();
|
|
var personalContracting = _personalContractingPartyRepository.Get(id);
|
|
if (personalContracting == null)
|
|
return opration.Failed("رکورد مورد نظر یافت نشد");
|
|
|
|
personalContracting.DeActive();
|
|
|
|
|
|
_personalContractingPartyRepository.SaveChanges();
|
|
return opration.Succcedded();
|
|
}
|
|
public bool GetHasContract(long id)
|
|
{
|
|
|
|
return _personalContractingPartyRepository.GetHasContract(id);
|
|
|
|
}
|
|
|
|
public OperationResult Block(long id)
|
|
{
|
|
var opration = new OperationResult();
|
|
var contract = _personalContractingPartyRepository.Get(id);
|
|
if (contract == null)
|
|
return opration.Failed("رکورد مورد نظر یافت نشد");
|
|
contract.Block();
|
|
|
|
_personalContractingPartyRepository.SaveChanges();
|
|
return opration.Succcedded();
|
|
}
|
|
public OperationResult DisableBlock(long id)
|
|
{
|
|
var opration = new OperationResult();
|
|
var personalContracting = _personalContractingPartyRepository.Get(id);
|
|
if (personalContracting == null)
|
|
return opration.Failed("رکورد مورد نظر یافت نشد");
|
|
|
|
int blockTimes = personalContracting.BlockTimes + 1;
|
|
personalContracting.DisableBlock(blockTimes);
|
|
_personalContractingPartyRepository.SaveChanges();
|
|
|
|
|
|
|
|
|
|
return opration.Succcedded();
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#region Insurance
|
|
|
|
public bool IsBlockCheckByWorkshopId(long workshopId)
|
|
{
|
|
return _personalContractingPartyRepository.IsBlockCheckByWorkshopId(workshopId);
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region Api
|
|
|
|
|
|
public async Task<ICollection<ContractingPartyGetListViewModel>> GetList(
|
|
ContractingPartyGetListSearchModel searchModel)
|
|
{
|
|
return await _personalContractingPartyRepository.GetList(searchModel);
|
|
}
|
|
|
|
public async Task<List<ContractingPartySelectListViewModel>> GetSelectList(string search,long id)
|
|
{
|
|
return await _personalContractingPartyRepository.GetSelectList(search,id);
|
|
}
|
|
public async Task<OperationResult> CreateReal(CreateRealContractingParty command)
|
|
{
|
|
var operation = new OperationResult();
|
|
|
|
if (_personalContractingPartyRepository.Exists(x =>
|
|
x.LName == command.LName && x.Nationalcode == command.NationalCode && x.SureName == command.SureName))
|
|
return operation.Failed("امکان ثبت رکورد تکراری وجود ندارد");
|
|
|
|
if (command.RepresentativeId < 1)
|
|
return operation.Failed("لطفا معرف را انتخاب کنید");
|
|
|
|
if (_personalContractingPartyRepository.Exists(x => x.Nationalcode == command.NationalCode && x.LName != command.LName))
|
|
{
|
|
nationalcodeIsOk = false;
|
|
|
|
return operation.Failed("کد ملی وارد شده تکراری است");
|
|
}
|
|
|
|
|
|
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode))
|
|
return operation.Failed("کد طرف حساب تکراری است");
|
|
|
|
if (command.NationalCode.NationalCodeValid() != "valid")
|
|
{
|
|
return operation.Failed("کد ملی وارد شده نا معتبر است");
|
|
}
|
|
|
|
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
|
|
var personalContractingParty = new PersonalContractingParty(command.FName, command.LName,
|
|
command.NationalCode, command.IdNumber, "*", "*",
|
|
"حقیقی",
|
|
command.PhoneNumber, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, command.ArchiveCode,
|
|
command.State, command.City, command.Zone, command.SureName, null, null);
|
|
|
|
|
|
await _personalContractingPartyRepository.CreateAsync(personalContractingParty);
|
|
await _personalContractingPartyRepository.SaveChangesAsync();
|
|
|
|
return operation.Succcedded();
|
|
}
|
|
|
|
public async Task<OperationResult> CreateLegal(CreateLegalContractingParty command)
|
|
{
|
|
var opration = new OperationResult();
|
|
|
|
if (_personalContractingPartyRepository.Exists(x =>
|
|
x.LName == command.CompanyName && x.RegisterId == command.RegisterId && x.SureName == command.SureName))
|
|
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
|
|
|
|
if (command.RepresentativeId < 1)
|
|
return opration.Failed("لطفا معرف را انتخاب کنید");
|
|
|
|
if (_personalContractingPartyRepository.Exists(x =>
|
|
x.LName == command.CompanyName && x.SureName == command.SureName))
|
|
{
|
|
legalNameIsOk = false;
|
|
return opration.Failed("نام شرکت وارد شده تکراری است");
|
|
}
|
|
|
|
if (_personalContractingPartyRepository.Exists(x =>
|
|
x.RegisterId == command.RegisterId && x.LName != command.CompanyName))
|
|
{
|
|
registerIdIsOk = false;
|
|
return opration.Failed("شماره ثبت وارد شده تکراری است");
|
|
|
|
}
|
|
|
|
if (_personalContractingPartyRepository.Exists(x =>
|
|
x.NationalId == command.NationalId && x.LName != command.CompanyName))
|
|
{
|
|
nationalIdIsOk = false;
|
|
return opration.Failed("شناسه ملی وارد شده تکراری است");
|
|
}
|
|
|
|
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode))
|
|
return opration.Failed("کد طرف حساب تکراری است");
|
|
|
|
|
|
|
|
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
|
|
var legalContractingParty = new PersonalContractingParty("*", command.CompanyName,
|
|
"*", "*", command.RegisterId, command.NationalId,
|
|
"حقوقی",
|
|
command.PhoneNumber, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName,
|
|
command.ArchiveCode,
|
|
command.State, command.City, command.Zone, command.SureName,null,null);
|
|
|
|
|
|
await _personalContractingPartyRepository.CreateAsync(legalContractingParty);
|
|
await _personalContractingPartyRepository.SaveChangesAsync();
|
|
|
|
return opration.Succcedded();
|
|
|
|
}
|
|
|
|
public async Task<List<GetContractingPartyNationalCodeOrNationalIdViewModel>> GetNationalCodeOrNationalId()
|
|
{
|
|
return await _personalContractingPartyRepository.GetNationalCodeOrNationalId();
|
|
}
|
|
|
|
public async Task<OperationResult<string>> Delete(long id)
|
|
{
|
|
var operationResult = new OperationResult<string>();
|
|
|
|
try
|
|
{
|
|
//اگر دارای قرارداد یا دازای کارفرما باشد غیر فعال می شود
|
|
if (_employerRepository.Exists(x => x.ContractingPartyId == id) || _institutionContractRepository.Exists(x => x.ContractingPartyId == id))
|
|
{
|
|
operationResult = await _personalContractingPartyRepository.DeactivateWithSubordinates(id);
|
|
return operationResult;
|
|
}
|
|
|
|
var entity = _personalContractingPartyRepository.Get(id);
|
|
_personalContractingPartyRepository.Remove(entity);
|
|
operationResult.Succcedded("Deleted");
|
|
}
|
|
catch
|
|
{
|
|
return operationResult.Failed("خطایی رخ داده است");
|
|
}
|
|
|
|
return operationResult;
|
|
}
|
|
|
|
public OperationResult EditRealApi(EditRealContractingParty command)
|
|
{
|
|
var opration = new OperationResult();
|
|
var personalContractingParty = _personalContractingPartyRepository.Get(command.Id);
|
|
|
|
if (personalContractingParty == null)
|
|
return opration.Failed("رکورد مورد نظر یافت نشد");
|
|
|
|
if (command.RepresentativeId < 1)
|
|
return opration.Failed("لطفا معرف را انتخاب کنید");
|
|
|
|
if (_personalContractingPartyRepository.Exists(x =>
|
|
x.LName == command.LName && x.Nationalcode == command.NationalCode && x.SureName == command.SureName && x.id != command.Id))
|
|
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
|
|
|
|
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id))
|
|
return opration.Failed("کد طرف حساب تکراری است");
|
|
|
|
if (command.NationalCode.NationalCodeValid() != "valid")
|
|
{
|
|
return opration.Failed("کد ملی وارد شده نا معتبر است");
|
|
}
|
|
|
|
try
|
|
{
|
|
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
|
|
personalContractingParty.Edit(command.FName, command.LName,
|
|
command.NationalCode, command.IdNumber,
|
|
command.PhoneNumber, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, command.ArchiveCode,
|
|
command.State, command.City, command.Zone, command.SureName);
|
|
|
|
_personalContractingPartyRepository.SaveChanges();
|
|
return opration.Succcedded();
|
|
}
|
|
catch
|
|
{
|
|
|
|
return opration.Failed("خطایی رخ داده است");
|
|
}
|
|
}
|
|
|
|
public OperationResult EditLegal(EditLegalContractingParty command)
|
|
{
|
|
var opration = new OperationResult();
|
|
var legalContractingParty = _personalContractingPartyRepository.Get(command.Id);
|
|
if (legalContractingParty == null)
|
|
return opration.Failed("رکورد مورد نظر یافت نشد");
|
|
|
|
if (_personalContractingPartyRepository.Exists(x =>
|
|
x.LName == command.CompanyName && x.RegisterId == command.RegisterId && x.SureName == command.SureName && x.id != command.Id))
|
|
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
|
|
if (command.RepresentativeId < 1)
|
|
return opration.Failed("لطفا معرف را انتخاب کنید");
|
|
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id))
|
|
return opration.Failed("کد طرف حساب تکراری است");
|
|
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
|
|
legalContractingParty.EditLegal(command.CompanyName, command.RegisterId,
|
|
command.NationalId,
|
|
command.PhoneNumber, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, command.ArchiveCode,
|
|
command.State, command.City, command.Zone, command.SureName);
|
|
|
|
_personalContractingPartyRepository.SaveChanges();
|
|
return opration.Succcedded();
|
|
}
|
|
|
|
public async Task<GetRealContractingPartyDetailsViewModel> GetRealDetails(long id)
|
|
{
|
|
return await _personalContractingPartyRepository.GetRealDetails(id);
|
|
}
|
|
|
|
public async Task<GetLegalContractingPartyDetailsViewModel> GetLegalDetails(long id)
|
|
{
|
|
return await _personalContractingPartyRepository.GetLegalDetails(id);
|
|
}
|
|
|
|
public async Task<long> GetRepresentativeIdByNationalCode(string nationalCode)
|
|
{
|
|
var entity = await _personalContractingPartyRepository.GetByNationalCode(nationalCode);
|
|
return entity?.RepresentativeId??0;
|
|
}
|
|
|
|
#endregion
|
|
} |