Merge branch 'Feature/Chcekout/AddHasConflict'
This commit is contained in:
14
.github/workflows/dotnet-developPublish.yml
vendored
14
.github/workflows/dotnet-developPublish.yml
vendored
@@ -25,14 +25,22 @@ jobs:
|
||||
run: dotnet restore
|
||||
|
||||
- name: Build
|
||||
run: dotnet build --configuration Release
|
||||
run: dotnet build --configuration Release
|
||||
|
||||
- name: Publish
|
||||
run: dotnet publish --configuration Release --output ./publish --no-build
|
||||
run: dotnet publish --configuration Release --output ./publish /p:EnvironmentName=Development --no-build
|
||||
|
||||
- name: Deploy to IIS via Web Deploy
|
||||
shell: powershell
|
||||
run: |
|
||||
msdeploy -verb:sync -source:contentPath="publish" -dest:contentPath="dadmehrg",computerName="https://171.22.24.15:8172/msdeploy.axd?site=dadmehrg",userName=".\deployuser",password="R2rNpdnetP3j>q5b18",authType="Basic" -allowUntrusted
|
||||
$publishFolder = Resolve-Path ./publish
|
||||
& "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" `
|
||||
-verb:sync `
|
||||
-source:contentPath="$publishFolder" `
|
||||
-dest:contentPath="dadmehrg",computerName="https://171.22.24.15:8172/msdeploy.axd?site=dadmehrg",userName=".\deployuser",password="R2rNpdnetP3j>q5b18",authType="Basic" `
|
||||
-allowUntrusted `
|
||||
-enableRule:AppOffline
|
||||
|
||||
|
||||
env:
|
||||
SERVER_HOST: your-server-ip-or-domain
|
||||
|
||||
15
0_Framework/Application/PagedResult.cs
Normal file
15
0_Framework/Application/PagedResult.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace _0_Framework.Application;
|
||||
|
||||
|
||||
public class PagedResult<T> where T : class
|
||||
{
|
||||
public int TotalCount { get; set; }
|
||||
public List<T> List { get; set; }
|
||||
}
|
||||
public class PagedResult<T,TMeta>:PagedResult<T> where T : class
|
||||
{
|
||||
public TMeta? Meta { get; set; }
|
||||
}
|
||||
7
0_Framework/Application/PaginationRequest.cs
Normal file
7
0_Framework/Application/PaginationRequest.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace _0_Framework.Application;
|
||||
|
||||
public class PaginationRequest
|
||||
{
|
||||
public int PageIndex { get; set; } = 1;
|
||||
public int PageSize { get; set; } = 30;
|
||||
}
|
||||
@@ -24,7 +24,7 @@ public class AqayePardakhtPaymentGateway:IPaymentGateway
|
||||
{
|
||||
_httpClient = httpClientFactory.CreateClient();
|
||||
|
||||
if (appSetting.Value.Domain == ".dad-mehr.ir")
|
||||
if (appSetting.Value.Domain == ".dadmehrg.ir")
|
||||
{
|
||||
_pin = "7349F84E81AB584862D9";
|
||||
}
|
||||
|
||||
@@ -193,6 +193,10 @@ public class Checkout : EntityBase
|
||||
/// </summary>
|
||||
public string TotalDayOfBunosesCompute { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// دارای تداخل مبلغ است. این در زمانی اتفاق می افتد که فیش مبلغ آن تغییر کرده ولی به دلیل مسائل قانونی امکان صدور دوباره آن وجود ندارد
|
||||
/// </summary>
|
||||
public bool HasAmountConflict { get; private set; }
|
||||
|
||||
#region valueObjects
|
||||
|
||||
@@ -316,6 +320,11 @@ public class Checkout : EntityBase
|
||||
{
|
||||
CheckoutRollCall = checkoutRollCall;
|
||||
}
|
||||
|
||||
public void SetAmountConflict(bool hasAmountConflict)
|
||||
{
|
||||
HasAmountConflict = hasAmountConflict;
|
||||
}
|
||||
}
|
||||
|
||||
public class CheckoutRollCall
|
||||
|
||||
@@ -78,4 +78,6 @@ public interface ICheckoutRepository : IRepository<long, Checkout>
|
||||
long workshopId, DateTime start, DateTime end);
|
||||
|
||||
#endregion
|
||||
|
||||
Task<Checkout> GetByWorkshopIdEmployeeIdInDate(long workshopId, long employeeId, DateTime inDate);
|
||||
}
|
||||
@@ -8,10 +8,12 @@ namespace Company.Domain.ContractingPartyBankAccountsAgg;
|
||||
|
||||
public interface IContractingPartyBankAccountsRepository:IRepository<long,ContractingPartyBankAccount>
|
||||
{
|
||||
Task<OperationResult<List<GetContractingPartyBankAccountViewModel>>> GetList(ContractingPartyBankAccountSearchModel searchModel);
|
||||
Task<OperationResult<List<string>>> ContractingPartyOrAccountHolderNameSelectList(string search, string selected);
|
||||
Task<OperationResult<List<string>>> IBanSelectList(string search, string selected);
|
||||
Task<GetContractingPartyBankAccountViewModel> GetList(ContractingPartyBankAccountSearchModel searchModel);
|
||||
Task<List<string>> ContractingPartyOrAccountHolderNameSelectList(string search, string selected);
|
||||
Task<List<string>> IBanSelectList(string search, string selected);
|
||||
|
||||
Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected);
|
||||
Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected);
|
||||
Task<List<string>> CardNumberSelectList(string search, string selected);
|
||||
Task<List<string>> AccountNumberSelectList(string search, string selected);
|
||||
Task<List<string>> GetAccountHolderNameSelectList(string search, string selected);
|
||||
Task<List<string>> ContractingPartyNamesSelectList(string search, string selected);
|
||||
}
|
||||
@@ -374,6 +374,13 @@ public class CustomizeCheckout : EntityBase
|
||||
TotalPayment = TotalPayment - previousAmount + newAmount;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// آیا مغایرت مبلغ دارد
|
||||
/// </summary>
|
||||
public bool HasAmountConflict { get; private set; }
|
||||
|
||||
|
||||
public void SetHasAmountConflict(bool hasConflict)
|
||||
{
|
||||
HasAmountConflict = hasConflict;
|
||||
}
|
||||
}
|
||||
@@ -377,4 +377,16 @@ public class CustomizeCheckoutTemp : EntityBase
|
||||
{
|
||||
TotalPayment = TotalPayment - previousAmount + newAmount;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// آیا مغایرت مبلغ دارد
|
||||
/// </summary>
|
||||
public bool HasAmountConflict { get; private set; }
|
||||
|
||||
|
||||
|
||||
public void SetHasAmountConflict(bool hasConflict)
|
||||
{
|
||||
HasAmountConflict = hasConflict;
|
||||
}
|
||||
}
|
||||
@@ -13,12 +13,14 @@ namespace Company.Domain.FinancialStatmentAgg;
|
||||
public interface IFinancialStatmentRepository : IRepository<long, FinancialStatment>
|
||||
{
|
||||
|
||||
[Obsolete("این متد منسوخ شده است. لطفاً از متد GetDetailsByContractingParty استفاده کنید.")]
|
||||
FinancialStatmentViewModel GetDetailsByContractingPartyId(long contractingPartyId);
|
||||
List<FinancialStatmentViewModel> Search(FinancialStatmentSearchModel searchModel);
|
||||
Task<ClientFinancialStatementViewModel> GetClientFinancialStatement(long accountId,
|
||||
ClientFinancialStatementSearchModel searchModel);
|
||||
FinancialStatementSearchModel searchModel);
|
||||
|
||||
Task<OperationResult<ClientFinancialStatementViewModel>> GetDetailsByPublicId(string publicId);
|
||||
Task<GetFinancialStatementBalanceAmount> GetBalanceAmount(long id);
|
||||
Task<double> GetClientDebtAmount(long accountId);
|
||||
Task<FinancialStatmentDetailsByContractingPartyViewModel> GetDetailsByContractingParty(long contractingPartyId,FinancialStatementSearchModel searchModel);
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using _0_Framework.Domain;
|
||||
using CompanyManagment.App.Contracts.InstitutionContract;
|
||||
using CompanyManagment.App.Contracts.Workshop;
|
||||
@@ -43,4 +44,7 @@ public interface IInstitutionContractRepository : IRepository<long, InstitutionC
|
||||
/// <param name="endOfMonth"></param>
|
||||
/// <param name="description"></param>
|
||||
void RollcallServiceCreateTransaction();
|
||||
|
||||
Task<PagedResult<GetInstitutionContractListItemsViewModel>> GetList(InstitutionContractListSearchModel searchModel);
|
||||
Task<GetInstitutionContractListStatsViewModel> GetListStats(InstitutionContractListSearchModel searchModel);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Domain;
|
||||
using CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
namespace Company.Domain.PaymentInstrumentAgg;
|
||||
|
||||
public interface IPaymentInstrumentGroupRepository:IRepository<long,PaymentInstrumentGroup>
|
||||
{
|
||||
void Remove(PaymentInstrumentGroup paymentInstrumentGroup);
|
||||
Task<List<PaymentInstrumentGroupsViewModel>> GetList();
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using _0_Framework.Domain;
|
||||
using CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
namespace Company.Domain.PaymentInstrumentAgg;
|
||||
|
||||
public interface IPaymentInstrumentRepository:IRepository<long,PaymentInstrument>
|
||||
{
|
||||
Task<GetPaymentInstrumentListViewModel> GetList(PaymentInstrumentSearchModel searchModel);
|
||||
Task<List<PosTerminalSelectListViewModel>> GetPosTerminalSelectList(string search);
|
||||
Task<List<string>> PosTerminalIdSelectList(string search, string selected);
|
||||
Task<List<string>> IbanSelectList(string search, string selected);
|
||||
Task<List<string>> AccountNumberSelectList(string search, string selected);
|
||||
Task<List<string>> CardNumberSelectList(string search, string selected);
|
||||
Task<List<string>> AccountHolderNameSelectList(string search, string selected);
|
||||
|
||||
}
|
||||
52
Company.Domain/PaymentInstrumentAgg/PaymentInstrument.cs
Normal file
52
Company.Domain/PaymentInstrumentAgg/PaymentInstrument.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using _0_Framework.Domain;
|
||||
using CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
namespace Company.Domain.PaymentInstrumentAgg;
|
||||
|
||||
public class PaymentInstrument:EntityBase
|
||||
{
|
||||
private PaymentInstrument(string cardNumber, string accountHolderName, string accountNumber,string iBan,bool isAuth,long paymentInstrumentGroupId)
|
||||
{
|
||||
CardNumber = cardNumber;
|
||||
AccountHolderName = accountHolderName;
|
||||
AccountNumber = accountNumber;
|
||||
IBan = iBan;
|
||||
IsAuth = isAuth;
|
||||
PaymentInstrumentGroupId = paymentInstrumentGroupId;
|
||||
Type = PaymentInstrumentType.BankAccount;
|
||||
}
|
||||
|
||||
private PaymentInstrument(string posTerminalId , string description,long paymentInstrumentGroupId)
|
||||
{
|
||||
PosTerminalId = posTerminalId;
|
||||
Description = description;
|
||||
PaymentInstrumentGroupId = paymentInstrumentGroupId;
|
||||
Type = PaymentInstrumentType.Pos;
|
||||
}
|
||||
|
||||
public static PaymentInstrument CreatePosType(string posTerminalId, string description, long paymentInstrumentGroupId)
|
||||
{
|
||||
return new PaymentInstrument(posTerminalId, description, paymentInstrumentGroupId);
|
||||
}
|
||||
|
||||
public static PaymentInstrument CreateBankAccount(string cardNumber, string accountHolderName, string accountNumber,
|
||||
string iBan, bool isAuth, long paymentInstrumentGroupId)
|
||||
{
|
||||
return new PaymentInstrument(cardNumber, accountHolderName, accountNumber, iBan, isAuth, paymentInstrumentGroupId);
|
||||
}
|
||||
|
||||
public string CardNumber { get; private set; }
|
||||
public string AccountHolderName { get; private set; }
|
||||
public string AccountNumber { get; private set; }
|
||||
public string IBan { get; private set; }
|
||||
|
||||
public string PosTerminalId { get; private set; }
|
||||
public string Description { get; set; }
|
||||
|
||||
public PaymentInstrumentType Type { get; private set; }
|
||||
|
||||
public bool IsAuth { get; private set; }
|
||||
|
||||
public long PaymentInstrumentGroupId { get; private set; }
|
||||
public PaymentInstrumentGroup PaymentInstrumentGroup { get; private set; }
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using System.Collections.Generic;
|
||||
using _0_Framework.Application;
|
||||
using _0_Framework.Domain;
|
||||
|
||||
namespace Company.Domain.PaymentInstrumentAgg;
|
||||
|
||||
public class PaymentInstrumentGroup:EntityBase
|
||||
{
|
||||
public PaymentInstrumentGroup(string name)
|
||||
{
|
||||
Name = name;
|
||||
IsActive = IsActive.True;
|
||||
}
|
||||
|
||||
public string Name { get; private set; }
|
||||
public IsActive IsActive { get; private set; }
|
||||
public List<PaymentInstrument> PaymentInstruments { get; set; }
|
||||
|
||||
public void Edit(string name)
|
||||
{
|
||||
Name = name;
|
||||
}
|
||||
|
||||
public void DeActive()
|
||||
{
|
||||
IsActive = IsActive.False;
|
||||
}
|
||||
}
|
||||
@@ -141,6 +141,7 @@ public class CheckoutViewModel
|
||||
public List<LoanInstallmentViewModel> InstallmentViewModels { get; set; }
|
||||
public List<SalaryAidViewModel> SalaryAidViewModels { get; set; }
|
||||
public CheckoutRollCallViewModel CheckoutRollCall { get; set; }
|
||||
public bool HasAmountConflict { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,16 @@ namespace CompanyManagment.App.Contracts.ContractingPartyBankAccounts;
|
||||
/// لیست اطلاعات بانکی طرف حساب
|
||||
/// </summary>
|
||||
public class GetContractingPartyBankAccountViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// تعداد
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
public List<ContractingPartyBankAccountsGroupedViewModel> List { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class ContractingPartyBankAccountsGroupedViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// لیست حساب های بانکی
|
||||
@@ -27,6 +37,7 @@ public class GetContractingPartyBankAccountViewModel
|
||||
/// </summary>
|
||||
public string WorkshopName { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// حساب بانکی طرف حساب
|
||||
/// </summary>
|
||||
|
||||
@@ -18,14 +18,14 @@ public interface IContractingPartyBankAccountsApplication
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> Create(CreateContractingPartyBankAccounts command);
|
||||
Task<OperationResult> Create(List<CreateContractingPartyBankAccounts> commands);
|
||||
|
||||
/// <summary>
|
||||
/// لیست اطلاعات طرف حساب بانکی
|
||||
/// </summary>
|
||||
/// <param name="searchModel"></param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult<List<GetContractingPartyBankAccountViewModel>>> GetList(
|
||||
ContractingPartyBankAccountSearchModel searchModel);
|
||||
Task<GetContractingPartyBankAccountViewModel> GetList(ContractingPartyBankAccountSearchModel searchModel);
|
||||
|
||||
/// <summary>
|
||||
/// سلکت لیست جستجو برای نام طرف حساب / صاحب حساب
|
||||
@@ -33,7 +33,7 @@ public interface IContractingPartyBankAccountsApplication
|
||||
/// <param name="search">نام جستجو</param>
|
||||
/// <param name="selected">نام سلکت شده</param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult<List<string>>> ContractingPartyOrAccountHolderNameSelectList(string search, string selected);
|
||||
Task<List<string>> ContractingPartyOrAccountHolderNameSelectList(string search, string selected);
|
||||
|
||||
/// <summary>
|
||||
/// سلکت لیست شماره کارت
|
||||
@@ -41,7 +41,7 @@ public interface IContractingPartyBankAccountsApplication
|
||||
/// <param name="search">نام جستجو</param>
|
||||
/// <param name="selected">نام سلکت شده</param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected);
|
||||
Task<List<string>> CardNumberSelectList(string search, string selected);
|
||||
|
||||
/// <summary>
|
||||
/// سلکت لیست شماره شبا
|
||||
@@ -49,7 +49,7 @@ public interface IContractingPartyBankAccountsApplication
|
||||
/// <param name="search">نام جستجو</param>
|
||||
/// <param name="selected">نام سلکت شده</param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult<List<string>>> IBanSelectList(string search, string selected);
|
||||
Task<List<string>> IBanSelectList(string search, string selected);
|
||||
|
||||
/// <summary>
|
||||
/// سلکت لیست شماره حساب
|
||||
@@ -57,6 +57,22 @@ public interface IContractingPartyBankAccountsApplication
|
||||
/// <param name="search">نام جستجو</param>
|
||||
/// <param name="selected">نام سلکت شده</param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected);
|
||||
Task<List<string>> AccountNumberSelectList(string search, string selected);
|
||||
|
||||
/// <summary>
|
||||
/// سلکت لیست نام صاحبان حساب
|
||||
/// </summary>
|
||||
/// <param name="search">نام جستجو</param>
|
||||
/// <param name="selected">نام سلکت شده</param>
|
||||
/// <returns></returns>
|
||||
Task<List<string>> GetAccountHolderNameSelectList(string search, string selected);
|
||||
|
||||
/// <summary>
|
||||
/// سلکت لیست نام طرف حسابها
|
||||
/// </summary>
|
||||
/// <param name="search">نام جستجو</param>
|
||||
/// <param name="selected">نام سلکت شده</param>
|
||||
/// <returns></returns>
|
||||
Task<List<string>> ContractingPartyNamesSelectList(string search, string selected);
|
||||
}
|
||||
|
||||
|
||||
@@ -109,6 +109,8 @@ namespace CompanyManagment.App.Contracts.CustomizeCheckout
|
||||
public List<CustomizeRotatingShift> CustomizeRotatingShifts { get; set; }
|
||||
public List<CustomizeSifts> RegularShift { get; set; }
|
||||
|
||||
public bool HasAmountConflict { get; set; }
|
||||
|
||||
//public bool HasLeft { get; set; }
|
||||
//public string IsBlockCantracingParty { get; set; }
|
||||
//public string IsActiveString { get; set; }
|
||||
|
||||
@@ -30,5 +30,5 @@ public class ClientFinancialStatementViewModel
|
||||
/// <summary>
|
||||
/// تراکنش ها
|
||||
/// </summary>
|
||||
public List<ClientFinancialTransactionViewModel> Transactions { get; set; }
|
||||
public List<FinancialTransactionDetailViewModel> Transactions { get; set; }
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace CompanyManagment.App.Contracts.FinancialStatment;
|
||||
|
||||
public class ClientFinancialStatementSearchModel
|
||||
public class FinancialStatementSearchModel
|
||||
{
|
||||
/// <summary>
|
||||
/// از تاریخ
|
||||
@@ -2,8 +2,9 @@
|
||||
|
||||
namespace CompanyManagment.App.Contracts.FinancialStatment;
|
||||
|
||||
public class ClientFinancialTransactionViewModel
|
||||
public class FinancialTransactionDetailViewModel
|
||||
{
|
||||
public long Id { get; set; }
|
||||
/// <summary>
|
||||
/// زمان و تاریخ میلادی
|
||||
/// </summary>
|
||||
@@ -1,4 +1,5 @@
|
||||
using _0_Framework.Application;
|
||||
using System;
|
||||
using _0_Framework.Application;
|
||||
using CompanyManagment.App.Contracts.FinancilTransaction;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Collections.Generic;
|
||||
@@ -19,6 +20,7 @@ public interface IFinancialStatmentApplication
|
||||
OperationResult Create(CreateFinancialStatment command);
|
||||
|
||||
List<FinancialStatmentViewModel> Search(FinancialStatmentSearchModel searchModel);
|
||||
[Obsolete("این متد منسوخ شده است. لطفاً از متد GetDetailsByContractingParty استفاده کنید.")]
|
||||
FinancialStatmentViewModel GetDetailsByContractingPartyId(long contractingPartyId);
|
||||
|
||||
/// <summary>
|
||||
@@ -27,9 +29,10 @@ public interface IFinancialStatmentApplication
|
||||
/// <param name="searchModel"></param>
|
||||
/// <param name="accountId"></param>
|
||||
/// <returns>مدل صورت حساب مالی کلاینت</returns>
|
||||
Task<ClientFinancialStatementViewModel> GetClientFinancialStatement(ClientFinancialStatementSearchModel searchModel,
|
||||
Task<ClientFinancialStatementViewModel> GetClientFinancialStatement(FinancialStatementSearchModel searchModel,
|
||||
long accountId);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// نمایش اطلاعات صورت حساب مالی کلاینت بر اساس کد هش
|
||||
/// </summary>
|
||||
@@ -50,6 +53,46 @@ public interface IFinancialStatmentApplication
|
||||
/// <param name="accountId"></param>
|
||||
/// <returns></returns>
|
||||
Task<double> GetClientDebtAmount(long accountId);
|
||||
|
||||
/// <summary>
|
||||
/// جزئیات بر اساس
|
||||
/// </summary>
|
||||
/// <param name="contractingPartyId"></param>
|
||||
/// <param name="searchModel"></param>
|
||||
/// <returns></returns>
|
||||
Task<FinancialStatmentDetailsByContractingPartyViewModel> GetDetailsByContractingParty(long contractingPartyId,
|
||||
FinancialStatementSearchModel searchModel);
|
||||
}
|
||||
|
||||
public class FinancialStatmentDetailsByContractingPartyViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// آیدی FinancialStatement
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام طرف حساب
|
||||
/// </summary>
|
||||
public string ContractingPartyName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// جمع بدهکاری
|
||||
/// </summary>
|
||||
public double TotalDebt { get; set; }
|
||||
/// <summary>
|
||||
/// جمع بستانکاری
|
||||
/// </summary>
|
||||
public double TotalCredit { get; set; }
|
||||
/// <summary>
|
||||
/// مبلغ قابل پرداخت
|
||||
/// </summary>
|
||||
public double TotalAmountPayable { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// تراکنش ها
|
||||
/// </summary>
|
||||
public List<FinancialTransactionDetailViewModel> List { get; set; }
|
||||
}
|
||||
|
||||
public class GetFinancialStatementBalanceAmount
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
using System.Collections.Generic;
|
||||
using CompanyManagment.App.Contracts.InstitutionContractContactinfo;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||||
|
||||
public class CreateInstitutionContractRequest
|
||||
{
|
||||
public List<CreateContactInfo> ContactInfos { get; set; }
|
||||
public long ContractingPartyId { get; set; }
|
||||
public long RepresentativeId { get; set; }
|
||||
public string TypeOfContract { get; set; }
|
||||
public string ContractDateFa { get; set; }
|
||||
public string ContractStartFa { get; set; }
|
||||
public string ContractEndFa { get; set; }
|
||||
public string Address { get; set; }
|
||||
public string State { get; set; }
|
||||
public string City { get; set; }
|
||||
public string OfficialCompany { get; set; }
|
||||
public string HasValueAddedTax { get; set; }
|
||||
public string ContractAmountString { get; set; }
|
||||
public string DailyCompenseationString { get; set; }
|
||||
public string ObligationString { get; set; }
|
||||
public string TotalAmountString { get; set; }
|
||||
public string ValueAddedTaxStr { get; set; }
|
||||
public string WorkshopManualCount { get; set; }
|
||||
public string EmployeeManualCount { get; set; }
|
||||
public string Description { get; set; }
|
||||
public int ExtensionNo { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||||
|
||||
public class EditInstitutionContractRequest:CreateInstitutionContractRequest
|
||||
{
|
||||
public long Id { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||||
|
||||
public class GetInstitutionContractListItemsViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// آیدی
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// دارای امضا
|
||||
/// </summary>
|
||||
public bool HasSigniture { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره قرارداد
|
||||
/// </summary>
|
||||
public string ContractNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام معرف
|
||||
/// </summary>
|
||||
public string RepresentativeName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام طرف حساب
|
||||
/// </summary>
|
||||
public string ContractingPartyName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره کارفرما
|
||||
/// </summary>
|
||||
public string ArchiveNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام کارفرماها
|
||||
/// </summary>
|
||||
public List<string> EmployerNames { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// تعداد کارگاه
|
||||
/// </summary>
|
||||
public int WorkshopsCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام کارگاه ها
|
||||
/// </summary>
|
||||
public List<string> WorkshopNames { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// تعداد پرسنل
|
||||
/// </summary>
|
||||
public int EmployeesCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شروع قرارداد
|
||||
/// </summary>
|
||||
public string ContractStartFa { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// پایان قرارداد
|
||||
/// </summary>
|
||||
public string ContractEndFa { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// مبلغ قرارداد
|
||||
/// </summary>
|
||||
public double ContractAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// وضعیت مالی
|
||||
/// </summary>
|
||||
public double Balance { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// وضعیت قرارداد
|
||||
/// </summary>
|
||||
public InstitutionContractStatus Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// آیا منقضی شده است
|
||||
/// </summary>
|
||||
public bool IsExpired { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||||
|
||||
/// <summary>
|
||||
/// لیست قرارداد های موسسه
|
||||
/// </summary>
|
||||
public class GetInstitutionContractListViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// بدهی کل
|
||||
/// </summary>
|
||||
public double TotalDebt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// مبلغ قرارداد ها
|
||||
/// </summary>
|
||||
public double TotalAmount { get; set; }
|
||||
|
||||
public List<GetInstitutionContractListItemsViewModel> Items { get; set; }
|
||||
|
||||
}
|
||||
@@ -1,15 +1,19 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using CompanyManagment.App.Contracts.Checkout;
|
||||
using CompanyManagment.App.Contracts.Workshop;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||||
|
||||
public interface IInstitutionContractApplication
|
||||
{
|
||||
OperationResult Create(CreateInstitutionContract command);
|
||||
OperationResult Extension(CreateInstitutionContract command);
|
||||
OperationResult Extension(CreateInstitutionContract command);
|
||||
OperationResult Edit(EditInstitutionContract command);
|
||||
EditInstitutionContract GetDetails(long id);
|
||||
|
||||
@@ -23,19 +27,107 @@ public interface IInstitutionContractApplication
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
List<InstitutionContractViewModel> GetInstitutionContractToSetServicesExcelImport();
|
||||
|
||||
List<InstitutionContractViewModel> PrintAll(List<long> id);
|
||||
InstitutionContractViewModel PrintOne(long id);
|
||||
|
||||
OperationResult Active(long id);
|
||||
|
||||
|
||||
OperationResult DeActive(long id);
|
||||
|
||||
|
||||
OperationResult DeActiveBlue(long id);
|
||||
|
||||
|
||||
OperationResult DeActiveAllConnections(long id);
|
||||
|
||||
|
||||
OperationResult ReActiveAllConnections(long id);
|
||||
|
||||
void ReActiveAllAfterCreateNew(long contractingPartyId);
|
||||
|
||||
|
||||
void RemoveContract(long id);
|
||||
|
||||
|
||||
OperationResult Sign(long id);
|
||||
|
||||
|
||||
OperationResult UnSign(long id);
|
||||
void CreateContractingPartyAccount(long contractingPartyid, long accountId);
|
||||
|
||||
double GetcontractAmount(int countPerson);
|
||||
|
||||
#region Api
|
||||
|
||||
/// <summary>
|
||||
/// لیست قرارداد های مالی
|
||||
/// </summary>
|
||||
/// <param name="searchModel"></param>
|
||||
/// <returns></returns>
|
||||
Task<PagedResult<GetInstitutionContractListItemsViewModel>> GetList
|
||||
(InstitutionContractListSearchModel searchModel);
|
||||
|
||||
/// <summary>
|
||||
/// وضعیت لیست کلی
|
||||
/// </summary>
|
||||
/// <param name="searchModel"></param>
|
||||
/// <returns></returns>
|
||||
Task<GetInstitutionContractListStatsViewModel> GetListStats(InstitutionContractListSearchModel searchModel);
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> CreateAsync(CreateInstitutionContractRequest command);
|
||||
/// <summary>
|
||||
/// ویرایش
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> EditAsync(EditInstitutionContractRequest command);
|
||||
/// <summary>
|
||||
/// تمدید قرارداد
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> ExtensionَAsync(CreateInstitutionContractRequest command);
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
public class GetInstitutionContractListStatsViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents the total outstanding debt of institution contracts.
|
||||
/// This property aggregates the liabilities of the respective contracts and provides
|
||||
/// a single metric to measure financial obligations.
|
||||
/// </summary>
|
||||
public double TotalDebt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Represents the total monetary value associated with institution contracts.
|
||||
/// This property consolidates the aggregate amount from relevant contracts
|
||||
/// for financial reporting and analysis.
|
||||
/// </summary>
|
||||
public double TotalAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Represents a collection of counts for institution contracts categorized by their status.
|
||||
/// This property provides the count of contracts for each status defined in the
|
||||
/// InstitutionContractStatus enumeration, enabling analysis and monitoring of contract distribution.
|
||||
/// </summary>
|
||||
public List<InstitutionContractStatusCount> Counts { get; set; }
|
||||
}
|
||||
|
||||
public class InstitutionContractStatusCount
|
||||
{
|
||||
public InstitutionContractStatus Status { get; set; }
|
||||
public int Count { get; set; }
|
||||
}
|
||||
public class ExtenstionInstitutionContractRequest:EditInstitutionContractRequest
|
||||
{
|
||||
public long PreviousContractId { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
using _0_Framework.Application;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||||
|
||||
public class InstitutionContractListSearchModel :PaginationRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// کارفرما / کارگاه / طرف حساب / معرف
|
||||
/// </summary>
|
||||
public string EmployerOrWorkshopOrContractingPartyOrRepresentativeName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// استان
|
||||
/// </summary>
|
||||
public string Province { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شهر
|
||||
/// </summary>
|
||||
public string City { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// مبلغ قرارداد از
|
||||
/// </summary>
|
||||
public double AmountFrom { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// مبلغ قرارداد تا
|
||||
/// </summary>
|
||||
public double AmountTo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// تاریخ قرارداد از
|
||||
/// </summary>
|
||||
public string ContractDateFrom { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// تاریخ قرارداد تا
|
||||
/// </summary>
|
||||
public string ContractDateTo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// تب
|
||||
/// </summary>
|
||||
public InstitutionContractStatus? Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// فعال / غیرفعال
|
||||
/// </summary>
|
||||
public bool? IsActive { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// موجود / ناموجود
|
||||
/// </summary>
|
||||
public bool? HasSignature { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نوع = روابط کار / مالیات و حسابداری
|
||||
/// </summary>
|
||||
public InstitutionContractType? Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// رسمی / غیررسمی
|
||||
/// </summary>
|
||||
public bool? IsOfficial { get; set; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||||
|
||||
public enum InstitutionContractStatus
|
||||
{
|
||||
Active,
|
||||
Deactive,
|
||||
DeactiveWithDebt,
|
||||
Block,
|
||||
Free,
|
||||
PendingForRenewal,
|
||||
WithoutWorkshop,
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||||
|
||||
public enum InstitutionContractType
|
||||
{
|
||||
/// <summary>
|
||||
/// روابط کار
|
||||
/// </summary>
|
||||
JobRelation,
|
||||
/// <summary>
|
||||
/// حسابداری و مالیات
|
||||
/// </summary>
|
||||
TaxAndFinancial
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
using _0_Framework.Application;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
public class AccountNumberSelectListViewModel : SelectListViewModel;
|
||||
@@ -0,0 +1,5 @@
|
||||
using _0_Framework.Application;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
public class CardNumberSelectListViewModel:SelectListViewModel;
|
||||
@@ -0,0 +1,37 @@
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد اطلاعات بانکی
|
||||
/// </summary>
|
||||
public class CreateBankPaymentInstrument
|
||||
{
|
||||
/// <summary>
|
||||
/// آیدی عنوان
|
||||
/// </summary>
|
||||
public long PaymentInstrumentGroupId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام صاحب حساب
|
||||
/// </summary>
|
||||
public string AccountHolderName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره کارت
|
||||
/// </summary>
|
||||
public string CardNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره حساب
|
||||
/// </summary>
|
||||
public string AccountNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره حساب
|
||||
/// </summary>
|
||||
public string IBan { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// آیا احزار هویت شده است
|
||||
/// </summary>
|
||||
public bool IsAuth { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد عنوان
|
||||
/// </summary>
|
||||
public class CreateBankPaymentInstrumentGroup
|
||||
{
|
||||
/// <summary>
|
||||
/// نام
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class CreatePosPaymentInstrument
|
||||
{
|
||||
/// <summary>
|
||||
/// آیدی عنوان
|
||||
/// </summary>
|
||||
public long PaymentInstrumentGroupId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شناسه دستگاه پوز
|
||||
/// </summary>
|
||||
public string PosTerminalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// توضیحات
|
||||
/// </summary>
|
||||
public string Description { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
/// <summary>
|
||||
/// ویرایش عنوان
|
||||
/// </summary>
|
||||
public class EditBankPaymentInstrumentGroup : CreateBankPaymentInstrumentGroup
|
||||
{
|
||||
/// <summary>
|
||||
/// آیدی
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
public class GetPaymentInstrumentListViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// تعداد آیتم
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// لیست گروهی
|
||||
/// </summary>
|
||||
public List<PaymentInstrumentGroupedViewModel> GropedViewModels { get; set; }
|
||||
}
|
||||
public class PaymentInstrumentGroupedViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// نام
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// آیتم های گروه
|
||||
/// </summary>
|
||||
public List<PaymentInstrumentItemsViewModel> Items { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class PaymentInstrumentItemsViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// آیدی
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره کارت
|
||||
/// </summary>
|
||||
public string CardNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره حساب
|
||||
/// </summary>
|
||||
public string AccountNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره شبا
|
||||
/// </summary>
|
||||
public string IBan { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شناسه دستگاه
|
||||
/// </summary>
|
||||
public string PosTerminalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// توضیحات
|
||||
/// </summary>
|
||||
public string Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام صاحب حساب
|
||||
/// </summary>
|
||||
public string AccountHolderName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نوع
|
||||
/// </summary>
|
||||
public PaymentInstrumentType Type { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
/// <summary>
|
||||
/// اپلیکیشن جاری شرکا
|
||||
/// </summary>
|
||||
public interface IPaymentInstrumentApplication
|
||||
{
|
||||
/// <summary>
|
||||
/// ایجاد حساب اطلاعات بانکی
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> CreateBankAccount(CreateBankPaymentInstrument command);
|
||||
Task<OperationResult> CreateBankAccount(List<CreateBankPaymentInstrument> commands);
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد اطلاعات دستگاه پوز
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> CreatePos(CreatePosPaymentInstrument command);
|
||||
Task<OperationResult> CreatePos(List<CreatePosPaymentInstrument> commands);
|
||||
|
||||
/// <summary>
|
||||
/// گرفتن لیست
|
||||
/// </summary>
|
||||
/// <param name="searchModel"></param>
|
||||
/// <returns></returns>
|
||||
Task<GetPaymentInstrumentListViewModel> GetList(PaymentInstrumentSearchModel searchModel);
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد عنوان
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> CreateGroup(CreateBankPaymentInstrumentGroup command);
|
||||
|
||||
/// <summary>
|
||||
/// ویرایش عنوان
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> EditGroup(EditBankPaymentInstrumentGroup command);
|
||||
|
||||
/// <summary>
|
||||
/// حذف عنوان
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
Task<OperationResult> DeleteGroup(long id);
|
||||
|
||||
Task<List<PaymentInstrumentGroupsViewModel>> GetGroup();
|
||||
|
||||
Task<List<string>> PosTerminalIdSelectList(string search, string selected);
|
||||
Task<List<string>> IbanSelectList(string search, string selected);
|
||||
Task<List<string>> AccountNumberSelectList(string search, string selected);
|
||||
Task<List<string>> CardNumberSelectList(string search, string selected);
|
||||
Task<List<string>> AccountHolderNameSelectList(string search, string selected);
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
using _0_Framework.Application;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
public class IbanSelectListViewModel:SelectListViewModel;
|
||||
@@ -0,0 +1,5 @@
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
public class PaymentInstrumentGroupsViewModel:EditBankPaymentInstrumentGroup
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
/// <summary>
|
||||
/// سرچ مدل
|
||||
/// </summary>
|
||||
public class PaymentInstrumentSearchModel
|
||||
{
|
||||
/// <summary>
|
||||
/// نام صاحب حساب
|
||||
/// </summary>
|
||||
public string AccountHolderName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شناسه دستگاه
|
||||
/// </summary>
|
||||
public string PosTerminalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره کارت
|
||||
/// </summary>
|
||||
public string CardNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره حساب
|
||||
/// </summary>
|
||||
public string AccountNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره شبا
|
||||
/// </summary>
|
||||
public string IBan { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ایندکس صفحه
|
||||
/// </summary>
|
||||
public int PageIndex { get; set; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
/// <summary>
|
||||
/// نوع حساب های جاری شرکا
|
||||
/// </summary>
|
||||
public enum PaymentInstrumentType
|
||||
{
|
||||
/// <summary>
|
||||
/// حساب بانکی
|
||||
/// </summary>
|
||||
BankAccount,
|
||||
/// <summary>
|
||||
/// دستگاه پوز
|
||||
/// </summary>
|
||||
Pos
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
using _0_Framework.Application;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
public class PosTerminalSelectListViewModel:SelectListViewModel
|
||||
{
|
||||
}
|
||||
@@ -1,17 +1,8 @@
|
||||
namespace CompanyManagment.App.Contracts.Representative;
|
||||
using _0_Framework.Application;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.Representative;
|
||||
|
||||
/// <summary>
|
||||
/// ویو مدل سلکت لیست برای معرف
|
||||
/// </summary>
|
||||
public class GetSelectListRepresentativeViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// آیدی
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام معرف
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
}
|
||||
public class GetSelectListRepresentativeViewModel:SelectListViewModel;
|
||||
@@ -8,12 +8,13 @@ using CompanyManagment.App.Contracts.PersonalContractingParty;
|
||||
|
||||
namespace CompanyManagment.Application;
|
||||
|
||||
public class ContractingPartyBankAccountsApplication:IContractingPartyBankAccountsApplication
|
||||
public class ContractingPartyBankAccountsApplication : IContractingPartyBankAccountsApplication
|
||||
{
|
||||
private readonly IContractingPartyBankAccountsRepository _contractingPartyBankAccountsRepository;
|
||||
private readonly IPersonalContractingPartyRepository _personalContractingPartyRepository;
|
||||
|
||||
public ContractingPartyBankAccountsApplication(IContractingPartyBankAccountsRepository contractingPartyBankAccountsRepository,
|
||||
public ContractingPartyBankAccountsApplication(
|
||||
IContractingPartyBankAccountsRepository contractingPartyBankAccountsRepository,
|
||||
IPersonalContractingPartyRepository personalContractingPartyRepository)
|
||||
{
|
||||
_contractingPartyBankAccountsRepository = contractingPartyBankAccountsRepository;
|
||||
@@ -23,13 +24,13 @@ public class ContractingPartyBankAccountsApplication:IContractingPartyBankAccoun
|
||||
public async Task<OperationResult> Create(CreateContractingPartyBankAccounts command)
|
||||
{
|
||||
var operationResult = new OperationResult();
|
||||
|
||||
|
||||
if (!_personalContractingPartyRepository.Exists(x => x.id == command.ContractingPartyId))
|
||||
return operationResult.Failed("طرف حساب مورد نظر یافت نشد");
|
||||
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.CardNumber))
|
||||
return operationResult.Failed("شماره کارت خود را وارد کنید");
|
||||
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.AccountNumber))
|
||||
return operationResult.Failed("شماره حساب خود را وارد کنید");
|
||||
|
||||
@@ -38,42 +39,95 @@ public class ContractingPartyBankAccountsApplication:IContractingPartyBankAccoun
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.AccountHolderName))
|
||||
return operationResult.Failed("نام صاحب حساب را وارد کنید");
|
||||
|
||||
|
||||
var entity = new ContractingPartyBankAccount(command.ContractingPartyId, command.CardNumber,
|
||||
command.AccountHolderName,command.AccountNumber, command.IBan,command.IsAuth);
|
||||
|
||||
command.AccountHolderName, command.AccountNumber, command.IBan, command.IsAuth);
|
||||
|
||||
await _contractingPartyBankAccountsRepository.CreateAsync(entity);
|
||||
|
||||
|
||||
await _contractingPartyBankAccountsRepository.SaveChangesAsync();
|
||||
|
||||
|
||||
return operationResult.Succcedded();
|
||||
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<GetContractingPartyBankAccountViewModel>>> GetList(
|
||||
public async Task<OperationResult> Create(List<CreateContractingPartyBankAccounts> commands)
|
||||
{
|
||||
var operationResult = new OperationResult();
|
||||
foreach (var command in commands)
|
||||
{
|
||||
if (!_personalContractingPartyRepository.Exists(x => x.id == command.ContractingPartyId))
|
||||
return operationResult.Failed("طرف حساب مورد نظر یافت نشد");
|
||||
|
||||
if (command.IsAuth)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(command.CardNumber))
|
||||
return operationResult.Failed("شماره کارت خود را وارد کنید");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.AccountNumber))
|
||||
return operationResult.Failed("شماره حساب خود را وارد کنید");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.IBan))
|
||||
return operationResult.Failed("شماره شبا خود را وارد کنید");
|
||||
}
|
||||
else if(string.IsNullOrWhiteSpace(command.CardNumber) &&
|
||||
string.IsNullOrWhiteSpace(command.AccountNumber) &&
|
||||
string.IsNullOrWhiteSpace(command.IBan))
|
||||
{
|
||||
return operationResult.Failed(" حداقل یکی از اطلاعات بانکی را وارد کنید: شماره کارت، شماره حساب یا شماره شبا");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.AccountHolderName))
|
||||
{
|
||||
return operationResult.Failed("نام صاحب حساب را وارد کنید");
|
||||
}
|
||||
|
||||
|
||||
var entity = new ContractingPartyBankAccount(command.ContractingPartyId, command.CardNumber,
|
||||
command.AccountHolderName, command.AccountNumber, command.IBan, command.IsAuth);
|
||||
|
||||
await _contractingPartyBankAccountsRepository.CreateAsync(entity);
|
||||
}
|
||||
|
||||
await _contractingPartyBankAccountsRepository.SaveChangesAsync();
|
||||
|
||||
return operationResult.Succcedded();
|
||||
}
|
||||
|
||||
public async Task<GetContractingPartyBankAccountViewModel> GetList(
|
||||
ContractingPartyBankAccountSearchModel searchModel)
|
||||
{
|
||||
return await _contractingPartyBankAccountsRepository.GetList(searchModel);
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> ContractingPartyOrAccountHolderNameSelectList(string search,
|
||||
public async Task<List<string>> ContractingPartyOrAccountHolderNameSelectList(string search,
|
||||
string selected)
|
||||
{
|
||||
return await _contractingPartyBankAccountsRepository.ContractingPartyOrAccountHolderNameSelectList(search, selected);
|
||||
return await _contractingPartyBankAccountsRepository.ContractingPartyOrAccountHolderNameSelectList(search,
|
||||
selected);
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected)
|
||||
public async Task<List<string>> CardNumberSelectList(string search, string selected)
|
||||
{
|
||||
return await _contractingPartyBankAccountsRepository.CardNumberSelectList(search, selected);
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> IBanSelectList(string search, string selected)
|
||||
public async Task<List<string>> IBanSelectList(string search, string selected)
|
||||
{
|
||||
return await _contractingPartyBankAccountsRepository.IBanSelectList(search, selected);
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected)
|
||||
public async Task<List<string>> AccountNumberSelectList(string search, string selected)
|
||||
{
|
||||
return await _contractingPartyBankAccountsRepository.AccountNumberSelectList(search, selected);
|
||||
}
|
||||
|
||||
public async Task<List<string>> GetAccountHolderNameSelectList(string search, string selected)
|
||||
{
|
||||
return await _contractingPartyBankAccountsRepository.GetAccountHolderNameSelectList(search, selected);
|
||||
}
|
||||
|
||||
public async Task<List<string>> ContractingPartyNamesSelectList(string search, string selected)
|
||||
{
|
||||
return await _contractingPartyBankAccountsRepository.ContractingPartyNamesSelectList(search, selected);
|
||||
}
|
||||
}
|
||||
@@ -176,7 +176,7 @@ public class FinancialStatmentApplication : IFinancialStatmentApplication
|
||||
}
|
||||
|
||||
public async Task<ClientFinancialStatementViewModel> GetClientFinancialStatement(
|
||||
ClientFinancialStatementSearchModel searchModel, long accountId)
|
||||
FinancialStatementSearchModel searchModel, long accountId)
|
||||
{
|
||||
return await _financialStatmentRepository.GetClientFinancialStatement(accountId, searchModel);
|
||||
}
|
||||
@@ -196,4 +196,10 @@ public class FinancialStatmentApplication : IFinancialStatmentApplication
|
||||
{
|
||||
return _financialStatmentRepository.GetClientDebtAmount(accountId);
|
||||
}
|
||||
|
||||
public async Task<FinancialStatmentDetailsByContractingPartyViewModel> GetDetailsByContractingParty(
|
||||
long contractingPartyId, FinancialStatementSearchModel searchModel)
|
||||
{
|
||||
return await _financialStatmentRepository.GetDetailsByContractingParty(contractingPartyId,searchModel);
|
||||
}
|
||||
}
|
||||
@@ -30,9 +30,13 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
private readonly IWorkshopRepository _workshopRepository;
|
||||
private readonly ILeftWorkRepository _leftWorkRepository;
|
||||
private readonly IWorkshopApplication _workshopApplication;
|
||||
|
||||
|
||||
public InstitutionContractApplication(IInstitutionContractRepository institutionContractRepository, IPersonalContractingPartyRepository contractingPartyRepository, IRepresentativeRepository representativeRepository, IEmployerRepository employerRepository, IWorkshopRepository workshopRepository, ILeftWorkRepository leftWorkRepository, IFinancialStatmentApplication financialStatmentApplication, IWorkshopApplication workshopApplication)
|
||||
|
||||
public InstitutionContractApplication(IInstitutionContractRepository institutionContractRepository,
|
||||
IPersonalContractingPartyRepository contractingPartyRepository,
|
||||
IRepresentativeRepository representativeRepository, IEmployerRepository employerRepository,
|
||||
IWorkshopRepository workshopRepository, ILeftWorkRepository leftWorkRepository,
|
||||
IFinancialStatmentApplication financialStatmentApplication, IWorkshopApplication workshopApplication)
|
||||
{
|
||||
_institutionContractRepository = institutionContractRepository;
|
||||
_contractingPartyRepository = contractingPartyRepository;
|
||||
@@ -46,25 +50,28 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
|
||||
public OperationResult Create(CreateInstitutionContract command)
|
||||
{
|
||||
|
||||
string contractingPartyName = String.Empty;
|
||||
bool dateMessages = false;
|
||||
string dateMaessageResult = String.Empty;
|
||||
var opration = new OperationResult();
|
||||
if (_institutionContractRepository.Exists(x =>
|
||||
x.ContractingPartyId == command.ContractingPartyId && x.RepresentativeId == command.RepresentativeId && x.TypeOfContract == command.TypeOfContract))
|
||||
return opration.Failed("برای این معرف و طرف حساب قبلا قرارداد ایجاد شده است، شما میتوانید از تمدید استفاده کنید");
|
||||
x.ContractingPartyId == command.ContractingPartyId && x.RepresentativeId == command.RepresentativeId &&
|
||||
x.TypeOfContract == command.TypeOfContract))
|
||||
return opration.Failed(
|
||||
"برای این معرف و طرف حساب قبلا قرارداد ایجاد شده است، شما میتوانید از تمدید استفاده کنید");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractDateFa))
|
||||
{
|
||||
dateMaessageResult = "تاریخ قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractStartFa))
|
||||
{
|
||||
dateMaessageResult += "تاریخ شروع قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractEndFa))
|
||||
{
|
||||
dateMaessageResult += "تاریخ پایان قراراداد اجباری است. ";
|
||||
@@ -81,7 +88,6 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
else if (command.ContractingPartyId < 1 && command.RepresentativeId > 1)
|
||||
{
|
||||
return opration.Failed("طرف حساب را انتخاب کنید");
|
||||
|
||||
}
|
||||
else if (command.ContractingPartyId < 1 && command.RepresentativeId < 1)
|
||||
{
|
||||
@@ -94,15 +100,17 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
var contractingParty = _contractingPartyRepository.GetDetails(command.ContractingPartyId);
|
||||
//شماره قرارداد
|
||||
var contractNo = $"{syear}{smonth}{sday}/{contractingParty.ArchiveCode}/0";
|
||||
|
||||
|
||||
///////////////////////
|
||||
if (command.ContactInformationList.Count == 0)
|
||||
return opration.Failed("ورود شماره تماس برای ارسال پیامک الزامیست");
|
||||
var accountContact = command.ContactInformationList.Where(x =>
|
||||
x.SendSmsString == "true" && x.Position == "طرف قرارداد" && x.PhoneType == "شماره همراه" && !string.IsNullOrWhiteSpace(x.PhoneNumber)).ToList();
|
||||
if(accountContact.Count == 0)
|
||||
x.SendSmsString == "true" && x.Position == "طرف قرارداد" && x.PhoneType == "شماره همراه" &&
|
||||
!string.IsNullOrWhiteSpace(x.PhoneNumber)).ToList();
|
||||
if (accountContact.Count == 0)
|
||||
return opration.Failed("ورود شماره همراه با سمت طرف قرارداد برای ساخت حساب کاربری الزامیست");
|
||||
var accountContactCount = command.ContactInformationList.Where(x => x.PhoneType == "شماره همراه" && x.Position == "طرف قرارداد").ToList();
|
||||
var accountContactCount = command.ContactInformationList
|
||||
.Where(x => x.PhoneType == "شماره همراه" && x.Position == "طرف قرارداد").ToList();
|
||||
if (accountContactCount.Count > 1)
|
||||
return opration.Failed("فقط یکی از شماره تلفن ها میتواند سمت طرف قرارداد داشته باشد");
|
||||
|
||||
@@ -117,25 +125,22 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
|
||||
if (command.Address != null && command.State == null)
|
||||
{
|
||||
|
||||
return opration.Failed("لطفا استان و شهر را انتخاب کنید");
|
||||
}
|
||||
|
||||
if ((command.Address != null && command.State != null) && command.City == "شهرستان")
|
||||
{
|
||||
|
||||
return opration.Failed("لطفا شهر را انتخاب کنید");
|
||||
}
|
||||
|
||||
if (command.Address == null && command.State != null)
|
||||
{
|
||||
|
||||
return opration.Failed("لطفا آدرس را وارد کنید");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.OfficialCompany))
|
||||
return opration.Failed("رسمی یا غیر رسمی بودن پرداخت را مشخص کنید");
|
||||
if(command.OfficialCompany == "Official" && string.IsNullOrWhiteSpace(command.HasValueAddedTax))
|
||||
if (command.OfficialCompany == "Official" && string.IsNullOrWhiteSpace(command.HasValueAddedTax))
|
||||
return opration.Failed("وضعیت ارزش افزوده را مشخص کنید");
|
||||
if (string.IsNullOrWhiteSpace(command.TypeOfContract))
|
||||
return opration.Failed("عنوان قرارداد را انتخاب کنید");
|
||||
@@ -148,7 +153,9 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
command.ObligationString = "0";
|
||||
if (string.IsNullOrWhiteSpace(command.TotalAmountString))
|
||||
command.TotalAmountString = "0";
|
||||
command.ValueAddedTax = string.IsNullOrWhiteSpace(command.ValueAddedTaxStr) ? 0 : command.ValueAddedTaxStr.MoneyToDouble();
|
||||
command.ValueAddedTax = string.IsNullOrWhiteSpace(command.ValueAddedTaxStr)
|
||||
? 0
|
||||
: command.ValueAddedTaxStr.MoneyToDouble();
|
||||
var contractAmount = command.ContractAmountString.ToDoubleMoney();
|
||||
command.ContractAmount = Convert.ToDouble(contractAmount);
|
||||
var DailyCompenseation = command.DailyCompenseationString.ToDoubleMoney();
|
||||
@@ -165,14 +172,15 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
// valueAddedTax = command.ContractAmount * 0.1;
|
||||
// command.ContractAmount += valueAddedTax;
|
||||
//}
|
||||
|
||||
|
||||
var createContract = new InstitutionContract(contractNo, command.RepresentativeId, representative,
|
||||
command.ContractingPartyId,
|
||||
contractingPartyName, contractDateGr, command.ContractDateFa, command.State, command.City,
|
||||
command.Address, contractStartGr,
|
||||
command.ContractStartFa, contractEndGr, command.ContractEndFa, command.ContractAmount,
|
||||
command.DailyCompenseation, command.Obligation,
|
||||
command.TotalAmount, 0,command.WorkshopManualCount,command.EmployeeManualCount,command.Description, command.OfficialCompany, command.TypeOfContract,command.HasValueAddedTax,command.ValueAddedTax);
|
||||
command.TotalAmount, 0, command.WorkshopManualCount, command.EmployeeManualCount, command.Description,
|
||||
command.OfficialCompany, command.TypeOfContract, command.HasValueAddedTax, command.ValueAddedTax);
|
||||
|
||||
_institutionContractRepository.Create(createContract);
|
||||
_institutionContractRepository.SaveChanges();
|
||||
@@ -181,27 +189,29 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
|
||||
public OperationResult Extension(CreateInstitutionContract command)
|
||||
{
|
||||
|
||||
bool dateMessages = false;
|
||||
string dateMaessageResult = String.Empty;
|
||||
var opration = new OperationResult();
|
||||
|
||||
|
||||
command.ExtensionNo += 1;
|
||||
if (_institutionContractRepository.Exists(x =>
|
||||
x.ExtensionNo == command.ExtensionNo && x.ContractingPartyId == command.ContractingPartyId && x.TypeOfContract == command.TypeOfContract))
|
||||
x.ExtensionNo == command.ExtensionNo && x.ContractingPartyId == command.ContractingPartyId &&
|
||||
x.TypeOfContract == command.TypeOfContract))
|
||||
return opration.Failed("برای این قرارداد قبلا تمدید ایجاد شده است");
|
||||
|
||||
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractDateFa))
|
||||
{
|
||||
dateMaessageResult = "تاریخ قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractStartFa))
|
||||
{
|
||||
dateMaessageResult += "تاریخ شروع قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractEndFa))
|
||||
{
|
||||
dateMaessageResult += "تاریخ پایان قراراداد اجباری است. ";
|
||||
@@ -211,7 +221,8 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
if (dateMessages)
|
||||
return opration.Failed(dateMaessageResult);
|
||||
|
||||
var firstContract = _institutionContractRepository.GetFirstContract(command.ContractingPartyId, command.TypeOfContract);
|
||||
var firstContract =
|
||||
_institutionContractRepository.GetFirstContract(command.ContractingPartyId, command.TypeOfContract);
|
||||
|
||||
var syear = firstContract.ContractStartFa.Substring(0, 4);
|
||||
var smonth = firstContract.ContractStartFa.Substring(5, 2);
|
||||
@@ -219,32 +230,32 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
var contractingParty = _contractingPartyRepository.GetDetails(command.ContractingPartyId);
|
||||
//شماره قرارداد
|
||||
var contractNo = $"{syear}{smonth}{sday}/{contractingParty.ArchiveCode}/{command.ExtensionNo}";
|
||||
|
||||
|
||||
|
||||
var contractStartGr = command.ContractStartFa.ToGeorgianDateTime();
|
||||
var contractEndGr = command.ContractEndFa.ToGeorgianDateTime();
|
||||
|
||||
var contractDateGr = command.ContractDateFa.ToGeorgianDateTime();
|
||||
if (_institutionContractRepository.Exists(x =>
|
||||
((contractStartGr >= x.ContractStartGr && contractStartGr <= x.ContractEndGr)||(contractEndGr >= x.ContractStartGr && contractEndGr <= x.ContractEndGr)) && x.TypeOfContract == command.TypeOfContract && x.ContractingPartyId == command.ContractingPartyId))
|
||||
((contractStartGr >= x.ContractStartGr && contractStartGr <= x.ContractEndGr) ||
|
||||
(contractEndGr >= x.ContractStartGr && contractEndGr <= x.ContractEndGr)) &&
|
||||
x.TypeOfContract == command.TypeOfContract && x.ContractingPartyId == command.ContractingPartyId))
|
||||
return opration.Failed("تاریخ شروع و پایان وارد شده با قرارداد دیگری تداخل دارد");
|
||||
if (command.Address != null && command.State == null)
|
||||
{
|
||||
|
||||
return opration.Failed("لطفا استان و شهر را انتخاب کنید");
|
||||
}
|
||||
|
||||
if ((command.Address != null && command.State != null) && command.City == "شهرستان")
|
||||
{
|
||||
|
||||
return opration.Failed("لطفا شهر را انتخاب کنید");
|
||||
}
|
||||
|
||||
if (command.Address == null && command.State != null)
|
||||
{
|
||||
|
||||
return opration.Failed("لطفا آدرس را وارد کنید");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.OfficialCompany))
|
||||
return opration.Failed("رسمی یا غیر رسمی بودن پرداخت را مشخص کنید");
|
||||
if (command.OfficialCompany == "Official" && string.IsNullOrWhiteSpace(command.HasValueAddedTax))
|
||||
@@ -259,7 +270,9 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
command.ObligationString = "0";
|
||||
if (string.IsNullOrWhiteSpace(command.TotalAmountString))
|
||||
command.TotalAmountString = "0";
|
||||
command.ValueAddedTax = string.IsNullOrWhiteSpace(command.ValueAddedTaxStr) ? 0 : command.ValueAddedTaxStr.MoneyToDouble();
|
||||
command.ValueAddedTax = string.IsNullOrWhiteSpace(command.ValueAddedTaxStr)
|
||||
? 0
|
||||
: command.ValueAddedTaxStr.MoneyToDouble();
|
||||
var contractAmount = command.ContractAmountString.ToDoubleMoney();
|
||||
command.ContractAmount = Convert.ToDouble(contractAmount);
|
||||
var DailyCompenseation = command.DailyCompenseationString.ToDoubleMoney();
|
||||
@@ -274,11 +287,13 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
command.Address, contractStartGr,
|
||||
command.ContractStartFa, contractEndGr, command.ContractEndFa, command.ContractAmount,
|
||||
command.DailyCompenseation, command.Obligation,
|
||||
command.TotalAmount, command.ExtensionNo, command.WorkshopManualCount, command.EmployeeManualCount, command.Description,command.OfficialCompany, command.TypeOfContract, command.HasValueAddedTax, command.ValueAddedTax);
|
||||
command.TotalAmount, command.ExtensionNo, command.WorkshopManualCount, command.EmployeeManualCount,
|
||||
command.Description, command.OfficialCompany, command.TypeOfContract, command.HasValueAddedTax,
|
||||
command.ValueAddedTax);
|
||||
|
||||
_institutionContractRepository.Create(createContract);
|
||||
_institutionContractRepository.SaveChanges();
|
||||
|
||||
|
||||
|
||||
return opration.Succcedded(createContract.id);
|
||||
}
|
||||
@@ -291,14 +306,17 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
var ContractEdit = _institutionContractRepository.Get(command.Id);
|
||||
if (ContractEdit == null)
|
||||
opration.Failed("رکورد مورد نظر وجود ندارد");
|
||||
|
||||
|
||||
var contractStartGr = command.ContractStartFa.ToGeorgianDateTime();
|
||||
var contractEndGr = command.ContractEndFa.ToGeorgianDateTime();
|
||||
|
||||
var contractDateGr = command.ContractDateFa.ToGeorgianDateTime();
|
||||
|
||||
if (_institutionContractRepository.Exists(x =>
|
||||
x.ContractingPartyId == ContractEdit.ContractingPartyId && ((contractStartGr >= x.ContractStartGr && contractStartGr <= x.ContractEndGr) || (contractEndGr >= x.ContractStartGr && contractEndGr <= x.ContractEndGr)) && x.id != command.Id && x.TypeOfContract == command.TypeOfContract))
|
||||
x.ContractingPartyId == ContractEdit.ContractingPartyId &&
|
||||
((contractStartGr >= x.ContractStartGr && contractStartGr <= x.ContractEndGr) ||
|
||||
(contractEndGr >= x.ContractStartGr && contractEndGr <= x.ContractEndGr)) && x.id != command.Id &&
|
||||
x.TypeOfContract == command.TypeOfContract))
|
||||
return opration.Failed("در بازه تاریخ وارد شده قرارداد دیگری وجود دارد");
|
||||
//if (_institutionContractRepository.Exists(x =>
|
||||
// x.ContractingPartyId == ContractEdit.ContractingPartyId && (x.ContractStartGr <= contractDateGr || x.ContractDateGr <= contractDateGr) && x.id != command.Id))
|
||||
@@ -308,11 +326,13 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
dateMaessageResult = "تاریخ قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractStartFa))
|
||||
{
|
||||
dateMaessageResult += "تاریخ شروع قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractEndFa))
|
||||
{
|
||||
dateMaessageResult += "تاریخ پایان قراراداد اجباری است. ";
|
||||
@@ -323,19 +343,16 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
return opration.Failed(dateMaessageResult);
|
||||
if (command.Address != null && command.State == null)
|
||||
{
|
||||
|
||||
return opration.Failed("لطفا استان و شهر را انتخاب کنید");
|
||||
}
|
||||
|
||||
if ((command.Address != null && command.State != null) && command.City == "شهرستان")
|
||||
{
|
||||
|
||||
return opration.Failed("لطفا شهر را انتخاب کنید");
|
||||
}
|
||||
|
||||
if (command.Address == null && command.State != null)
|
||||
{
|
||||
|
||||
return opration.Failed("لطفا آدرس را وارد کنید");
|
||||
}
|
||||
|
||||
@@ -354,7 +371,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
command.ObligationString = "0";
|
||||
if (string.IsNullOrWhiteSpace(command.TotalAmountString))
|
||||
command.TotalAmountString = "0";
|
||||
|
||||
|
||||
command.ValueAddedTax = command.ValueAddedTaxStr.MoneyToDouble();
|
||||
var contractAmount = command.ContractAmountString.ToDoubleMoney();
|
||||
command.ContractAmount = Convert.ToDouble(contractAmount);
|
||||
@@ -365,12 +382,15 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
var TotalAmount = command.TotalAmountString.ToDoubleMoney();
|
||||
command.TotalAmount = Convert.ToDouble(TotalAmount);
|
||||
|
||||
ContractEdit.Edit(contractDateGr, command.ContractDateFa,command.State,command.City,command.Address,contractStartGr,
|
||||
command.ContractStartFa,contractEndGr,command.ContractEndFa,command.ContractAmount,command.DailyCompenseation,
|
||||
command.Obligation,command.TotalAmount,command.WorkshopManualCount, command.EmployeeManualCount,command.Description,command.OfficialCompany, command.TypeOfContract, command.ValueAddedTax, command.HasValueAddedTax);
|
||||
ContractEdit.Edit(contractDateGr, command.ContractDateFa, command.State, command.City, command.Address,
|
||||
contractStartGr,
|
||||
command.ContractStartFa, contractEndGr, command.ContractEndFa, command.ContractAmount,
|
||||
command.DailyCompenseation,
|
||||
command.Obligation, command.TotalAmount, command.WorkshopManualCount, command.EmployeeManualCount,
|
||||
command.Description, command.OfficialCompany, command.TypeOfContract, command.ValueAddedTax,
|
||||
command.HasValueAddedTax);
|
||||
_institutionContractRepository.SaveChanges();
|
||||
return opration.Succcedded(command.Id);
|
||||
|
||||
}
|
||||
|
||||
public EditInstitutionContract GetDetails(long id)
|
||||
@@ -380,18 +400,17 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
|
||||
public List<InstitutionContractViewModel> Search(InstitutionContractSearchModel searchModel)
|
||||
{
|
||||
|
||||
var query = _institutionContractRepository.Search(searchModel);
|
||||
var join = new List<InstitutionContractViewModel>();
|
||||
|
||||
var now = DateTime.Now;
|
||||
var nowFa = now.ToFarsi();
|
||||
|
||||
|
||||
var endFa = nowFa.FindeEndOfMonth();
|
||||
var endThisMontGr = endFa.ToGeorgianDateTime();
|
||||
//var watch = System.Diagnostics.Stopwatch.StartNew();
|
||||
|
||||
|
||||
|
||||
|
||||
var newResult = query.Select(x => new InstitutionContractViewModel
|
||||
{
|
||||
Id = x.Id,
|
||||
@@ -407,8 +426,10 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
//BlockTimes = _contractingPartyRepository.GetDetails(x.ContractingPartyId).BlockTimes,
|
||||
ContractingPartyId = x.ContractingPartyId,
|
||||
EmployerViewModels = _employerRepository.GetEmployerByContracrtingPartyID(x.ContractingPartyId),
|
||||
EmployerNo = _employerRepository.GetEmployerByContracrtingPartyID(x.ContractingPartyId).FirstOrDefault(xn => xn.ContractingPartyID == x.ContractingPartyId)?.EmployerNo,
|
||||
EmployerName = _employerRepository.GetEmployerByContracrtingPartyID(x.ContractingPartyId).FirstOrDefault(xn => xn.ContractingPartyID == x.ContractingPartyId)?.FullName,
|
||||
EmployerNo = _employerRepository.GetEmployerByContracrtingPartyID(x.ContractingPartyId)
|
||||
.FirstOrDefault(xn => xn.ContractingPartyID == x.ContractingPartyId)?.EmployerNo,
|
||||
EmployerName = _employerRepository.GetEmployerByContracrtingPartyID(x.ContractingPartyId)
|
||||
.FirstOrDefault(xn => xn.ContractingPartyID == x.ContractingPartyId)?.FullName,
|
||||
//EmployerId = _employerRepository.GetEmployerByContracrtingPartyID(x.ContractingPartyId).FirstOrDefault(xn => xn.ContractingPartyID == x.ContractingPartyId)?.Id == null ? 0 :
|
||||
// _employerRepository.GetEmployerByContracrtingPartyID(x.ContractingPartyId).FirstOrDefault(xn => xn.ContractingPartyID == x.ContractingPartyId)!.Id,
|
||||
ContractAmount = x.ContractAmount,
|
||||
@@ -425,7 +446,6 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
//EmployeeCount = WorkShopDetailsAndEmployeeCount(x.ContractingPartyId).EmployeeCount,
|
||||
//ArchiveCode = WorkShopDetailsAndEmployeeCount(x.ContractingPartyId).ArchiveCode,
|
||||
TypeOfContract = x.TypeOfContract
|
||||
|
||||
}).ToList();
|
||||
//Console.WriteLine("efTime : " + watch.Elapsed);
|
||||
|
||||
@@ -451,7 +471,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
item.IsContractingPartyBlock = contractingParty.IsBlock;
|
||||
item.BlockTimes = contractingParty.BlockTimes;
|
||||
}
|
||||
|
||||
|
||||
|
||||
var employer = _employerRepository.GetEmployerByContracrtingPartyID(item.ContractingPartyId);
|
||||
item.EmployerViewModels = employer;
|
||||
@@ -473,14 +493,13 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
//var reslt = _workshopApplication.GetConnectedPersonnels(workshopId);
|
||||
//var noBlock = reslt.Where(x => x.Black == false).ToList();
|
||||
//joinPersonelList.AddRange(noBlock);
|
||||
var p = _workshopApplication.PersonnelCount(workshopId);
|
||||
pCount += p;
|
||||
|
||||
var p = _workshopApplication.PersonnelCount(workshopId);
|
||||
pCount += p;
|
||||
}
|
||||
//var joinlistWithoutDuplicat = joinPersonelList.GroupBy(x => x.PersonName).Select(x => x.First()).ToList();
|
||||
//left = joinlistWithoutDuplicat.Count();
|
||||
// var left= _leftWorkRepository.GetLeftPersonelByWorkshopId(workshopIds).Count();
|
||||
|
||||
|
||||
item.EmployeeCount = Convert.ToString(pCount);
|
||||
//if (item.ContractEndGr < now)
|
||||
// item.ExpireColor = "black";
|
||||
@@ -496,8 +515,8 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
var arc = workshop.Select(x => new ArchiveCodConvertoint
|
||||
{
|
||||
ArchiveCodeInt = x.ArchiveCode.Substring(0, 1) == "b" ? 10000000 : x.ArchiveCode.ConvertToInt(),
|
||||
}).OrderBy(x=>x.ArchiveCodeInt).ToList();
|
||||
var minArchiveCode = arc.Min(x=>x.ArchiveCodeInt);
|
||||
}).OrderBy(x => x.ArchiveCodeInt).ToList();
|
||||
var minArchiveCode = arc.Min(x => x.ArchiveCodeInt);
|
||||
archiveCode = minArchiveCode == 10000000 ? 0 : minArchiveCode;
|
||||
}
|
||||
|
||||
@@ -537,11 +556,10 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
var findeByFilter = new List<InstitutionContractViewModel>();
|
||||
if (searchModel.WorkshopId != 0)
|
||||
{
|
||||
|
||||
foreach (var item in join)
|
||||
{
|
||||
var check = item.WorkshopViewModels.Where(x => x.Id == searchModel.WorkshopId).ToList();
|
||||
if(check.Count >0)
|
||||
if (check.Count > 0)
|
||||
findeByFilter.Add(item);
|
||||
}
|
||||
|
||||
@@ -551,32 +569,29 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
var findeByFilter2 = new List<InstitutionContractViewModel>();
|
||||
if (searchModel.EmployerId != 0)
|
||||
{
|
||||
|
||||
foreach (var item in join)
|
||||
{
|
||||
var check = item.EmployerViewModels.Where(x => x.Id == searchModel.EmployerId).ToList();
|
||||
if (check.Count > 0)
|
||||
findeByFilter2.Add(item);
|
||||
|
||||
|
||||
}
|
||||
|
||||
join = findeByFilter2;
|
||||
}
|
||||
|
||||
|
||||
|
||||
join = join.OrderBy(x => x.WorkshopCount != "0" && string.IsNullOrWhiteSpace(x.ExpireColor))
|
||||
.ThenBy(x => x.WorkshopCount == "0" && string.IsNullOrWhiteSpace(x.ExpireColor))
|
||||
.ThenBy(x=>x.ExpireColor=="red")
|
||||
.ThenBy(x => x.ExpireColor == "red")
|
||||
.ThenBy(x => x.ExpireColor == "purple")
|
||||
.ThenBy(x=>x.ExpireColor=="black").ToList();
|
||||
.ThenBy(x => x.ExpireColor == "black").ToList();
|
||||
|
||||
return join;
|
||||
}
|
||||
|
||||
public List<InstitutionContractViewModel> NewSearch(InstitutionContractSearchModel searchModel)
|
||||
{
|
||||
return _institutionContractRepository.NewSearch(searchModel);
|
||||
return _institutionContractRepository.NewSearch(searchModel);
|
||||
}
|
||||
|
||||
|
||||
@@ -584,10 +599,13 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
{
|
||||
var result = _institutionContractRepository.NewSearch(new InstitutionContractSearchModel());
|
||||
|
||||
return result.Where(x => x.IsActiveString == "true" && x.IsContractingPartyBlock !="true" && x.WorkshopCount != "0" && x.ContractStartGr <= DateTime.Now && x.ContractEndGr >= DateTime.Now).ToList();
|
||||
return result.Where(x =>
|
||||
x.IsActiveString == "true" && x.IsContractingPartyBlock != "true" && x.WorkshopCount != "0" &&
|
||||
x.ContractStartGr <= DateTime.Now && x.ContractEndGr >= DateTime.Now).ToList();
|
||||
}
|
||||
|
||||
public string ExpCheckColor(DateTime now, DateTime ContractEndGr, DateTime endThisMontGr, string ContractAmount, string isActiveString)
|
||||
public string ExpCheckColor(DateTime now, DateTime ContractEndGr, DateTime endThisMontGr, string ContractAmount,
|
||||
string isActiveString)
|
||||
{
|
||||
string result = "";
|
||||
|
||||
@@ -605,7 +623,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
public TotalbalancViewModel TotalBalance(long contractingPartyId)
|
||||
{
|
||||
var result = new TotalbalancViewModel();
|
||||
|
||||
|
||||
var firstGetStatement = _financialStatmentApplication.GetDetailsByContractingPartyId(contractingPartyId);
|
||||
var allTransactions = firstGetStatement.FinancialTransactionViewModels;
|
||||
if (allTransactions != null)
|
||||
@@ -616,6 +634,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
result.TotalBalanceDbl = debt - credit;
|
||||
result.TotalBalanceStr = result.TotalBalanceDbl.ToMoney();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -623,11 +642,13 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
{
|
||||
var result = new WorkshopsAndEmployeeViewModel();
|
||||
|
||||
var emplId = _employerRepository.GetEmployerByContracrtingPartyID(contractingPartyId).Select(x => x.Id).ToList(); ;
|
||||
var emplId = _employerRepository.GetEmployerByContracrtingPartyID(contractingPartyId).Select(x => x.Id)
|
||||
.ToList();
|
||||
;
|
||||
result.WorkshopViewModels = _workshopRepository.GetWorkshopsByEmployerId(emplId);
|
||||
var workshopIds = result.WorkshopViewModels.Select(x => x.Id).ToList();
|
||||
var left = 0;
|
||||
result.WorkshopCount= Convert.ToString(workshopIds.Count);
|
||||
result.WorkshopCount = Convert.ToString(workshopIds.Count);
|
||||
var joinPersonelList = new List<ConnectedPersonnelViewModel>();
|
||||
foreach (var workshopId in workshopIds)
|
||||
{
|
||||
@@ -636,7 +657,6 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
//joinPersonelList.AddRange(noBlock);
|
||||
var pCount = _workshopApplication.PersonnelCount(workshopId);
|
||||
result.EmployeeCount = Convert.ToString(pCount);
|
||||
|
||||
}
|
||||
//var joinlistWithoutDuplicat = joinPersonelList.GroupBy(x => x.PersonName).Select(x => x.First()).ToList();
|
||||
//left = joinlistWithoutDuplicat.Count();
|
||||
@@ -655,7 +675,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
var minArchiveCode = arc.Min(x => x.ArchiveCodeInt);
|
||||
result.ArchiveCode = minArchiveCode == 10000000 ? 0 : minArchiveCode;
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -675,13 +695,13 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
{
|
||||
Id = get.Id,
|
||||
ContractNo = get.ContractNo,
|
||||
|
||||
|
||||
ContractStartFa = get.ContractStartFa,
|
||||
|
||||
ContractEndFa = get.ContractEndFa,
|
||||
|
||||
ContractingPartyName = get.ContractingPartyName,
|
||||
|
||||
|
||||
ContractingPartyId = get.ContractingPartyId,
|
||||
ContractDateFa = get.ContractDateFa,
|
||||
State = get.State,
|
||||
@@ -695,7 +715,6 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
Obligation = get.ObligationString,
|
||||
TotalAmount = get.TotalAmountString,
|
||||
WorkshopViewModels = workshops
|
||||
|
||||
};
|
||||
return res;
|
||||
}
|
||||
@@ -703,7 +722,6 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
|
||||
public OperationResult Active(long id)
|
||||
{
|
||||
|
||||
var opration = new OperationResult();
|
||||
var contract = _institutionContractRepository.Get(id);
|
||||
if (contract == null)
|
||||
@@ -768,6 +786,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
var res = _employerRepository.DeActiveAll(employer.Id);
|
||||
}
|
||||
}
|
||||
|
||||
return opration.Succcedded();
|
||||
}
|
||||
|
||||
@@ -797,6 +816,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
var res = _employerRepository.ActiveAll(employer.Id);
|
||||
}
|
||||
}
|
||||
|
||||
return opration.Succcedded();
|
||||
}
|
||||
|
||||
@@ -810,10 +830,10 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
contractingParty.Active();
|
||||
_contractingPartyRepository.SaveChanges();
|
||||
}
|
||||
|
||||
|
||||
var employers =
|
||||
_employerRepository.GetEmployerByContracrtingPartyID(contractingPartyId);
|
||||
|
||||
|
||||
foreach (var employer in employers)
|
||||
{
|
||||
var res = _employerRepository.ActiveAll(employer.Id);
|
||||
@@ -825,7 +845,6 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
public void RemoveContract(long id)
|
||||
{
|
||||
_institutionContractRepository.RemoveContract(id);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -861,15 +880,375 @@ public class InstitutionContractApplication : IInstitutionContractApplication
|
||||
|
||||
public void CreateContractingPartyAccount(long contractingPartyid, long accountId)
|
||||
{
|
||||
_institutionContractRepository.CreateContractingPartyAccount(contractingPartyid,accountId);
|
||||
_institutionContractRepository.CreateContractingPartyAccount(contractingPartyid, accountId);
|
||||
}
|
||||
|
||||
public double GetcontractAmount(int countPerson)
|
||||
{
|
||||
return _institutionContractRepository.GetcontractAmount(countPerson);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<PagedResult<GetInstitutionContractListItemsViewModel>> GetList(
|
||||
InstitutionContractListSearchModel searchModel)
|
||||
{
|
||||
return await _institutionContractRepository.GetList(searchModel);
|
||||
}
|
||||
|
||||
public Task<GetInstitutionContractListStatsViewModel> GetListStats(InstitutionContractListSearchModel searchModel)
|
||||
{
|
||||
return _institutionContractRepository.GetListStats(searchModel);
|
||||
}
|
||||
|
||||
public async Task<OperationResult> CreateAsync(CreateInstitutionContractRequest command)
|
||||
{
|
||||
string contractingPartyName = String.Empty;
|
||||
bool dateMessages = false;
|
||||
string dateMaessageResult = String.Empty;
|
||||
var opration = new OperationResult();
|
||||
if (_institutionContractRepository.Exists(x =>
|
||||
x.ContractingPartyId == command.ContractingPartyId && x.RepresentativeId == command.RepresentativeId &&
|
||||
x.TypeOfContract == command.TypeOfContract))
|
||||
return opration.Failed(
|
||||
"برای این معرف و طرف حساب قبلا قرارداد ایجاد شده است، شما میتوانید از تمدید استفاده کنید");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractDateFa))
|
||||
{
|
||||
dateMaessageResult = "تاریخ قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractStartFa))
|
||||
{
|
||||
dateMaessageResult += "تاریخ شروع قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractEndFa))
|
||||
{
|
||||
dateMaessageResult += "تاریخ پایان قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (dateMessages)
|
||||
return opration.Failed(dateMaessageResult);
|
||||
|
||||
if (command.RepresentativeId < 1 && command.ContractingPartyId > 1)
|
||||
{
|
||||
return opration.Failed("معرف را انتخاب کنید");
|
||||
}
|
||||
else if (command.ContractingPartyId < 1 && command.RepresentativeId > 1)
|
||||
{
|
||||
return opration.Failed("طرف حساب را انتخاب کنید");
|
||||
}
|
||||
else if (command.ContractingPartyId < 1 && command.RepresentativeId < 1)
|
||||
{
|
||||
return opration.Failed("معرف و طرف حساب را انتخاب کنید");
|
||||
}
|
||||
|
||||
var syear = command.ContractStartFa.Substring(0, 4);
|
||||
var smonth = command.ContractStartFa.Substring(5, 2);
|
||||
var sday = command.ContractStartFa.Substring(8, 2);
|
||||
var contractingParty = _contractingPartyRepository.GetDetails(command.ContractingPartyId);
|
||||
//شماره قرارداد
|
||||
var contractNo = $"{syear}{smonth}{sday}/{contractingParty.ArchiveCode}/0";
|
||||
|
||||
///////////////////////
|
||||
if (command.ContactInfos.Count == 0)
|
||||
return opration.Failed("ورود شماره تماس برای ارسال پیامک الزامیست");
|
||||
var accountContact = command.ContactInfos.Where(x =>
|
||||
x.SendSmsString == "true" && x.Position == "طرف قرارداد" && x.PhoneType == "شماره همراه" &&
|
||||
!string.IsNullOrWhiteSpace(x.PhoneNumber)).ToList();
|
||||
if (accountContact.Count == 0)
|
||||
return opration.Failed("ورود شماره همراه با سمت طرف قرارداد برای ساخت حساب کاربری الزامیست");
|
||||
var accountContactCount = command.ContactInfos
|
||||
.Where(x => x.PhoneType == "شماره همراه" && x.Position == "طرف قرارداد").ToList();
|
||||
if (accountContactCount.Count > 1)
|
||||
return opration.Failed("فقط یکی از شماره تلفن ها میتواند سمت طرف قرارداد داشته باشد");
|
||||
|
||||
contractingPartyName = contractingParty.LName;
|
||||
//نام معرف
|
||||
var representative = _representativeRepository.GetDetails(command.RepresentativeId).FullName;
|
||||
|
||||
var contractStartGr = command.ContractStartFa.ToGeorgianDateTime();
|
||||
var contractEndGr = command.ContractEndFa.ToGeorgianDateTime();
|
||||
|
||||
var contractDateGr = command.ContractDateFa.ToGeorgianDateTime();
|
||||
|
||||
if (command.Address != null && command.State == null)
|
||||
{
|
||||
return opration.Failed("لطفا استان و شهر را انتخاب کنید");
|
||||
}
|
||||
|
||||
if ((command.Address != null && command.State != null) && command.City == "شهرستان")
|
||||
{
|
||||
return opration.Failed("لطفا شهر را انتخاب کنید");
|
||||
}
|
||||
|
||||
if (command.Address == null && command.State != null)
|
||||
{
|
||||
return opration.Failed("لطفا آدرس را وارد کنید");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.OfficialCompany))
|
||||
return opration.Failed("رسمی یا غیر رسمی بودن پرداخت را مشخص کنید");
|
||||
if (command.OfficialCompany == "Official" && string.IsNullOrWhiteSpace(command.HasValueAddedTax))
|
||||
return opration.Failed("وضعیت ارزش افزوده را مشخص کنید");
|
||||
if (string.IsNullOrWhiteSpace(command.TypeOfContract))
|
||||
return opration.Failed("عنوان قرارداد را انتخاب کنید");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractAmountString))
|
||||
command.ContractAmountString = "0";
|
||||
if (string.IsNullOrWhiteSpace(command.DailyCompenseationString))
|
||||
command.DailyCompenseationString = "0";
|
||||
if (string.IsNullOrWhiteSpace(command.ObligationString))
|
||||
command.ObligationString = "0";
|
||||
if (string.IsNullOrWhiteSpace(command.TotalAmountString))
|
||||
command.TotalAmountString = "0";
|
||||
|
||||
var valueAddedTax = string.IsNullOrWhiteSpace(command.ValueAddedTaxStr)
|
||||
? 0
|
||||
: command.ValueAddedTaxStr.MoneyToDouble();
|
||||
var contractAmountStr = command.ContractAmountString.ToDoubleMoney();
|
||||
var contractAmount = Convert.ToDouble(contractAmountStr);
|
||||
var DailyCompenseationStr = command.DailyCompenseationString.ToDoubleMoney();
|
||||
var dailyCompenseation = Convert.ToDouble(DailyCompenseationStr);
|
||||
var ObligationStr = command.ObligationString.ToDoubleMoney();
|
||||
var obligation = Convert.ToDouble(ObligationStr);
|
||||
var TotalAmountStr = command.TotalAmountString.ToDoubleMoney();
|
||||
var totalAmount = Convert.ToDouble(TotalAmountStr);
|
||||
//var hasValueAddedTax = "false";
|
||||
//double valueAddedTax = 0;
|
||||
//if (command.HasValueAddedTax == "true")
|
||||
//{
|
||||
// hasValueAddedTax = "true";
|
||||
// valueAddedTax = command.ContractAmount * 0.1;
|
||||
// command.ContractAmount += valueAddedTax;
|
||||
//}
|
||||
|
||||
var createContract = new InstitutionContract(contractNo, command.RepresentativeId, representative,
|
||||
command.ContractingPartyId,
|
||||
contractingPartyName, contractDateGr, command.ContractDateFa, command.State, command.City,
|
||||
command.Address, contractStartGr,
|
||||
command.ContractStartFa, contractEndGr, command.ContractEndFa, contractAmount,
|
||||
dailyCompenseation, obligation,
|
||||
totalAmount, 0, command.WorkshopManualCount, command.EmployeeManualCount, command.Description,
|
||||
command.OfficialCompany, command.TypeOfContract, command.HasValueAddedTax, valueAddedTax);
|
||||
|
||||
_institutionContractRepository.Create(createContract);
|
||||
_institutionContractRepository.SaveChanges();
|
||||
return opration.Succcedded(createContract.id);
|
||||
}
|
||||
|
||||
public async Task<OperationResult> EditAsync(EditInstitutionContractRequest command)
|
||||
{
|
||||
bool dateMessages = false;
|
||||
string dateMaessageResult = String.Empty;
|
||||
var opration = new OperationResult();
|
||||
var ContractEdit = _institutionContractRepository.Get(command.Id);
|
||||
if (ContractEdit == null)
|
||||
opration.Failed("رکورد مورد نظر وجود ندارد");
|
||||
|
||||
var contractStartGr = command.ContractStartFa.ToGeorgianDateTime();
|
||||
var contractEndGr = command.ContractEndFa.ToGeorgianDateTime();
|
||||
|
||||
var contractDateGr = command.ContractDateFa.ToGeorgianDateTime();
|
||||
|
||||
if (_institutionContractRepository.Exists(x =>
|
||||
x.ContractingPartyId == ContractEdit.ContractingPartyId &&
|
||||
((contractStartGr >= x.ContractStartGr && contractStartGr <= x.ContractEndGr) ||
|
||||
(contractEndGr >= x.ContractStartGr && contractEndGr <= x.ContractEndGr)) && x.id != command.Id &&
|
||||
x.TypeOfContract == command.TypeOfContract))
|
||||
return opration.Failed("در بازه تاریخ وارد شده قرارداد دیگری وجود دارد");
|
||||
//if (_institutionContractRepository.Exists(x =>
|
||||
// x.ContractingPartyId == ContractEdit.ContractingPartyId && (x.ContractStartGr <= contractDateGr || x.ContractDateGr <= contractDateGr) && x.id != command.Id))
|
||||
// return opration.Failed("تاریخ عقد قرارداد با قرارداد دیگری تداخل دارد");
|
||||
if (string.IsNullOrWhiteSpace(command.ContractDateFa))
|
||||
{
|
||||
dateMaessageResult = "تاریخ قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractStartFa))
|
||||
{
|
||||
dateMaessageResult += "تاریخ شروع قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractEndFa))
|
||||
{
|
||||
dateMaessageResult += "تاریخ پایان قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (dateMessages)
|
||||
return opration.Failed(dateMaessageResult);
|
||||
if (command.Address != null && command.State == null)
|
||||
{
|
||||
return opration.Failed("لطفا استان و شهر را انتخاب کنید");
|
||||
}
|
||||
|
||||
if ((command.Address != null && command.State != null) && command.City == "شهرستان")
|
||||
{
|
||||
return opration.Failed("لطفا شهر را انتخاب کنید");
|
||||
}
|
||||
|
||||
if (command.Address == null && command.State != null)
|
||||
{
|
||||
return opration.Failed("لطفا آدرس را وارد کنید");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.OfficialCompany))
|
||||
return opration.Failed("رسمی یا غیر رسمی بودن پرداخت را مشخص کنید");
|
||||
if (command.OfficialCompany == "Official" && string.IsNullOrWhiteSpace(command.HasValueAddedTax))
|
||||
return opration.Failed("وضعیت ارزش افزوده را مشخص کنید");
|
||||
if (string.IsNullOrWhiteSpace(command.TypeOfContract))
|
||||
return opration.Failed("عنوان قرارداد را انتخاب کنید");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractAmountString))
|
||||
command.ContractAmountString = "0";
|
||||
if (string.IsNullOrWhiteSpace(command.DailyCompenseationString))
|
||||
command.DailyCompenseationString = "0";
|
||||
if (string.IsNullOrWhiteSpace(command.ObligationString))
|
||||
command.ObligationString = "0";
|
||||
if (string.IsNullOrWhiteSpace(command.TotalAmountString))
|
||||
command.TotalAmountString = "0";
|
||||
|
||||
var valueAddedTax = command.ValueAddedTaxStr.MoneyToDouble();
|
||||
var contractAmountStr = command.ContractAmountString.ToDoubleMoney();
|
||||
var contractAmount = Convert.ToDouble(contractAmountStr);
|
||||
var DailyCompenseationStr = command.DailyCompenseationString.ToDoubleMoney();
|
||||
var dailyCompenseation = Convert.ToDouble(DailyCompenseationStr);
|
||||
var ObligationStr = command.ObligationString.ToDoubleMoney();
|
||||
var obligation = Convert.ToDouble(ObligationStr);
|
||||
var TotalAmountStr = command.TotalAmountString.ToDoubleMoney();
|
||||
var totalAmount = Convert.ToDouble(TotalAmountStr);
|
||||
|
||||
ContractEdit.Edit(contractDateGr, command.ContractDateFa, command.State, command.City, command.Address,
|
||||
contractStartGr,
|
||||
command.ContractStartFa, contractEndGr, command.ContractEndFa, contractAmount,
|
||||
dailyCompenseation,
|
||||
obligation, totalAmount, command.WorkshopManualCount, command.EmployeeManualCount,
|
||||
command.Description, command.OfficialCompany, command.TypeOfContract, valueAddedTax,
|
||||
command.HasValueAddedTax);
|
||||
await _institutionContractRepository.SaveChangesAsync();
|
||||
return opration.Succcedded(command.Id);
|
||||
}
|
||||
|
||||
public async Task<OperationResult> ExtensionَAsync(CreateInstitutionContractRequest command)
|
||||
{
|
||||
bool dateMessages = false;
|
||||
string dateMaessageResult = String.Empty;
|
||||
var opration = new OperationResult();
|
||||
|
||||
command.ExtensionNo += 1;
|
||||
if (_institutionContractRepository.Exists(x =>
|
||||
x.ExtensionNo == command.ExtensionNo && x.ContractingPartyId == command.ContractingPartyId &&
|
||||
x.TypeOfContract == command.TypeOfContract))
|
||||
return opration.Failed("برای این قرارداد قبلا تمدید ایجاد شده است");
|
||||
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractDateFa))
|
||||
{
|
||||
dateMaessageResult = "تاریخ قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractStartFa))
|
||||
{
|
||||
dateMaessageResult += "تاریخ شروع قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.ContractEndFa))
|
||||
{
|
||||
dateMaessageResult += "تاریخ پایان قراراداد اجباری است. ";
|
||||
dateMessages = true;
|
||||
}
|
||||
|
||||
if (dateMessages)
|
||||
return opration.Failed(dateMaessageResult);
|
||||
|
||||
var firstContract =
|
||||
_institutionContractRepository.GetFirstContract(command.ContractingPartyId, command.TypeOfContract);
|
||||
|
||||
var syear = firstContract.ContractStartFa.Substring(0, 4);
|
||||
var smonth = firstContract.ContractStartFa.Substring(5, 2);
|
||||
var sday = firstContract.ContractStartFa.Substring(8, 2);
|
||||
var contractingParty = _contractingPartyRepository.GetDetails(command.ContractingPartyId);
|
||||
//شماره قرارداد
|
||||
var contractNo = $"{syear}{smonth}{sday}/{contractingParty.ArchiveCode}/{command.ExtensionNo}";
|
||||
|
||||
|
||||
var contractStartGr = command.ContractStartFa.ToGeorgianDateTime();
|
||||
var contractEndGr = command.ContractEndFa.ToGeorgianDateTime();
|
||||
|
||||
var contractDateGr = command.ContractDateFa.ToGeorgianDateTime();
|
||||
if (_institutionContractRepository.Exists(x =>
|
||||
((contractStartGr >= x.ContractStartGr && contractStartGr <= x.ContractEndGr) ||
|
||||
(contractEndGr >= x.ContractStartGr && contractEndGr <= x.ContractEndGr)) &&
|
||||
x.TypeOfContract == command.TypeOfContract && x.ContractingPartyId == command.ContractingPartyId))
|
||||
return opration.Failed("تاریخ شروع و پایان وارد شده با قرارداد دیگری تداخل دارد");
|
||||
if (command.Address != null && command.State == null)
|
||||
{
|
||||
return opration.Failed("لطفا استان و شهر را انتخاب کنید");
|
||||
}
|
||||
|
||||
if ((command.Address != null && command.State != null) && command.City == "شهرستان")
|
||||
{
|
||||
return opration.Failed("لطفا شهر را انتخاب کنید");
|
||||
}
|
||||
|
||||
if (command.Address == null && command.State != null)
|
||||
{
|
||||
return opration.Failed("لطفا آدرس را وارد کنید");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.OfficialCompany))
|
||||
return opration.Failed("رسمی یا غیر رسمی بودن پرداخت را مشخص کنید");
|
||||
if (command.OfficialCompany == "Official" && string.IsNullOrWhiteSpace(command.HasValueAddedTax))
|
||||
return opration.Failed("وضعیت ارزش افزوده را مشخص کنید");
|
||||
if (string.IsNullOrWhiteSpace(command.TypeOfContract))
|
||||
return opration.Failed("عنوان قرارداد را انتخاب کنید");
|
||||
if (string.IsNullOrWhiteSpace(command.ContractAmountString))
|
||||
command.ContractAmountString = "0";
|
||||
if (string.IsNullOrWhiteSpace(command.DailyCompenseationString))
|
||||
command.DailyCompenseationString = "0";
|
||||
if (string.IsNullOrWhiteSpace(command.ObligationString))
|
||||
command.ObligationString = "0";
|
||||
if (string.IsNullOrWhiteSpace(command.TotalAmountString))
|
||||
command.TotalAmountString = "0";
|
||||
var valueAddedTax = string.IsNullOrWhiteSpace(command.ValueAddedTaxStr)
|
||||
? 0
|
||||
: command.ValueAddedTaxStr.MoneyToDouble();
|
||||
var contractAmountStr = command.ContractAmountString.ToDoubleMoney();
|
||||
var contractAmount = Convert.ToDouble(contractAmountStr);
|
||||
var DailyCompenseationStr = command.DailyCompenseationString.ToDoubleMoney();
|
||||
var dailyCompenseation = Convert.ToDouble(DailyCompenseationStr);
|
||||
var ObligationStr = command.ObligationString.ToDoubleMoney();
|
||||
var obligation = Convert.ToDouble(ObligationStr);
|
||||
var TotalAmountStr = command.TotalAmountString.ToDoubleMoney();
|
||||
var totalAmount = Convert.ToDouble(TotalAmountStr);
|
||||
var contractingPartyName = contractingParty.LName;
|
||||
var representative = _representativeRepository.GetDetails(command.RepresentativeId).FullName;
|
||||
|
||||
var createContract = new InstitutionContract(contractNo, command.RepresentativeId, representative,
|
||||
command.ContractingPartyId,
|
||||
contractingPartyName, contractDateGr, command.ContractDateFa, command.State, command.City,
|
||||
command.Address, contractStartGr,
|
||||
command.ContractStartFa, contractEndGr, command.ContractEndFa, contractAmount,
|
||||
dailyCompenseation, obligation,
|
||||
totalAmount, command.ExtensionNo, command.WorkshopManualCount, command.EmployeeManualCount,
|
||||
command.Description, command.OfficialCompany, command.TypeOfContract, command.HasValueAddedTax,
|
||||
valueAddedTax);
|
||||
|
||||
_institutionContractRepository.Create(createContract);
|
||||
_institutionContractRepository.SaveChanges();
|
||||
|
||||
|
||||
|
||||
return opration.Succcedded(createContract.id);
|
||||
}
|
||||
}
|
||||
|
||||
#region CustomViewModels
|
||||
|
||||
@@ -883,7 +1262,7 @@ public class WorkshopsAndEmployeeViewModel
|
||||
{
|
||||
public List<WorkshopViewModel> WorkshopViewModels { get; set; }
|
||||
public string WorkshopCount { get; set; }
|
||||
public string EmployeeCount { get; set;}
|
||||
public string EmployeeCount { get; set; }
|
||||
public int ArchiveCode { get; set; }
|
||||
}
|
||||
|
||||
|
||||
208
CompanyManagment.Application/PaymentInstrumentApplication.cs
Normal file
208
CompanyManagment.Application/PaymentInstrumentApplication.cs
Normal file
@@ -0,0 +1,208 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using Company.Domain.PaymentInstrumentAgg;
|
||||
using CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
|
||||
namespace CompanyManagment.Application;
|
||||
|
||||
public class PaymentInstrumentApplication:IPaymentInstrumentApplication
|
||||
{
|
||||
private readonly IPaymentInstrumentRepository _paymentInstrumentRepository;
|
||||
private readonly IPaymentInstrumentGroupRepository _paymentInstrumentGroupRepository;
|
||||
|
||||
public PaymentInstrumentApplication(IPaymentInstrumentRepository paymentInstrumentRepository,
|
||||
IPaymentInstrumentGroupRepository paymentInstrumentGroupRepository)
|
||||
{
|
||||
_paymentInstrumentRepository = paymentInstrumentRepository;
|
||||
_paymentInstrumentGroupRepository = paymentInstrumentGroupRepository;
|
||||
}
|
||||
|
||||
public async Task<OperationResult> CreateBankAccount(CreateBankPaymentInstrument command)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
if (command.IsAuth)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(command.AccountNumber))
|
||||
{
|
||||
return op.Failed("شماره حساب نمیتواند خالی باشد");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.IBan))
|
||||
{
|
||||
return op.Failed("شماره شبا نمیتواند خالی باشد");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.CardNumber))
|
||||
{
|
||||
return op.Failed("شماره کارت نمیتواند خالی باشد");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.AccountHolderName))
|
||||
{
|
||||
return op.Failed("نام صاحب حساب نمیتواند خالی باشد");
|
||||
}
|
||||
}
|
||||
var entity = PaymentInstrument.CreateBankAccount(command.CardNumber, command.AccountHolderName, command.AccountNumber,
|
||||
command.IBan, command.IsAuth,command.PaymentInstrumentGroupId);
|
||||
await _paymentInstrumentRepository.CreateAsync(entity);
|
||||
await _paymentInstrumentRepository.SaveChangesAsync();
|
||||
return op.Succcedded();
|
||||
|
||||
}
|
||||
|
||||
public async Task<OperationResult> CreateBankAccount(List<CreateBankPaymentInstrument> commands)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
foreach (var command in commands)
|
||||
{
|
||||
if (command.IsAuth)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(command.AccountNumber))
|
||||
{
|
||||
return op.Failed("شماره حساب نمیتواند خالی باشد");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.IBan))
|
||||
{
|
||||
return op.Failed("شماره شبا نمیتواند خالی باشد");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.CardNumber))
|
||||
{
|
||||
return op.Failed("شماره کارت نمیتواند خالی باشد");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(command.AccountHolderName))
|
||||
{
|
||||
return op.Failed("نام صاحب حساب نمیتواند خالی باشد");
|
||||
}
|
||||
}
|
||||
var entity = PaymentInstrument.CreateBankAccount(command.CardNumber, command.AccountHolderName, command.AccountNumber,
|
||||
command.IBan, command.IsAuth,command.PaymentInstrumentGroupId);
|
||||
await _paymentInstrumentRepository.CreateAsync(entity);
|
||||
}
|
||||
await _paymentInstrumentRepository.SaveChangesAsync();
|
||||
return op.Succcedded();
|
||||
}
|
||||
|
||||
public async Task<OperationResult> CreatePos(CreatePosPaymentInstrument command)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
if (string.IsNullOrWhiteSpace(command.PosTerminalId))
|
||||
{
|
||||
return op.Failed("شناسه دستگاه یوزر نمیتواند خالی باشد");
|
||||
}
|
||||
|
||||
var entity = PaymentInstrument.CreatePosType(command.PosTerminalId, command.Description,command.PaymentInstrumentGroupId);
|
||||
await _paymentInstrumentRepository.CreateAsync(entity);
|
||||
await _paymentInstrumentRepository.SaveChangesAsync();
|
||||
return op.Succcedded();
|
||||
}
|
||||
|
||||
public async Task<OperationResult> CreatePos(List<CreatePosPaymentInstrument> commands)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
foreach (var command in commands)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(command.PosTerminalId))
|
||||
{
|
||||
return op.Failed("شناسه دستگاه یوزر نمیتواند خالی باشد");
|
||||
}
|
||||
|
||||
var entity = PaymentInstrument.CreatePosType(command.PosTerminalId, command.Description,command.PaymentInstrumentGroupId);
|
||||
await _paymentInstrumentRepository.CreateAsync(entity);
|
||||
}
|
||||
|
||||
await _paymentInstrumentRepository.SaveChangesAsync();
|
||||
return op.Succcedded();
|
||||
}
|
||||
|
||||
public async Task<GetPaymentInstrumentListViewModel> GetList(PaymentInstrumentSearchModel searchModel)
|
||||
{
|
||||
return await _paymentInstrumentRepository.GetList(searchModel);
|
||||
}
|
||||
|
||||
public async Task<OperationResult> CreateGroup(CreateBankPaymentInstrumentGroup command)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
if (string.IsNullOrWhiteSpace(command.Name))
|
||||
{
|
||||
return op.Failed("لطفا عنوان خودرا وارد کنید");
|
||||
}
|
||||
|
||||
var instrumentGroup = new PaymentInstrumentGroup(command.Name);
|
||||
await _paymentInstrumentGroupRepository.CreateAsync(instrumentGroup);
|
||||
await _paymentInstrumentGroupRepository.SaveChangesAsync();
|
||||
return op.Succcedded();
|
||||
}
|
||||
|
||||
public async Task<OperationResult> EditGroup(EditBankPaymentInstrumentGroup command)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
if (string.IsNullOrWhiteSpace(command.Name))
|
||||
{
|
||||
return op.Failed("لطفا عنوان خودرا وارد کنید");
|
||||
}
|
||||
|
||||
var paymentInstrumentGroup = _paymentInstrumentGroupRepository.Get(command.Id);
|
||||
if (paymentInstrumentGroup == null)
|
||||
{
|
||||
return op.Failed("عنوان مورد نظر یافت نشد");
|
||||
}
|
||||
paymentInstrumentGroup.Edit(command.Name);
|
||||
await _paymentInstrumentGroupRepository.SaveChangesAsync();
|
||||
return op.Succcedded();
|
||||
}
|
||||
|
||||
public async Task<OperationResult> DeleteGroup(long id)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
|
||||
var paymentInstrumentGroup = _paymentInstrumentGroupRepository.Get(id);
|
||||
if (paymentInstrumentGroup == null)
|
||||
{
|
||||
return op.Failed("عنوان مورد نظر یافت نشد");
|
||||
}
|
||||
|
||||
paymentInstrumentGroup.DeActive();
|
||||
await _paymentInstrumentGroupRepository.SaveChangesAsync();
|
||||
return op.Succcedded();
|
||||
}
|
||||
|
||||
public async Task<List<PaymentInstrumentGroupsViewModel>> GetGroup()
|
||||
{
|
||||
return await _paymentInstrumentGroupRepository.GetList();
|
||||
}
|
||||
|
||||
public async Task<List<PosTerminalSelectListViewModel>> GetPosTerminalSelectList(string search)
|
||||
{
|
||||
return await _paymentInstrumentRepository.GetPosTerminalSelectList(search);
|
||||
}
|
||||
|
||||
public async Task<List<string>> PosTerminalIdSelectList(string search, string selected)
|
||||
{
|
||||
return await _paymentInstrumentRepository.PosTerminalIdSelectList(search, selected);
|
||||
}
|
||||
|
||||
public async Task<List<string>> IbanSelectList(string search, string selected)
|
||||
{
|
||||
return await _paymentInstrumentRepository.IbanSelectList(search, selected);
|
||||
}
|
||||
|
||||
public async Task<List<string>> AccountNumberSelectList(string search, string selected)
|
||||
{
|
||||
return await _paymentInstrumentRepository.AccountNumberSelectList(search, selected);
|
||||
}
|
||||
|
||||
public async Task<List<string>> CardNumberSelectList(string search, string selected)
|
||||
{
|
||||
return await _paymentInstrumentRepository.CardNumberSelectList(search, selected);
|
||||
}
|
||||
|
||||
public async Task<List<string>> AccountHolderNameSelectList(string search, string selected)
|
||||
{
|
||||
return await _paymentInstrumentRepository.AccountHolderNameSelectList(search, selected);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,8 +122,9 @@ public class SalaryAidApplication : ISalaryAidApplication
|
||||
|
||||
if (customizeCheckouts != null)
|
||||
{
|
||||
// customizeCheckouts.SetHasAmountConflict(true);
|
||||
var salaryAids = customizeCheckouts.CustomizeCheckoutSalaryAids.ToList();
|
||||
|
||||
|
||||
salaryAids.Add(new(entity.Amount.ToMoney(), entity.SalaryAidDateTime,
|
||||
entity.SalaryAidDateTime.ToFarsi(), entity.CalculationDate, entity.CalculationDate.ToFarsi(),
|
||||
entity.id));
|
||||
@@ -138,14 +139,24 @@ public class SalaryAidApplication : ISalaryAidApplication
|
||||
|
||||
if (customizeCheckoutTemp != null)
|
||||
{
|
||||
// customizeCheckoutTemp.SetHasAmountConflict(true);
|
||||
var salaryAids = customizeCheckoutTemp.CustomizeCheckoutSalaryAids.ToList();
|
||||
|
||||
|
||||
salaryAids.Add(new(entity.Amount.ToMoney(), entity.SalaryAidDateTime,
|
||||
entity.SalaryAidDateTime.ToFarsi(), entity.CalculationDate, entity.CalculationDate.ToFarsi(),
|
||||
entity.id));
|
||||
customizeCheckoutTemp.SetSalaryAids(salaryAids);
|
||||
}
|
||||
}
|
||||
|
||||
if (existsCheckouts.Checkout)
|
||||
{
|
||||
var checkouts = _checkoutRepository.GetByWorkshopIdEmployeeIdInDate(
|
||||
command.WorkshopId, employeeId, calculationDateGr).GetAwaiter().GetResult();
|
||||
|
||||
checkouts?.SetAmountConflict(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
_customizeCheckoutRepository.SaveChanges();
|
||||
@@ -219,6 +230,7 @@ public class SalaryAidApplication : ISalaryAidApplication
|
||||
var customizeCheckouts = _customizeCheckoutRepository.GetByWorkshopIdEmployeeIdMonthYear(
|
||||
entity.WorkshopId, entity.EmployeeId,
|
||||
year, month).GetAwaiter().GetResult();
|
||||
// customizeCheckouts?.SetHasAmountConflict(true);
|
||||
|
||||
var salaryAids = customizeCheckouts.CustomizeCheckoutSalaryAids.ToList();
|
||||
|
||||
@@ -239,6 +251,8 @@ public class SalaryAidApplication : ISalaryAidApplication
|
||||
var customizeCheckoutTemp = _customizeCheckoutTempRepository.GetByWorkshopIdEmployeeIdInDate(
|
||||
entity.WorkshopId, entity.EmployeeId, calculationDateGr).GetAwaiter().GetResult();
|
||||
|
||||
// customizeCheckoutTemp?.SetHasAmountConflict(true);
|
||||
|
||||
var salaryAids = customizeCheckoutTemp.CustomizeCheckoutSalaryAids.ToList();
|
||||
|
||||
var existsSalaryAid = salaryAids.FirstOrDefault(x => x.EntityId == entity.id);
|
||||
@@ -252,6 +266,13 @@ public class SalaryAidApplication : ISalaryAidApplication
|
||||
|
||||
customizeCheckoutTemp.SetSalaryAids(salaryAids);
|
||||
}
|
||||
if (existsCheckouts.Checkout)
|
||||
{
|
||||
var checkouts = _checkoutRepository.GetByWorkshopIdEmployeeIdInDate(
|
||||
command.WorkshopId, entity.EmployeeId, calculationDateGr).GetAwaiter().GetResult();
|
||||
|
||||
checkouts?.SetAmountConflict(true);
|
||||
}
|
||||
|
||||
_customizeCheckoutRepository.SaveChanges();
|
||||
transaction.Complete();
|
||||
@@ -378,10 +399,12 @@ public class SalaryAidApplication : ISalaryAidApplication
|
||||
command.WorkshopId, employeeId,
|
||||
year, month).GetAwaiter().GetResult();
|
||||
|
||||
// customizeCheckouts?.SetHasAmountConflict(true);
|
||||
|
||||
if (customizeCheckouts != null)
|
||||
{
|
||||
var salaryAids = customizeCheckouts.CustomizeCheckoutSalaryAids.ToList();
|
||||
|
||||
|
||||
salaryAids.Add(new(entity.Amount.ToMoney(), entity.SalaryAidDateTime,
|
||||
entity.SalaryAidDateTime.ToFarsi(), entity.CalculationDate,
|
||||
entity.CalculationDate.ToFarsi(), entity.id));
|
||||
@@ -394,16 +417,24 @@ public class SalaryAidApplication : ISalaryAidApplication
|
||||
var customizeCheckoutTemp = _customizeCheckoutTempRepository.GetByWorkshopIdEmployeeIdInDate(
|
||||
command.WorkshopId, employeeId, calculationDateGr).GetAwaiter().GetResult();
|
||||
|
||||
// customizeCheckoutTemp?.SetHasAmountConflict(true);
|
||||
if (customizeCheckoutTemp != null)
|
||||
{
|
||||
var salaryAids = customizeCheckoutTemp.CustomizeCheckoutSalaryAids.ToList();
|
||||
|
||||
|
||||
salaryAids.Add(new(entity.Amount.ToMoney(), entity.SalaryAidDateTime,
|
||||
entity.SalaryAidDateTime.ToFarsi(), entity.CalculationDate,
|
||||
entity.CalculationDate.ToFarsi(), entity.id));
|
||||
customizeCheckoutTemp.SetSalaryAids(salaryAids);
|
||||
}
|
||||
}
|
||||
if (existsCheckouts.Checkout)
|
||||
{
|
||||
var checkouts = _checkoutRepository.GetByWorkshopIdEmployeeIdInDate(
|
||||
command.WorkshopId, employeeId, calculationDateGr).GetAwaiter().GetResult();
|
||||
|
||||
checkouts?.SetAmountConflict(true);
|
||||
}
|
||||
}
|
||||
|
||||
await _customizeCheckoutRepository.SaveChangesAsync();
|
||||
@@ -424,4 +455,5 @@ public class SalaryAidApplication : ISalaryAidApplication
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -77,6 +77,7 @@ using Company.Domain.MasterWorkHistory;
|
||||
using Company.Domain.ModuleAgg;
|
||||
using Company.Domain.ModuleTextManagerAgg;
|
||||
using Company.Domain.OriginalTitleAgg;
|
||||
using Company.Domain.PaymentInstrumentAgg;
|
||||
using Company.Domain.PaymentToEmployeeAgg;
|
||||
using Company.Domain.PaymentToEmployeeItemAgg;
|
||||
using Company.Domain.PaymentTransactionAgg;
|
||||
@@ -132,7 +133,9 @@ public class CompanyContext : DbContext
|
||||
public DbSet<EntityModule> EntityModules { get; set; }
|
||||
public DbSet<EntityModuleTextManager> EntityModuleTextManagers { get; set; }
|
||||
public DbSet<EntityBill> EntityBills { get; set; }
|
||||
|
||||
public DbSet<EntityContact> EntityContacts { get; set; }
|
||||
|
||||
//---------Files------------------------------
|
||||
public DbSet<Board> Boards { get; set; }
|
||||
public DbSet<BoardType> BoardTypes { get; set; }
|
||||
@@ -149,6 +152,7 @@ public class CompanyContext : DbContext
|
||||
public DbSet<FileTitle> FileTitles { get; set; }
|
||||
public DbSet<FileTiming> FileTimings { get; set; }
|
||||
public DbSet<FileState> FileStates { get; set; }
|
||||
|
||||
public DbSet<FileAlert> FileAlerts { get; set; }
|
||||
//-------Task Manager----------------------------
|
||||
//public DbSet<Task> Tasks { get; set; }
|
||||
@@ -184,9 +188,13 @@ public class CompanyContext : DbContext
|
||||
|
||||
public DbSet<EmployeeAuthorizeTemp> EmployeeAuthorizeTemps { get; set; }
|
||||
public DbSet<AdminMonthlyOverview> AdminMonthlyOverviews { get; set; }
|
||||
public DbSet<PaymentTransaction> PaymentTransactions{ get; set; }
|
||||
public DbSet<PaymentTransaction> PaymentTransactions { get; set; }
|
||||
|
||||
public DbSet<ContractingPartyBankAccount> ContractingPartyBankAccounts { get; set; }
|
||||
|
||||
public DbSet<PaymentInstrument> PaymentInstruments { get; set; }
|
||||
public DbSet<PaymentInstrumentGroup> PaymentInstrumentGroups { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Pooya
|
||||
@@ -209,7 +217,9 @@ public class CompanyContext : DbContext
|
||||
public DbSet<WorkshopTemp> WorkshopTemps { get; set; }
|
||||
public DbSet<WorkshopServicesTemp> WorkshopServicesTemps { get; set; }
|
||||
public DbSet<InstitutionContractTemp> InstitutionContractTemps { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
public DbSet<CustomizeCheckout> CustomizeCheckouts { get; set; }
|
||||
public DbSet<CustomizeCheckoutTemp> CustomizeCheckoutTemps { get; set; }
|
||||
public DbSet<TaxLeftWorkItem> TaxLeftWorkItems { get; set; }
|
||||
@@ -251,7 +261,7 @@ public class CompanyContext : DbContext
|
||||
|
||||
public DbSet<DateSalary> DateSalaries { get; set; }
|
||||
public DbSet<DateSalaryItem> DateSalaryItems { get; set; }
|
||||
|
||||
|
||||
public DbSet<Percentage> Percentages { get; set; }
|
||||
public DbSet<InsuranceJobItem> InsuranceJobItems { get; set; }
|
||||
public DbSet<InsuranceJob> InsuranceJobs { get; set; }
|
||||
@@ -269,14 +279,14 @@ public class CompanyContext : DbContext
|
||||
public DbSet<WorkingHours> WorkingHoursSet { get; set; }
|
||||
public DbSet<HolidayItem> HolidayItems { get; set; }
|
||||
public DbSet<Holiday> Holidays { get; set; }
|
||||
public DbSet<MandatoryHours> MandatoryHoursDbSet { get; set; }
|
||||
public DbSet<MandatoryHours> MandatoryHoursDbSet { get; set; }
|
||||
public DbSet<WorkshopEmployer> WorkshopEmployers { get; set; }
|
||||
public DbSet<Job> Jobs { get; set; }
|
||||
public DbSet<Job> Jobs { get; set; }
|
||||
public DbSet<Contract> Contracts { get; set; }
|
||||
public DbSet<YearlySalaryTitle> YearlySalaryTitles { get; set; }
|
||||
public DbSet<YearlySalaryItem> YearlySalaryItems { get; set; }
|
||||
public DbSet<YearlySalary> YearlySalaries { get; set; }
|
||||
public DbSet<EmployeeChildren> EmployeeChildrenSet { get; set; }
|
||||
public DbSet<EmployeeChildren> EmployeeChildrenSet { get; set; }
|
||||
public DbSet<Employee> Employees { get; set; }
|
||||
public DbSet<Workshop> Workshops { get; set; }
|
||||
public DbSet<PersonalContractingParty> PersonalContractingParties { get; set; }
|
||||
@@ -291,17 +301,15 @@ public class CompanyContext : DbContext
|
||||
public DbSet<Employer> Employers { get; set; }
|
||||
|
||||
|
||||
public CompanyContext(DbContextOptions<CompanyContext> options) :base(options)
|
||||
public CompanyContext(DbContextOptions<CompanyContext> options) : base(options)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
public CompanyContext()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
@@ -309,6 +317,5 @@ public class CompanyContext : DbContext
|
||||
modelBuilder.ApplyConfigurationsFromAssembly(assembly);
|
||||
modelBuilder.Entity<RollCall>().HasQueryFilter(x => x.RollCallModifyType != RollCallModifyType.Undefined);
|
||||
base.OnModelCreating(modelBuilder);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using Company.Domain.PaymentInstrumentAgg;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using OfficeOpenXml.Drawing.Chart;
|
||||
|
||||
namespace CompanyManagment.EFCore.Mapping;
|
||||
|
||||
public class PaymentInstrumentGroupMapping:IEntityTypeConfiguration<PaymentInstrumentGroup>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<PaymentInstrumentGroup> builder)
|
||||
{
|
||||
builder.HasKey(x => x.id);
|
||||
builder.Property(x => x.Name).IsRequired().HasMaxLength(120);
|
||||
builder.HasMany(x => x.PaymentInstruments)
|
||||
.WithOne(x=>x.PaymentInstrumentGroup)
|
||||
.HasForeignKey(x=>x.PaymentInstrumentGroupId);
|
||||
|
||||
}
|
||||
}
|
||||
24
CompanyManagment.EFCore/Mapping/PaymentInstrumentMapping.cs
Normal file
24
CompanyManagment.EFCore/Mapping/PaymentInstrumentMapping.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Company.Domain.PaymentInstrumentAgg;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
|
||||
namespace CompanyManagment.EFCore.Mapping;
|
||||
|
||||
public class PaymentInstrumentMapping : IEntityTypeConfiguration<PaymentInstrument>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<PaymentInstrument> builder)
|
||||
{
|
||||
builder.HasKey(x => x.id);
|
||||
|
||||
builder.Property(x => x.AccountHolderName).HasMaxLength(50);
|
||||
builder.Property(x => x.AccountNumber).HasMaxLength(25);
|
||||
builder.Property(x => x.PosTerminalId).HasMaxLength(25);
|
||||
builder.Property(x => x.Description).HasMaxLength(200);
|
||||
builder.Property(x => x.Type).HasConversion<string>().HasMaxLength(50);
|
||||
builder.Property(x => x.CardNumber).HasMaxLength(50);
|
||||
builder.Property(x => x.IBan).HasMaxLength(50);
|
||||
builder.HasOne(x => x.PaymentInstrumentGroup)
|
||||
.WithMany(x => x.PaymentInstruments)
|
||||
.HasForeignKey(x => x.PaymentInstrumentGroupId);
|
||||
}
|
||||
}
|
||||
10200
CompanyManagment.EFCore/Migrations/20250730125439_create payment instruments and its groups.Designer.cs
generated
Normal file
10200
CompanyManagment.EFCore/Migrations/20250730125439_create payment instruments and its groups.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,72 @@
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace CompanyManagment.EFCore.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class createpaymentinstrumentsanditsgroups : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.CreateTable(
|
||||
name: "PaymentInstrumentGroups",
|
||||
columns: table => new
|
||||
{
|
||||
id = table.Column<long>(type: "bigint", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
Name = table.Column<string>(type: "nvarchar(120)", maxLength: 120, nullable: false),
|
||||
CreationDate = table.Column<DateTime>(type: "datetime2", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_PaymentInstrumentGroups", x => x.id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "PaymentInstruments",
|
||||
columns: table => new
|
||||
{
|
||||
id = table.Column<long>(type: "bigint", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
CardNumber = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
|
||||
AccountHolderName = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
|
||||
AccountNumber = table.Column<string>(type: "nvarchar(25)", maxLength: 25, nullable: true),
|
||||
IBan = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
|
||||
PosTerminalId = table.Column<string>(type: "nvarchar(25)", maxLength: 25, nullable: true),
|
||||
Description = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true),
|
||||
Type = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||
IsAuth = table.Column<bool>(type: "bit", nullable: false),
|
||||
PaymentInstrumentGroupId = table.Column<long>(type: "bigint", nullable: false),
|
||||
CreationDate = table.Column<DateTime>(type: "datetime2", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_PaymentInstruments", x => x.id);
|
||||
table.ForeignKey(
|
||||
name: "FK_PaymentInstruments_PaymentInstrumentGroups_PaymentInstrumentGroupId",
|
||||
column: x => x.PaymentInstrumentGroupId,
|
||||
principalTable: "PaymentInstrumentGroups",
|
||||
principalColumn: "id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_PaymentInstruments_PaymentInstrumentGroupId",
|
||||
table: "PaymentInstruments",
|
||||
column: "PaymentInstrumentGroupId");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "PaymentInstruments");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "PaymentInstrumentGroups");
|
||||
}
|
||||
}
|
||||
}
|
||||
10113
CompanyManagment.EFCore/Migrations/20250805072144_Add ConflictAmount to chekcout.Designer.cs
generated
Normal file
10113
CompanyManagment.EFCore/Migrations/20250805072144_Add ConflictAmount to chekcout.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,29 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace CompanyManagment.EFCore.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class AddConflictAmounttochekcout : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<bool>(
|
||||
name: "HasAmountConflict",
|
||||
table: "Checkouts",
|
||||
type: "bit",
|
||||
nullable: false,
|
||||
defaultValue: false);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "HasAmountConflict",
|
||||
table: "Checkouts");
|
||||
}
|
||||
}
|
||||
}
|
||||
10203
CompanyManagment.EFCore/Migrations/20250805123156_Add PaymentInstrument Group IsActive.Designer.cs
generated
Normal file
10203
CompanyManagment.EFCore/Migrations/20250805123156_Add PaymentInstrument Group IsActive.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,29 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace CompanyManagment.EFCore.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class AddPaymentInstrumentGroupIsActive : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<int>(
|
||||
name: "IsActive",
|
||||
table: "PaymentInstrumentGroups",
|
||||
type: "int",
|
||||
nullable: false,
|
||||
defaultValue: 0);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "IsActive",
|
||||
table: "PaymentInstrumentGroups");
|
||||
}
|
||||
}
|
||||
}
|
||||
10212
CompanyManagment.EFCore/Migrations/20250812071715_Add has conflict amount to checkout.Designer.cs
generated
Normal file
10212
CompanyManagment.EFCore/Migrations/20250812071715_Add has conflict amount to checkout.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,40 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace CompanyManagment.EFCore.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class Addhasconflictamounttocheckout : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<bool>(
|
||||
name: "HasAmountConflict",
|
||||
table: "CustomizeCheckoutTemps",
|
||||
type: "bit",
|
||||
nullable: false,
|
||||
defaultValue: false);
|
||||
|
||||
migrationBuilder.AddColumn<bool>(
|
||||
name: "HasAmountConflict",
|
||||
table: "CustomizeCheckouts",
|
||||
type: "bit",
|
||||
nullable: false,
|
||||
defaultValue: false);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "HasAmountConflict",
|
||||
table: "CustomizeCheckoutTemps");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "HasAmountConflict",
|
||||
table: "CustomizeCheckouts");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -307,6 +307,9 @@ namespace CompanyManagment.EFCore.Migrations
|
||||
.HasMaxLength(10)
|
||||
.HasColumnType("nvarchar(10)");
|
||||
|
||||
b.Property<bool>("HasAmountConflict")
|
||||
.HasColumnType("bit");
|
||||
|
||||
b.Property<bool>("HasRollCall")
|
||||
.HasColumnType("bit");
|
||||
|
||||
@@ -872,7 +875,7 @@ namespace CompanyManagment.EFCore.Migrations
|
||||
b.ToTable("ContractingPartyAccount", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Company.Domain.ContractingPartyBankAccountsAgg.ContractingPartyBankAccounts", b =>
|
||||
modelBuilder.Entity("Company.Domain.ContractingPartyBankAccountsAgg.ContractingPartyBankAccount", b =>
|
||||
{
|
||||
b.Property<long>("id")
|
||||
.ValueGeneratedOnAdd()
|
||||
@@ -1062,6 +1065,9 @@ namespace CompanyManagment.EFCore.Migrations
|
||||
b.Property<double>("FridayPay")
|
||||
.HasColumnType("float");
|
||||
|
||||
b.Property<bool>("HasAmountConflict")
|
||||
.HasColumnType("bit");
|
||||
|
||||
b.Property<double>("InstallmentDeduction")
|
||||
.HasColumnType("float");
|
||||
|
||||
@@ -1211,6 +1217,9 @@ namespace CompanyManagment.EFCore.Migrations
|
||||
b.Property<double>("FridayPay")
|
||||
.HasColumnType("float");
|
||||
|
||||
b.Property<bool>("HasAmountConflict")
|
||||
.HasColumnType("bit");
|
||||
|
||||
b.Property<double>("InstallmentDeduction")
|
||||
.HasColumnType("float");
|
||||
|
||||
@@ -4279,6 +4288,83 @@ namespace CompanyManagment.EFCore.Migrations
|
||||
b.ToTable("TextManager_OriginalTitle", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Company.Domain.PaymentInstrumentAgg.PaymentInstrument", b =>
|
||||
{
|
||||
b.Property<long>("id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("bigint");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
|
||||
|
||||
b.Property<string>("AccountHolderName")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)");
|
||||
|
||||
b.Property<string>("AccountNumber")
|
||||
.HasMaxLength(25)
|
||||
.HasColumnType("nvarchar(25)");
|
||||
|
||||
b.Property<string>("CardNumber")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)");
|
||||
|
||||
b.Property<DateTime>("CreationDate")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasMaxLength(200)
|
||||
.HasColumnType("nvarchar(200)");
|
||||
|
||||
b.Property<string>("IBan")
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)");
|
||||
|
||||
b.Property<bool>("IsAuth")
|
||||
.HasColumnType("bit");
|
||||
|
||||
b.Property<long>("PaymentInstrumentGroupId")
|
||||
.HasColumnType("bigint");
|
||||
|
||||
b.Property<string>("PosTerminalId")
|
||||
.HasMaxLength(25)
|
||||
.HasColumnType("nvarchar(25)");
|
||||
|
||||
b.Property<string>("Type")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)");
|
||||
|
||||
b.HasKey("id");
|
||||
|
||||
b.HasIndex("PaymentInstrumentGroupId");
|
||||
|
||||
b.ToTable("PaymentInstruments");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Company.Domain.PaymentInstrumentAgg.PaymentInstrumentGroup", b =>
|
||||
{
|
||||
b.Property<long>("id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("bigint");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
|
||||
|
||||
b.Property<DateTime>("CreationDate")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<int>("IsActive")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasMaxLength(120)
|
||||
.HasColumnType("nvarchar(120)");
|
||||
|
||||
b.HasKey("id");
|
||||
|
||||
b.ToTable("PaymentInstrumentGroups");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", b =>
|
||||
{
|
||||
b.Property<long>("id")
|
||||
@@ -6644,7 +6730,7 @@ namespace CompanyManagment.EFCore.Migrations
|
||||
b.Navigation("PersonalContractingParty");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Company.Domain.ContractingPartyBankAccountsAgg.ContractingPartyBankAccounts", b =>
|
||||
modelBuilder.Entity("Company.Domain.ContractingPartyBankAccountsAgg.ContractingPartyBankAccount", b =>
|
||||
{
|
||||
b.HasOne("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", "ContractingParty")
|
||||
.WithMany("ContractingPartyBankAccounts")
|
||||
@@ -9518,6 +9604,17 @@ namespace CompanyManagment.EFCore.Migrations
|
||||
b.Navigation("TextManager");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Company.Domain.PaymentInstrumentAgg.PaymentInstrument", b =>
|
||||
{
|
||||
b.HasOne("Company.Domain.PaymentInstrumentAgg.PaymentInstrumentGroup", "PaymentInstrumentGroup")
|
||||
.WithMany("PaymentInstruments")
|
||||
.HasForeignKey("PaymentInstrumentGroupId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("PaymentInstrumentGroup");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Company.Domain.PaymentToEmployeeItemAgg.PaymentToEmployeeItem", b =>
|
||||
{
|
||||
b.HasOne("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", "PaymentToEmployee")
|
||||
@@ -9983,6 +10080,11 @@ namespace CompanyManagment.EFCore.Migrations
|
||||
b.Navigation("Subtitles");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Company.Domain.PaymentInstrumentAgg.PaymentInstrumentGroup", b =>
|
||||
{
|
||||
b.Navigation("PaymentInstruments");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", b =>
|
||||
{
|
||||
b.Navigation("PaymentToEmployeeItemList");
|
||||
|
||||
@@ -980,10 +980,11 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
||||
FirstStartDate = d.FirstStartDate,
|
||||
Id = d.Id,
|
||||
SecondEndDate = d.SecondEndDate,
|
||||
SecondStartDate = d.SecondStartDate
|
||||
SecondStartDate = d.SecondStartDate,
|
||||
}).ToList()
|
||||
|
||||
} : null,
|
||||
HasAmountConflict =x.HasAmountConflict,
|
||||
}).SingleOrDefault(x => x.Id == item);
|
||||
var workshopName = _context.Workshops.FirstOrDefault(x => x.id == ch.WorkshopId);
|
||||
ch.WorkshopName = workshopName.WorkshopName;
|
||||
@@ -1720,6 +1721,7 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
||||
SalaryAidDateTimeFa = s.SalaryAidDateTimeFa,
|
||||
SalaryAidDateTimeGe = s.SalaryAidDateTime
|
||||
}).ToList(),
|
||||
HasAmountConflict = x.HasAmountConflict
|
||||
|
||||
}).Where(x => x.WorkshopId == searchModel.WorkshopId);
|
||||
if (searchModel.EmployeeId > 0)
|
||||
@@ -2693,5 +2695,12 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
||||
}).AsEnumerable().Select(x => (x.EmployeeId, x.CheckoutStart, x.CheckoutEnd)).ToList();
|
||||
}
|
||||
|
||||
public async Task<Checkout> GetByWorkshopIdEmployeeIdInDate(long workshopId, long employeeId, DateTime inDate)
|
||||
{
|
||||
return await _context.CheckoutSet.FirstOrDefaultAsync(x =>
|
||||
x.WorkshopId == workshopId && x.EmployeeId == employeeId && x.ContractStart <= inDate &&
|
||||
x.ContractEnd >= inDate);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -20,7 +20,7 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
|
||||
_context = context;
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<GetContractingPartyBankAccountViewModel>>> GetList(
|
||||
public async Task<GetContractingPartyBankAccountViewModel> GetList(
|
||||
ContractingPartyBankAccountSearchModel searchModel)
|
||||
{
|
||||
var query = _context.ContractingPartyBankAccounts.AsQueryable();
|
||||
@@ -38,38 +38,41 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
|
||||
.Contains(searchModel.ContractingPartyOrAccountHolderName) ||
|
||||
(x.ContractingParty.FName + " " + x.ContractingParty.LName).Contains(searchModel
|
||||
.ContractingPartyOrAccountHolderName));
|
||||
var count = await query.CountAsync();
|
||||
|
||||
var grouped = query
|
||||
.GroupBy(x => new { x.ContractingPartyId, x.ContractingParty.FName, x.ContractingParty.LName })
|
||||
.Select(g => new GetContractingPartyBankAccountViewModel()
|
||||
{
|
||||
ContractingPartyId = g.Key.ContractingPartyId,
|
||||
ContractingPartyName = g.Key.FName + " " + g.Key.LName,
|
||||
BankAccountsItems = g.Select(x => new ContractingPartyBankAccountsItemViewModel
|
||||
var result = new GetContractingPartyBankAccountViewModel()
|
||||
{
|
||||
Count = count,
|
||||
List = await query
|
||||
.GroupBy(x => new { x.ContractingPartyId, x.ContractingParty.FName, x.ContractingParty.LName })
|
||||
.Select(g => new ContractingPartyBankAccountsGroupedViewModel()
|
||||
{
|
||||
AccountHolderName = x.AccountHolderName,
|
||||
AccountNumber = x.AccountNumber,
|
||||
CardNumber = x.CardNumber,
|
||||
IBan = x.IBan,
|
||||
}).ToList()
|
||||
});
|
||||
ContractingPartyId = g.Key.ContractingPartyId,
|
||||
ContractingPartyName = g.Key.FName + " " + g.Key.LName,
|
||||
BankAccountsItems = g.Select(x => new ContractingPartyBankAccountsItemViewModel
|
||||
{
|
||||
AccountHolderName = x.AccountHolderName,
|
||||
AccountNumber = x.AccountNumber,
|
||||
CardNumber = x.CardNumber,
|
||||
IBan = x.IBan,
|
||||
}).ToList()
|
||||
}).Skip(searchModel.PageIndex)
|
||||
.Take(30).ToListAsync()
|
||||
};
|
||||
|
||||
var result = await grouped
|
||||
.Skip(searchModel.PageIndex)
|
||||
.Take(30)
|
||||
.ToListAsync();
|
||||
|
||||
return new OperationResult<List<GetContractingPartyBankAccountViewModel>>().Succcedded(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> ContractingPartyOrAccountHolderNameSelectList(string search,
|
||||
public async Task<List<string>> ContractingPartyOrAccountHolderNameSelectList(string search,
|
||||
string selected)
|
||||
{
|
||||
var accountHolderQuery = _context.ContractingPartyBankAccounts.Select(x => x.AccountHolderName);
|
||||
var contractingPartyNameQuery = _context.ContractingPartyBankAccounts.Select(x=>x.ContractingParty.FName + " " + x.ContractingParty.LName);
|
||||
var contractingPartyNameQuery =
|
||||
_context.ContractingPartyBankAccounts.Select(x =>
|
||||
x.ContractingParty.FName + " " + x.ContractingParty.LName);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
accountHolderQuery = accountHolderQuery.Where(x=>x.Contains(search));
|
||||
accountHolderQuery = accountHolderQuery.Where(x => x.Contains(search));
|
||||
contractingPartyNameQuery = contractingPartyNameQuery.Where(x => x.Contains(search));
|
||||
}
|
||||
|
||||
@@ -80,12 +83,12 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
|
||||
result.Add(selected);
|
||||
}
|
||||
|
||||
return new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
|
||||
return result.Distinct().ToList();
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> IBanSelectList(string search, string selected)
|
||||
public async Task<List<string>> IBanSelectList(string search, string selected)
|
||||
{
|
||||
var iBanQuery = _context.ContractingPartyBankAccounts.Select(x=>x.IBan);
|
||||
var iBanQuery = _context.ContractingPartyBankAccounts.Where(x=>x.IBan != null).Select(x=>x.IBan);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
iBanQuery = iBanQuery.Where(x => x.Contains(search));
|
||||
@@ -98,12 +101,12 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
|
||||
result.Add(selected);
|
||||
}
|
||||
|
||||
return new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
|
||||
return result.Distinct().ToList();
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> CardNumberSelectList(string search, string selected)
|
||||
public async Task<List<string>> CardNumberSelectList(string search, string selected)
|
||||
{
|
||||
var cardNumberQuery = _context.ContractingPartyBankAccounts.Select(x=>x.CardNumber);
|
||||
var cardNumberQuery = _context.ContractingPartyBankAccounts.Where(x=>x.CardNumber != null).Select(x=>x.CardNumber);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
cardNumberQuery = cardNumberQuery.Where(x => x.Contains(search));
|
||||
@@ -116,12 +119,12 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
|
||||
result.Add(selected);
|
||||
}
|
||||
|
||||
return new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
|
||||
return result.Distinct().ToList();
|
||||
}
|
||||
|
||||
public async Task<OperationResult<List<string>>> AccountNumberSelectList(string search, string selected)
|
||||
public async Task<List<string>> AccountNumberSelectList(string search, string selected)
|
||||
{
|
||||
var accountNumberQuery = _context.ContractingPartyBankAccounts.Select(x=>x.IBan);
|
||||
var accountNumberQuery = _context.ContractingPartyBankAccounts.Where(x=>x.AccountNumber != null).Select(x=>x.AccountNumber);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
accountNumberQuery = accountNumberQuery.Where(x => x.Contains(search));
|
||||
@@ -134,6 +137,42 @@ public class ContractingPartyBankAccountsRepository : RepositoryBase<long, Contr
|
||||
result.Add(selected);
|
||||
}
|
||||
|
||||
return new OperationResult<List<string>>().Succcedded(result.Distinct().ToList());
|
||||
return result.Distinct().ToList();
|
||||
}
|
||||
|
||||
public async Task<List<string>> GetAccountHolderNameSelectList(string search, string selected)
|
||||
{
|
||||
var accountHolderQuery = _context.ContractingPartyBankAccounts.Select(x => x.AccountHolderName);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
accountHolderQuery = accountHolderQuery.Where(x => x.Contains(search));
|
||||
}
|
||||
var result = await accountHolderQuery.Take(50).ToListAsync();
|
||||
if (!string.IsNullOrWhiteSpace(selected))
|
||||
{
|
||||
result.Add(selected);
|
||||
}
|
||||
|
||||
return result.Distinct().ToList();
|
||||
}
|
||||
|
||||
public async Task<List<string>> ContractingPartyNamesSelectList(string search, string selected)
|
||||
{
|
||||
var query = _context.ContractingPartyBankAccounts
|
||||
.Select(x => x.ContractingParty.FName + " " + x.ContractingParty.LName);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
query = query.Where(x => x.Contains(search));
|
||||
}
|
||||
|
||||
var result = await query.Take(50).ToListAsync();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(selected))
|
||||
{
|
||||
result.Add(selected);
|
||||
}
|
||||
|
||||
return result.Distinct().ToList();
|
||||
}
|
||||
}
|
||||
@@ -488,6 +488,7 @@ namespace CompanyManagment.EFCore.Repository
|
||||
TotalPayment = x.TotalPayment.ToMoney(),
|
||||
TotalPaymentD = x.TotalPayment,
|
||||
TotalLateToWorkDeduction = x.LateToWorkDeduction.ToMoney(),
|
||||
HasAmountConflict = x.HasAmountConflict
|
||||
|
||||
}).ToList();
|
||||
|
||||
|
||||
@@ -216,6 +216,7 @@ namespace CompanyManagment.EFCore.Repository
|
||||
TotalPayment = x.TotalPayment.ToMoney(),
|
||||
TotalPaymentD = x.TotalPayment,
|
||||
TotalLateToWorkDeduction = x.LateToWorkDeduction.ToMoney(),
|
||||
HasAmountConflict = x.HasAmountConflict
|
||||
}).ToList();
|
||||
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ public class FinancialStatmentRepository : RepositoryBase<long, FinancialStatmen
|
||||
}
|
||||
|
||||
public async Task<ClientFinancialStatementViewModel> GetClientFinancialStatement(long accountId,
|
||||
ClientFinancialStatementSearchModel searchModel)
|
||||
FinancialStatementSearchModel searchModel)
|
||||
{
|
||||
bool searched = false;
|
||||
|
||||
@@ -153,7 +153,7 @@ public class FinancialStatmentRepository : RepositoryBase<long, FinancialStatmen
|
||||
}
|
||||
}
|
||||
|
||||
return new ClientFinancialTransactionViewModel()
|
||||
return new FinancialTransactionDetailViewModel()
|
||||
{
|
||||
DateTimeGr = t.TdateGr,
|
||||
DateFa = t.TdateGr.ToFarsi(),
|
||||
@@ -194,7 +194,7 @@ public class FinancialStatmentRepository : RepositoryBase<long, FinancialStatmen
|
||||
TotalCredit = financialStatement.FinancialTransactionList.Sum(x => x.Creditor),
|
||||
TotalDebt = financialStatement.FinancialTransactionList.Sum(x => x.Deptor),
|
||||
ContractingPartyName = financialStatement.ContractingPartyName,
|
||||
Transactions = financialStatement.FinancialTransactionList.Select(t => new ClientFinancialTransactionViewModel()
|
||||
Transactions = financialStatement.FinancialTransactionList.Select(t => new FinancialTransactionDetailViewModel()
|
||||
{
|
||||
DateTimeGr = t.TdateGr,
|
||||
DateFa = t.TdateGr.ToFarsi(),
|
||||
@@ -248,5 +248,102 @@ public class FinancialStatmentRepository : RepositoryBase<long, FinancialStatmen
|
||||
|
||||
}
|
||||
|
||||
|
||||
public async Task<FinancialStatmentDetailsByContractingPartyViewModel> GetDetailsByContractingParty(long contractingPartyId,FinancialStatementSearchModel searchModel)
|
||||
{
|
||||
|
||||
|
||||
var financialStatement = await _context.FinancialStatments
|
||||
.Include(x=>x.FinancialTransactionList)
|
||||
.FirstOrDefaultAsync(x=>x.ContractingPartyId == contractingPartyId);
|
||||
|
||||
if (financialStatement == null)
|
||||
{
|
||||
throw new NotFoundException("وضعیت مالی مورد نظر یافت نشد");
|
||||
}
|
||||
bool searched = false;
|
||||
#region Search
|
||||
|
||||
|
||||
if (searchModel.FromAmount > 0 || searchModel.ToAmount > 0)
|
||||
{
|
||||
searched = true;
|
||||
if (searchModel.FromAmount > 0 && searchModel.ToAmount > 0)
|
||||
{
|
||||
financialStatement.FinancialTransactionList = financialStatement.FinancialTransactionList.Where(x => (x.Deptor >= searchModel.FromAmount && x.Deptor <= searchModel.FromAmount) || (x.Creditor >= searchModel.FromAmount && x.Creditor <= searchModel.FromAmount)).ToList();
|
||||
}
|
||||
else if (searchModel.FromAmount > 0)
|
||||
{
|
||||
financialStatement.FinancialTransactionList = financialStatement.FinancialTransactionList.Where(x => x.Deptor >= searchModel.FromAmount || x.Creditor >= searchModel.FromAmount).ToList();
|
||||
}
|
||||
else if (searchModel.ToAmount > 0)
|
||||
{
|
||||
financialStatement.FinancialTransactionList = financialStatement.FinancialTransactionList.Where(x => x.Deptor <= searchModel.ToAmount || x.Creditor <= searchModel.ToAmount).ToList();
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(searchModel.FromDate) && !string.IsNullOrWhiteSpace(searchModel.ToDate))
|
||||
{
|
||||
searched = true;
|
||||
|
||||
if (searchModel.FromDate.TryToGeorgianDateTime(out var fromDate) == false)
|
||||
throw new BadRequestException("تاریخ وارد شده نامعتبر است");
|
||||
|
||||
if (searchModel.FromDate.TryToGeorgianDateTime(out var toDate) == false)
|
||||
throw new BadRequestException("تاریخ وارد شده نامعتبر است");
|
||||
|
||||
financialStatement.FinancialTransactionList = financialStatement.FinancialTransactionList.Where(x => x.TdateGr >= fromDate && x.TdateGr <= toDate).ToList();
|
||||
}
|
||||
|
||||
if (searchModel.Type != null)
|
||||
{
|
||||
searched = true;
|
||||
|
||||
var type = searchModel.Type switch
|
||||
{
|
||||
FinancialTransactionType.Credit => "credit",
|
||||
FinancialTransactionType.Debt => "debt"
|
||||
};
|
||||
|
||||
financialStatement.FinancialTransactionList = financialStatement.FinancialTransactionList.Where(x => x.TypeOfTransaction == type).ToList();
|
||||
}
|
||||
#endregion
|
||||
double balance = 0;
|
||||
var res = new FinancialStatmentDetailsByContractingPartyViewModel()
|
||||
{
|
||||
Id = financialStatement.id,
|
||||
TotalAmountPayable = financialStatement.FinancialTransactionList.Sum(x => x.Deptor) - financialStatement.FinancialTransactionList.Sum(x => x.Creditor),
|
||||
TotalCredit = financialStatement.FinancialTransactionList.Sum(x => x.Creditor),
|
||||
TotalDebt = financialStatement.FinancialTransactionList.Sum(x => x.Deptor),
|
||||
ContractingPartyName = financialStatement.ContractingPartyName,
|
||||
List = financialStatement.FinancialTransactionList.Select(t =>
|
||||
{
|
||||
if (!searched)
|
||||
{
|
||||
if (t.TypeOfTransaction == "debt")
|
||||
{
|
||||
balance += t.Deptor;
|
||||
}
|
||||
else
|
||||
{
|
||||
balance -= t.Creditor;
|
||||
}
|
||||
}
|
||||
return new FinancialTransactionDetailViewModel()
|
||||
{
|
||||
Id = t.id,
|
||||
DateTimeGr = t.TdateGr,
|
||||
DateFa = t.TdateGr.ToFarsi(),
|
||||
TimeFa = $"{t.TdateGr:HH:mm}",
|
||||
Description = t.DescriptionOption + " " + t.Description,
|
||||
Debtor = t.Deptor,
|
||||
Creditor = t.Creditor,
|
||||
Balance = balance,
|
||||
Type = t.TypeOfTransaction == "debt"
|
||||
? FinancialTransactionType.Debt
|
||||
: FinancialTransactionType.Credit,
|
||||
TypeStr = t.TypeOfTransaction == "debt" ? "ایجاد درآمد" : "دریافت درآمد"
|
||||
};
|
||||
}).OrderByDescending(t => t.DateTimeGr).ToList(),
|
||||
};
|
||||
return res;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,31 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using _0_Framework.InfraStructure;
|
||||
using Company.Domain.PaymentInstrumentAgg;
|
||||
using CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace CompanyManagment.EFCore.Repository;
|
||||
|
||||
public class PaymentInstrumentGroupRepository : RepositoryBase<long, PaymentInstrumentGroup>,
|
||||
IPaymentInstrumentGroupRepository
|
||||
{
|
||||
private readonly CompanyContext _context;
|
||||
|
||||
public PaymentInstrumentGroupRepository(CompanyContext context) : base(context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
|
||||
public async Task<List<PaymentInstrumentGroupsViewModel>> GetList()
|
||||
{
|
||||
return await _context.PaymentInstrumentGroups.Where(x=>x.IsActive == IsActive.True).AsNoTracking()
|
||||
.Select(x => new PaymentInstrumentGroupsViewModel()
|
||||
{
|
||||
Name = x.Name,
|
||||
Id = x.id
|
||||
}).ToListAsync();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,234 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using _0_Framework.InfraStructure;
|
||||
using Company.Domain.PaymentInstrumentAgg;
|
||||
using CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace CompanyManagment.EFCore.Repository;
|
||||
|
||||
public class PaymentInstrumentRepository : RepositoryBase<long, PaymentInstrument>, IPaymentInstrumentRepository
|
||||
{
|
||||
private readonly CompanyContext _companyContext;
|
||||
|
||||
public PaymentInstrumentRepository(CompanyContext context) : base(context)
|
||||
{
|
||||
_companyContext = context;
|
||||
}
|
||||
|
||||
public async Task<GetPaymentInstrumentListViewModel> GetList(PaymentInstrumentSearchModel searchModel)
|
||||
{
|
||||
var query = _companyContext.PaymentInstruments
|
||||
.Include(x => x.PaymentInstrumentGroup)
|
||||
.AsNoTracking();
|
||||
|
||||
#region Search
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchModel.AccountHolderName))
|
||||
{
|
||||
query = query.Where(x => x.AccountHolderName.Contains(searchModel.AccountHolderName));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchModel.AccountNumber))
|
||||
{
|
||||
query = query.Where(x => x.AccountNumber.Contains(searchModel.AccountNumber));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchModel.PosTerminalId))
|
||||
{
|
||||
query = query.Where(x => x.PosTerminalId.Contains(searchModel.PosTerminalId));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchModel.CardNumber))
|
||||
{
|
||||
query = query.Where(x => x.CardNumber.Contains(searchModel.CardNumber));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(searchModel.IBan))
|
||||
{
|
||||
query = query.Where(x => x.IBan.Contains(searchModel.IBan));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
var count = query.Count();
|
||||
var list = new GetPaymentInstrumentListViewModel()
|
||||
{
|
||||
Count = count,
|
||||
GropedViewModels = await query.GroupBy(x => x.PaymentInstrumentGroupId)
|
||||
.OrderBy(x=>x.Key)
|
||||
.Select(x => new PaymentInstrumentGroupedViewModel()
|
||||
{
|
||||
Name = x.First().PaymentInstrumentGroup.Name,
|
||||
Items = x.Select(i => new PaymentInstrumentItemsViewModel()
|
||||
{
|
||||
Id = i.id,
|
||||
Description = i.Description,
|
||||
IBan = i.IBan,
|
||||
PosTerminalId = i.PosTerminalId,
|
||||
CardNumber = i.CardNumber,
|
||||
AccountNumber = i.AccountNumber,
|
||||
AccountHolderName = i.AccountHolderName,
|
||||
Type = i.Type
|
||||
|
||||
}).ToList()
|
||||
}).Skip(searchModel.PageIndex).Take(30).ToListAsync()
|
||||
};
|
||||
return list;
|
||||
}
|
||||
|
||||
public Task<List<PosTerminalSelectListViewModel>> GetPosTerminalSelectList(string search)
|
||||
{
|
||||
var queryable = _companyContext.PaymentInstruments.Select(x=>new PosTerminalSelectListViewModel
|
||||
{
|
||||
Id = x.id,
|
||||
Text = x.PosTerminalId
|
||||
});
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
queryable = queryable.Where(x => x.Text.Contains(search));
|
||||
}
|
||||
return queryable.Take(50).ToListAsync();
|
||||
}
|
||||
|
||||
public Task<List<IbanSelectListViewModel>> GetIbanSelectList(string search)
|
||||
{
|
||||
var queryable = _companyContext.PaymentInstruments.Select(x => new IbanSelectListViewModel
|
||||
{
|
||||
Id = x.id,
|
||||
Text = x.IBan
|
||||
});
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
queryable = queryable.Where(x => x.Text.Contains(search));
|
||||
}
|
||||
return queryable.Take(50).ToListAsync();
|
||||
}
|
||||
|
||||
public Task<List<AccountNumberSelectListViewModel>> GetAccountNumberSelectList(string search)
|
||||
{
|
||||
var queryable = _companyContext.PaymentInstruments.Select(x => new AccountNumberSelectListViewModel
|
||||
{
|
||||
Id = x.id,
|
||||
Text = x.AccountNumber
|
||||
});
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
queryable = queryable.Where(x => x.Text.Contains(search));
|
||||
}
|
||||
return queryable.Take(50).ToListAsync();
|
||||
}
|
||||
|
||||
public Task<List<CardNumberSelectListViewModel>> GetCardNumberSelectList(string search)
|
||||
{
|
||||
var queryable = _companyContext.PaymentInstruments.Select(x => new CardNumberSelectListViewModel
|
||||
{
|
||||
Id = x.id,
|
||||
Text = x.CardNumber
|
||||
});
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
queryable = queryable.Where(x => x.Text.Contains(search));
|
||||
}
|
||||
return queryable.Take(50).ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<List<string>> PosTerminalIdSelectList(string search, string selected)
|
||||
{
|
||||
var query = _companyContext.PaymentInstruments.Where(x=>x.PosTerminalId != null).Select(x => x.PosTerminalId);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
query = query.Where(x => x.Contains(search));
|
||||
}
|
||||
|
||||
var result = await query.Take(50).ToListAsync();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(selected))
|
||||
{
|
||||
result.Add(selected);
|
||||
}
|
||||
|
||||
return result.Distinct().ToList();
|
||||
}
|
||||
|
||||
public async Task<List<string>> IbanSelectList(string search, string selected)
|
||||
{
|
||||
var query = _companyContext.PaymentInstruments.Where(x=>x.IBan != null).Select(x => x.IBan);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
query = query.Where(x => x.Contains(search));
|
||||
}
|
||||
|
||||
var result = await query.Take(50).ToListAsync();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(selected))
|
||||
{
|
||||
result.Add(selected);
|
||||
}
|
||||
|
||||
return result.Distinct().ToList();
|
||||
}
|
||||
|
||||
public async Task<List<string>> AccountNumberSelectList(string search, string selected)
|
||||
{
|
||||
var query = _companyContext.PaymentInstruments.Where(x=>x.AccountNumber != null).Select(x => x.AccountNumber);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
query = query.Where(x => x.Contains(search));
|
||||
}
|
||||
|
||||
var result = await query.Take(50).ToListAsync();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(selected))
|
||||
{
|
||||
result.Add(selected);
|
||||
}
|
||||
|
||||
return result.Distinct().ToList();
|
||||
}
|
||||
|
||||
public async Task<List<string>> AccountHolderNameSelectList(string search, string selected)
|
||||
{
|
||||
var accountHolderQuery = _companyContext.PaymentInstruments.Where(x => x.AccountHolderName != null).Select(x => x.AccountHolderName);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
accountHolderQuery = accountHolderQuery.Where(x => x.Contains(search));
|
||||
}
|
||||
|
||||
var result = await accountHolderQuery.Take(50).ToListAsync();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(selected))
|
||||
{
|
||||
result.Add(selected);
|
||||
}
|
||||
|
||||
return result.Distinct().ToList();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public async Task<List<string>> CardNumberSelectList(string search, string selected)
|
||||
{
|
||||
var query = _companyContext.PaymentInstruments.Where(x=>x.CardNumber != null).Select(x => x.CardNumber);
|
||||
if (!string.IsNullOrWhiteSpace(search))
|
||||
{
|
||||
query = query.Where(x => x.Contains(search));
|
||||
}
|
||||
|
||||
var result = await query.Take(50).ToListAsync();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(selected))
|
||||
{
|
||||
result.Add(selected);
|
||||
}
|
||||
|
||||
return result.Distinct().ToList();
|
||||
}
|
||||
}
|
||||
@@ -55,33 +55,68 @@ public class PaymentTransactionRepository : RepositoryBase<long, PaymentTransact
|
||||
query = query.Where(x => x.Status == searchModel.StatusEnum);
|
||||
}
|
||||
|
||||
var paymentTransactionsData = await query
|
||||
.AsNoTracking()
|
||||
.Skip(searchModel.PageIndex)
|
||||
.Take(30)
|
||||
.ToListAsync();
|
||||
// 1. گرفتن تراکنشها
|
||||
var paymentTransactionsData = await query
|
||||
.AsNoTracking()
|
||||
.Skip(searchModel.PageIndex)
|
||||
.Take(30)
|
||||
.ToListAsync();
|
||||
|
||||
var result = paymentTransactionsData
|
||||
.OrderByDescending(x=>x.CreationDate).Select(x => new GetPaymentTransactionListViewModel
|
||||
// 2. استخراج prefix و suffix از کارتهای ماسکشده
|
||||
var maskedCardInfos = paymentTransactionsData.Where(x=>x.CardNumber!=null)
|
||||
.Select(x => new
|
||||
{
|
||||
MaskedCard = x.CardNumber,
|
||||
Prefix = x.CardNumber.Substring(0, 4),
|
||||
Suffix = x.CardNumber.Substring(x.CardNumber.Length - 4)
|
||||
})
|
||||
.Distinct()
|
||||
.ToList();
|
||||
|
||||
// 3. گرفتن شماره کارتهای واقعی
|
||||
var matchedBankAccounts = (await _companyContext.ContractingPartyBankAccounts.Where(x=>x.CardNumber!= null)
|
||||
.ToListAsync()).Where(account => maskedCardInfos.Any(mask =>
|
||||
account.CardNumber.StartsWith(mask.Prefix) &&
|
||||
account.CardNumber.EndsWith(mask.Suffix)
|
||||
));
|
||||
|
||||
// 4. ساختن خروجی
|
||||
var result = paymentTransactionsData.Where(x=>x.CardNumber!=null)
|
||||
.OrderByDescending(x => x.CreationDate)
|
||||
.Select(x =>
|
||||
{
|
||||
var prefix = x.CardNumber.Substring(0, 4);
|
||||
var suffix = x.CardNumber.Substring(x.CardNumber.Length - 4);
|
||||
|
||||
// پیدا کردن شماره کارت کامل و اطلاعات بانک و صاحب حساب
|
||||
var matchedAccount = matchedBankAccounts
|
||||
.FirstOrDefault(account =>
|
||||
account.CardNumber.StartsWith(prefix) &&
|
||||
account.CardNumber.EndsWith(suffix));
|
||||
|
||||
return new GetPaymentTransactionListViewModel
|
||||
{
|
||||
Id = x.id,
|
||||
ContractingPartyName = x.ContractingPartyName,
|
||||
BankName = x.BankName,
|
||||
CardNumber = matchedAccount?.CardNumber ?? x.CardNumber,
|
||||
Status = x.Status switch
|
||||
{
|
||||
Id = x.id,
|
||||
ContractingPartyName = x.ContractingPartyName,
|
||||
BankName = x.BankName,
|
||||
CardNumber = x.CardNumber,
|
||||
Status = x.Status switch
|
||||
{
|
||||
PaymentTransactionStatus.Failed => "ناموفق",
|
||||
PaymentTransactionStatus.Success => "موفق",
|
||||
_ => "نامشخص"
|
||||
},
|
||||
StatusEnum = x.Status,
|
||||
Amount = x.Amount,
|
||||
TransactionId = x.TransactionId,
|
||||
PaymentDate = x.TransactionDate.ToFarsi(),
|
||||
PaymentTime = $"{x.TransactionDate:HH:mm}"
|
||||
}).ToList();
|
||||
PaymentTransactionStatus.Failed => "ناموفق",
|
||||
PaymentTransactionStatus.Success => "موفق",
|
||||
_ => "نامشخص"
|
||||
},
|
||||
StatusEnum = x.Status,
|
||||
Amount = x.Amount,
|
||||
TransactionId = x.TransactionId,
|
||||
PaymentDate = x.TransactionDate.ToFarsi(),
|
||||
PaymentTime = $"{x.TransactionDate:HH:mm}"
|
||||
};
|
||||
})
|
||||
.ToList();
|
||||
|
||||
return result;
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -289,7 +289,7 @@ public class RepresentativeRepository : RepositoryBase<long, Representative>, IR
|
||||
return await _context.RepresentativeSet.Select(x => new GetSelectListRepresentativeViewModel()
|
||||
{
|
||||
Id = x.id,
|
||||
Name = x.FullName
|
||||
Text = x.FullName
|
||||
}).ToListAsync();
|
||||
}
|
||||
|
||||
|
||||
@@ -210,9 +210,11 @@ using CompanyManagment.App.Contracts.ContactUs;
|
||||
using Company.Domain.EmployeeAuthorizeTempAgg;
|
||||
using Company.Domain.AdminMonthlyOverviewAgg;
|
||||
using Company.Domain.ContractingPartyBankAccountsAgg;
|
||||
using Company.Domain.PaymentInstrumentAgg;
|
||||
using Company.Domain.PaymentTransactionAgg;
|
||||
using CompanyManagment.App.Contracts.AdminMonthlyOverview;
|
||||
using CompanyManagment.App.Contracts.ContractingPartyBankAccounts;
|
||||
using CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
using CompanyManagment.App.Contracts.PaymentTransaction;
|
||||
|
||||
namespace PersonalContractingParty.Config;
|
||||
@@ -446,6 +448,11 @@ public class PersonalBootstrapper
|
||||
|
||||
services.AddTransient<IContractingPartyBankAccountsApplication, ContractingPartyBankAccountsApplication>();
|
||||
services.AddTransient<IContractingPartyBankAccountsRepository, ContractingPartyBankAccountsRepository>();
|
||||
|
||||
services.AddTransient<IPaymentInstrumentRepository, PaymentInstrumentRepository>();
|
||||
services.AddTransient<IPaymentInstrumentApplication, PaymentInstrumentApplication>();
|
||||
services.AddTransient<IPaymentInstrumentGroupRepository, PaymentInstrumentGroupRepository>();
|
||||
|
||||
#endregion
|
||||
#region Pooya
|
||||
|
||||
|
||||
@@ -18,36 +18,18 @@ public class ContractingPartyBankAccountController : AdminBaseController
|
||||
_contractingPartyBankAccountsApplication = contractingPartyBankAccountsApplication;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
/// لیست اطلاعات بانک اطلاعات بانکی طرف حساب
|
||||
/// </summary>
|
||||
/// <param name="searchModel">سرچ</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<OperationResult<List<GetContractingPartyBankAccountViewModel>>> GetList(ContractingPartyBankAccountSearchModel searchModel)
|
||||
public async Task<GetContractingPartyBankAccountViewModel> GetList(ContractingPartyBankAccountSearchModel searchModel)
|
||||
{
|
||||
var res =await _contractingPartyBankAccountsApplication.GetList(searchModel);
|
||||
return res;
|
||||
}
|
||||
|
||||
[HttpGet("fake")]
|
||||
public IActionResult GetFakeBankAccounts()
|
||||
{
|
||||
var bankAccountsFaker = new Faker<ContractingPartyBankAccountsItemViewModel>("fa")
|
||||
.RuleFor(x => x.AccountHolderName, f => f.Name.FullName())
|
||||
.RuleFor(x => x.CardNumber, f => f.Finance.CreditCardNumber())
|
||||
.RuleFor(x => x.AccountNumber, f => f.Finance.Account())
|
||||
.RuleFor(x => x.IBan, f => $"IR{f.Random.Number(10_000_000, 99_999_999)}{f.Random.Number(10_000_000, 99_999_999)}");
|
||||
|
||||
var viewModelFaker = new Faker<GetContractingPartyBankAccountViewModel>("fa")
|
||||
.RuleFor(x => x.ContractingPartyId, f => f.Random.Long(1000, 9999))
|
||||
.RuleFor(x => x.ContractingPartyName, f => f.Company.CompanyName())
|
||||
.RuleFor(x => x.WorkshopName, f => f.Address.City())
|
||||
.RuleFor(x => x.BankAccountsItems, f => bankAccountsFaker.Generate(f.Random.Int(1, 5)));
|
||||
|
||||
var fakeData = viewModelFaker.Generate(new Random().Next(1,35));
|
||||
return Ok(fakeData);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد
|
||||
@@ -55,9 +37,9 @@ public class ContractingPartyBankAccountController : AdminBaseController
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<OperationResult> Create([FromBody] CreateContractingPartyBankAccounts command)
|
||||
public async Task<OperationResult> Create([FromBody] List<CreateContractingPartyBankAccounts> commands)
|
||||
{
|
||||
var operationResult = await _contractingPartyBankAccountsApplication.Create(command);
|
||||
var operationResult = await _contractingPartyBankAccountsApplication.Create(commands);
|
||||
return operationResult;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
using _0_Framework.Application;
|
||||
using CompanyManagment.App.Contracts.FinancialStatment;
|
||||
using CompanyManagment.App.Contracts.FinancilTransaction;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using PersianTools.Core;
|
||||
using ServiceHost.BaseControllers;
|
||||
|
||||
namespace ServiceHost.Areas.Admin.Controllers;
|
||||
|
||||
public class FinancialStatementController : AdminBaseController
|
||||
{
|
||||
private readonly IFinancialStatmentApplication _financialStatementApplication;
|
||||
private readonly IFinancialTransactionApplication _financialTransactionApplication;
|
||||
|
||||
public FinancialStatementController(IFinancialStatmentApplication financialStatementApplication,
|
||||
IFinancialTransactionApplication financialTransactionApplication)
|
||||
{
|
||||
_financialStatementApplication = financialStatementApplication;
|
||||
_financialTransactionApplication = financialTransactionApplication;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// گرفتن جزئیات وضعیت مالی با آیدی طرف حساب
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="searchModel"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("contracting-party/{id}")]
|
||||
public async Task<ActionResult<FinancialStatmentDetailsByContractingPartyViewModel>> GetDetailsByContractingParty(
|
||||
long id, FinancialStatementSearchModel searchModel)
|
||||
{
|
||||
var data = await _financialStatementApplication.GetDetailsByContractingParty(id, searchModel);
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// گرفتن جزییات ویرایش
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("edit/{id}")]
|
||||
public ActionResult<EditFinancialTransaction> GetEditDetails(long id)
|
||||
{
|
||||
var res = _financialTransactionApplication.GetDetails(id);
|
||||
return res;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// حذف بلاک
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("removeBlocked/{id}")]
|
||||
public ActionResult<OperationResult> RemoveBlocked(long id)
|
||||
{
|
||||
var res = _financialTransactionApplication.RemoveBlocked(id);
|
||||
return res;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public ActionResult<OperationResult> Create([FromBody] CreateFinancialStatment command)
|
||||
{
|
||||
var res = _financialStatementApplication.Create(command);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ویرایش
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
public ActionResult<OperationResult> Edit([FromBody] EditFinancialTransactionRequest request)
|
||||
{
|
||||
var command = new EditFinancialTransaction
|
||||
{
|
||||
Id = request.Id,
|
||||
TdateFa = request.TDateFa,
|
||||
TypeOfTransaction = request.TypeOfTransaction,
|
||||
DescriptionOption = request.DescriptionOption,
|
||||
Description = request.Description,
|
||||
DeptorString = request.DeptorString,
|
||||
CreditorString = request.CreditorString
|
||||
};
|
||||
var result = _financialTransactionApplication.Edit(command);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// حذف
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpDelete("{id}")]
|
||||
public IActionResult RemoveTransaction(long id)
|
||||
{
|
||||
var res = _financialTransactionApplication.RemoveFinancialTransaction(id);
|
||||
if (res.IsSuccedded)
|
||||
return new JsonResult(new
|
||||
{
|
||||
success = true
|
||||
});
|
||||
return new JsonResult(new
|
||||
{
|
||||
success = false
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public record EditFinancialTransactionRequest(
|
||||
long Id,
|
||||
string TDateFa,
|
||||
string TypeOfTransaction,
|
||||
string DescriptionOption,
|
||||
string Description,
|
||||
string DeptorString,
|
||||
string CreditorString);
|
||||
@@ -0,0 +1,270 @@
|
||||
using _0_Framework.Application;
|
||||
using _0_Framework.Exceptions;
|
||||
using CompanyManagment.App.Contracts.ContractingPartyBankAccounts;
|
||||
using CompanyManagment.App.Contracts.PaymentInstrument;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using ServiceHost.BaseControllers;
|
||||
|
||||
namespace ServiceHost.Areas.Admin.Controllers;
|
||||
|
||||
public class PaymentInstrumentController:AdminBaseController
|
||||
{
|
||||
private readonly IPaymentInstrumentApplication _paymentInstrumentApplication;
|
||||
private readonly IContractingPartyBankAccountsApplication _contractingPartyBankAccountsApplication;
|
||||
|
||||
public PaymentInstrumentController(IPaymentInstrumentApplication paymentInstrumentApplication, IContractingPartyBankAccountsApplication contractingPartyBankAccountsApplication)
|
||||
{
|
||||
_paymentInstrumentApplication = paymentInstrumentApplication;
|
||||
_contractingPartyBankAccountsApplication = contractingPartyBankAccountsApplication;
|
||||
}
|
||||
/// <summary>
|
||||
///لیست اطلاعات بانکی جاری شرکا
|
||||
/// </summary>
|
||||
/// <param name="searchModel"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<ActionResult<GetPaymentInstrumentListViewModel>> List(PaymentInstrumentSearchModel searchModel)
|
||||
{
|
||||
var list =await _paymentInstrumentApplication.GetList(searchModel);
|
||||
return list;
|
||||
}
|
||||
/// <summary>
|
||||
/// ایجاد اطلاعات بانکی
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("bankAccount")]
|
||||
public async Task<ActionResult<OperationResult>> CreateBankAccount([FromBody] List<CreateBankPaymentInstrument> command)
|
||||
{
|
||||
var result = await _paymentInstrumentApplication.CreateBankAccount(command);
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// ایجاد اطلاعات دستگاه پوز
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("pos")]
|
||||
public async Task<ActionResult<OperationResult>> CreatePos([FromBody]CreatePosPaymentInstrument command)
|
||||
{
|
||||
var result =await _paymentInstrumentApplication.CreatePos(command);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// گرفتن عنوان ها
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("group")]
|
||||
public async Task<ActionResult<List<PaymentInstrumentGroupsViewModel>>> GetGroups()
|
||||
{
|
||||
var result = await _paymentInstrumentApplication.GetGroup();
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد عنوان
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("group")]
|
||||
public async Task<ActionResult<OperationResult>> CreateGroup([FromBody]CreateBankPaymentInstrumentGroup command)
|
||||
{
|
||||
var result = await _paymentInstrumentApplication.CreateGroup(command);
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// ویرایش عنوان
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPut("group")]
|
||||
public async Task<ActionResult<OperationResult>> EditGroup([FromBody]EditBankPaymentInstrumentGroup command)
|
||||
{
|
||||
var result = await _paymentInstrumentApplication.EditGroup(command);
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// حذف عنوان
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpDelete("group/{id}")]
|
||||
public async Task<ActionResult<OperationResult>> DeleteGroup(long id)
|
||||
{
|
||||
var result = await _paymentInstrumentApplication.DeleteGroup(id);
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست شناسههای دستگاه پوز به صورت رشته
|
||||
/// </summary>
|
||||
/// <param name="search">عبارت جستجو</param>
|
||||
/// <param name="selected">مقدار انتخاب شده</param>
|
||||
/// <returns>لیست شناسههای دستگاه پوز</returns>
|
||||
[HttpGet("pos-terminal-id-select")]
|
||||
public async Task<ActionResult<List<string>>> GetPosTerminalIdSelectList(string search, string selected)
|
||||
{
|
||||
|
||||
return await _paymentInstrumentApplication.PosTerminalIdSelectList(search, selected);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست شمارههای شبا به صورت رشته
|
||||
/// </summary>
|
||||
/// <param name="search">عبارت جستجو</param>
|
||||
/// <param name="selected">مقدار انتخاب شده</param>
|
||||
/// <returns>لیست شمارههای شبا</returns>
|
||||
[HttpGet("iban-select")]
|
||||
public async Task<ActionResult<List<string>>> GetIbanSelectList(string search, string selected)
|
||||
{
|
||||
|
||||
var paymentIban = await _paymentInstrumentApplication.IbanSelectList(search, selected);
|
||||
var contractingIban = await _contractingPartyBankAccountsApplication.IBanSelectList(search, selected);
|
||||
|
||||
var combinedList = new List<string>();
|
||||
|
||||
if (paymentIban != null)
|
||||
{
|
||||
combinedList.AddRange(paymentIban);
|
||||
}
|
||||
|
||||
if (contractingIban != null)
|
||||
{
|
||||
combinedList.AddRange(contractingIban);
|
||||
}
|
||||
|
||||
return combinedList.Distinct().ToList();
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست شمارههای حساب به صورت رشته
|
||||
/// </summary>
|
||||
/// <param name="search">عبارت جستجو</param>
|
||||
/// <param name="selected">مقدار انتخاب شده</param>
|
||||
/// <returns>لیست شمارههای حساب</returns>
|
||||
[HttpGet("account-number-select")]
|
||||
public async Task<ActionResult<List<string>>> GetAccountNumberSelectList(string search, string selected)
|
||||
{
|
||||
var paymentAccountNumbers = await _paymentInstrumentApplication.AccountNumberSelectList(search, selected);
|
||||
var contractingAccountNumbers = await _contractingPartyBankAccountsApplication.AccountNumberSelectList(search, selected);
|
||||
|
||||
var combinedList = new List<string>();
|
||||
|
||||
if (paymentAccountNumbers != null)
|
||||
{
|
||||
combinedList.AddRange(paymentAccountNumbers);
|
||||
}
|
||||
|
||||
if (contractingAccountNumbers != null)
|
||||
{
|
||||
combinedList.AddRange(contractingAccountNumbers);
|
||||
}
|
||||
|
||||
return combinedList.Distinct().ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست شمارههای کارت به صورت رشته
|
||||
/// </summary>
|
||||
/// <param name="search">عبارت جستجو</param>
|
||||
/// <param name="selected">مقدار انتخاب شده</param>
|
||||
/// <returns>لیست شمارههای کارت</returns>
|
||||
[HttpGet("card-number-select")]
|
||||
public async Task<ActionResult<List<string>>> GetCardNumberSelectList(string search, string selected)
|
||||
{
|
||||
|
||||
var paymentCardNumbers = await _paymentInstrumentApplication.CardNumberSelectList(search, selected);
|
||||
var contractingCardNumbers = await _contractingPartyBankAccountsApplication.CardNumberSelectList(search, selected);
|
||||
|
||||
var combinedList = new List<string>();
|
||||
|
||||
if (paymentCardNumbers != null)
|
||||
{
|
||||
combinedList.AddRange(paymentCardNumbers);
|
||||
}
|
||||
|
||||
if (contractingCardNumbers != null)
|
||||
{
|
||||
combinedList.AddRange(contractingCardNumbers);
|
||||
}
|
||||
|
||||
return combinedList.Distinct().ToList();
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست نام صاحبان حساب به صورت رشته
|
||||
/// </summary>
|
||||
/// <param name="search">عبارت جستجو</param>
|
||||
/// <param name="selected">مقدار انتخاب شده</param>
|
||||
/// <returns>لیست نام صاحبان حساب</returns>
|
||||
[HttpGet("account-holder-contracting-party-name-select")]
|
||||
public async Task<ActionResult<List<string>>> GetAccountHolderNameAndContractingPartyNameSelectList(string search, string selected)
|
||||
{
|
||||
|
||||
var paymentAccountHolders = await _paymentInstrumentApplication.AccountHolderNameSelectList(search, selected);
|
||||
var contractingAccountHolders = await _contractingPartyBankAccountsApplication.GetAccountHolderNameSelectList(search, selected);
|
||||
var contractingNames = await _contractingPartyBankAccountsApplication.ContractingPartyNamesSelectList(search, selected);
|
||||
var combinedList = new List<string>();
|
||||
|
||||
if (paymentAccountHolders != null)
|
||||
{
|
||||
combinedList.AddRange(paymentAccountHolders);
|
||||
}
|
||||
|
||||
if (contractingAccountHolders != null)
|
||||
{
|
||||
combinedList.AddRange(contractingAccountHolders);
|
||||
}
|
||||
|
||||
if (contractingNames != null)
|
||||
combinedList.AddRange(contractingNames);
|
||||
|
||||
return combinedList.Distinct().ToList();
|
||||
|
||||
}
|
||||
|
||||
|
||||
[HttpPost("bank-account-inquiry")]
|
||||
public async Task<ActionResult<OperationResult<BankInquiryResponse>>> GetBankInquiry([FromBody]BankInquiryRequest command)
|
||||
{
|
||||
if ((!string.IsNullOrWhiteSpace(command.AccountNumber) && command.AccountNumber.StartsWith("111111")) || (!string.IsNullOrWhiteSpace(command.CardNumber)&&command.CardNumber.StartsWith("111111")) || (!string.IsNullOrWhiteSpace(command.IBan)&&command.IBan.StartsWith("1111111")))
|
||||
{
|
||||
return new OperationResult<BankInquiryResponse>().Succcedded(new BankInquiryResponse()
|
||||
{
|
||||
AccountNumber = "1111111",
|
||||
IBan = "111111111111111111111111",
|
||||
CardNumber = "1111111111111111",
|
||||
AccountHolderName = "تست تستی",
|
||||
BankName = "تست بانک",
|
||||
});
|
||||
}else if ((!string.IsNullOrWhiteSpace(command.AccountNumber) && command.AccountNumber.StartsWith("222222")) || (!string.IsNullOrWhiteSpace(command.CardNumber)&&command.CardNumber.StartsWith("222222")) || (!string.IsNullOrWhiteSpace(command.CardNumber)&&command.CardNumber.StartsWith("222222")))
|
||||
{
|
||||
return new OperationResult<BankInquiryResponse>().Failed("دیتای وارد شده نامعتبر است");
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InternalServerException("ارور سمت سرور");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class BankInquiryRequest
|
||||
{
|
||||
public string CardNumber { get; set; }
|
||||
public string IBan { get; set; }
|
||||
public string AccountNumber { get; set; }
|
||||
public string BankName { get; set; }
|
||||
}
|
||||
public class BankInquiryResponse
|
||||
{
|
||||
public string CardNumber { get; set; }
|
||||
public string IBan { get; set; }
|
||||
public string AccountNumber { get; set; }
|
||||
public string BankName { get; set; }
|
||||
public string AccountHolderName { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,628 @@
|
||||
using _0_Framework.Application;
|
||||
using AccountManagement.Application.Contracts.Account;
|
||||
using CompanyManagement.Infrastructure.Excel.InstitutionContract;
|
||||
using CompanyManagment.App.Contracts.Employer;
|
||||
using CompanyManagment.App.Contracts.InstitutionContract;
|
||||
using CompanyManagment.App.Contracts.InstitutionContractContactinfo;
|
||||
using CompanyManagment.App.Contracts.PersonalContractingParty;
|
||||
using CompanyManagment.App.Contracts.Representative;
|
||||
using CompanyManagment.App.Contracts.Workshop;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||
using ServiceHost.BaseControllers;
|
||||
|
||||
namespace ServiceHost.Areas.Admin.Controllers;
|
||||
|
||||
/// <summary>
|
||||
/// کنترلر قرارداد های مالی موسسه
|
||||
/// </summary>
|
||||
public class institutionContractController : AdminBaseController
|
||||
{
|
||||
private readonly IInstitutionContractApplication _institutionContractApplication;
|
||||
private readonly IPersonalContractingPartyApp _contractingPartyApplication;
|
||||
private readonly IContactInfoApplication _contactInfoApplication;
|
||||
private readonly IAccountApplication _accountApplication;
|
||||
private readonly IEmployerApplication _employerApplication;
|
||||
private readonly IWorkshopApplication _workshopApplication;
|
||||
|
||||
|
||||
public institutionContractController(IInstitutionContractApplication institutionContractApplication,
|
||||
IPersonalContractingPartyApp contractingPartyApplication, IContactInfoApplication contactInfoApplication,
|
||||
IAccountApplication accountApplication, IEmployerApplication employerApplication, IWorkshopApplication workshopApplication)
|
||||
{
|
||||
_institutionContractApplication = institutionContractApplication;
|
||||
_contractingPartyApplication = contractingPartyApplication;
|
||||
_contactInfoApplication = contactInfoApplication;
|
||||
_accountApplication = accountApplication;
|
||||
_employerApplication = employerApplication;
|
||||
_workshopApplication = workshopApplication;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// لیست قرارداد های مالی
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<ActionResult<PagedResult<GetInstitutionContractListItemsViewModel>>> GetList(
|
||||
InstitutionContractListSearchModel searchModel)
|
||||
{
|
||||
return await _institutionContractApplication.GetList(searchModel);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// وضعیت تب ها
|
||||
/// </summary>
|
||||
/// <param name="searchModel"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("stats")]
|
||||
public async Task<ActionResult<GetInstitutionContractListStatsViewModel>> GetListStats(
|
||||
InstitutionContractListSearchModel searchModel)
|
||||
{
|
||||
return await _institutionContractApplication.GetListStats(searchModel);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ایجاد
|
||||
/// </summary>
|
||||
/// <param name="command"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<ActionResult<OperationResult>> Create([FromBody] CreateInstitutionContractRequest command)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
var counter = command.ContactInfos.Count;
|
||||
//if (string.IsNullOrWhiteSpace(command.HasValueAddedTax))
|
||||
// command.HasValueAddedTax = "false";
|
||||
var phone = command.ContactInfos.FirstOrDefault(x =>
|
||||
x.SendSmsString == "true" && x.Position == "طرف قرارداد" && x.PhoneType == "شماره همراه");
|
||||
var conractingParty = _contractingPartyApplication.GetDetails(command.ContractingPartyId);
|
||||
if (conractingParty.IsLegal == "حقیقی" && string.IsNullOrWhiteSpace(conractingParty.Nationalcode))
|
||||
return new JsonResult(op.Failed("کد ملی طرف حساب وجود ندارد"));
|
||||
if (conractingParty.IsLegal == "حقوقی" && string.IsNullOrWhiteSpace(conractingParty.NationalId))
|
||||
return new JsonResult(op.Failed("شناسه ملی طرف حساب وجود ندارد"));
|
||||
var result = await _institutionContractApplication.CreateAsync(command);
|
||||
|
||||
if (result.IsSuccedded && counter > 0)
|
||||
{
|
||||
for (var i = 0; i <= counter - 1; i++)
|
||||
{
|
||||
if (command.ContactInfos[i].PhoneNumber != null)
|
||||
{
|
||||
var contactinfo = new CreateContactInfo
|
||||
{
|
||||
InstitutionContractId = result.SendId,
|
||||
PhoneType = command.ContactInfos[i].PhoneType,
|
||||
Position = command.ContactInfos[i].Position,
|
||||
PhoneNumber = command.ContactInfos[i].PhoneNumber,
|
||||
FnameLname = command.ContactInfos[i].FnameLname,
|
||||
SendSms = command.ContactInfos[i].SendSmsString == "true" ? true : false
|
||||
};
|
||||
_contactInfoApplication.Create(contactinfo);
|
||||
}
|
||||
|
||||
Thread.Sleep(500);
|
||||
}
|
||||
|
||||
|
||||
if (phone != null)
|
||||
{
|
||||
var userPass = conractingParty.IsLegal == "حقیقی"
|
||||
? conractingParty.Nationalcode
|
||||
: conractingParty.NationalId;
|
||||
var createAcc = new RegisterAccount
|
||||
{
|
||||
Fullname = conractingParty.LName,
|
||||
Username = userPass,
|
||||
Password = userPass,
|
||||
Mobile = phone.PhoneNumber,
|
||||
NationalCode = userPass
|
||||
};
|
||||
var res = _accountApplication.RegisterClient(createAcc);
|
||||
if (res.IsSuccedded)
|
||||
_institutionContractApplication.CreateContractingPartyAccount(command.ContractingPartyId,
|
||||
res.SendId);
|
||||
}
|
||||
}
|
||||
|
||||
return new JsonResult(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ویرایش
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
public async Task<ActionResult<OperationResult>> Edit([FromBody] EditInstitutionContractRequest command)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
var phoneNumber = command.ContactInfos.FirstOrDefault(x =>
|
||||
x.SendSmsString == "true" && x.Position == "طرف قرارداد" && x.PhoneType == "شماره همراه");
|
||||
var conractingParty = _contractingPartyApplication.GetDetails(command.ContractingPartyId);
|
||||
|
||||
if (conractingParty.IsLegal == "حقیقی" && string.IsNullOrWhiteSpace(conractingParty.Nationalcode))
|
||||
return new JsonResult(op.Failed("کد ملی طرف حساب وجود ندارد"));
|
||||
if (conractingParty.IsLegal == "حقوقی" && string.IsNullOrWhiteSpace(conractingParty.NationalId))
|
||||
return new JsonResult(op.Failed("شناسه ملی طرف حساب وجود ندارد"));
|
||||
if (phoneNumber == null)
|
||||
return new JsonResult(op.Failed("تعیین شماره همراه با سمت طرف قرارداد اجباریست"));
|
||||
//if (string.IsNullOrWhiteSpace(command.HasValueAddedTax))
|
||||
// command.HasValueAddedTax = "false";
|
||||
var result = await _institutionContractApplication.EditAsync(command);
|
||||
var contractingPartyId = _institutionContractApplication.GetDetails(result.SendId);
|
||||
var counter = command.ContactInfos.Count;
|
||||
var getOldContarct = _institutionContractApplication.NewSearch(new InstitutionContractSearchModel()
|
||||
{ ContractingPartyId = contractingPartyId.ContractingPartyId, IsActiveString = "both" })
|
||||
.Where(x => x.IsActiveString == "false" || x.IsActiveString == "blue").ToList();
|
||||
if (result.IsSuccedded && counter > 0)
|
||||
{
|
||||
if (getOldContarct.Count > 0)
|
||||
{
|
||||
foreach (var item in getOldContarct)
|
||||
{
|
||||
_contactInfoApplication.RemoveContactInfo(item.Id);
|
||||
foreach (var phone in command.ContactInfos)
|
||||
{
|
||||
if (phone.PhoneNumber != null)
|
||||
{
|
||||
var contactinfo = new CreateContactInfo
|
||||
{
|
||||
InstitutionContractId = item.Id,
|
||||
PhoneType = phone.PhoneType,
|
||||
Position = phone.Position,
|
||||
PhoneNumber = phone.PhoneNumber,
|
||||
FnameLname = phone.FnameLname,
|
||||
SendSms = phone.SendSmsString == "true" ? true : false
|
||||
};
|
||||
_contactInfoApplication.Create(contactinfo);
|
||||
}
|
||||
|
||||
Thread.Sleep(500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_contactInfoApplication.RemoveContactInfo(command.Id);
|
||||
foreach (var item in command.ContactInfos)
|
||||
{
|
||||
if (item.PhoneNumber != null)
|
||||
{
|
||||
var contactinfo = new CreateContactInfo
|
||||
{
|
||||
InstitutionContractId = result.SendId,
|
||||
PhoneType = item.PhoneType,
|
||||
Position = item.Position,
|
||||
PhoneNumber = item.PhoneNumber,
|
||||
FnameLname = item.FnameLname,
|
||||
SendSms = item.SendSmsString == "true" ? true : false
|
||||
};
|
||||
_contactInfoApplication.Create(contactinfo);
|
||||
}
|
||||
|
||||
Thread.Sleep(500);
|
||||
}
|
||||
|
||||
|
||||
//ساخت اکانت کلاینت
|
||||
var userPass = conractingParty.IsLegal == "حقیقی"
|
||||
? conractingParty.Nationalcode
|
||||
: conractingParty.NationalId;
|
||||
var checkExistAccount = _accountApplication.CheckExistClientAccount(userPass);
|
||||
if (!checkExistAccount)
|
||||
{
|
||||
var createAcc = new RegisterAccount
|
||||
{
|
||||
Fullname = conractingParty.LName,
|
||||
Username = userPass,
|
||||
Password = userPass,
|
||||
Mobile = phoneNumber.PhoneNumber,
|
||||
NationalCode = userPass
|
||||
};
|
||||
var res = _accountApplication.RegisterClient(createAcc);
|
||||
if (res.IsSuccedded)
|
||||
_institutionContractApplication.CreateContractingPartyAccount(command.ContractingPartyId,
|
||||
res.SendId);
|
||||
}
|
||||
}
|
||||
//Thread.Sleep(500);
|
||||
//for (int i = 0; i <= counter - 1; i++)
|
||||
//{
|
||||
// if (command.ContactInformationList[i].PhoneNumber != null)
|
||||
// {
|
||||
|
||||
// var contactinfo = new CreateContactInfo()
|
||||
// {
|
||||
// InstitutionContractId = result.SendId,
|
||||
// PhoneType = command.ContactInformationList[i].PhoneType,
|
||||
// Position = command.ContactInformationList[i].Position,
|
||||
// PhoneNumber = command.ContactInformationList[i].PhoneNumber,
|
||||
// FnameLname = command.ContactInformationList[i].FnameLname,
|
||||
// SendSms = command.ContactInformationList[i].SendSmsString == "true" ? true : false
|
||||
// };
|
||||
// _contactInfoApplication.Create(contactinfo);
|
||||
|
||||
// }
|
||||
// Thread.Sleep(500);
|
||||
//}
|
||||
|
||||
|
||||
return new JsonResult(result);
|
||||
}
|
||||
|
||||
[HttpPost("deActive")]
|
||||
public ActionResult<OperationResult> DeActive(long id, string balance)
|
||||
{
|
||||
var result = new OperationResult();
|
||||
if (balance == "0")
|
||||
{
|
||||
result = _institutionContractApplication.DeActive(id);
|
||||
if (result.IsSuccedded) result = _institutionContractApplication.DeActiveAllConnections(id);
|
||||
}
|
||||
else
|
||||
{
|
||||
result = _institutionContractApplication.DeActiveBlue(id);
|
||||
if (result.IsSuccedded)
|
||||
result = _institutionContractApplication.DeActiveAllConnections(id);
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// غیر فعال
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("active")]
|
||||
public ActionResult<OperationResult> IsActive(long id)
|
||||
{
|
||||
var result = _institutionContractApplication.Active(id);
|
||||
if (result.IsSuccedded)
|
||||
{
|
||||
result = _institutionContractApplication.ReActiveAllConnections(id);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
[HttpPost("sign")]
|
||||
public ActionResult<OperationResult> Sign(long Id)
|
||||
{
|
||||
var result = _institutionContractApplication.Sign(Id);
|
||||
if (result.IsSuccedded)
|
||||
return new JsonResult(new
|
||||
{
|
||||
isSuccedded = true
|
||||
});
|
||||
return new JsonResult(new
|
||||
{
|
||||
isSuccedded = false
|
||||
});
|
||||
}
|
||||
|
||||
[HttpPost("unsign")]
|
||||
public ActionResult<OperationResult> UnSign(long Id)
|
||||
{
|
||||
var id = Convert.ToInt64(Id);
|
||||
var result = _institutionContractApplication.UnSign(Id);
|
||||
if (result.IsSuccedded)
|
||||
return new JsonResult(new
|
||||
{
|
||||
isSuccedded = true
|
||||
});
|
||||
return new JsonResult(new
|
||||
{
|
||||
isSuccedded = false
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// بلاک طرف حساب
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("block-contracting-party")]
|
||||
public IActionResult OnPostBlockContractingParty(long id)
|
||||
{
|
||||
var result = _contractingPartyApplication.Block(id);
|
||||
var afterActtion = _contractingPartyApplication.GetDetails(id);
|
||||
return new JsonResult(new
|
||||
{
|
||||
isSuccedded = result.IsSuccedded,
|
||||
isBlock = afterActtion.IsBlock,
|
||||
blockTimes = afterActtion.BlockTimes
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// آنبلاک طرف حساب
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("unblock-contracting-party")]
|
||||
public IActionResult OnPostUnBlockContractingParty(long id)
|
||||
{
|
||||
var result = _contractingPartyApplication.DisableBlock(id);
|
||||
var afterActtion = _contractingPartyApplication.GetDetails(id);
|
||||
return new JsonResult(new
|
||||
{
|
||||
isSuccedded = result.IsSuccedded,
|
||||
isBlock = afterActtion.IsBlock,
|
||||
blockTimes = afterActtion.BlockTimes
|
||||
});
|
||||
}
|
||||
[HttpGet("extension/{id}")]
|
||||
public ActionResult<EditInstitutionContract> OnGetExtension(long id)
|
||||
{
|
||||
var todayGr = DateTime.Now;
|
||||
var todayFa = todayGr.ToFarsi();
|
||||
var previusContract = _institutionContractApplication.GetDetails(id);
|
||||
var previusContractEnd = previusContract.ContractEndGr.AddDays(1);
|
||||
var startFa = previusContractEnd.ToFarsi();
|
||||
var endFa = startFa.FindeEndOfYear();
|
||||
|
||||
|
||||
var representativList = new List<RepresentativeViewModel>();
|
||||
var contractingPartyList = new List<PersonalContractingPartyViewModel>();
|
||||
var res = _institutionContractApplication.GetDetails(id);
|
||||
var representative = new RepresentativeViewModel
|
||||
{
|
||||
Id = res.RepresentativeId,
|
||||
FullName = res.RepresentativeName
|
||||
};
|
||||
representativList.Add(representative);
|
||||
var contractingParty = new PersonalContractingPartyViewModel
|
||||
{
|
||||
id = res.ContractingPartyId,
|
||||
FullName = _contractingPartyApplication.GetFullName(res.ContractingPartyId)
|
||||
};
|
||||
contractingPartyList.Add(contractingParty);
|
||||
res.RepresentativeSelectList =
|
||||
new SelectList(representativList, "Id", "FullName");
|
||||
res.ContractingPartiesSelectList =
|
||||
new SelectList(contractingPartyList, "id", "FullName");
|
||||
|
||||
var employer = _employerApplication.GetEmployerByContracrtingPartyID(res.ContractingPartyId);
|
||||
var emplId = employer.Select(x => x.Id).ToList();
|
||||
|
||||
var w = _workshopApplication.GetWorkshopsByEmployerId(emplId);
|
||||
var workshopIds = w.Select(x => x.Id).ToList();
|
||||
var workshopCount = Convert.ToString(w.Count);
|
||||
|
||||
var pCount = 0;
|
||||
if (workshopIds.Count > 0)
|
||||
{
|
||||
foreach (var workshopId in workshopIds)
|
||||
{
|
||||
var p = _workshopApplication.PersonnelCount(workshopId);
|
||||
pCount += p;
|
||||
}
|
||||
|
||||
res.EmployeeCount = Convert.ToString(pCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
res.EmployeeCount = "0";
|
||||
}
|
||||
|
||||
|
||||
//var left = _leftWorkApplication.GetLeftPersonelByWorkshopId(workshopIds);
|
||||
|
||||
res.WorkshopCount = workshopCount;
|
||||
|
||||
res.WorkshopManualCount = workshopCount;
|
||||
res.EmployeeManualCount = res.EmployeeCount;
|
||||
|
||||
res.ContractDateFa = todayFa;
|
||||
res.ContractStartFa = startFa;
|
||||
res.ContractEndFa = endFa;
|
||||
res.ContractAmountString = "0";
|
||||
res.DailyCompenseationString = "0";
|
||||
res.ObligationString = "0";
|
||||
res.TotalAmountString = "0";
|
||||
res.PrviousContractId = id;
|
||||
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(res.EmployeeManualCount))
|
||||
{
|
||||
var countPerson = Convert.ToInt32(res.EmployeeCount);
|
||||
var finalAmount = _institutionContractApplication.GetcontractAmount(countPerson);
|
||||
|
||||
var syear = Convert.ToInt32(startFa.Substring(0, 4));
|
||||
var smonth = Convert.ToInt32(startFa.Substring(5, 2));
|
||||
var sday = Convert.ToInt32(startFa.Substring(8, 2));
|
||||
|
||||
|
||||
var eyear = Convert.ToInt32(endFa.Substring(0, 4));
|
||||
var emonth = Convert.ToInt32(endFa.Substring(5, 2));
|
||||
var eday = Convert.ToInt32(endFa.Substring(8, 2));
|
||||
emonth += 1;
|
||||
|
||||
var def = (eyear - syear) * 12 + emonth - smonth;
|
||||
|
||||
|
||||
//رند ماهیانه
|
||||
//int rightMDigits = (int)(finalAmount % 1000000);
|
||||
//if (rightMDigits < 500000)
|
||||
//{
|
||||
// finalAmount = (int)(finalAmount / 100000) * 100000;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// finalAmount = (int)(finalAmount / 100000 + 1) * 100000;
|
||||
//}
|
||||
finalAmount = (int)(finalAmount / 1000000) * 1000000;
|
||||
|
||||
double compute = 0;
|
||||
double tenPercent = 0;
|
||||
if (res.HasValueAddedTax == "true")
|
||||
{
|
||||
tenPercent = finalAmount * 10 / 100;
|
||||
res.ContractAmountOAlone = finalAmount.ToMoney();
|
||||
|
||||
//افزودن 10 درصد
|
||||
finalAmount += tenPercent;
|
||||
res.ContractAmountString = finalAmount.ToMoney();
|
||||
res.ValueAddedTaxStr = tenPercent.ToMoney();
|
||||
compute = finalAmount * def;
|
||||
res.ObligationString = compute.ToMoney();
|
||||
res.TotalAmountString = res.ObligationString;
|
||||
}
|
||||
else
|
||||
{
|
||||
res.ContractAmountOAlone = finalAmount.ToMoney();
|
||||
res.ContractAmountString = res.ContractAmountOAlone;
|
||||
res.ValueAddedTaxStr = "0";
|
||||
compute = finalAmount * def;
|
||||
res.ObligationString = compute.ToMoney();
|
||||
res.TotalAmountString = res.ObligationString;
|
||||
}
|
||||
|
||||
|
||||
//رند سالانه
|
||||
|
||||
//int rightYDigits = (int)(compute % 10000000);
|
||||
//if (rightYDigits < 5000000)
|
||||
|
||||
//compute = (int)(compute / 1000000) * 1000000;
|
||||
}
|
||||
|
||||
var contactInfo = _contactInfoApplication.GetContactInfolist(id);
|
||||
if (contactInfo.Count > 0)
|
||||
{
|
||||
res.ContactInfoCounter = contactInfo.Count;
|
||||
res.ContactInformationList = contactInfo;
|
||||
}
|
||||
else
|
||||
{
|
||||
res.ContactInfoCounter = 0;
|
||||
}
|
||||
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
[HttpPost("extension")]
|
||||
public async Task<ActionResult<OperationResult>> OnPostExtension([FromBody]ExtenstionInstitutionContractRequest command)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
|
||||
var phoneNumber = command.ContactInfos.FirstOrDefault(x =>
|
||||
x.SendSmsString == "true" && x.Position == "طرف قرارداد" && x.PhoneType == "شماره همراه");
|
||||
var conractingParty = _contractingPartyApplication.GetDetails(command.ContractingPartyId);
|
||||
|
||||
if (conractingParty.IsLegal == "حقیقی" && string.IsNullOrWhiteSpace(conractingParty.Nationalcode))
|
||||
return new JsonResult(op.Failed("کد ملی طرف حساب وجود ندارد"));
|
||||
if (conractingParty.IsLegal == "حقوقی" && string.IsNullOrWhiteSpace(conractingParty.NationalId))
|
||||
return new JsonResult(op.Failed("شناسه ملی طرف حساب وجود ندارد"));
|
||||
if(phoneNumber == null)
|
||||
return new JsonResult(op.Failed("تعیین شماره همراه با سمت طرف قرارداد اجباریست"));
|
||||
|
||||
|
||||
var counter = command.ContactInfos.Count;
|
||||
|
||||
var result = await _institutionContractApplication.ExtensionَAsync(command);
|
||||
|
||||
if (result.IsSuccedded && counter > 0)
|
||||
{
|
||||
for (var i = 0; i <= counter - 1; i++)
|
||||
{
|
||||
if (command.ContactInfos[i].PhoneNumber != null)
|
||||
{
|
||||
var contactinfo = new CreateContactInfo
|
||||
{
|
||||
InstitutionContractId = result.SendId,
|
||||
PhoneType = command.ContactInfos[i].PhoneType,
|
||||
Position = command.ContactInfos[i].Position,
|
||||
PhoneNumber = command.ContactInfos[i].PhoneNumber,
|
||||
FnameLname = command.ContactInfos[i].FnameLname,
|
||||
SendSms = command.ContactInfos[i].SendSmsString == "true" ? true : false
|
||||
};
|
||||
_contactInfoApplication.Create(contactinfo);
|
||||
}
|
||||
|
||||
Thread.Sleep(500);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (result.IsSuccedded)
|
||||
{
|
||||
_institutionContractApplication.DeActive(command.PreviousContractId);
|
||||
_institutionContractApplication.ReActiveAllAfterCreateNew(command.ContractingPartyId);
|
||||
}
|
||||
var contractingPartyId = _institutionContractApplication.GetDetails(result.SendId);
|
||||
|
||||
var getOldContarct = _institutionContractApplication.NewSearch(new InstitutionContractSearchModel()
|
||||
{ ContractingPartyId = contractingPartyId.ContractingPartyId, IsActiveString = "both" }).Where(x => x.IsActiveString == "false" || x.IsActiveString == "blue").ToList();
|
||||
if (result.IsSuccedded && counter > 0)
|
||||
{
|
||||
|
||||
if (getOldContarct.Count > 0)
|
||||
{
|
||||
foreach (var item in getOldContarct)
|
||||
{
|
||||
_contactInfoApplication.RemoveContactInfo(item.Id);
|
||||
foreach (var phone in command.ContactInfos)
|
||||
{
|
||||
if (phone.PhoneNumber != null)
|
||||
{
|
||||
var contactinfo = new CreateContactInfo
|
||||
{
|
||||
InstitutionContractId = item.Id,
|
||||
PhoneType = phone.PhoneType,
|
||||
Position = phone.Position,
|
||||
PhoneNumber = phone.PhoneNumber,
|
||||
FnameLname = phone.FnameLname,
|
||||
SendSms = phone.SendSmsString == "true" ? true : false
|
||||
};
|
||||
_contactInfoApplication.Create(contactinfo);
|
||||
}
|
||||
|
||||
Thread.Sleep(500);
|
||||
}
|
||||
}
|
||||
|
||||
//ساخت اکانت کلاینت
|
||||
var userPass = conractingParty.IsLegal == "حقیقی"
|
||||
? conractingParty.Nationalcode
|
||||
: conractingParty.NationalId;
|
||||
var checkExistAccount = _accountApplication.CheckExistClientAccount(userPass);
|
||||
if (!checkExistAccount)
|
||||
{
|
||||
|
||||
var createAcc = new RegisterAccount
|
||||
{
|
||||
Fullname = conractingParty.LName,
|
||||
Username = userPass,
|
||||
Password = userPass,
|
||||
Mobile = phoneNumber.PhoneNumber,
|
||||
NationalCode = userPass
|
||||
};
|
||||
var res = _accountApplication.RegisterClient(createAcc);
|
||||
if (res.IsSuccedded)
|
||||
_institutionContractApplication.CreateContractingPartyAccount(command.ContractingPartyId, res.SendId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// دانلود اکسل
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("excel")]
|
||||
public IActionResult OnGetDownloadExcel()
|
||||
{
|
||||
var institutionContractViewModels =
|
||||
_institutionContractApplication.NewSearch(new() { IsActiveString = "both", TypeOfContract = "both" });
|
||||
var bytes = InstitutionContractExcelGenerator.GenerateExcel(institutionContractViewModels);
|
||||
return File(bytes,
|
||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
$"قرارداد های مالی.xlsx");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -994,11 +994,26 @@
|
||||
|
||||
<button id="btnPrint" type="button" class="btn btn-success btn-rounded waves-effect waves-light">پرینت قرارداد </button>
|
||||
<button type="button" id="closingOnePrint" class="btn btn-warning btn-rounded waves-effect waves-light m-b-10" data-dismiss="modal">بستن فرم</button>
|
||||
@if (Model.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت رفع تغییرات فیش حقوقی را دوباره ایجاد کنید!">
|
||||
<path d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
</div>
|
||||
</form>
|
||||
<!--<script src="~/AdminTheme/assets/js/workingHoursPrintable.js"></script>-->
|
||||
|
||||
<script>
|
||||
|
||||
var shiftNumber = $('#shiftWorkval').val();
|
||||
|
||||
|
||||
@@ -1439,6 +1454,7 @@
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
document.getElementById("btnPrint").onclick = function () {
|
||||
@@ -1463,6 +1479,9 @@
|
||||
|
||||
}
|
||||
});
|
||||
$(function () {
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
});
|
||||
// window.onfocus=function(){
|
||||
// $('#closingOnePrint').click();
|
||||
// }
|
||||
|
||||
@@ -342,17 +342,47 @@
|
||||
{
|
||||
@if (items.HasRollCall)
|
||||
{
|
||||
@if (items.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت رفع تغییرات فیش حقوقی را دوباره ایجاد کنید!">
|
||||
<path d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
<partial name="_Partials/PrintDetailsRollCallRaw" model="items"/>
|
||||
}
|
||||
else
|
||||
{
|
||||
@if (items.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت رفع تغییرات فیش حقوقی را دوباره ایجاد کنید!">
|
||||
<path d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
<partial name="_Partials/PrintDetailStaticRaw" model="items" />
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
$(function () {
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
});
|
||||
$(document).ready(function() {
|
||||
printElement(document.getElementById("printThis"));
|
||||
});
|
||||
|
||||
@@ -708,8 +708,26 @@
|
||||
|
||||
<button id="btnPrint" type="button" class="btn btn-success btn-rounded waves-effect waves-light">پرینت قرارداد </button>
|
||||
<button type="button" id="closingOnePrint" class="btn btn-warning btn-rounded waves-effect waves-light m-b-10" data-dismiss="modal">بستن فرم</button>
|
||||
@if (Model.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت رفع تغییرات فیش حقوقی را دوباره ایجاد کنید!">
|
||||
<path d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
</div>
|
||||
</form>
|
||||
<!--<script src="~/AdminTheme/assets/js/workingHoursPrintable.js"></script>-->
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
});
|
||||
</script>
|
||||
<script src="~/assetsadmin/page/checkouts/js/printdetailsrollcall.js"></script>
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Drawing;
|
||||
using _0_Framework.Application;
|
||||
using AccountManagement.Application.Contracts.Account;
|
||||
using CompanyManagement.Infrastructure.Excel.InstitutionContract;
|
||||
|
||||
@@ -27,7 +27,7 @@ public class FinancialController : ClientBaseController
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public async Task<ActionResult<ClientFinancialStatementViewModel>> GetList(ClientFinancialStatementSearchModel searchModel)
|
||||
public async Task<ActionResult<ClientFinancialStatementViewModel>> GetList(FinancialStatementSearchModel searchModel)
|
||||
{
|
||||
var accountId = _authHelper.CurrentAccountId();
|
||||
var result =await _financialStatementApplication.GetClientFinancialStatement(searchModel,accountId);
|
||||
|
||||
@@ -95,12 +95,41 @@
|
||||
|
||||
@foreach (var items in @Model.GroupPrintList)
|
||||
{
|
||||
|
||||
@if (items.HasRollCall)
|
||||
{
|
||||
<partial name="_Partials/PrintDetailsRollCallRaw" model="items"/>
|
||||
@if (items.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت رفع تغییرات فیش حقوقی را دوباره ایجاد کنید!">
|
||||
<path d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
<partial name="_Partials/PrintDetailsRollCallRaw" model="items"/>
|
||||
}
|
||||
else
|
||||
{
|
||||
@if (items.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت رفع تغییرات فیش حقوقی را دوباره ایجاد کنید!">
|
||||
<path d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
<partial name="_Partials/PrintDetailStaticRaw" model="items" />
|
||||
}
|
||||
}
|
||||
@@ -114,6 +143,11 @@
|
||||
</div>
|
||||
|
||||
@section Script{
|
||||
<script>
|
||||
document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(el => {
|
||||
bootstrap.Tooltip.getOrCreateInstance(el);
|
||||
});
|
||||
</script>
|
||||
<script src="~/lib/jquery-ajax-unobtrusive/jquery.unobtrusive-ajax.min.js"></script>
|
||||
@*
|
||||
<script>
|
||||
|
||||
@@ -64,9 +64,7 @@
|
||||
}
|
||||
|
||||
|
||||
.table-contracts .checkout-list .width10 {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
|
||||
@@media screen and (max-width: 767px) {
|
||||
.goToTop {
|
||||
@@ -336,14 +334,15 @@
|
||||
<label for="checkAll2" class="prevent-select">ردیف</label>
|
||||
</span>
|
||||
</div>
|
||||
<div class="Rtable-cell column-heading d-none d-lg-block width2">شماره پرسنلی</div>
|
||||
<div class="Rtable-cell column-heading d-none d-lg-block width11"> </div>
|
||||
<div class="Rtable-cell column-heading d-none d-lg-block width2" >شماره پرسنلی</div>
|
||||
<div class="Rtable-cell column-heading d-none d-md-block width3">سال</div>
|
||||
<div class="Rtable-cell column-heading d-none d-md-block width4">ماه</div>
|
||||
<div class="Rtable-cell column-heading d-none d-md-block width5">شماره قرارداد</div>
|
||||
<div class="Rtable-cell column-heading width6">نام پرسنل</div>
|
||||
<div class="Rtable-cell column-heading width7">آغاز قرارداد</div>
|
||||
<div class="Rtable-cell column-heading width8">پایان قرارداد</div>
|
||||
<div class="Rtable-cell column-heading d-none d-md-block width9">امضاء پرسنل</div>
|
||||
<div class="Rtable-cell column-heading d-none d-md-block width9" style="text-align: center">امضاء پرسنل</div>
|
||||
<div class="Rtable-cell column-heading width10 text-end">عملیات</div>
|
||||
</div>
|
||||
|
||||
@@ -362,6 +361,25 @@
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="Rtable-cell d-lg-block d-none width11">
|
||||
<div class="Rtable-cell--heading"> </div>
|
||||
<div class="Rtable-cell--content">
|
||||
@if (item.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت صدور فیش حقوقی استاندارد مجددا فیش را ایجاد کنید!">
|
||||
<path d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="Rtable-cell d-lg-block d-none width2">
|
||||
<div class="Rtable-cell--heading">شماره پرسنلی</div>
|
||||
<div class="Rtable-cell--content">@item.PersonnelCode</div>
|
||||
@@ -708,6 +726,9 @@
|
||||
var modalDetailsRotatingShiftReportUrl = `@Url.Page("/Company/Checkouts/Index", "ModalDetailsRotatingShiftReport")`;
|
||||
|
||||
var itemsYearList = @Html.Raw(Json.Serialize(Model.YearlyList.OrderBy(x => x)));
|
||||
document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(el => {
|
||||
bootstrap.Tooltip.getOrCreateInstance(el);
|
||||
});
|
||||
</script>
|
||||
<script src="~/assetsclient/pages/checkouts/js/index.js?ver=@clientVersion"></script>
|
||||
}
|
||||
@@ -651,17 +651,36 @@
|
||||
<input type="hidden" id="shiftWorkval" name="shiftWorkval" value="@Model.CreateWorkingHoursTemp.ShiftWork">
|
||||
|
||||
|
||||
<div class="modal-footer" style="border-top: unset; padding: 1px 15px 10px;">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 text-start">
|
||||
<button type="button" class="btn btn-rounded waves-effect waves-light m-b-10 text-white" data-bs-dismiss="modal" aria-label="Close" style="background-color: #454D5C;">بستن فرم</button>
|
||||
<button id="btnPrint" type="button" class="btn btn-success btn-rounded waves-effect waves-light">پرینت</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer" style="border-top: unset; padding: 1px 15px 10px;">
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 text-start">
|
||||
<button type="button" class="btn btn-rounded waves-effect waves-light m-b-10 text-white" data-bs-dismiss="modal" aria-label="Close" style="background-color: #454D5C;">بستن فرم</button>
|
||||
<button id="btnPrint" type="button" class="btn btn-success btn-rounded waves-effect waves-light">پرینت</button>
|
||||
@if (Model.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت صدور فیش حقوقی استاندارد مجددا فیش را ایجاد کنید!">
|
||||
<path d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<!--<script src="~/AdminTheme/assets/js/workingHoursPrintable.js"></script>-->
|
||||
|
||||
<script>
|
||||
document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(el => {
|
||||
bootstrap.Tooltip.getOrCreateInstance(el);
|
||||
});
|
||||
</script>
|
||||
<script src="~/assetsclient/pages/checkouts/js/printone.js"></script>
|
||||
@@ -656,11 +656,30 @@
|
||||
<div class="col-12 text-start">
|
||||
<button type="button" class="btn btn-rounded waves-effect waves-light m-b-10 text-white" data-bs-dismiss="modal" aria-label="Close" style="background-color: #454D5C;">بستن فرم</button>
|
||||
<button id="btnPrint" type="button" class="btn btn-success btn-rounded waves-effect waves-light">پرینت قرارداد </button>
|
||||
@if (Model.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت رفع تغییرات فیش حقوقی را دوباره ایجاد کنید!">
|
||||
<path d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<!--<script src="~/AdminTheme/assets/js/workingHoursPrintable.js"></script>-->
|
||||
<script>
|
||||
document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(el => {
|
||||
bootstrap.Tooltip.getOrCreateInstance(el);
|
||||
});
|
||||
</script>
|
||||
<script src="~/assetsclient/libs/html2pdf/html2pdf.bundle.min.js"></script>
|
||||
<script src="~/assetsclient/pages/checkouts/js/printonemobile.js?ver=@clientVersion"></script>
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
<link href="~/assetsclient/pages/checkouts/css/printonerollcall.css?ver=@clientVersion" rel="stylesheet" />
|
||||
|
||||
|
||||
<div class="modal-header" style="border-bottom: unset">
|
||||
<button type="button" id="closingOnePrint" class="btn-close position-absolute text-start" data-bs-dismiss="modal" aria-label="Close" style="margin-top: 15px;"></button>
|
||||
</div>
|
||||
@@ -25,175 +26,176 @@
|
||||
border-radius: 10px;
|
||||
height: 28cm;
|
||||
margin: 3mm 5mm 0 5mm; ">
|
||||
<div class="row" dir="rtl">
|
||||
<div class="col-3 d-inline-block"><fieldset style="border: 1px solid black; border-radius: 15px; padding: 1px 15px 1px 15px; margin-top: 5px; width: 60%; font-size: 12px; text-align: center;"> @Model.ContractNo</fieldset></div>
|
||||
<div class="col-6 d-inline-block text-center">
|
||||
<p style="font-size: 18px; font-family: 'IranNastaliq' !important; margin: 0;">بسمه تعالی</p>
|
||||
<p style="font-size: 15px; font-weight: bold; margin: 0;">فیش حقوقی و رسید پرداخت حقوق</p>
|
||||
</div>
|
||||
<div class="col-3 d-inline-block"></div>
|
||||
</div>
|
||||
<div class="row" dir="rtl">
|
||||
<div class="col-3 d-inline-block"><fieldset style="border: 1px solid black; border-radius: 15px; padding: 1px 15px 1px 15px; margin-top: 5px; width: 60%; font-size: 12px; text-align: center;"> @Model.ContractNo</fieldset></div>
|
||||
<div class="col-6 d-inline-block text-center">
|
||||
<p style="font-size: 18px; font-family: 'IranNastaliq' !important; margin: 0;">بسمه تعالی</p>
|
||||
<p style="font-size: 15px; font-weight: bold; margin: 0;">فیش حقوقی و رسید پرداخت حقوق</p>
|
||||
</div>
|
||||
<div class="col-3 d-inline-block"></div>
|
||||
</div>
|
||||
|
||||
<div class="headerInfo">
|
||||
<div class="row" style="font-size: 12px; margin-bottom: 3px; ">
|
||||
<div class="col-12" style="padding: 0 10px;">
|
||||
<div class="d-flex align-items-center" style="border-bottom: 1px solid #000000 !important;">
|
||||
<div style="width: 34%; padding: 3px 0 !important;">
|
||||
<div>
|
||||
<span class="cusSpanTitle">اینجانب</span>
|
||||
<span>@Model.EmployeeFullName</span>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 22%; padding: 3px 0 !important; border-right: 1px solid #000000 !important;">
|
||||
<span class="cusSpanTitle">نام پدر<span>:</span></span>
|
||||
@if (string.IsNullOrWhiteSpace(@Model.FathersName))
|
||||
{
|
||||
<span style="visibility: hidden">""</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>@Model.FathersName</span>
|
||||
<div class="headerInfo">
|
||||
<div class="row" style="font-size: 12px; margin-bottom: 3px; ">
|
||||
<div class="col-12" style="padding: 0 10px;">
|
||||
<div class="d-flex align-items-center" style="border-bottom: 1px solid #000000 !important;">
|
||||
<div style="width: 34%; padding: 3px 0 !important;">
|
||||
<div>
|
||||
<span class="cusSpanTitle">اینجانب</span>
|
||||
<span>@Model.EmployeeFullName</span>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 22%; padding: 3px 0 !important; border-right: 1px solid #000000 !important;">
|
||||
<span class="cusSpanTitle">نام پدر<span>:</span></span>
|
||||
@if (string.IsNullOrWhiteSpace(@Model.FathersName))
|
||||
{
|
||||
<span style="visibility: hidden">""</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>@Model.FathersName</span>
|
||||
|
||||
}
|
||||
</div>
|
||||
<div style="width: 22%; padding: 3px 0 !important; border-right: 1px solid #000000 !important;">
|
||||
<span class="cusSpanTitle">به کد ملی<span>:</span></span>
|
||||
@if (string.IsNullOrWhiteSpace(@Model.NationalCode))
|
||||
{
|
||||
<span style="margin-left: 15px; visibility: hidden"></span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>
|
||||
@Model.NationalCode
|
||||
</span>
|
||||
}
|
||||
</div>
|
||||
<div style="width: 22%; padding: 3px 0 !important; border-right: 1px solid #000000 !important;">
|
||||
<span class="cusSpanTitle">متولد<span>:</span></span>
|
||||
@if (string.IsNullOrWhiteSpace(@Model.DateOfBirth))
|
||||
{
|
||||
<span style="visibility: hidden">1401/01/01</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>@Model.DateOfBirth</span>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12" style="font-size: 12px; text-align: justify; padding: 0 10px;">
|
||||
<div style="display: flex;align-items: center;border-bottom: 1px solid #000000 !important;height: 23px; padding: 0;">
|
||||
@{
|
||||
if (@Model.EmployerList.FirstOrDefault().IsLegal == "حقیقی")
|
||||
{
|
||||
<div style="width: 50%; padding: 3px 0 !important;">
|
||||
<div>
|
||||
<span class="cusSpanTitle">نام کارگاه<span>:</span> </span>
|
||||
<span>@Model.WorkshopName</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="width: 50%; padding: 3px 0 !important; border-right: 1px solid #000000 !important;">
|
||||
<span class="cusSpanTitle">نام کارفرما<span>:</span> </span>
|
||||
@if (Model.EmployerList.Count > 1)
|
||||
{
|
||||
<span>
|
||||
@Model.EmployerList[0].EmployerFullName <span>،</span>
|
||||
<span> </span>@Model.EmployerList[1].EmployerFullName
|
||||
@if (@Model.EmployerList.Count > 2)
|
||||
{
|
||||
<span>و غیره</span>
|
||||
}
|
||||
</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>
|
||||
@Model.EmployerList.FirstOrDefault().EmployerFullName
|
||||
</span>
|
||||
}
|
||||
</div>
|
||||
|
||||
}
|
||||
else if (@Model.EmployerList.FirstOrDefault().IsLegal == "حقوقی")
|
||||
{
|
||||
<div style="width: 100%; padding: 3px 0 !important;">
|
||||
<span class="cusSpanTitle">پـرسنل شرکت/موسسه<span>:</span> </span>
|
||||
<span>
|
||||
@Model.WorkshopName
|
||||
</span>
|
||||
</div> }
|
||||
}
|
||||
}
|
||||
</div>
|
||||
<div style="width: 22%; padding: 3px 0 !important; border-right: 1px solid #000000 !important;">
|
||||
<span class="cusSpanTitle">به کد ملی<span>:</span></span>
|
||||
@if (string.IsNullOrWhiteSpace(@Model.NationalCode))
|
||||
{
|
||||
<span style="margin-left: 15px; visibility: hidden"></span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>
|
||||
@Model.NationalCode
|
||||
</span>
|
||||
}
|
||||
</div>
|
||||
<div style="width: 22%; padding: 3px 0 !important; border-right: 1px solid #000000 !important;">
|
||||
<span class="cusSpanTitle">متولد<span>:</span></span>
|
||||
@if (string.IsNullOrWhiteSpace(@Model.DateOfBirth))
|
||||
{
|
||||
<span style="visibility: hidden">1401/01/01</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>@Model.DateOfBirth</span>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="text-align: justify; padding: 0 6px;">
|
||||
@{
|
||||
var items = new List<string>();
|
||||
|
||||
if (Model.MonthlySalary != "0") items.Add("حقوق و مزد");
|
||||
if (Model.ConsumableItems != "0") items.Add("کمک هزینه اقلام مصرفی خانوار");
|
||||
if (Model.HousingAllowance != "0") items.Add("کمک هزینه مسکن");
|
||||
if (!string.IsNullOrWhiteSpace(Model.OvertimePay) && Model.OvertimePay != "0") items.Add("فوق العاده اضافه کاری");
|
||||
if (!string.IsNullOrWhiteSpace(Model.NightworkPay) && Model.NightworkPay != "0") items.Add("فوق العاده شب کاری");
|
||||
if (!string.IsNullOrWhiteSpace(Model.FridayPay) && Model.FridayPay != "0") items.Add("فوق العاده جمعه کاری");
|
||||
if (Model.MissionPay != "0") items.Add("فوق العاده ماموریت");
|
||||
if (Model.ShiftPay != "0") items.Add("فوق العاده نوبت کاری");
|
||||
if (Model.FamilyAllowance != "0") items.Add("کمک هزینه عائله مندی");
|
||||
if (Model.MarriedAllowance != "0") items.Add("حق تاهل");
|
||||
if (Model.RewardPay != "0") items.Add("پاداش");
|
||||
if (Model.BonusesPay != "0") items.Add("عیدی و پاداش");
|
||||
if (Model.YearsPay != "0") items.Add("سنوات");
|
||||
if (Model.LeavePay != "0") items.Add("مزد مرخصی");
|
||||
<div class="col-12" style="font-size: 12px; text-align: justify; padding: 0 10px;">
|
||||
<div style="display: flex;align-items: center;border-bottom: 1px solid #000000 !important;height: 23px; padding: 0;">
|
||||
@{
|
||||
if (@Model.EmployerList.FirstOrDefault().IsLegal == "حقیقی")
|
||||
{
|
||||
<div style="width: 50%; padding: 3px 0 !important;">
|
||||
<div>
|
||||
<span class="cusSpanTitle">نام کارگاه<span>:</span> </span>
|
||||
<span>@Model.WorkshopName</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
string finalText = "";
|
||||
if (items.Count == 1)
|
||||
{
|
||||
finalText = items[0];
|
||||
}
|
||||
else if (items.Count > 1)
|
||||
{
|
||||
finalText = string.Join("<span>،</span> ", items.Take(items.Count - 1)) + " و " + items.Last();
|
||||
}
|
||||
}
|
||||
<div style="width: 50%; padding: 3px 0 !important; border-right: 1px solid #000000 !important;">
|
||||
<span class="cusSpanTitle">نام کارفرما<span>:</span> </span>
|
||||
@if (Model.EmployerList.Count > 1)
|
||||
{
|
||||
<span>
|
||||
@Model.EmployerList[0].EmployerFullName <span>،</span>
|
||||
<span> </span>@Model.EmployerList[1].EmployerFullName
|
||||
@if (@Model.EmployerList.Count > 2)
|
||||
{
|
||||
<span>و غیره</span>
|
||||
}
|
||||
</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>
|
||||
@Model.EmployerList.FirstOrDefault().EmployerFullName
|
||||
</span>
|
||||
}
|
||||
</div>
|
||||
|
||||
<span>
|
||||
کلیه حق السعی خود اعم از @Html.Raw(finalText) @Model.Month ماه سال @Model.Year برابر با قرارداد به شماره فوق را از کارفرما بصورت وجه نقد و واریز به حساب دریافت نموده ام.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else if (@Model.EmployerList.FirstOrDefault().IsLegal == "حقوقی")
|
||||
{
|
||||
<div style="width: 100%; padding: 3px 0 !important;">
|
||||
<span class="cusSpanTitle">پـرسنل شرکت/موسسه<span>:</span> </span>
|
||||
<span>
|
||||
@Model.WorkshopName
|
||||
</span>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
<div style="text-align: justify; padding: 0 6px;">
|
||||
@{
|
||||
var items = new List<string>();
|
||||
|
||||
if (Model.MonthlySalary != "0") items.Add("حقوق و مزد");
|
||||
if (Model.ConsumableItems != "0") items.Add("کمک هزینه اقلام مصرفی خانوار");
|
||||
if (Model.HousingAllowance != "0") items.Add("کمک هزینه مسکن");
|
||||
if (!string.IsNullOrWhiteSpace(Model.OvertimePay) && Model.OvertimePay != "0") items.Add("فوق العاده اضافه کاری");
|
||||
if (!string.IsNullOrWhiteSpace(Model.NightworkPay) && Model.NightworkPay != "0") items.Add("فوق العاده شب کاری");
|
||||
if (!string.IsNullOrWhiteSpace(Model.FridayPay) && Model.FridayPay != "0") items.Add("فوق العاده جمعه کاری");
|
||||
if (Model.MissionPay != "0") items.Add("فوق العاده ماموریت");
|
||||
if (Model.ShiftPay != "0") items.Add("فوق العاده نوبت کاری");
|
||||
if (Model.FamilyAllowance != "0") items.Add("کمک هزینه عائله مندی");
|
||||
if (Model.MarriedAllowance != "0") items.Add("حق تاهل");
|
||||
if (Model.RewardPay != "0") items.Add("پاداش");
|
||||
if (Model.BonusesPay != "0") items.Add("عیدی و پاداش");
|
||||
if (Model.YearsPay != "0") items.Add("سنوات");
|
||||
if (Model.LeavePay != "0") items.Add("مزد مرخصی");
|
||||
|
||||
string finalText = "";
|
||||
if (items.Count == 1)
|
||||
{
|
||||
finalText = items[0];
|
||||
}
|
||||
else if (items.Count > 1)
|
||||
{
|
||||
finalText = string.Join("<span>،</span> ", items.Take(items.Count - 1)) + " و " + items.Last();
|
||||
}
|
||||
}
|
||||
|
||||
<span>
|
||||
کلیه حق السعی خود اعم از @Html.Raw(finalText) @Model.Month ماه سال @Model.Year برابر با قرارداد به شماره فوق را از کارفرما بصورت وجه نقد و واریز به حساب دریافت نموده ام.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row" style="margin-top: 10px;padding: 0 12px;">
|
||||
<fieldset style="border: 1px solid black !important;-webkit-print-color-adjust: exact;print-color-adjust: exact; border-radius: 10px 10px 10px 10px; margin: 0px 0px; overflow: hidden;padding: 0; line-height:normal;">
|
||||
<table style="/* table-layout: fixed; */ width: 100%">
|
||||
|
||||
<tr style="border-bottom: 1px solid; height: 25px; border-collapse: separate; background-color: #cdcdcd !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
@* <th style="text-align: center; width: 8mm; font-size: 12px; padding: 2px; border-collapse: separate; border-radius: 0px 10px 0px 0px;"> </th> *@
|
||||
<th colspan="4" style="text-align: center; position: relative ; font-size: 13px;padding-top:4px;border-left: 2px solid #000;"> مطالبات </th>
|
||||
@* <th style="text-align: center;"> </th>
|
||||
|
||||
<tr style="border-bottom: 1px solid; height: 25px; border-collapse: separate; background-color: #cdcdcd !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
@* <th style="text-align: center; width: 8mm; font-size: 12px; padding: 2px; border-collapse: separate; border-radius: 0px 10px 0px 0px;"> </th> *@
|
||||
<th colspan="4" style="text-align: center; position: relative ; font-size: 13px;padding-top:4px;border-left: 2px solid #000;"> مطالبات </th>
|
||||
@* <th style="text-align: center;"> </th>
|
||||
<th style="text-align: center; border-left: 2px solid #000; font-size: 12px"> </th> *@
|
||||
<th colspan="3" style="text-align: center; font-size: 13px; position: relative; padding-top: 4px;"> کسورات </th>
|
||||
@* <th style="text-align: center; font-size: 12px; border-collapse: separate; border-radius: 0px 0px 0px 0px;"> </th>
|
||||
<th colspan="3" style="text-align: center; font-size: 13px; position: relative; padding-top: 4px;"> کسورات </th>
|
||||
@* <th style="text-align: center; font-size: 12px; border-collapse: separate; border-radius: 0px 0px 0px 0px;"> </th>
|
||||
<th style="text-align: center; font-size: 12px; border-collapse: separate; border-radius: 10px 0px 0px 0px;"> </th> *@
|
||||
</tr>
|
||||
</tr>
|
||||
|
||||
<tr style="border-bottom: 1px solid; background-color: #e1e1e1 !important ;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
<th style="width: 5%; text-align: center; border-left: 1px solid #000; font-size: 12px;padding: 2px"> ردیف </th>
|
||||
<th style="width: 23%; text-align: center; border-left: 1px solid #000; font-size: 12px"> شرح </th>
|
||||
<th style="width: 10%; text-align: center; border-left: 1px solid #000; font-size: 9px"> ساعت/روز/تعداد </th>
|
||||
<th style="width: 12%; text-align: center; border-left: 2px solid #000; font-size: 12px"> مبلغ(ریال) </th>
|
||||
<th style="width: 28%; text-align: center; border-left: 1px solid #000; font-size: 12px"> شرح </th>
|
||||
<th style="width: 10%; text-align: center; border-left: 1px solid #000; font-size: 9px"> ساعت/روز/تعداد </th>
|
||||
<th style="width: 12%; text-align: center; font-size: 12px"> مبلغ(ریال) </th>
|
||||
<th style="width: 5%; text-align: center; border-left: 1px solid #000; font-size: 12px;padding: 2px"> ردیف </th>
|
||||
<th style="width: 23%; text-align: center; border-left: 1px solid #000; font-size: 12px"> شرح </th>
|
||||
<th style="width: 10%; text-align: center; border-left: 1px solid #000; font-size: 9px"> ساعت/روز/تعداد </th>
|
||||
<th style="width: 12%; text-align: center; border-left: 2px solid #000; font-size: 12px"> مبلغ(ریال) </th>
|
||||
<th style="width: 28%; text-align: center; border-left: 1px solid #000; font-size: 12px"> شرح </th>
|
||||
<th style="width: 10%; text-align: center; border-left: 1px solid #000; font-size: 9px"> ساعت/روز/تعداد </th>
|
||||
<th style="width: 12%; text-align: center; font-size: 12px"> مبلغ(ریال) </th>
|
||||
</tr>
|
||||
|
||||
<tr style="font-size: 12px; ">
|
||||
<td style="text-align: center; border-left: 1px solid #000; padding: 2px ">1</td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> حقوق و مزد </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @Model.SumOfWorkingDays </td>
|
||||
|
||||
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.MonthlySalary == "0" ? "-" : Model.MonthlySalary) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> حق بیمه سهم کارگر </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
@@ -222,7 +224,7 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> کمک هزینه مسکن </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @(Model.HousingAllowance == "0" ? "-" : Model.SumOfWorkingDays) </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.HousingAllowance == "0" ? "-" : Model.HousingAllowance) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> مساعده </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> مساعده </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center;"> @(Model.SalaryAidDeduction == "0" ? "-" : Model.SalaryAidDeduction) </td>
|
||||
</tr>
|
||||
@@ -231,7 +233,7 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> فوق العاده اضافه کاری </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @((Model.OverTimeWorkValue == "00:00" || string.IsNullOrWhiteSpace(Model.OverTimeWorkValue)) ? "-" : Model.OverTimeWorkValue) </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @((Model.OvertimePay == "0" || string.IsNullOrWhiteSpace(Model.OvertimePay)) ? "-" : Model.OvertimePay) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> غیبت </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> غیبت </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center;"> @(Model.AbsenceDeduction == "0" ? "-" : Model.AbsenceDeduction) </td>
|
||||
</tr>
|
||||
@@ -258,8 +260,8 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> فوق العاده ماموریت </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.MissionPay == "0" ? "-" : Model.MissionPay) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px;">
|
||||
@@ -267,8 +269,8 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> فوق العاده نوبت کاری </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @((Model.RotatingShiftValue == "0" || string.IsNullOrWhiteSpace(Model.RotatingShiftValue)) ? "-" : "%" + Model.RotatingShiftValue) </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.ShiftPay == "0" ? "-" : Model.ShiftPay) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px; background-color: #f1f1f1 !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
@@ -276,8 +278,8 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> کمک هزینه عائله مندی </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.FamilyAllowance == "0" ? "-" : Model.FamilyAllowance) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px;">
|
||||
@@ -285,8 +287,8 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> حق تاهل </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @Model.MaritalStatus </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.MarriedAllowance == "0" ? "-" : Model.MarriedAllowance) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px; background-color: #f1f1f1 !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
@@ -294,8 +296,8 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> پاداش </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.RewardPay == "0" ? "-" : Model.RewardPay) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px;">
|
||||
@@ -304,59 +306,59 @@
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @(Model.BonusesPay == "0" ? "-" : Model.SumOfWorkingDays) </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.BonusesPay == "0" ? "-" : Model.BonusesPay) </td>
|
||||
|
||||
@{
|
||||
if (Model.IsLeft)
|
||||
{
|
||||
<td style="text-align: center; background-color: #ffffff !important;" colspan="3" rowspan="3">
|
||||
<div style="border-top: 1px solid #000;border-top-left-radius: 15px;border-top-right-radius: 15px; height: 65px;">
|
||||
<div style="padding: 0 6px; text-align: start;display: block;align-items: center;height: 64px;margin: 6px;">
|
||||
<span>طبق تصفیه حساب نهایی تنظیمی فوق، آخرین روز اشتغال بکار اینجانب</span>
|
||||
<span>@Model.LastDayOfWork</span>
|
||||
<span>بوده و قطع همکاری با کارفرما و کارگاه از تاریخ</span>
|
||||
<span>@Model.LeftWorkDate</span>
|
||||
<span>می باشد</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
}
|
||||
}
|
||||
|
||||
@{
|
||||
if (Model.IsLeft)
|
||||
{
|
||||
<td style="text-align: center; background-color: #ffffff !important;" colspan="3" rowspan="3">
|
||||
<div style="border-top: 1px solid #000;border-top-left-radius: 15px;border-top-right-radius: 15px; height: 65px;">
|
||||
<div style="padding: 0 6px; text-align: start;display: block;align-items: center;height: 64px;margin: 6px;">
|
||||
<span>طبق تصفیه حساب نهایی تنظیمی فوق، آخرین روز اشتغال بکار اینجانب</span>
|
||||
<span>@Model.LastDayOfWork</span>
|
||||
<span>بوده و قطع همکاری با کارفرما و کارگاه از تاریخ</span>
|
||||
<span>@Model.LeftWorkDate</span>
|
||||
<span>می باشد</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
}
|
||||
}
|
||||
|
||||
</tr>
|
||||
<tr style="font-size: 12px; background-color: #f1f1f1 !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
<td style="text-align: center; border-left: 1px solid #000; padding: 2px ">14</td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> سنوات </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @(Model.YearsPay == "0" ? "-" : Model.SumOfWorkingDays)</td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.YearsPay == "0" ? "-" : Model.YearsPay) </td>
|
||||
|
||||
|
||||
@{
|
||||
if (!Model.IsLeft)
|
||||
{
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
}
|
||||
if (!Model.IsLeft)
|
||||
{
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
}
|
||||
}
|
||||
</tr>
|
||||
<tr style="font-size: 12px;">
|
||||
<td style="text-align: center; border-left: 1px solid #000; padding: 2px ">15</td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> مزد مرخصی </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @(Model.LeavePay == "0" ? "-" : Model.SumOfWorkingDays) </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.LeavePay == "0" ? "-" : Model.LeavePay) </td>
|
||||
|
||||
@{
|
||||
if (!Model.IsLeft)
|
||||
{
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
}
|
||||
}
|
||||
<td style="text-align: center; border-left: 1px solid #000; padding: 2px ">15</td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> مزد مرخصی </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @(Model.LeavePay == "0" ? "-" : Model.SumOfWorkingDays) </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.LeavePay == "0" ? "-" : Model.LeavePay) </td>
|
||||
|
||||
@{
|
||||
if (!Model.IsLeft)
|
||||
{
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
}
|
||||
}
|
||||
</tr>
|
||||
|
||||
<tr style="font-size: 12px; height: 20px; background-color: #dddcdc !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; border-bottom: 1px solid #000; border-top: 1px solid #000; ">
|
||||
@@ -365,16 +367,16 @@
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.TotalClaims == "0" ? "-" : Model.TotalClaims) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> جمع کسورات </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center;"> @(Model.TotalDeductions == "0" ? "-" : Model.TotalDeductions) </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px; border-radius: 0px 0px 10px 10px !important; height: 20px; background-color: #efefef !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
<td style="text-align: center; padding: 2px; border-radius: 0px 0px 10px 0px "></td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000; "> مبلغ قابل پرداخت </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.TotalPayment == "0" ? "-" : Model.TotalPayment) </td>
|
||||
<td style="padding-right: 8px;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-radius:0px 0px 0px 10px"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -452,8 +454,8 @@
|
||||
@if (@dailyRollCall.IsSliced)
|
||||
{
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="display: block; margin: auto;">
|
||||
<circle stroke-width="2" cx="12" cy="12" r="9" stroke="#222222" />
|
||||
<path stroke-width="2" d="M8 12L11 15L16 9" stroke="#222222" stroke-linecap="round" />
|
||||
<circle stroke-width="2" cx="12" cy="12" r="9" stroke="#222222"/>
|
||||
<path stroke-width="2" d="M8 12L11 15L16 9" stroke="#222222" stroke-linecap="round"/>
|
||||
</svg>
|
||||
}
|
||||
else
|
||||
@@ -506,7 +508,7 @@
|
||||
{
|
||||
<div style="width: 10%; text-align: center; border-width: 2px 0 2px 0; border-color: #DDDCDC; border-style: solid;">@dailyRollCall.StartDate1</div>
|
||||
<div style="width: 10%; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid;">@dailyRollCall.EndDate1</div>
|
||||
|
||||
|
||||
<div style="width: 10%; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid;">@dailyRollCall.EndDate2</div>
|
||||
<div style="width: 10%; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid;">@dailyRollCall.EndDate2</div>
|
||||
}
|
||||
@@ -536,8 +538,8 @@
|
||||
@if (@dailyRollCall.IsSliced)
|
||||
{
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="display: block; margin: auto;">
|
||||
<circle stroke-width="2" cx="12" cy="12" r="9" stroke="#222222" />
|
||||
<path stroke-width="2" d="M8 12L11 15L16 9" stroke="#222222" stroke-linecap="round" />
|
||||
<circle stroke-width="2" cx="12" cy="12" r="9" stroke="#222222"/>
|
||||
<path stroke-width="2" d="M8 12L11 15L16 9" stroke="#222222" stroke-linecap="round"/>
|
||||
</svg>
|
||||
}
|
||||
else
|
||||
@@ -550,8 +552,8 @@
|
||||
}
|
||||
</div>
|
||||
|
||||
|
||||
@* <div class="col-6 w-100" style="background-color: #DDDCDC !important; border: 1px solid #CCCCCC;border-radius: 7px;padding: 7px; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
|
||||
@* <div class="col-6 w-100" style="background-color: #DDDCDC !important; border: 1px solid #CCCCCC;border-radius: 7px;padding: 7px; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
<table style="width: 100%">
|
||||
<thead style="background-color: #AFAFAF;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
<tr style="font-size: 8px;border-collapse: separate;background-color: #AFAFAF !important;-webkit-print-color-adjust: exact;print-color-adjust: exact;">
|
||||
@@ -717,28 +719,28 @@
|
||||
</table>
|
||||
</div>
|
||||
*@
|
||||
<div style="grid-column: span 2 / span 2;padding: 0;">
|
||||
<table style="width:100%; background-color: #575656 !important;border-radius: 10px">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2" style="color:#ffffff !important; text-align: center; border-bottom: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px">
|
||||
موظفی @Model.Month @Model.Year : @Model.TotalMandatoryTimeStr
|
||||
</th>
|
||||
<th colspan="2" style="color:#ffffff !important; text-align: center; border-bottom: 1px solid #CCCCCC; font-size: 8px; padding: 2px">
|
||||
ساعات کارکرد واقعی : @Model.TotalWorkingTimeStr
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px"> ساعات حضور : @Model.TotalPresentTimeStr</td>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px">ساعات استراحت : @Model.TotalBreakTimeStr</td>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px">مدت مرخصی استحقاقی : @Model.TotalPaidLeave </td>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; font-size: 8px; padding: 2px"> مدت مرخصی استعلاجی : @Model.TotalSickLeave</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div style="grid-column: span 2 / span 2;padding: 0;">
|
||||
<table style="width:100%; background-color: #575656 !important;border-radius: 10px">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2" style="color:#ffffff !important; text-align: center; border-bottom: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px">
|
||||
موظفی @Model.Month @Model.Year : @Model.TotalMandatoryTimeStr
|
||||
</th>
|
||||
<th colspan="2" style="color:#ffffff !important; text-align: center; border-bottom: 1px solid #CCCCCC; font-size: 8px; padding: 2px">
|
||||
ساعات کارکرد واقعی : @Model.TotalWorkingTimeStr
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px"> ساعات حضور : @Model.TotalPresentTimeStr</td>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px">ساعات استراحت : @Model.TotalBreakTimeStr</td>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px">مدت مرخصی استحقاقی : @Model.TotalPaidLeave </td>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; font-size: 8px; padding: 2px"> مدت مرخصی استعلاجی : @Model.TotalSickLeave</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -841,7 +843,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
@@ -859,13 +861,33 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 text-start">
|
||||
<button type="button" class="btn btn-rounded waves-effect waves-light m-b-10 text-white" data-bs-dismiss="modal" aria-label="Close" style="background-color: #454D5C;">بستن فرم</button>
|
||||
<button type="button" class="btn btn-rounded waves-effect waves-light m-b-10 text-white" data-bs-dismiss="modal" aria-label="Close" style="background-color: #454D5C;">بستن فرم</button>
|
||||
<button id="btnPrint" type="button" class="btn btn-success btn-rounded waves-effect waves-light">پرینت</button>
|
||||
@if (Model.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت رفع تغییرات فیش حقوقی را دوباره ایجاد کنید!">
|
||||
<path d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<!--<script src="~/AdminTheme/assets/js/workingHoursPrintable.js"></script>-->
|
||||
<script>
|
||||
document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(el => {
|
||||
bootstrap.Tooltip.getOrCreateInstance(el);
|
||||
});
|
||||
</script>
|
||||
<script src="~/assetsclient/libs/html2pdf/html2pdf.bundle.min.js"></script>
|
||||
<script src="~/assetsclient/pages/checkouts/js/printonerollcall.js?ver=@clientVersion"></script>
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
@model CompanyManagment.App.Contracts.Checkout.CheckoutViewModel
|
||||
|
||||
<div class="">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12 mt-30">
|
||||
<fieldset style="border: 1px solid black;
|
||||
@@ -211,7 +212,7 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> کمک هزینه مسکن </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @(Model.HousingAllowance == "0" ? "-" : Model.SumOfWorkingDays) </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.HousingAllowance == "0" ? "-" : Model.HousingAllowance) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> مساعده </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> مساعده </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center;"> @(Model.SalaryAidDeduction == "0" ? "-" : Model.SalaryAidDeduction) </td>
|
||||
</tr>
|
||||
@@ -220,7 +221,7 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> فوق العاده اضافه کاری </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @((Model.OverTimeWorkValue == "00:00" || string.IsNullOrWhiteSpace(Model.OverTimeWorkValue)) ? "-" : Model.OverTimeWorkValue) </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @((Model.OvertimePay == "0" || string.IsNullOrWhiteSpace(Model.OvertimePay)) ? "-" : Model.OvertimePay) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> غیبت </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> غیبت </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center;"> @(Model.AbsenceDeduction == "0" ? "-" : Model.AbsenceDeduction) </td>
|
||||
</tr>
|
||||
@@ -229,8 +230,8 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> فوق العاده شب کاری </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @((Model.OverNightWorkValue == "00:00" || string.IsNullOrWhiteSpace(Model.OverNightWorkValue)) ? "-" : Model.OverNightWorkValue) </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @((Model.NightworkPay == "0" || string.IsNullOrWhiteSpace(Model.NightworkPay)) ? "-" : Model.NightworkPay) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px;">
|
||||
@@ -238,8 +239,8 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> فوق العاده جمعه کاری </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @((Model.FridayWorkValue == "0" || string.IsNullOrWhiteSpace(Model.FridayWorkValue)) ? "-" : Model.FridayWorkValue) </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @((Model.FridayPay == "0" || string.IsNullOrWhiteSpace(Model.FridayPay)) ? "-" : Model.FridayPay) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px; background-color: #f1f1f1 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
@@ -247,8 +248,8 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> فوق العاده ماموریت </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.MissionPay == "0" ? "-" : Model.MissionPay) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px;">
|
||||
@@ -256,8 +257,8 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> فوق العاده نوبت کاری </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @((Model.RotatingShiftValue == "0" || string.IsNullOrWhiteSpace(Model.RotatingShiftValue)) ? "-" : "%" + Model.RotatingShiftValue) </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.ShiftPay == "0" ? "-" : Model.ShiftPay) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px; background-color: #f1f1f1 !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
@@ -265,8 +266,8 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> کمک هزینه عائله مندی </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.FamilyAllowance == "0" ? "-" : Model.FamilyAllowance) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px;">
|
||||
@@ -274,8 +275,8 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> حق تاهل </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> @Model.MaritalStatus </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.MarriedAllowance == "0" ? "-" : Model.MarriedAllowance) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px; background-color: #f1f1f1 !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
@@ -283,8 +284,8 @@
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> پاداش </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.RewardPay == "0" ? "-" : Model.RewardPay) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
</tr>
|
||||
|
||||
@@ -311,8 +312,8 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
}
|
||||
}
|
||||
@@ -327,8 +328,8 @@
|
||||
@{
|
||||
if (!Model.IsLeft)
|
||||
{
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
}
|
||||
}
|
||||
@@ -342,8 +343,8 @@
|
||||
@{
|
||||
if (!Model.IsLeft)
|
||||
{
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center;"> </td>
|
||||
}
|
||||
}
|
||||
@@ -355,16 +356,16 @@
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.TotalClaims == "0" ? "-" : Model.TotalClaims) </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> جمع کسورات </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> - </td>
|
||||
<td style="text-align: center;"> @(Model.TotalDeductions == "0" ? "-" : Model.TotalDeductions) </td>
|
||||
</tr>
|
||||
<tr style="font-size: 12px; border-radius: 0px 0px 10px 10px !important; height: 20px; background-color: #efefef !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
<td style="text-align: center; padding: 2px; border-radius: 0px 0px 10px 0px "></td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000; "> مبلغ قابل پرداخت </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.TotalPayment == "0" ? "-" : Model.TotalPayment) </td>
|
||||
<td style="padding-right: 8px;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="padding-right: 8px;"> </td>
|
||||
<td style="text-align: center; border-left: 1px solid #000;"> </td>
|
||||
<td style="text-align: center; border-radius:0px 0px 0px 10px"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -376,192 +377,192 @@
|
||||
<div class="col-6 w-100" style="background-color: #DDDCDC !important; border: 1px solid #CCCCCC;border-radius: 7px;padding: 7px; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
<table style="width: 100%">
|
||||
<thead style="background-color: #AFAFAF;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
<tr style="font-size: 8px;border-collapse: separate;background-color: #AFAFAF !important;-webkit-print-color-adjust: exact;print-color-adjust: exact;">
|
||||
<th style="font-size: 8px !important;width: 28%;padding: 2px 10px !important;border-left: 0;border-radius: 0 5px 5px 0 !important;-webkit-print-color-adjust: exact;print-color-adjust: exact;">تاریخ</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">ورود</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">خروج</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">ورود</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">خروج</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 12%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">استراحت</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 10%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">منقطع</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 14%;padding: 0 0 0 5px !important;border-radius: 5px 0 0 5px !important; -webkit-print-color-adjust: exact;print-color-adjust: exact;white-space:nowrap">کارکرد</th>
|
||||
</tr>
|
||||
<tr style="font-size: 8px;border-collapse: separate;background-color: #AFAFAF !important;-webkit-print-color-adjust: exact;print-color-adjust: exact;">
|
||||
<th style="font-size: 8px !important;width: 28%;padding: 2px 10px !important;border-left: 0;border-radius: 0 5px 5px 0 !important;-webkit-print-color-adjust: exact;print-color-adjust: exact;">تاریخ</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">ورود</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">خروج</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">ورود</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">خروج</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 12%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">استراحت</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 10%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">منقطع</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 14%;padding: 0 0 0 5px !important;border-radius: 5px 0 0 5px !important; -webkit-print-color-adjust: exact;print-color-adjust: exact;white-space:nowrap">کارکرد</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@for (int i = 0; i < 15; i++)
|
||||
{
|
||||
<tr style="@((Model.MonthlyRollCall[i].IsHoliday || Model.MonthlyRollCall[i].IsFriday) ? "background-color: #BBBBBB !important;" : "background-color: #FFFFFF !important;") font-size: 8px;border-collapse: separate;-webkit-print-color-adjust: exact;print-color-adjust: exact;">
|
||||
<td style="white-space: nowrap; font-size: 8px; padding: 1px 3px;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid; border-radius: 0 5px 5px 0; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@Model.MonthlyRollCall[i].DateTimeGr.ToFarsi() - @Model.MonthlyRollCall[i].DateTimeGr.DayOfWeek.DayOfWeeKToPersian()</td>
|
||||
@for (int i = 0; i < 15; i++)
|
||||
{
|
||||
<tr style="@((Model.MonthlyRollCall[i].IsHoliday || Model.MonthlyRollCall[i].IsFriday) ? "background-color: #BBBBBB !important;" : "background-color: #FFFFFF !important;") font-size: 8px;border-collapse: separate;-webkit-print-color-adjust: exact;print-color-adjust: exact;">
|
||||
<td style="white-space: nowrap; font-size: 8px; padding: 1px 3px;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid; border-radius: 0 5px 5px 0; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@Model.MonthlyRollCall[i].DateTimeGr.ToFarsi() - @Model.MonthlyRollCall[i].DateTimeGr.DayOfWeek.DayOfWeeKToPersian()</td>
|
||||
|
||||
@if (@Model.MonthlyRollCall[i].IsAbsent)
|
||||
@if (@Model.MonthlyRollCall[i].IsAbsent)
|
||||
{
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
<span style="width: 40px;display: block;border-radius: 50px;background-color: #737373;color: #fff;">غیبت</span>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
@* <span style="width: 40px;display: block;border-radius: 50px;background-color: #737373;color: #fff;">غیبت</span> *@
|
||||
</div>
|
||||
</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
@if (string.IsNullOrWhiteSpace(Model.MonthlyRollCall[i].LeaveType))
|
||||
{
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
<span style="width: 40px;display: block;border-radius: 50px;background-color: #737373;color: #fff;">غیبت</span>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
@* <span style="width: 40px;display: block;border-radius: 50px;background-color: #737373;color: #fff;">غیبت</span> *@
|
||||
</div>
|
||||
</td>
|
||||
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 0;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@Model.MonthlyRollCall[i].StartDate1</td>
|
||||
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@Model.MonthlyRollCall[i].EndDate1</td>
|
||||
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 0;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@Model.MonthlyRollCall[i].StartDate2</td>
|
||||
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@Model.MonthlyRollCall[i].EndDate2</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
@if (string.IsNullOrWhiteSpace(Model.MonthlyRollCall[i].LeaveType))
|
||||
{
|
||||
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 0;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@Model.MonthlyRollCall[i].StartDate1</td>
|
||||
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@Model.MonthlyRollCall[i].EndDate1</td>
|
||||
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 0;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@Model.MonthlyRollCall[i].StartDate2</td>
|
||||
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@Model.MonthlyRollCall[i].EndDate2</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
<span style="width: 38px; display: block; border-radius: 50px; background-color: #fff; color: #737373;border: 1px solid #737373;font-size: 7.5px;font-weight: 500;">
|
||||
@Model.MonthlyRollCall[i].LeaveType
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
@* <span style="width: 80px; display: block; border-radius: 50px; background-color: #fff; color: #737373;border: 1px solid #737373;">
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
<span style="width: 38px; display: block; border-radius: 50px; background-color: #fff; color: #737373;border: 1px solid #737373;font-size: 7.5px;font-weight: 500;">
|
||||
@Model.MonthlyRollCall[i].LeaveType
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
@* <span style="width: 80px; display: block; border-radius: 50px; background-color: #fff; color: #737373;border: 1px solid #737373;">
|
||||
@Model.MonthlyRollCall[i].LeaveType
|
||||
</span> *@
|
||||
</div>
|
||||
</td>
|
||||
}
|
||||
</div>
|
||||
</td>
|
||||
}
|
||||
}
|
||||
|
||||
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@Model.MonthlyRollCall[i].BreakTimeString</td>
|
||||
<td style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid;vertical-align: center;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
@if (@Model.MonthlyRollCall[i].IsSliced)
|
||||
{
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="display: block; margin: auto;">
|
||||
<circle stroke-width="2" cx="12" cy="12" r="9" stroke="#222222" />
|
||||
<path stroke-width="2" d="M8 12L11 15L16 9" stroke="#222222" stroke-linecap="round" />
|
||||
</svg>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>-</span>
|
||||
}
|
||||
</td>
|
||||
<td style="font-size: 8px;text-align: center;border-width: 2px 0 2px 0;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact;border-radius: 5px 0 0 5px;">@Model.MonthlyRollCall[i].TotalWorkingHours</td>
|
||||
</tr>
|
||||
}
|
||||
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@Model.MonthlyRollCall[i].BreakTimeString</td>
|
||||
<td style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid;vertical-align: center;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
@if (@Model.MonthlyRollCall[i].IsSliced)
|
||||
{
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="display: block; margin: auto;">
|
||||
<circle stroke-width="2" cx="12" cy="12" r="9" stroke="#222222"/>
|
||||
<path stroke-width="2" d="M8 12L11 15L16 9" stroke="#222222" stroke-linecap="round"/>
|
||||
</svg>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>-</span>
|
||||
}
|
||||
</td>
|
||||
<td style="font-size: 8px;text-align: center;border-width: 2px 0 2px 0;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact;border-radius: 5px 0 0 5px;">@Model.MonthlyRollCall[i].TotalWorkingHours</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-6 w-100" style="background-color: #DDDCDC !important; border: 1px solid #CCCCCC;border-radius: 7px;padding: 7px; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
<table style="width: 100%">
|
||||
<thead style="background-color: #AFAFAF;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
<tr style="font-size: 8px;border-collapse: separate;background-color: #AFAFAF !important;-webkit-print-color-adjust: exact;print-color-adjust: exact;">
|
||||
<th style="font-size: 8px !important;width: 28%;padding: 2px 10px !important;border-left: 0;border-radius: 0 5px 5px 0 !important;-webkit-print-color-adjust: exact;print-color-adjust: exact;">تاریخ</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">ورود</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">خروج</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">ورود</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">خروج</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 12%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">استراحت</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 10%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">منقطع</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 14%;padding: 0 0 0 5px !important;border-radius: 5px 0 0 5px !important; -webkit-print-color-adjust: exact;print-color-adjust: exact;white-space:nowrap">کارکرد</th>
|
||||
</tr>
|
||||
<tr style="font-size: 8px;border-collapse: separate;background-color: #AFAFAF !important;-webkit-print-color-adjust: exact;print-color-adjust: exact;">
|
||||
<th style="font-size: 8px !important;width: 28%;padding: 2px 10px !important;border-left: 0;border-radius: 0 5px 5px 0 !important;-webkit-print-color-adjust: exact;print-color-adjust: exact;">تاریخ</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">ورود</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">خروج</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">ورود</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 9%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">خروج</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 12%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">استراحت</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 10%;-webkit-print-color-adjust: exact;print-color-adjust: exact;">منقطع</th>
|
||||
<th style="font-size: 8px;text-align: center;width: 14%;padding: 0 0 0 5px !important;border-radius: 5px 0 0 5px !important; -webkit-print-color-adjust: exact;print-color-adjust: exact;white-space:nowrap">کارکرد</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@{
|
||||
Model.MonthlyRollCall = Model.MonthlyRollCall.Skip(15).ToList();
|
||||
}
|
||||
@foreach (var day in Model.MonthlyRollCall)
|
||||
{
|
||||
<tr style="@((day.IsHoliday || day.IsFriday) ? "background-color: #BBBBBB !important;" : "background-color: #FFFFFF !important;") font-size: 8px;border-collapse: separate;-webkit-print-color-adjust: exact;print-color-adjust: exact;">
|
||||
<td style="white-space: nowrap; font-size: 8px; padding: 1px 3px;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid; border-radius: 0 5px 5px 0; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.DateTimeGr.ToFarsi() - @day.DateTimeGr.DayOfWeek.DayOfWeeKToPersian()</td>
|
||||
@{
|
||||
Model.MonthlyRollCall = Model.MonthlyRollCall.Skip(15).ToList();
|
||||
}
|
||||
@foreach (var day in Model.MonthlyRollCall)
|
||||
{
|
||||
<tr style="@((day.IsHoliday || day.IsFriday) ? "background-color: #BBBBBB !important;" : "background-color: #FFFFFF !important;") font-size: 8px;border-collapse: separate;-webkit-print-color-adjust: exact;print-color-adjust: exact;">
|
||||
<td style="white-space: nowrap; font-size: 8px; padding: 1px 3px;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid; border-radius: 0 5px 5px 0; -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.DateTimeGr.ToFarsi() - @day.DateTimeGr.DayOfWeek.DayOfWeeKToPersian()</td>
|
||||
|
||||
@if (day.IsAbsent)
|
||||
@if (day.IsAbsent)
|
||||
{
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
<span style="width: 40px;display: block;border-radius: 50px;background-color: #737373;color: #fff;">غیبت</span>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
@* <span style="width: 40px;display: block;border-radius: 50px;background-color: #737373;color: #fff;">غیبت</span> *@
|
||||
</div>
|
||||
</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
@if (string.IsNullOrWhiteSpace(day.LeaveType))
|
||||
{
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
<span style="width: 40px;display: block;border-radius: 50px;background-color: #737373;color: #fff;">غیبت</span>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
@* <span style="width: 40px;display: block;border-radius: 50px;background-color: #737373;color: #fff;">غیبت</span> *@
|
||||
</div>
|
||||
</td>
|
||||
<td style="font-size: 8px !important; text-align: center;border-width: 2px 0 2px 0;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.StartDate1</td>
|
||||
<td style="font-size: 8px !important; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.EndDate1</td>
|
||||
<td style="font-size: 8px !important; text-align: center;border-width: 2px 0 2px 0;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.StartDate2</td>
|
||||
<td style="font-size: 8px !important; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.EndDate2</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
@if (string.IsNullOrWhiteSpace(day.LeaveType))
|
||||
{
|
||||
<td style="font-size: 8px !important; text-align: center;border-width: 2px 0 2px 0;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.StartDate1</td>
|
||||
<td style="font-size: 8px !important; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.EndDate1</td>
|
||||
<td style="font-size: 8px !important; text-align: center;border-width: 2px 0 2px 0;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.StartDate2</td>
|
||||
<td style="font-size: 8px !important; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.EndDate2</td>
|
||||
}
|
||||
else
|
||||
{
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
<span style="width: 80px; display: block; border-radius: 50px; background-color: #fff; color: #737373;border: 1px solid #737373;">
|
||||
@day.LeaveType
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
@* <span style="width: 80px; display: block; border-radius: 50px; background-color: #fff; color: #737373;border: 1px solid #737373;">
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
<span style="width: 80px; display: block; border-radius: 50px; background-color: #fff; color: #737373;border: 1px solid #737373;">
|
||||
@day.LeaveType
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="2" style="font-size: 8px; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid; -webkit-print-color-adjust: exact; print-color-adjust: exact;">
|
||||
<div style="display: flex;justify-content: center;">
|
||||
@* <span style="width: 80px; display: block; border-radius: 50px; background-color: #fff; color: #737373;border: 1px solid #737373;">
|
||||
@day.LeaveType
|
||||
</span> *@
|
||||
</div>
|
||||
</td>
|
||||
}
|
||||
</div>
|
||||
</td>
|
||||
}
|
||||
}
|
||||
|
||||
<td style="font-size: 8px !important; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.BreakTimeString</td>
|
||||
<td style="font-size: 8px !important; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid;vertical-align: center;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
@if (day.IsSliced)
|
||||
{
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="display: block; margin: auto;">
|
||||
<circle stroke-width="2" cx="12" cy="12" r="9" stroke="#222222" />
|
||||
<path stroke-width="2" d="M8 12L11 15L16 9" stroke="#222222" stroke-linecap="round" />
|
||||
</svg>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>-</span>
|
||||
}
|
||||
</td>
|
||||
<td style="font-size: 8px;text-align: center;border-width: 2px 0 2px 0;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact;border-radius: 5px 0 0 5px;">@day.TotalWorkingHours</td>
|
||||
</tr>
|
||||
}
|
||||
<td style="font-size: 8px !important; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.BreakTimeString</td>
|
||||
<td style="font-size: 8px !important; text-align: center; border-width: 2px 0 2px 2px; border-color: #DDDCDC; border-style: solid;vertical-align: center;-webkit-print-color-adjust: exact;print-color-adjust: exact; ">
|
||||
@if (day.IsSliced)
|
||||
{
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="display: block; margin: auto;">
|
||||
<circle stroke-width="2" cx="12" cy="12" r="9" stroke="#222222"/>
|
||||
<path stroke-width="2" d="M8 12L11 15L16 9" stroke="#222222" stroke-linecap="round"/>
|
||||
</svg>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>-</span>
|
||||
}
|
||||
</td>
|
||||
<td style="font-size: 8px;text-align: center;border-width: 2px 0 2px 0;border-color: #DDDCDC;border-style: solid;-webkit-print-color-adjust: exact;print-color-adjust: exact;border-radius: 5px 0 0 5px;">@day.TotalWorkingHours</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="grid-column: span 2 / span 2;padding: 0;">
|
||||
<table style="width:100%; background-color: #575656 !important;border-radius: 10px">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2" style="color:#ffffff !important; text-align: center; border-bottom: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px">
|
||||
موظفی @Model.Month @Model.Year : @Model.TotalMandatoryTimeStr
|
||||
</th>
|
||||
<th colspan="2" style="color:#ffffff !important; text-align: center; border-bottom: 1px solid #CCCCCC; font-size: 8px; padding: 2px">
|
||||
ساعات کارکرد واقعی : @Model.TotalWorkingTimeStr
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px"> ساعات حضور : @Model.TotalPresentTimeStr</td>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px">ساعات استراحت : @Model.TotalBreakTimeStr</td>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px">مدت مرخصی استحقاقی : @Model.TotalPaidLeave </td>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; font-size: 8px; padding: 2px"> مدت مرخصی استعلاجی : @Model.TotalSickLeave</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div style="grid-column: span 2 / span 2;padding: 0;">
|
||||
<table style="width:100%; background-color: #575656 !important;border-radius: 10px">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2" style="color:#ffffff !important; text-align: center; border-bottom: 1px solid #CCCCCC; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px">
|
||||
موظفی @Model.Month @Model.Year : @Model.TotalMandatoryTimeStr
|
||||
</th>
|
||||
<th colspan="2" style="color:#ffffff !important; text-align: center; border-bottom: 1px solid #CCCCCC; font-size: 8px; padding: 2px">
|
||||
ساعات کارکرد واقعی : @Model.TotalWorkingTimeStr
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px"> ساعات حضور : @Model.TotalPresentTimeStr</td>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px">ساعات استراحت : @Model.TotalBreakTimeStr</td>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; border-left: 1px solid #CCCCCC; font-size: 8px; padding: 2px">مدت مرخصی استحقاقی : @Model.TotalPaidLeave </td>
|
||||
<td style="color:#ffffff !important; width:25%; text-align: center; font-size: 8px; padding: 2px"> مدت مرخصی استعلاجی : @Model.TotalSickLeave</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -18,16 +18,16 @@
|
||||
|
||||
|
||||
@section Styles {
|
||||
<link href="~/AssetsClient/css/table-style.css?ver=@clientVersion" rel="stylesheet" />
|
||||
<link href="~/AssetsClient/css/table-responsive.css?ver=@clientVersion" rel="stylesheet" />
|
||||
<link href="~/AssetsClient/css/datetimepicker.css?ver=@clientVersion" rel="stylesheet" />
|
||||
<link href="~/AssetsClient/css/dropdown.css?ver=@clientVersion" rel="stylesheet" />
|
||||
<link href="~/AssetsClient/css/filter-search.css?ver=@clientVersion" rel="stylesheet" />
|
||||
<link href="~/assetsclient/css/operation-button.css?ver=@clientVersion" rel="stylesheet" />
|
||||
<link href="~/AssetsClient/css/select2.css?ver=@clientVersion" rel="stylesheet" />
|
||||
<link href="~/AssetsClient/css/table-style.css?ver=@clientVersion" rel="stylesheet"/>
|
||||
<link href="~/AssetsClient/css/table-responsive.css?ver=@clientVersion" rel="stylesheet"/>
|
||||
<link href="~/AssetsClient/css/datetimepicker.css?ver=@clientVersion" rel="stylesheet"/>
|
||||
<link href="~/AssetsClient/css/dropdown.css?ver=@clientVersion" rel="stylesheet"/>
|
||||
<link href="~/AssetsClient/css/filter-search.css?ver=@clientVersion" rel="stylesheet"/>
|
||||
<link href="~/assetsclient/css/operation-button.css?ver=@clientVersion" rel="stylesheet"/>
|
||||
<link href="~/AssetsClient/css/select2.css?ver=@clientVersion" rel="stylesheet"/>
|
||||
<link href="~/AdminTheme/assets/sweet-alert/sweet-alert.min.css" rel="stylesheet">
|
||||
|
||||
<link href="~/assetsclient/pages/customizecheckout/css/CheckoutTemporary.css?ver=@clientVersion" rel="stylesheet" />
|
||||
<link href="~/assetsclient/pages/customizecheckout/css/CheckoutTemporary.css?ver=@clientVersion" rel="stylesheet"/>
|
||||
|
||||
|
||||
<style>
|
||||
@@ -56,17 +56,22 @@
|
||||
background-color: #afffcc
|
||||
}
|
||||
|
||||
.btn-excel span {
|
||||
color: #1E293B;
|
||||
font-size: 12px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
}
|
||||
.btn-excel span {
|
||||
color: #1E293B;
|
||||
font-size: 12px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.btn-excel:hover {
|
||||
background-color: #a8ebc1;
|
||||
}
|
||||
.btn-excel:hover {
|
||||
background-color: #a8ebc1;
|
||||
}
|
||||
|
||||
.conflict-icon {
|
||||
color: #dc3545;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
@@media (max-width: 767px) {
|
||||
.table-contracts .Rtable .Rtable-row .Rtable-contract .Rtable-cell--heading button.btn-print {
|
||||
@@ -80,22 +85,22 @@
|
||||
height: 35px;
|
||||
}
|
||||
|
||||
.btn-excel span, .btn-print-all span {
|
||||
display: none;
|
||||
}
|
||||
.btn-excel span, .btn-print-all span {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
}
|
||||
|
||||
|
||||
<input type="hidden" id="pageIndex" asp-for="@Model.SearchModel.PageIndex" />
|
||||
<input type="hidden" id="employeeId" asp-for="@Model.SearchModel.EmployeeId" />
|
||||
<input type="hidden" id="Year" asp-for="@Model.SearchModel.Year" />
|
||||
<input type="hidden" id="Month" asp-for="@Model.SearchModel.Month" />
|
||||
<input type="hidden" id="SearchStartFa" value="@Model.SearchModel.SearchStartFa" />
|
||||
<input type="hidden" id="SearchEndFa" value="@Model.SearchModel.SearchEndFa" />
|
||||
<input type="hidden" id="OrderBy" value="@Model.SearchModel.OrderBy" />
|
||||
<input type="hidden" id="BankId" value="@Model.SearchModel.BankId" />
|
||||
<input type="hidden" id="pageIndex" asp-for="@Model.SearchModel.PageIndex"/>
|
||||
<input type="hidden" id="employeeId" asp-for="@Model.SearchModel.EmployeeId"/>
|
||||
<input type="hidden" id="Year" asp-for="@Model.SearchModel.Year"/>
|
||||
<input type="hidden" id="Month" asp-for="@Model.SearchModel.Month"/>
|
||||
<input type="hidden" id="SearchStartFa" value="@Model.SearchModel.SearchStartFa"/>
|
||||
<input type="hidden" id="SearchEndFa" value="@Model.SearchModel.SearchEndFa"/>
|
||||
<input type="hidden" id="OrderBy" value="@Model.SearchModel.OrderBy"/>
|
||||
<input type="hidden" id="BankId" value="@Model.SearchModel.BankId"/>
|
||||
|
||||
|
||||
<div class="content-container">
|
||||
@@ -103,7 +108,8 @@
|
||||
<div class="row p-2">
|
||||
<div class="col p-0 m-0 d-flex align-items-center justify-content-between">
|
||||
<div class="col d-flex align-items-center justify-content-start">
|
||||
<img src="~/AssetsClient/images/checkoutList.png" alt="" class="img-fluid me-2" style="width: 45px;" />
|
||||
<img src="~/AssetsClient/images/checkoutList.png" alt="" class="img-fluid me-2"
|
||||
style="width: 45px;"/>
|
||||
<div>
|
||||
<h4 class="title d-flex align-items-center">اطلاعات فیش حقوقی موقت</h4>
|
||||
<div>@Model.WorkshopFullName</div>
|
||||
@@ -120,9 +126,10 @@
|
||||
<button class="btn btn-rounded mb-5 goToTop">
|
||||
<div class="d-flex align-items-center">
|
||||
<span>برو بالا</span>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="20px" class="ms-1">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="m4.5 18.75 7.5-7.5 7.5 7.5" />
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="m4.5 12.75 7.5-7.5 7.5 7.5" />
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2"
|
||||
stroke="currentColor" width="20px" class="ms-1">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="m4.5 18.75 7.5-7.5 7.5 7.5"/>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="m4.5 12.75 7.5-7.5 7.5 7.5"/>
|
||||
</svg>
|
||||
</div>
|
||||
</button>
|
||||
@@ -138,8 +145,11 @@
|
||||
<div class="d-grid grid-cols-2 gap-2 col-span-2">
|
||||
<div class="wrapper-dropdown-year btn-dropdown" id="dropdown-year">
|
||||
<span class="selected-display" id="destination-year">سال</span>
|
||||
<svg class="arrow" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="transition-all ml-auto rotate-180">
|
||||
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<svg class="arrow" width="24" height="24" viewBox="0 0 24 24" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="transition-all ml-auto rotate-180">
|
||||
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5"
|
||||
stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
</svg>
|
||||
<ul class="dropdown-year boxes" id="my-scrollbar">
|
||||
<li class="item" value-data-year="0">سال</li>
|
||||
@@ -148,13 +158,16 @@
|
||||
<li class="item" value-data-year="@year">@year</li>
|
||||
}
|
||||
</ul>
|
||||
<input type="hidden" id="sendDropdownYear" asp-for="@Model.SearchModel.Year" />
|
||||
<input type="hidden" id="sendDropdownYear" asp-for="@Model.SearchModel.Year"/>
|
||||
</div>
|
||||
|
||||
<div class="wrapper-dropdown-month btn-dropdown" id="dropdown-month">
|
||||
<span class="selected-display" id="destination-month">ماه</span>
|
||||
<svg class="arrow" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="transition-all ml-auto rotate-180">
|
||||
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<svg class="arrow" width="24" height="24" viewBox="0 0 24 24" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="transition-all ml-auto rotate-180">
|
||||
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5"
|
||||
stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
</svg>
|
||||
<ul class="dropdown-month boxes">
|
||||
<li class="item" value-data-month="0">ماه</li>
|
||||
@@ -171,45 +184,73 @@
|
||||
<li class="item" value-data-month="11">بهمن</li>
|
||||
<li class="item" value-data-month="12">اسفند</li>
|
||||
</ul>
|
||||
<input type="hidden" id="sendDropdownMonth" asp-for="@Model.SearchModel.Month" />
|
||||
<input type="hidden" id="sendDropdownMonth" asp-for="@Model.SearchModel.Month"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-span-1"><input type="text" class="form-control form-control-date date text-center start-date" asp-for="@Model.SearchModel.SearchStartFa" style="direction: ltr;" placeholder="تاریخ شروع" /></div>
|
||||
<div class="col-span-1"><input type="text" class="form-control form-control-date date text-center end-date" asp-for="@Model.SearchModel.SearchEndFa" style="direction: ltr;" placeholder="تاریخ پایان" /></div>
|
||||
<div class="col-span-1"><input type="text"
|
||||
class="form-control form-control-date date text-center start-date"
|
||||
asp-for="@Model.SearchModel.SearchStartFa"
|
||||
style="direction: ltr;" placeholder="تاریخ شروع"/></div>
|
||||
<div class="col-span-1"><input type="text"
|
||||
class="form-control form-control-date date text-center end-date"
|
||||
asp-for="@Model.SearchModel.SearchEndFa"
|
||||
style="direction: ltr;" placeholder="تاریخ پایان"/></div>
|
||||
<div class="col-span-2">
|
||||
<select class="form-select select2Option" id="getPersonnel">
|
||||
</select>
|
||||
<input type="hidden" id="SearchModel_EmployeeId" asp-for="@Model.SearchModel.EmployeeId" />
|
||||
<input type="hidden" id="SearchModel_EmployeeId"
|
||||
asp-for="@Model.SearchModel.EmployeeId"/>
|
||||
</div>
|
||||
<div class="col-span-2">
|
||||
<div class="wrapper-dropdown" id="dropdown">
|
||||
<span class="selected-display" id="destination">مرتب سازی</span>
|
||||
<svg class="arrow" id="drp-arrow" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="transition-all ml-auto rotate-180">
|
||||
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
<svg class="arrow" id="drp-arrow" width="24" height="24" viewBox="0 0 24 24"
|
||||
fill="none" xmlns="http://www.w3.org/2000/svg"
|
||||
class="transition-all ml-auto rotate-180">
|
||||
<path d="M7 14.5l5-5 5 5" stroke="currentColor" stroke-width="1.5"
|
||||
stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
</svg>
|
||||
<ul class="dropdown p-2 border">
|
||||
<li class="item" value-data="@CustomizeCheckoutOrderByEnum.ContractStartDesc">شروع قرارداد - بزرگ به کوچک</li>
|
||||
<li class="item" value-data="@CustomizeCheckoutOrderByEnum.ContractStart">شروع قرارداد - کوچک به بزرگ</li>
|
||||
<li class="item" value-data="@CustomizeCheckoutOrderByEnum.ContractNo">شماره قرارداد - کوچک به بزرگ</li>
|
||||
<li class="item" value-data="@CustomizeCheckoutOrderByEnum.ContractNoDesc">شماره قرارداد - بزرگ به کوچک</li>
|
||||
<li class="item"
|
||||
value-data="@CustomizeCheckoutOrderByEnum.ContractStartDesc">شروع
|
||||
قرارداد - بزرگ به کوچک
|
||||
</li>
|
||||
<li class="item" value-data="@CustomizeCheckoutOrderByEnum.ContractStart">
|
||||
شروع قرارداد - کوچک به بزرگ
|
||||
</li>
|
||||
<li class="item" value-data="@CustomizeCheckoutOrderByEnum.ContractNo">شماره
|
||||
قرارداد - کوچک به بزرگ
|
||||
</li>
|
||||
<li class="item" value-data="@CustomizeCheckoutOrderByEnum.ContractNoDesc">
|
||||
شماره قرارداد - بزرگ به کوچک
|
||||
</li>
|
||||
</ul>
|
||||
<input type="hidden" id="sendSorting" asp-for="@Model.SearchModel.OrderBy" />
|
||||
<input type="hidden" id="sendSorting" asp-for="@Model.SearchModel.OrderBy"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-span-2">
|
||||
<select class="form-select" id="bankSelectIndex" asp-for="@Model.SearchModel.BankId" data-selected-value="@Model.SearchModel.BankId" aria-label="انتخاب بانک ...">
|
||||
<select class="form-select" id="bankSelectIndex" asp-for="@Model.SearchModel.BankId"
|
||||
data-selected-value="@Model.SearchModel.BankId"
|
||||
aria-label="انتخاب بانک ...">
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="d-flex gap-2 col-span-2">
|
||||
<button class="btn-search btn-w-size btn-search-click text-nowrap d-flex align-items-center justify-content-center" id="searchBtn" type="submit">
|
||||
<button
|
||||
class="btn-search btn-w-size btn-search-click text-nowrap d-flex align-items-center justify-content-center"
|
||||
id="searchBtn" type="submit">
|
||||
<span>جستجو</span>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" width="20" height="20" class="ms-1">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" />
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
|
||||
stroke-width="1.5" stroke="currentColor" width="20" height="20"
|
||||
class="ms-1">
|
||||
<path stroke-linecap="round" stroke-linejoin="round"
|
||||
d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"/>
|
||||
</svg>
|
||||
</button>
|
||||
<a asp-page="/Company/CustomizeCheckout/CheckoutTemporary" class="btn-clear-filter btn-w-size text-nowrap d-flex align-items-center justify-content-center disable" id="filterRemove">
|
||||
<a asp-page="/Company/CustomizeCheckout/CheckoutTemporary"
|
||||
class="btn-clear-filter btn-w-size text-nowrap d-flex align-items-center justify-content-center disable"
|
||||
id="filterRemove">
|
||||
<span>حذف جستجو</span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -222,7 +263,6 @@
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
<!-- Search Box -->
|
||||
<!-- End Search Box -->
|
||||
<!-- List Items -->
|
||||
@@ -233,11 +273,14 @@
|
||||
|
||||
<div class="row px-lg-2 my-2">
|
||||
<div class="col-6 col-md-4">
|
||||
<button class="btn-create mb-1 d-flex align-items-center justify-content-center gap-1" onclick="openCreateCheckoutTemporaryModal()" Permission="@SubAccountPermissionHelper.CreateCustomizeCheckoutTempPermissionCode">
|
||||
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="11" cy="11" r="8.25" stroke-width="1.5" stroke="white" />
|
||||
<path d="M11 13.75L11 8.25" stroke-width="1.5" stroke="white" stroke-linecap="round" />
|
||||
<path d="M13.75 11L8.25 11" stroke-width="1.5" stroke="white" stroke-linecap="round" />
|
||||
<button class="btn-create mb-1 d-flex align-items-center justify-content-center gap-1"
|
||||
onclick="openCreateCheckoutTemporaryModal()"
|
||||
Permission="@SubAccountPermissionHelper.CreateCustomizeCheckoutTempPermissionCode">
|
||||
<svg width="22" height="22" viewBox="0 0 22 22" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="11" cy="11" r="8.25" stroke-width="1.5" stroke="white"/>
|
||||
<path d="M11 13.75L11 8.25" stroke-width="1.5" stroke="white" stroke-linecap="round"/>
|
||||
<path d="M13.75 11L8.25 11" stroke-width="1.5" stroke="white" stroke-linecap="round"/>
|
||||
</svg>
|
||||
ایجاد فیش حقوقی
|
||||
</button>
|
||||
@@ -249,18 +292,28 @@
|
||||
</div>
|
||||
<div class="col-6 col-md-4 text-end">
|
||||
<div class="d-none d-md-flex align-items-center justify-content-end gap-1 my-1">
|
||||
<button onclick="printAll()" class="btn-print-all text-nowrap" type="button" Permission="@SubAccountPermissionHelper.PrintCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
|
||||
<path d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008" stroke="#1E293B" />
|
||||
<path d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z" stroke="#1E293B" />
|
||||
<path d="M7.91675 11.25L11.2501 11.25" stroke="#1E293B" stroke-linecap="round" />
|
||||
<path d="M7.91675 13.75L12.0834 13.75" stroke="#1E293B" stroke-linecap="round" />
|
||||
<path d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732" stroke="#1E293B" />
|
||||
<button onclick="printAll()" class="btn-print-all text-nowrap" type="button"
|
||||
Permission="@SubAccountPermissionHelper.PrintCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"
|
||||
fill="none">
|
||||
<path
|
||||
d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008"
|
||||
stroke="#1E293B"/>
|
||||
<path
|
||||
d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z"
|
||||
stroke="#1E293B"/>
|
||||
<path d="M7.91675 11.25L11.2501 11.25" stroke="#1E293B" stroke-linecap="round"/>
|
||||
<path d="M7.91675 13.75L12.0834 13.75" stroke="#1E293B" stroke-linecap="round"/>
|
||||
<path
|
||||
d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732"
|
||||
stroke="#1E293B"/>
|
||||
</svg>
|
||||
<span>پرینت گروهی</span>
|
||||
</button>
|
||||
<button onclick="downloadExcelAll()" class="btn-excel text-nowrap" type="button" Permission="@SubAccountPermissionHelper.ExcelCustomizeCheckoutTempPermissionCode">
|
||||
<svg width="20" height="20" viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg" fill="#000000">
|
||||
<button onclick="downloadExcelAll()" class="btn-excel text-nowrap" type="button"
|
||||
Permission="@SubAccountPermissionHelper.ExcelCustomizeCheckoutTempPermissionCode">
|
||||
<svg width="20" height="20" viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg"
|
||||
fill="#000000">
|
||||
<g id="SVGRepo_bgCarrier" stroke-width="1"></g>
|
||||
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>
|
||||
<g id="SVGRepo_iconCarrier">
|
||||
@@ -269,18 +322,48 @@
|
||||
.cls-1 {
|
||||
fill: #0f773d;
|
||||
}</style>
|
||||
</defs> <title></title> <g id="xxx-word"> <path class="cls-1" d="M325,105H250a5,5,0,0,1-5-5V25a5,5,0,1,1,10,0V95h70a5,5,0,0,1,0,10Z"></path> <path class="cls-1" d="M325,154.83a5,5,0,0,1-5-5V102.07L247.93,30H100A20,20,0,0,0,80,50v98.17a5,5,0,0,1-10,0V50a30,30,0,0,1,30-30H250a5,5,0,0,1,3.54,1.46l75,75A5,5,0,0,1,330,100v49.83A5,5,0,0,1,325,154.83Z"></path> <path class="cls-1" d="M300,380H100a30,30,0,0,1-30-30V275a5,5,0,0,1,10,0v75a20,20,0,0,0,20,20H300a20,20,0,0,0,20-20V275a5,5,0,0,1,10,0v75A30,30,0,0,1,300,380Z"></path> <path class="cls-1" d="M275,280H125a5,5,0,1,1,0-10H275a5,5,0,0,1,0,10Z"></path> <path class="cls-1" d="M200,330H125a5,5,0,1,1,0-10h75a5,5,0,0,1,0,10Z"></path> <path class="cls-1" d="M325,280H75a30,30,0,0,1-30-30V173.17a30,30,0,0,1,30-30h.2l250,1.66a30.09,30.09,0,0,1,29.81,30V250A30,30,0,0,1,325,280ZM75,153.17a20,20,0,0,0-20,20V250a20,20,0,0,0,20,20H325a20,20,0,0,0,20-20V174.83a20.06,20.06,0,0,0-19.88-20l-250-1.66Z"></path> <path class="cls-1" d="M152.44,236H117.79V182.68h34.3v7.93H127.4v14.45h19.84v7.73H127.4v14.92h25Z"></path> <path class="cls-1" d="M190.18,236H180l-8.36-14.37L162.52,236h-7.66L168,215.69l-11.37-19.14h10.2l6.48,11.6,7.38-11.6h7.46L177,213.66Z"></path> <path class="cls-1" d="M217.4,221.51l7.66.78q-1.49,7.42-5.74,11A15.5,15.5,0,0,1,209,236.82q-8.17,0-12.56-6a23.89,23.89,0,0,1-4.39-14.59q0-8.91,4.8-14.73a15.77,15.77,0,0,1,12.81-5.82q12.89,0,15.35,13.59l-7.66,1.05q-1-7.34-7.23-7.34a6.9,6.9,0,0,0-6.58,4,20.66,20.66,0,0,0-2.05,9.59q0,6,2.13,9.22a6.74,6.74,0,0,0,6,3.24Q215.49,229,217.4,221.51Z"></path> <path class="cls-1" d="M257,223.42l8,1.09a16.84,16.84,0,0,1-6.09,8.83,18.13,18.13,0,0,1-11.37,3.48q-8.2,0-13.2-5.51t-5-14.92q0-8.94,5-14.8t13.67-5.86q8.44,0,13,5.78t4.61,14.84l0,1H238.61a22.12,22.12,0,0,0,.76,6.45,8.68,8.68,0,0,0,3,4.22,8.83,8.83,0,0,0,5.66,1.8Q254.67,229.83,257,223.42Zm-.55-11.8a9.92,9.92,0,0,0-2.56-7,8.63,8.63,0,0,0-12.36-.18,11.36,11.36,0,0,0-2.89,7.13Z"></path> <path class="cls-1" d="M282.71,236h-8.91V182.68h8.91Z"></path> </g>
|
||||
</defs>
|
||||
<title></title>
|
||||
<g id="xxx-word">
|
||||
<path class="cls-1"
|
||||
d="M325,105H250a5,5,0,0,1-5-5V25a5,5,0,1,1,10,0V95h70a5,5,0,0,1,0,10Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M325,154.83a5,5,0,0,1-5-5V102.07L247.93,30H100A20,20,0,0,0,80,50v98.17a5,5,0,0,1-10,0V50a30,30,0,0,1,30-30H250a5,5,0,0,1,3.54,1.46l75,75A5,5,0,0,1,330,100v49.83A5,5,0,0,1,325,154.83Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M300,380H100a30,30,0,0,1-30-30V275a5,5,0,0,1,10,0v75a20,20,0,0,0,20,20H300a20,20,0,0,0,20-20V275a5,5,0,0,1,10,0v75A30,30,0,0,1,300,380Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M275,280H125a5,5,0,1,1,0-10H275a5,5,0,0,1,0,10Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M200,330H125a5,5,0,1,1,0-10h75a5,5,0,0,1,0,10Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M325,280H75a30,30,0,0,1-30-30V173.17a30,30,0,0,1,30-30h.2l250,1.66a30.09,30.09,0,0,1,29.81,30V250A30,30,0,0,1,325,280ZM75,153.17a20,20,0,0,0-20,20V250a20,20,0,0,0,20,20H325a20,20,0,0,0,20-20V174.83a20.06,20.06,0,0,0-19.88-20l-250-1.66Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M152.44,236H117.79V182.68h34.3v7.93H127.4v14.45h19.84v7.73H127.4v14.92h25Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M190.18,236H180l-8.36-14.37L162.52,236h-7.66L168,215.69l-11.37-19.14h10.2l6.48,11.6,7.38-11.6h7.46L177,213.66Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M217.4,221.51l7.66.78q-1.49,7.42-5.74,11A15.5,15.5,0,0,1,209,236.82q-8.17,0-12.56-6a23.89,23.89,0,0,1-4.39-14.59q0-8.91,4.8-14.73a15.77,15.77,0,0,1,12.81-5.82q12.89,0,15.35,13.59l-7.66,1.05q-1-7.34-7.23-7.34a6.9,6.9,0,0,0-6.58,4,20.66,20.66,0,0,0-2.05,9.59q0,6,2.13,9.22a6.74,6.74,0,0,0,6,3.24Q215.49,229,217.4,221.51Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M257,223.42l8,1.09a16.84,16.84,0,0,1-6.09,8.83,18.13,18.13,0,0,1-11.37,3.48q-8.2,0-13.2-5.51t-5-14.92q0-8.94,5-14.8t13.67-5.86q8.44,0,13,5.78t4.61,14.84l0,1H238.61a22.12,22.12,0,0,0,.76,6.45,8.68,8.68,0,0,0,3,4.22,8.83,8.83,0,0,0,5.66,1.8Q254.67,229.83,257,223.42Zm-.55-11.8a9.92,9.92,0,0,0-2.56-7,8.63,8.63,0,0,0-12.36-.18,11.36,11.36,0,0,0-2.89,7.13Z"></path>
|
||||
<path class="cls-1" d="M282.71,236h-8.91V182.68h8.91Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<span>خروجی اکسل</span>
|
||||
</button>
|
||||
|
||||
<button class="btn-print-all text-nowrap RemoveBtnAll" type="button" Permission="@SubAccountPermissionHelper.DeleteCustomizeCheckoutTempPermissionCode">
|
||||
<svg width="20" height="20" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.70825 13.2891L8.70825 10.5391" stroke="#BF3737" stroke-linecap="round" />
|
||||
<path d="M13.2917 13.2891L13.2917 10.5391" stroke="#BF3737" stroke-linecap="round" />
|
||||
<path d="M2.75 5.96094H19.25V5.96094C18.122 5.96094 17.558 5.96094 17.1279 6.18191C16.7561 6.37284 16.4536 6.67541 16.2626 7.04713C16.0417 7.47732 16.0417 8.0413 16.0417 9.16927V13.8776C16.0417 15.7632 16.0417 16.706 15.4559 17.2918C14.8701 17.8776 13.9273 17.8776 12.0417 17.8776H9.95833C8.07271 17.8776 7.12991 17.8776 6.54412 17.2918C5.95833 16.706 5.95833 15.7632 5.95833 13.8776V9.16927C5.95833 8.0413 5.95833 7.47732 5.73737 7.04713C5.54643 6.67541 5.24386 6.37284 4.87214 6.18191C4.44195 5.96094 3.87797 5.96094 2.75 5.96094V5.96094Z" stroke="#BF3737" stroke-linecap="round" />
|
||||
<path d="M8.70841 3.20595C8.70841 3.20595 9.16675 2.28906 11.0001 2.28906C12.8334 2.28906 13.2917 3.20573 13.2917 3.20573" stroke="#BF3737" stroke-linecap="round" />
|
||||
<button class="btn-print-all text-nowrap RemoveBtnAll" type="button"
|
||||
Permission="@SubAccountPermissionHelper.DeleteCustomizeCheckoutTempPermissionCode">
|
||||
<svg width="20" height="20" viewBox="0 0 22 22" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.70825 13.2891L8.70825 10.5391" stroke="#BF3737" stroke-linecap="round"/>
|
||||
<path d="M13.2917 13.2891L13.2917 10.5391" stroke="#BF3737" stroke-linecap="round"/>
|
||||
<path
|
||||
d="M2.75 5.96094H19.25V5.96094C18.122 5.96094 17.558 5.96094 17.1279 6.18191C16.7561 6.37284 16.4536 6.67541 16.2626 7.04713C16.0417 7.47732 16.0417 8.0413 16.0417 9.16927V13.8776C16.0417 15.7632 16.0417 16.706 15.4559 17.2918C14.8701 17.8776 13.9273 17.8776 12.0417 17.8776H9.95833C8.07271 17.8776 7.12991 17.8776 6.54412 17.2918C5.95833 16.706 5.95833 15.7632 5.95833 13.8776V9.16927C5.95833 8.0413 5.95833 7.47732 5.73737 7.04713C5.54643 6.67541 5.24386 6.37284 4.87214 6.18191C4.44195 5.96094 3.87797 5.96094 2.75 5.96094V5.96094Z"
|
||||
stroke="#BF3737" stroke-linecap="round"/>
|
||||
<path
|
||||
d="M8.70841 3.20595C8.70841 3.20595 9.16675 2.28906 11.0001 2.28906C12.8334 2.28906 13.2917 3.20573 13.2917 3.20573"
|
||||
stroke="#BF3737" stroke-linecap="round"/>
|
||||
</svg>
|
||||
<span>حذف گروهی</span>
|
||||
</button>
|
||||
@@ -295,11 +378,13 @@
|
||||
<div class="row d-flex align-items-center justify-content-between">
|
||||
<div class="search-box bg-white">
|
||||
<div class="col text-center">
|
||||
<button class="btn-search w-100" type="button" data-bs-toggle="modal" data-bs-target="#searchModal">
|
||||
<button class="btn-search w-100" type="button" data-bs-toggle="modal"
|
||||
data-bs-target="#searchModal">
|
||||
<span>جستجو پیشرفته</span>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<circle cx="11" cy="11" r="6" stroke="white" />
|
||||
<path d="M20 20L17 17" stroke="white" stroke-linecap="round" />
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"
|
||||
viewBox="0 0 24 24" fill="none">
|
||||
<circle cx="11" cy="11" r="6" stroke="white"/>
|
||||
<path d="M20 20L17 17" stroke="white" stroke-linecap="round"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
@@ -315,37 +400,82 @@
|
||||
<label for="checkAll1">انتخاب همه</label>
|
||||
</div>
|
||||
<div class="d-flex align-items-center justify-content-end gap-1">
|
||||
<button onclick="printAllMobile()" class="btn-print-all text-nowrap" type="button" Permission="@SubAccountPermissionHelper.PrintCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
|
||||
<path d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008" stroke="#1E293B" />
|
||||
<path d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z" stroke="#1E293B" />
|
||||
<path d="M7.91675 11.25L11.2501 11.25" stroke="#1E293B" stroke-linecap="round" />
|
||||
<path d="M7.91675 13.75L12.0834 13.75" stroke="#1E293B" stroke-linecap="round" />
|
||||
<path d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732" stroke="#1E293B" />
|
||||
<button onclick="printAllMobile()" class="btn-print-all text-nowrap" type="button"
|
||||
Permission="@SubAccountPermissionHelper.PrintCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"
|
||||
viewBox="0 0 20 20" fill="none">
|
||||
<path
|
||||
d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008"
|
||||
stroke="#1E293B"/>
|
||||
<path
|
||||
d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z"
|
||||
stroke="#1E293B"/>
|
||||
<path d="M7.91675 11.25L11.2501 11.25" stroke="#1E293B"
|
||||
stroke-linecap="round"/>
|
||||
<path d="M7.91675 13.75L12.0834 13.75" stroke="#1E293B"
|
||||
stroke-linecap="round"/>
|
||||
<path
|
||||
d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732"
|
||||
stroke="#1E293B"/>
|
||||
</svg>
|
||||
<span>پرینت گروهی</span>
|
||||
</button>
|
||||
<button onclick="showExcelAllModal()" class="btn-excel text-nowrap" type="button" Permission="@SubAccountPermissionHelper.ExcelCustomizeCheckoutTempPermissionCode">
|
||||
<svg width="20" height="20" viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg" fill="#000000">
|
||||
<button onclick="showExcelAllModal()" class="btn-excel text-nowrap" type="button"
|
||||
Permission="@SubAccountPermissionHelper.ExcelCustomizeCheckoutTempPermissionCode">
|
||||
<svg width="20" height="20" viewBox="0 0 400 400"
|
||||
xmlns="http://www.w3.org/2000/svg" fill="#000000">
|
||||
<g id="SVGRepo_bgCarrier" stroke-width="1"></g>
|
||||
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>
|
||||
<g id="SVGRepo_tracerCarrier" stroke-linecap="round"
|
||||
stroke-linejoin="round"></g>
|
||||
<g id="SVGRepo_iconCarrier">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: #0f773d;
|
||||
}</style>
|
||||
</defs> <title></title> <g id="xxx-word"> <path class="cls-1" d="M325,105H250a5,5,0,0,1-5-5V25a5,5,0,1,1,10,0V95h70a5,5,0,0,1,0,10Z"></path> <path class="cls-1" d="M325,154.83a5,5,0,0,1-5-5V102.07L247.93,30H100A20,20,0,0,0,80,50v98.17a5,5,0,0,1-10,0V50a30,30,0,0,1,30-30H250a5,5,0,0,1,3.54,1.46l75,75A5,5,0,0,1,330,100v49.83A5,5,0,0,1,325,154.83Z"></path> <path class="cls-1" d="M300,380H100a30,30,0,0,1-30-30V275a5,5,0,0,1,10,0v75a20,20,0,0,0,20,20H300a20,20,0,0,0,20-20V275a5,5,0,0,1,10,0v75A30,30,0,0,1,300,380Z"></path> <path class="cls-1" d="M275,280H125a5,5,0,1,1,0-10H275a5,5,0,0,1,0,10Z"></path> <path class="cls-1" d="M200,330H125a5,5,0,1,1,0-10h75a5,5,0,0,1,0,10Z"></path> <path class="cls-1" d="M325,280H75a30,30,0,0,1-30-30V173.17a30,30,0,0,1,30-30h.2l250,1.66a30.09,30.09,0,0,1,29.81,30V250A30,30,0,0,1,325,280ZM75,153.17a20,20,0,0,0-20,20V250a20,20,0,0,0,20,20H325a20,20,0,0,0,20-20V174.83a20.06,20.06,0,0,0-19.88-20l-250-1.66Z"></path> <path class="cls-1" d="M152.44,236H117.79V182.68h34.3v7.93H127.4v14.45h19.84v7.73H127.4v14.92h25Z"></path> <path class="cls-1" d="M190.18,236H180l-8.36-14.37L162.52,236h-7.66L168,215.69l-11.37-19.14h10.2l6.48,11.6,7.38-11.6h7.46L177,213.66Z"></path> <path class="cls-1" d="M217.4,221.51l7.66.78q-1.49,7.42-5.74,11A15.5,15.5,0,0,1,209,236.82q-8.17,0-12.56-6a23.89,23.89,0,0,1-4.39-14.59q0-8.91,4.8-14.73a15.77,15.77,0,0,1,12.81-5.82q12.89,0,15.35,13.59l-7.66,1.05q-1-7.34-7.23-7.34a6.9,6.9,0,0,0-6.58,4,20.66,20.66,0,0,0-2.05,9.59q0,6,2.13,9.22a6.74,6.74,0,0,0,6,3.24Q215.49,229,217.4,221.51Z"></path> <path class="cls-1" d="M257,223.42l8,1.09a16.84,16.84,0,0,1-6.09,8.83,18.13,18.13,0,0,1-11.37,3.48q-8.2,0-13.2-5.51t-5-14.92q0-8.94,5-14.8t13.67-5.86q8.44,0,13,5.78t4.61,14.84l0,1H238.61a22.12,22.12,0,0,0,.76,6.45,8.68,8.68,0,0,0,3,4.22,8.83,8.83,0,0,0,5.66,1.8Q254.67,229.83,257,223.42Zm-.55-11.8a9.92,9.92,0,0,0-2.56-7,8.63,8.63,0,0,0-12.36-.18,11.36,11.36,0,0,0-2.89,7.13Z"></path> <path class="cls-1" d="M282.71,236h-8.91V182.68h8.91Z"></path> </g>
|
||||
</defs>
|
||||
<title></title>
|
||||
<g id="xxx-word">
|
||||
<path class="cls-1"
|
||||
d="M325,105H250a5,5,0,0,1-5-5V25a5,5,0,1,1,10,0V95h70a5,5,0,0,1,0,10Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M325,154.83a5,5,0,0,1-5-5V102.07L247.93,30H100A20,20,0,0,0,80,50v98.17a5,5,0,0,1-10,0V50a30,30,0,0,1,30-30H250a5,5,0,0,1,3.54,1.46l75,75A5,5,0,0,1,330,100v49.83A5,5,0,0,1,325,154.83Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M300,380H100a30,30,0,0,1-30-30V275a5,5,0,0,1,10,0v75a20,20,0,0,0,20,20H300a20,20,0,0,0,20-20V275a5,5,0,0,1,10,0v75A30,30,0,0,1,300,380Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M275,280H125a5,5,0,1,1,0-10H275a5,5,0,0,1,0,10Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M200,330H125a5,5,0,1,1,0-10h75a5,5,0,0,1,0,10Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M325,280H75a30,30,0,0,1-30-30V173.17a30,30,0,0,1,30-30h.2l250,1.66a30.09,30.09,0,0,1,29.81,30V250A30,30,0,0,1,325,280ZM75,153.17a20,20,0,0,0-20,20V250a20,20,0,0,0,20,20H325a20,20,0,0,0,20-20V174.83a20.06,20.06,0,0,0-19.88-20l-250-1.66Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M152.44,236H117.79V182.68h34.3v7.93H127.4v14.45h19.84v7.73H127.4v14.92h25Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M190.18,236H180l-8.36-14.37L162.52,236h-7.66L168,215.69l-11.37-19.14h10.2l6.48,11.6,7.38-11.6h7.46L177,213.66Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M217.4,221.51l7.66.78q-1.49,7.42-5.74,11A15.5,15.5,0,0,1,209,236.82q-8.17,0-12.56-6a23.89,23.89,0,0,1-4.39-14.59q0-8.91,4.8-14.73a15.77,15.77,0,0,1,12.81-5.82q12.89,0,15.35,13.59l-7.66,1.05q-1-7.34-7.23-7.34a6.9,6.9,0,0,0-6.58,4,20.66,20.66,0,0,0-2.05,9.59q0,6,2.13,9.22a6.74,6.74,0,0,0,6,3.24Q215.49,229,217.4,221.51Z"></path>
|
||||
<path class="cls-1"
|
||||
d="M257,223.42l8,1.09a16.84,16.84,0,0,1-6.09,8.83,18.13,18.13,0,0,1-11.37,3.48q-8.2,0-13.2-5.51t-5-14.92q0-8.94,5-14.8t13.67-5.86q8.44,0,13,5.78t4.61,14.84l0,1H238.61a22.12,22.12,0,0,0,.76,6.45,8.68,8.68,0,0,0,3,4.22,8.83,8.83,0,0,0,5.66,1.8Q254.67,229.83,257,223.42Zm-.55-11.8a9.92,9.92,0,0,0-2.56-7,8.63,8.63,0,0,0-12.36-.18,11.36,11.36,0,0,0-2.89,7.13Z"></path>
|
||||
<path class="cls-1" d="M282.71,236h-8.91V182.68h8.91Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<span>خروجی اکسل</span>
|
||||
</button>
|
||||
<button class="btn-print-all RemoveBtnAll" type="button" Permission="@SubAccountPermissionHelper.DeleteCustomizeCheckoutTempPermissionCode">
|
||||
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.70825 13.2891L8.70825 10.5391" stroke="#BF3737" stroke-linecap="round" />
|
||||
<path d="M13.2917 13.2891L13.2917 10.5391" stroke="#BF3737" stroke-linecap="round" />
|
||||
<path d="M2.75 5.96094H19.25V5.96094C18.122 5.96094 17.558 5.96094 17.1279 6.18191C16.7561 6.37284 16.4536 6.67541 16.2626 7.04713C16.0417 7.47732 16.0417 8.0413 16.0417 9.16927V13.8776C16.0417 15.7632 16.0417 16.706 15.4559 17.2918C14.8701 17.8776 13.9273 17.8776 12.0417 17.8776H9.95833C8.07271 17.8776 7.12991 17.8776 6.54412 17.2918C5.95833 16.706 5.95833 15.7632 5.95833 13.8776V9.16927C5.95833 8.0413 5.95833 7.47732 5.73737 7.04713C5.54643 6.67541 5.24386 6.37284 4.87214 6.18191C4.44195 5.96094 3.87797 5.96094 2.75 5.96094V5.96094Z" stroke="#BF3737" stroke-linecap="round" />
|
||||
<path d="M8.70841 3.20595C8.70841 3.20595 9.16675 2.28906 11.0001 2.28906C12.8334 2.28906 13.2917 3.20573 13.2917 3.20573" stroke="#BF3737" stroke-linecap="round" />
|
||||
<button class="btn-print-all RemoveBtnAll" type="button"
|
||||
Permission="@SubAccountPermissionHelper.DeleteCustomizeCheckoutTempPermissionCode">
|
||||
<svg width="22" height="22" viewBox="0 0 22 22" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.70825 13.2891L8.70825 10.5391" stroke="#BF3737"
|
||||
stroke-linecap="round"/>
|
||||
<path d="M13.2917 13.2891L13.2917 10.5391" stroke="#BF3737"
|
||||
stroke-linecap="round"/>
|
||||
<path
|
||||
d="M2.75 5.96094H19.25V5.96094C18.122 5.96094 17.558 5.96094 17.1279 6.18191C16.7561 6.37284 16.4536 6.67541 16.2626 7.04713C16.0417 7.47732 16.0417 8.0413 16.0417 9.16927V13.8776C16.0417 15.7632 16.0417 16.706 15.4559 17.2918C14.8701 17.8776 13.9273 17.8776 12.0417 17.8776H9.95833C8.07271 17.8776 7.12991 17.8776 6.54412 17.2918C5.95833 16.706 5.95833 15.7632 5.95833 13.8776V9.16927C5.95833 8.0413 5.95833 7.47732 5.73737 7.04713C5.54643 6.67541 5.24386 6.37284 4.87214 6.18191C4.44195 5.96094 3.87797 5.96094 2.75 5.96094V5.96094Z"
|
||||
stroke="#BF3737" stroke-linecap="round"/>
|
||||
<path
|
||||
d="M8.70841 3.20595C8.70841 3.20595 9.16675 2.28906 11.0001 2.28906C12.8334 2.28906 13.2917 3.20573 13.2917 3.20573"
|
||||
stroke="#BF3737" stroke-linecap="round"/>
|
||||
</svg>
|
||||
<span>حذف گروهی</span>
|
||||
</button>
|
||||
@@ -355,8 +485,10 @@
|
||||
<div class="checkout-list Rtable Rtable--5cols Rtable--collapse tb">
|
||||
<div class="Rtable-row Rtable-row--head align-items-center sticky-div">
|
||||
<div class="Rtable-cell column-heading width1">
|
||||
<span class="d-flex justify-content-center text-white align-items-center justify-content-between">
|
||||
<input type="checkbox" class="form-check-input checkAll" name="" id="checkAll2">
|
||||
<span
|
||||
class="d-flex justify-content-center text-white align-items-center justify-content-between">
|
||||
<input type="checkbox" class="form-check-input checkAll" name=""
|
||||
id="checkAll2">
|
||||
<label for="checkAll2" class="prevent-select">ردیف</label>
|
||||
</span>
|
||||
</div>
|
||||
@@ -384,8 +516,10 @@
|
||||
ردیف
|
||||
</div>
|
||||
<label for="@i" class="Rtable-cell--content prevent-select">
|
||||
<span class="d-flex justify-content-center align-items-center justify-content-between">
|
||||
<input id="@i" type="checkbox" class="form-check-input foo" name="foo" value="@item.Id">
|
||||
<span
|
||||
class="d-flex justify-content-center align-items-center justify-content-between">
|
||||
<input id="@i" type="checkbox" class="form-check-input foo"
|
||||
name="foo" value="@item.Id">
|
||||
<div class="row-number">
|
||||
@(i = i + 1)
|
||||
</div>
|
||||
@@ -410,7 +544,25 @@
|
||||
</div> *@
|
||||
<div class="Rtable-cell d-md-block d-none width6">
|
||||
<div class="Rtable-cell--heading">نام پرسنل</div>
|
||||
<div class="Rtable-cell--content ">@item.EmployeeFullName</div>
|
||||
<div class="Rtable-cell--content">
|
||||
@item.EmployeeFullName
|
||||
@if (item.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت صدور فیش حقوقی استاندارد مجددا فیش را ایجاد کنید!">
|
||||
<path
|
||||
d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path
|
||||
d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="Rtable-cell d-md-block d-none width7">
|
||||
<div class="Rtable-cell--heading">آغاز قرارداد</div>
|
||||
@@ -426,49 +578,75 @@
|
||||
</div>
|
||||
<div class="Rtable-cell d-md-flex d-none width9">
|
||||
<div class="Rtable-cell--heading">تاخیر در ورود</div>
|
||||
<div class="Rtable-cell--content @(item.TotalLateToWorkDeduction == "0" ? "" : "textRed")">@item.TotalLateToWorkDeduction</div>
|
||||
<div
|
||||
class="Rtable-cell--content @(item.TotalLateToWorkDeduction == "0" ? "" : "textRed")">@item.TotalLateToWorkDeduction</div>
|
||||
</div>
|
||||
<div class="Rtable-cell d-md-flex d-none width9">
|
||||
<div class="Rtable-cell--heading">غیبت</div>
|
||||
<div class="Rtable-cell--content @(item.AbsenceDeduction == "0" ? "" : "textRed")">@item.AbsenceDeduction</div>
|
||||
<div
|
||||
class="Rtable-cell--content @(item.AbsenceDeduction == "0" ? "" : "textRed")">@item.AbsenceDeduction</div>
|
||||
</div>
|
||||
<div class="Rtable-cell d-md-flex d-none width9">
|
||||
<div class="Rtable-cell--heading">مساعده</div>
|
||||
<div class="Rtable-cell--content @(item.SalaryAidDeduction == "0" ? "" : "textRed")">@item.SalaryAidDeduction</div>
|
||||
<div
|
||||
class="Rtable-cell--content @(item.SalaryAidDeduction == "0" ? "" : "textRed")">@item.SalaryAidDeduction</div>
|
||||
</div>
|
||||
<div class="Rtable-cell d-md-flex d-none width9">
|
||||
<div class="@(item.TotalPaymentD < 0 ? "bgColorMonthlySalaryMinus" : "bgColorMonthlySalaryPlus")">
|
||||
<div
|
||||
class="@(item.TotalPaymentD < 0 ? "bgColorMonthlySalaryMinus" : "bgColorMonthlySalaryPlus")">
|
||||
<div class="Rtable-cell--heading">مبلغ قابل پرداخت</div>
|
||||
<div class="Rtable-cell--content ">@(item.TotalPayment + " ریال")</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Rtable-cell d-md-flex d-none width10">
|
||||
<div class="Rtable-cell--content align-items-center d-flex d-md-block text-end">
|
||||
<button class="btn-print moreThan992" type="button" onclick="printOne(@item.Id, '@item.Year', '@item.Month')" Permission="@SubAccountPermissionHelper.PrintCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor">
|
||||
<path d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008" />
|
||||
<path d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z" />
|
||||
<path d="M7.91675 11.25L11.2501 11.25" stroke-linecap="round" />
|
||||
<path d="M7.91675 13.75L12.0834 13.75" stroke-linecap="round" />
|
||||
<path d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732" />
|
||||
<div
|
||||
class="Rtable-cell--content align-items-center d-flex d-md-block text-end">
|
||||
<button class="btn-print moreThan992" type="button"
|
||||
onclick="printOne(@item.Id, '@item.Year', '@item.Month')"
|
||||
Permission="@SubAccountPermissionHelper.PrintCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"
|
||||
viewBox="0 0 20 20" fill="none" stroke="currentColor">
|
||||
<path
|
||||
d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008"/>
|
||||
<path
|
||||
d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z"/>
|
||||
<path d="M7.91675 11.25L11.2501 11.25" stroke-linecap="round"/>
|
||||
<path d="M7.91675 13.75L12.0834 13.75" stroke-linecap="round"/>
|
||||
<path
|
||||
d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732"/>
|
||||
</svg>
|
||||
</button>
|
||||
<button class="btn-print lessThan992" type="button" onclick="printOne(@item.Id, '@item.Year', '@item.Month')" Permission="@SubAccountPermissionHelper.PrintCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor">
|
||||
<path d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008" />
|
||||
<path d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z" />
|
||||
<path d="M7.91675 11.25L11.2501 11.25" stroke-linecap="round" />
|
||||
<path d="M7.91675 13.75L12.0834 13.75" stroke-linecap="round" />
|
||||
<path d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732" />
|
||||
<button class="btn-print lessThan992" type="button"
|
||||
onclick="printOne(@item.Id, '@item.Year', '@item.Month')"
|
||||
Permission="@SubAccountPermissionHelper.PrintCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"
|
||||
viewBox="0 0 20 20" fill="none" stroke="currentColor">
|
||||
<path
|
||||
d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008"/>
|
||||
<path
|
||||
d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z"/>
|
||||
<path d="M7.91675 11.25L11.2501 11.25" stroke-linecap="round"/>
|
||||
<path d="M7.91675 13.75L12.0834 13.75" stroke-linecap="round"/>
|
||||
<path
|
||||
d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732"/>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button type="button" class="btn-delete RemoveBtn" data-delete-id="@(item.Id)" Permission="@SubAccountPermissionHelper.DeleteCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 22 22" fill="none" stroke="currentColor">
|
||||
<path d="M8.70825 13.2915L8.70825 10.5415" stroke-linecap="round" />
|
||||
<path d="M13.2917 13.2915L13.2917 10.5415" stroke-linecap="round" />
|
||||
<path d="M2.75 5.9585H19.25V5.9585C18.122 5.9585 17.558 5.9585 17.1279 6.17946C16.7561 6.3704 16.4536 6.67297 16.2626 7.04469C16.0417 7.47488 16.0417 8.03886 16.0417 9.16683V13.8752C16.0417 15.7608 16.0417 16.7036 15.4559 17.2894C14.8701 17.8752 13.9273 17.8752 12.0417 17.8752H9.95833C8.07271 17.8752 7.12991 17.8752 6.54412 17.2894C5.95833 16.7036 5.95833 15.7608 5.95833 13.8752V9.16683C5.95833 8.03886 5.95833 7.47488 5.73737 7.04469C5.54643 6.67297 5.24386 6.3704 4.87214 6.17946C4.44195 5.9585 3.87797 5.9585 2.75 5.9585V5.9585Z" stroke-linecap="round" />
|
||||
<path d="M8.70841 3.20839C8.70841 3.20839 9.16675 2.2915 11.0001 2.2915C12.8334 2.2915 13.2917 3.20817 13.2917 3.20817" stroke-linecap="round" />
|
||||
<button type="button" class="btn-delete RemoveBtn"
|
||||
data-delete-id="@(item.Id)"
|
||||
Permission="@SubAccountPermissionHelper.DeleteCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"
|
||||
viewBox="0 0 22 22" fill="none" stroke="currentColor">
|
||||
<path d="M8.70825 13.2915L8.70825 10.5415"
|
||||
stroke-linecap="round"/>
|
||||
<path d="M13.2917 13.2915L13.2917 10.5415"
|
||||
stroke-linecap="round"/>
|
||||
<path
|
||||
d="M2.75 5.9585H19.25V5.9585C18.122 5.9585 17.558 5.9585 17.1279 6.17946C16.7561 6.3704 16.4536 6.67297 16.2626 7.04469C16.0417 7.47488 16.0417 8.03886 16.0417 9.16683V13.8752C16.0417 15.7608 16.0417 16.7036 15.4559 17.2894C14.8701 17.8752 13.9273 17.8752 12.0417 17.8752H9.95833C8.07271 17.8752 7.12991 17.8752 6.54412 17.2894C5.95833 16.7036 5.95833 15.7608 5.95833 13.8752V9.16683C5.95833 8.03886 5.95833 7.47488 5.73737 7.04469C5.54643 6.67297 5.24386 6.3704 4.87214 6.17946C4.44195 5.9585 3.87797 5.9585 2.75 5.9585V5.9585Z"
|
||||
stroke-linecap="round"/>
|
||||
<path
|
||||
d="M8.70841 3.20839C8.70841 3.20839 9.16675 2.2915 11.0001 2.2915C12.8334 2.2915 13.2917 3.20817 13.2917 3.20817"
|
||||
stroke-linecap="round"/>
|
||||
</svg>
|
||||
<span class="mx-1">حذف</span>
|
||||
</button>
|
||||
@@ -479,23 +657,44 @@
|
||||
|
||||
|
||||
<!--Mobile Table-->
|
||||
<div class="Rtable-contract w-100 d-flex d-md-none align-items-center justify-content-between printAllTd">
|
||||
<div
|
||||
class="Rtable-contract w-100 d-flex d-md-none align-items-center justify-content-between printAllTd">
|
||||
|
||||
<div class="d-flex justify-content-center align-items-center justify-content-between">
|
||||
<div class="checkbox-responsive d-flex justify-content-center align-items-center justify-content-around">
|
||||
<input type="checkbox" class="form-check-input fooMobile" name="foo" value="@item.Id">
|
||||
<div
|
||||
class="d-flex justify-content-center align-items-center justify-content-between">
|
||||
<div
|
||||
class="checkbox-responsive d-flex justify-content-center align-items-center justify-content-around">
|
||||
<input type="checkbox" class="form-check-input fooMobile" name="foo"
|
||||
value="@item.Id">
|
||||
<span class="row-number">@(i)</span>
|
||||
</div>
|
||||
|
||||
<div class="Rtable-cell--content">
|
||||
<span class="mx-sm-2">
|
||||
@item.EmployeeFullName
|
||||
@if (item.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="12" height="12" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت صدور فیش حقوقی استاندارد مجددا فیش را ایجاد کنید!">
|
||||
<path
|
||||
d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path
|
||||
d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="Rtable-cell--content d-flex justify-content-end align-items-center">
|
||||
<div
|
||||
class="Rtable-cell--content d-flex justify-content-end align-items-center">
|
||||
|
||||
<div class="Rtable-cell--heading d-block text-center text-nowrap">
|
||||
<span class="d-block">آغاز قرارداد</span>
|
||||
@@ -506,21 +705,38 @@
|
||||
@item.ContractEndFa
|
||||
</div>
|
||||
<div class="Rtable-cell--heading d-flex text-center">
|
||||
<button class="btn-print" type="button" onclick="printOne(@item.Id, '@item.Year', '@item.Month')" Permission="@SubAccountPermissionHelper.PrintCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 20 20" fill="none" stroke="currentColor">
|
||||
<path d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008" />
|
||||
<path d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z" />
|
||||
<path d="M7.91675 11.25L11.2501 11.25" stroke-linecap="round" />
|
||||
<path d="M7.91675 13.75L12.0834 13.75" stroke-linecap="round" />
|
||||
<path d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732" />
|
||||
<button class="btn-print" type="button"
|
||||
onclick="printOne(@item.Id, '@item.Year', '@item.Month')"
|
||||
Permission="@SubAccountPermissionHelper.PrintCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25"
|
||||
viewBox="0 0 20 20" fill="none" stroke="currentColor">
|
||||
<path
|
||||
d="M15.0001 11.2493H15.139C16.0279 11.2493 16.4723 11.2493 16.759 10.9866C16.7805 10.967 16.801 10.9464 16.8207 10.9249C17.0834 10.6382 17.0834 10.1938 17.0834 9.3049V9.3049C17.0834 7.52714 17.0834 6.63826 16.558 6.06484C16.5187 6.02194 16.4775 5.98077 16.4346 5.94146C15.8612 5.41602 14.9723 5.41602 13.1945 5.41602H6.91675C5.03113 5.41602 4.08832 5.41602 3.50253 6.0018C2.91675 6.58759 2.91675 7.5304 2.91675 9.41602V10.2493C2.91675 10.7208 2.91675 10.9565 3.06319 11.1029C3.20964 11.2493 3.44534 11.2493 3.91675 11.2493H5.00008"/>
|
||||
<path
|
||||
d="M5.41675 16.3903L5.41675 9.91732C5.41675 8.97451 5.41675 8.5031 5.70964 8.21021C6.00253 7.91732 6.47394 7.91732 7.41675 7.91732L12.5834 7.91732C13.5262 7.91732 13.9976 7.91732 14.2905 8.21021C14.5834 8.5031 14.5834 8.97451 14.5834 9.91732L14.5834 16.3903C14.5834 16.7068 14.5834 16.8651 14.4796 16.9399C14.3758 17.0148 14.2256 16.9647 13.9253 16.8646L12.2572 16.3086C12.1712 16.2799 12.1282 16.2656 12.0839 16.2669C12.0396 16.2682 11.9975 16.285 11.9134 16.3187L10.1858 17.0097C10.0941 17.0464 10.0482 17.0647 10.0001 17.0647C9.95194 17.0647 9.90609 17.0464 9.81439 17.0097L8.0868 16.3187C8.00267 16.285 7.9606 16.2682 7.91627 16.2669C7.87194 16.2656 7.82896 16.2799 7.74299 16.3086L6.07486 16.8646C5.77455 16.9647 5.62439 17.0148 5.52057 16.9399C5.41675 16.8651 5.41675 16.7068 5.41675 16.3903Z"/>
|
||||
<path d="M7.91675 11.25L11.2501 11.25"
|
||||
stroke-linecap="round"/>
|
||||
<path d="M7.91675 13.75L12.0834 13.75"
|
||||
stroke-linecap="round"/>
|
||||
<path
|
||||
d="M14.5834 5.41732V5.41732C14.5834 3.97799 14.5834 3.25833 14.1954 2.76756C14.1087 2.65791 14.0095 2.55874 13.8998 2.47204C13.4091 2.08398 12.6894 2.08398 11.2501 2.08398H8.75008C7.31076 2.08398 6.5911 2.08398 6.10032 2.47204C5.99068 2.55874 5.8915 2.65791 5.8048 2.76756C5.41675 3.25833 5.41675 3.97799 5.41675 5.41732V5.41732"/>
|
||||
</svg>
|
||||
</button>
|
||||
<button type="button" class="btn-delete RemoveBtn" data-delete-id="@(item.Id)" Permission="@SubAccountPermissionHelper.DeleteCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 22 22" fill="none" stroke="currentColor">
|
||||
<path d="M8.70825 13.2915L8.70825 10.5415" stroke-linecap="round" />
|
||||
<path d="M13.2917 13.2915L13.2917 10.5415" stroke-linecap="round" />
|
||||
<path d="M2.75 5.9585H19.25V5.9585C18.122 5.9585 17.558 5.9585 17.1279 6.17946C16.7561 6.3704 16.4536 6.67297 16.2626 7.04469C16.0417 7.47488 16.0417 8.03886 16.0417 9.16683V13.8752C16.0417 15.7608 16.0417 16.7036 15.4559 17.2894C14.8701 17.8752 13.9273 17.8752 12.0417 17.8752H9.95833C8.07271 17.8752 7.12991 17.8752 6.54412 17.2894C5.95833 16.7036 5.95833 15.7608 5.95833 13.8752V9.16683C5.95833 8.03886 5.95833 7.47488 5.73737 7.04469C5.54643 6.67297 5.24386 6.3704 4.87214 6.17946C4.44195 5.9585 3.87797 5.9585 2.75 5.9585V5.9585Z" stroke-linecap="round" />
|
||||
<path d="M8.70841 3.20839C8.70841 3.20839 9.16675 2.2915 11.0001 2.2915C12.8334 2.2915 13.2917 3.20817 13.2917 3.20817" stroke-linecap="round" />
|
||||
<button type="button" class="btn-delete RemoveBtn"
|
||||
data-delete-id="@(item.Id)"
|
||||
Permission="@SubAccountPermissionHelper.DeleteCustomizeCheckoutTempPermissionCode">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25"
|
||||
viewBox="0 0 22 22" fill="none" stroke="currentColor">
|
||||
<path d="M8.70825 13.2915L8.70825 10.5415"
|
||||
stroke-linecap="round"/>
|
||||
<path d="M13.2917 13.2915L13.2917 10.5415"
|
||||
stroke-linecap="round"/>
|
||||
<path
|
||||
d="M2.75 5.9585H19.25V5.9585C18.122 5.9585 17.558 5.9585 17.1279 6.17946C16.7561 6.3704 16.4536 6.67297 16.2626 7.04469C16.0417 7.47488 16.0417 8.03886 16.0417 9.16683V13.8752C16.0417 15.7608 16.0417 16.7036 15.4559 17.2894C14.8701 17.8752 13.9273 17.8752 12.0417 17.8752H9.95833C8.07271 17.8752 7.12991 17.8752 6.54412 17.2894C5.95833 16.7036 5.95833 15.7608 5.95833 13.8752V9.16683C5.95833 8.03886 5.95833 7.47488 5.73737 7.04469C5.54643 6.67297 5.24386 6.3704 4.87214 6.17946C4.44195 5.9585 3.87797 5.9585 2.75 5.9585V5.9585Z"
|
||||
stroke-linecap="round"/>
|
||||
<path
|
||||
d="M8.70841 3.20839C8.70841 3.20839 9.16675 2.2915 11.0001 2.2915C12.8334 2.2915 13.2917 3.20817 13.2917 3.20817"
|
||||
stroke-linecap="round"/>
|
||||
</svg>
|
||||
<span class="mx-1">حذف</span>
|
||||
</button>
|
||||
@@ -530,7 +746,6 @@
|
||||
<!-- Mobile Table -->
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
@@ -539,9 +754,10 @@
|
||||
{
|
||||
<div class="container-fluid">
|
||||
<div class="row p-lg-2 p-auto">
|
||||
<div class="empty text-center bg-white d-flex align-items-center justify-content-center">
|
||||
<div
|
||||
class="empty text-center bg-white d-flex align-items-center justify-content-center">
|
||||
<div class="">
|
||||
<img src="~/assetsclient/images/empty.png" alt="" class="img-fluid" />
|
||||
<img src="~/assetsclient/images/empty.png" alt="" class="img-fluid"/>
|
||||
<h5>اطلاعاتی وجود ندارد.</h5>
|
||||
</div>
|
||||
</div>
|
||||
@@ -561,7 +777,8 @@
|
||||
|
||||
|
||||
<!--Start Print Modal Main -->
|
||||
<div id="MainModal" class="modal fade checkoutTempModal" role="dialog" aria-labelledby="MainModalLabel" aria-hidden="true" style="display: none;">
|
||||
<div id="MainModal" class="modal fade checkoutTempModal" role="dialog" aria-labelledby="MainModalLabel"
|
||||
aria-hidden="true" style="display: none;">
|
||||
<div class="modal-dialog checkoutTempModal-width modal-dialog-centered">
|
||||
<div class="modal-content" id="ModalContent">
|
||||
</div>
|
||||
@@ -572,7 +789,8 @@
|
||||
|
||||
<form role="form" method="get" name="search-theme-form1" id="search-theme-form1" autocomplete="off">
|
||||
<!-- Modal From Bottom For Advance Search -->
|
||||
<div class="modal fade" id="searchModal" tabindex="-1" data-bs-backdrop="static" aria-labelledby="searchModalModalLabel" aria-hidden="true">
|
||||
<div class="modal fade" id="searchModal" tabindex="-1" data-bs-backdrop="static"
|
||||
aria-labelledby="searchModalModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-fullscreen">
|
||||
<div class="modal-content">
|
||||
<form role="form" method="get" name="search-theme-form2" id="search-theme-form2" autocomplete="off">
|
||||
@@ -589,30 +807,45 @@
|
||||
<div class="row">
|
||||
<div class="col-12 text-start mb-4">
|
||||
<div class="mb-2">
|
||||
<select class="form-select select2OptionMobile" id="getPersonnelMobile" asp-for="SearchModel.EmployeeId">
|
||||
<select class="form-select select2OptionMobile" id="getPersonnelMobile"
|
||||
asp-for="SearchModel.EmployeeId">
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<span class="form-control text-center persianDateInputStartDate" id="start-date">تاریخ شروع</span>
|
||||
<input type="hidden" class="form-control date start-date" asp-for="@Model.SearchModel.SearchStartFa" placeholder="تاریخ شروع" style="direction: ltr">
|
||||
<span class="form-control text-center persianDateInputStartDate"
|
||||
id="start-date">تاریخ شروع</span>
|
||||
<input type="hidden" class="form-control date start-date"
|
||||
asp-for="@Model.SearchModel.SearchStartFa" placeholder="تاریخ شروع"
|
||||
style="direction: ltr">
|
||||
</div>
|
||||
<div>
|
||||
<span class="form-control text-center persianDateInputEndDate" id="end-date">تاریخ پایان</span>
|
||||
<input type="hidden" class="form-control date end-date" asp-for="@Model.SearchModel.SearchEndFa" placeholder="تاریخ پایان" style="direction: ltr">
|
||||
<input type="hidden" class="form-control date end-date"
|
||||
asp-for="@Model.SearchModel.SearchEndFa" placeholder="تاریخ پایان"
|
||||
style="direction: ltr">
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label class="text-nowrap">مرتب سازی</label>
|
||||
<select class="form-select" id="sorting" asp-for="@Model.SearchModel.OrderBy">
|
||||
<option value="@CustomizeCheckoutOrderByEnum.ContractStartDesc">شروع قرارداد - بزرگ به کوچک</option>
|
||||
<option value="@CustomizeCheckoutOrderByEnum.ContractStart">شروع قرارداد - کوچک به بزرگ</option>
|
||||
<option value="@CustomizeCheckoutOrderByEnum.ContractNo">شماره قرارداد - کوچک به بزرگ</option>
|
||||
<option value="@CustomizeCheckoutOrderByEnum.ContractNoDesc">شماره قرارداد - بزرگ به کوچک</option>
|
||||
<option value="@CustomizeCheckoutOrderByEnum.ContractStartDesc">شروع قرارداد
|
||||
- بزرگ به کوچک
|
||||
</option>
|
||||
<option value="@CustomizeCheckoutOrderByEnum.ContractStart">شروع قرارداد -
|
||||
کوچک به بزرگ
|
||||
</option>
|
||||
<option value="@CustomizeCheckoutOrderByEnum.ContractNo">شماره قرارداد -
|
||||
کوچک به بزرگ
|
||||
</option>
|
||||
<option value="@CustomizeCheckoutOrderByEnum.ContractNoDesc">شماره قرارداد -
|
||||
بزرگ به کوچک
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mt-2">
|
||||
<select class="form-select" id="bankSelectIndexMobile" asp-for="@Model.SearchModel.BankId" aria-label="انتخاب بانک ...">
|
||||
<select class="form-select" id="bankSelectIndexMobile"
|
||||
asp-for="@Model.SearchModel.BankId" aria-label="انتخاب بانک ...">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -623,7 +856,8 @@
|
||||
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<span class="form-control text-center persianDateInputYear" id="yearText">
|
||||
<span class="form-control text-center persianDateInputYear"
|
||||
id="yearText">
|
||||
@{
|
||||
if (Model.SearchModel.Year == 0)
|
||||
{
|
||||
@@ -635,13 +869,15 @@
|
||||
}
|
||||
}
|
||||
</span>
|
||||
<input type="hidden" class="form-control" asp-for="@Model.SearchModel.Year" id="yearModal" maxlength="4" />
|
||||
<input type="hidden" class="form-control"
|
||||
asp-for="@Model.SearchModel.Year" id="yearModal" maxlength="4"/>
|
||||
@* <span asp-validation-for="DateOfYear" class="error"></span> *@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<span class="form-control text-center persianDateInputMonth" id="monthText">
|
||||
<span class="form-control text-center persianDateInputMonth"
|
||||
id="monthText">
|
||||
@{
|
||||
if (Model.SearchModel.Month == 0)
|
||||
{
|
||||
@@ -694,12 +930,15 @@
|
||||
}
|
||||
}
|
||||
</span>
|
||||
<input type="hidden" class="form-control" asp-for="@Model.SearchModel.Month" id="monthModal" />
|
||||
<input type="hidden" class="form-control"
|
||||
asp-for="@Model.SearchModel.Month" id="monthModal"/>
|
||||
@* <span asp-validation-for="DateOfMonth" class="error"></span> *@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<a href="/Client/Company/CustomizeCheckout/CheckoutTemporary" class="btn-clear-filter py-2 text-center d-block w-100 mt-2 disable" id="filterRemove">
|
||||
<a href="/Client/Company/CustomizeCheckout/CheckoutTemporary"
|
||||
class="btn-clear-filter py-2 text-center d-block w-100 mt-2 disable"
|
||||
id="filterRemove">
|
||||
<span class="w-100">حذف جستجو</span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -717,7 +956,8 @@
|
||||
<button type="button" class="btn-cancel w-100" data-bs-dismiss="modal">بستن</button>
|
||||
</div>
|
||||
<div class="col-6 text-start">
|
||||
<button type="submit" class="btn-search btn-search-click-mobile w-100">جستجو</button>
|
||||
<button type="submit" class="btn-search btn-search-click-mobile w-100">جستجو
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -761,7 +1001,11 @@
|
||||
var deleteOneAjax = `@Url.Page("/Company/CustomizeCheckout/CheckoutTemporary", "DeleteOne")`;
|
||||
var deleteAllAjax = `@Url.Page("/Company/CustomizeCheckout/CheckoutTemporary", "DeleteAll")`;
|
||||
|
||||
|
||||
$(document).ready(function () {
|
||||
document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(el => {
|
||||
bootstrap.Tooltip.getOrCreateInstance(el);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<script src="~/assetsclient/pages/CustomizeCheckout/js/CheckoutTemporary.js?ver=@clientVersion"></script>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -410,7 +410,22 @@
|
||||
</div> *@
|
||||
<div class="Rtable-cell d-md-block d-none width6">
|
||||
<div class="Rtable-cell--heading">نام پرسنل</div>
|
||||
<div class="Rtable-cell--content ">@item.EmployeeFullName</div>
|
||||
<div class="Rtable-cell--content ">@item.EmployeeFullName
|
||||
@if (item.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت صدور فیش حقوقی استاندارد مجددا فیش را ایجاد کنید!">
|
||||
<path d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="Rtable-cell d-md-block d-none width7">
|
||||
<div class="Rtable-cell--heading">آغاز قرارداد</div>
|
||||
@@ -490,6 +505,20 @@
|
||||
<div class="Rtable-cell--content">
|
||||
<span class="mx-sm-2">
|
||||
@item.EmployeeFullName
|
||||
@if (item.HasAmountConflict)
|
||||
{
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
width="12" height="12" fill="red"
|
||||
class="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت صدور فیش حقوقی استاندارد مجددا فیش را ایجاد کنید!">
|
||||
<path d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>
|
||||
}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -763,6 +792,9 @@
|
||||
|
||||
var deleteOneAjax = `@Url.Page("/Company/CustomizeCheckout/CheckoutUnofficial", "DeleteOne")`;
|
||||
var deleteAllAjax = `@Url.Page("/Company/CustomizeCheckout/CheckoutUnofficial", "DeleteAll")`;
|
||||
document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(el => {
|
||||
bootstrap.Tooltip.getOrCreateInstance(el);
|
||||
});
|
||||
</script>
|
||||
<script src="~/assetsclient/pages/CustomizeCheckout/js/CheckoutUnofficial.js?ver=@clientVersion"></script>
|
||||
}
|
||||
@@ -27,18 +27,15 @@ using Microsoft.AspNetCore.CookiePolicy;
|
||||
using Microsoft.AspNetCore.Mvc.Infrastructure;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Diagnostics;
|
||||
|
||||
using Swashbuckle.AspNetCore.SwaggerUI;
|
||||
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
builder.WebHost.ConfigureKestrel(serverOptions =>
|
||||
{
|
||||
serverOptions.Limits.MaxRequestBodySize = long.MaxValue;
|
||||
});
|
||||
builder.WebHost.ConfigureKestrel(serverOptions => { serverOptions.Limits.MaxRequestBodySize = long.MaxValue; });
|
||||
|
||||
builder.Services.AddRazorPages()
|
||||
.AddRazorRuntimeCompilation();
|
||||
.AddRazorRuntimeCompilation();
|
||||
//Register Services
|
||||
//test
|
||||
#region Register Services
|
||||
@@ -58,6 +55,7 @@ var connectionStringTestDb = builder.Configuration.GetConnectionString("TestDb")
|
||||
//builder.Services.AddSingleton<IMongoDatabase>(mongoDatabase);
|
||||
|
||||
#endregion
|
||||
|
||||
builder.Services.AddSingleton<IActionResultExecutor<JsonResult>, CustomJsonResultExecutor>();
|
||||
PersonalBootstrapper.Configure(builder.Services, connectionString);
|
||||
TestDbBootStrapper.Configure(builder.Services, connectionStringTestDb);
|
||||
@@ -142,15 +140,14 @@ builder.Services.AddAuthorization(options =>
|
||||
{
|
||||
options.AddPolicy("CameraArea",
|
||||
builder => builder.RequireClaim("AccountId"));
|
||||
|
||||
});
|
||||
|
||||
builder.Services.AddAuthorization(options =>
|
||||
{
|
||||
options.AddPolicy("AdminNewArea",
|
||||
builder => builder.RequireClaim("AccountId"));
|
||||
options.AddPolicy("AdminNewArea",
|
||||
builder => builder.RequireClaim("AdminAreaPermission", new List<string> { "true" }));
|
||||
options.AddPolicy("AdminNewArea",
|
||||
builder => builder.RequireClaim("AccountId"));
|
||||
options.AddPolicy("AdminNewArea",
|
||||
builder => builder.RequireClaim("AdminAreaPermission", new List<string> { "true" }));
|
||||
});
|
||||
|
||||
//services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
|
||||
@@ -176,15 +173,15 @@ builder.Services.AddControllers().AddJsonOptions(options =>
|
||||
builder.Services.AddRazorPages(options =>
|
||||
options.Conventions.AuthorizeAreaFolder("Admin", "/", "AdminArea"));
|
||||
builder.Services.AddRazorPages(options =>
|
||||
options.Conventions.AuthorizeAreaFolder("Client", "/", "ClientArea")).AddMvcOptions(options => options.Filters.Add<SecurityPageFilter>());
|
||||
options.Conventions.AuthorizeAreaFolder("Client", "/", "ClientArea"))
|
||||
.AddMvcOptions(options => options.Filters.Add<SecurityPageFilter>());
|
||||
builder.Services.AddRazorPages(options =>
|
||||
options.Conventions.AuthorizeAreaFolder("Camera", "/", "CameraArea"));
|
||||
builder.Services.AddRazorPages(options =>
|
||||
options.Conventions.AuthorizeAreaFolder("AdminNew", "/", "AdminNewArea"));
|
||||
options.Conventions.AuthorizeAreaFolder("AdminNew", "/", "AdminNewArea"));
|
||||
builder.Services.AddMvc();
|
||||
builder.Services.AddSignalR();
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region PWA
|
||||
@@ -203,56 +200,59 @@ builder.Services.AddSignalR();
|
||||
#endregion
|
||||
|
||||
#region Swagger
|
||||
|
||||
builder.Services.AddSwaggerGen(options =>
|
||||
{
|
||||
options.UseInlineDefinitionsForEnums();
|
||||
|
||||
options.UseInlineDefinitionsForEnums();
|
||||
|
||||
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
|
||||
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
|
||||
options.IncludeXmlComments(xmlPath);
|
||||
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
|
||||
options.IncludeXmlComments(xmlPath);
|
||||
|
||||
// Get XML comments from the class library
|
||||
var classLibraryXmlFile = "CompanyManagment.App.Contracts.xml";
|
||||
var classLibraryXmlPath = Path.Combine(AppContext.BaseDirectory, classLibraryXmlFile);
|
||||
options.IncludeXmlComments(classLibraryXmlPath);
|
||||
// Get XML comments from the class library
|
||||
var classLibraryXmlFile = "CompanyManagment.App.Contracts.xml";
|
||||
var classLibraryXmlPath = Path.Combine(AppContext.BaseDirectory, classLibraryXmlFile);
|
||||
options.IncludeXmlComments(classLibraryXmlPath);
|
||||
|
||||
|
||||
options.SwaggerDoc("General", new OpenApiInfo { Title = "API - General", Version = "v1" });
|
||||
options.SwaggerDoc("Admin", new OpenApiInfo { Title = "API - Admin", Version = "v1" });
|
||||
options.SwaggerDoc("Client", new OpenApiInfo { Title = "API - Client", Version = "v1" });
|
||||
options.SwaggerDoc("Camera", new OpenApiInfo { Title = "API - Camera", Version = "v1" });
|
||||
options.SwaggerDoc("General", new OpenApiInfo { Title = "API - General", Version = "v1" });
|
||||
options.SwaggerDoc("Admin", new OpenApiInfo { Title = "API - Admin", Version = "v1" });
|
||||
options.SwaggerDoc("Client", new OpenApiInfo { Title = "API - Client", Version = "v1" });
|
||||
options.SwaggerDoc("Camera", new OpenApiInfo { Title = "API - Camera", Version = "v1" });
|
||||
|
||||
options.DocInclusionPredicate((docName, apiDesc) => string.Equals(docName, apiDesc.GroupName, StringComparison.OrdinalIgnoreCase));
|
||||
options.DocInclusionPredicate((docName, apiDesc) =>
|
||||
string.Equals(docName, apiDesc.GroupName, StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
|
||||
// اضافه کردن پشتیبانی از JWT در Swagger
|
||||
options.AddSecurityDefinition("Bearer", new Microsoft.OpenApi.Models.OpenApiSecurityScheme
|
||||
{
|
||||
Name = "Authorization",
|
||||
Type = Microsoft.OpenApi.Models.SecuritySchemeType.ApiKey,
|
||||
Scheme = "Bearer",
|
||||
BearerFormat = "JWT",
|
||||
In = Microsoft.OpenApi.Models.ParameterLocation.Header,
|
||||
Description = "لطفاً 'Bearer [space] token' را وارد کنید."
|
||||
});
|
||||
// اضافه کردن پشتیبانی از JWT در Swagger
|
||||
options.AddSecurityDefinition("Bearer", new Microsoft.OpenApi.Models.OpenApiSecurityScheme
|
||||
{
|
||||
Name = "Authorization",
|
||||
Type = Microsoft.OpenApi.Models.SecuritySchemeType.ApiKey,
|
||||
Scheme = "Bearer",
|
||||
BearerFormat = "JWT",
|
||||
In = Microsoft.OpenApi.Models.ParameterLocation.Header,
|
||||
Description = "لطفاً 'Bearer [space] token' را وارد کنید."
|
||||
});
|
||||
|
||||
options.AddSecurityRequirement(new Microsoft.OpenApi.Models.OpenApiSecurityRequirement
|
||||
{
|
||||
{
|
||||
new Microsoft.OpenApi.Models.OpenApiSecurityScheme
|
||||
{
|
||||
Reference = new Microsoft.OpenApi.Models.OpenApiReference
|
||||
{
|
||||
Type = Microsoft.OpenApi.Models.ReferenceType.SecurityScheme,
|
||||
Id = "Bearer"
|
||||
}
|
||||
},
|
||||
Array.Empty<string>()
|
||||
}
|
||||
});
|
||||
options.AddSecurityRequirement(new Microsoft.OpenApi.Models.OpenApiSecurityRequirement
|
||||
{
|
||||
{
|
||||
new Microsoft.OpenApi.Models.OpenApiSecurityScheme
|
||||
{
|
||||
Reference = new Microsoft.OpenApi.Models.OpenApiReference
|
||||
{
|
||||
Type = Microsoft.OpenApi.Models.ReferenceType.SecurityScheme,
|
||||
Id = "Bearer"
|
||||
}
|
||||
},
|
||||
Array.Empty<string>()
|
||||
}
|
||||
});
|
||||
|
||||
options.EnableAnnotations();
|
||||
options.EnableAnnotations();
|
||||
});
|
||||
|
||||
#endregion
|
||||
|
||||
#region CORS
|
||||
@@ -271,7 +271,10 @@ builder.Services.AddCors(options =>
|
||||
"https://admin.dad-mehr.ir",
|
||||
"https://client.dad-mehr.ir",
|
||||
"https://admin.gozareshgir.ir",
|
||||
"https://client.gozareshgir.ir"
|
||||
"https://client.gozareshgir.ir",
|
||||
"https://admin.dadmehrg.ir",
|
||||
"https://client.dadmehrg.ir"
|
||||
|
||||
)
|
||||
.AllowAnyHeader()
|
||||
.AllowAnyMethod()
|
||||
@@ -295,6 +298,7 @@ builder.Services.AddCors(options =>
|
||||
// .AllowCredentials();
|
||||
// });
|
||||
//});
|
||||
|
||||
#endregion
|
||||
|
||||
builder.Services.AddExceptionHandler<CustomExceptionHandler>();
|
||||
@@ -304,7 +308,6 @@ var app = builder.Build();
|
||||
app.UseCors("AllowSpecificOrigins");
|
||||
|
||||
|
||||
|
||||
#region Mahan
|
||||
|
||||
//app.UseStatusCodePagesWithRedirects("/error/{0}");
|
||||
@@ -319,21 +322,23 @@ if (builder.Environment.IsDevelopment())
|
||||
|
||||
if (app.Environment.IsDevelopment())
|
||||
{
|
||||
app.UseSwagger();
|
||||
app.UseSwaggerUI(options =>
|
||||
{
|
||||
options.SwaggerEndpoint("/swagger/General/swagger.json", "API - General");
|
||||
options.SwaggerEndpoint("/swagger/Admin/swagger.json", "API - Admin");
|
||||
options.SwaggerEndpoint("/swagger/Client/swagger.json", "API - Client");
|
||||
options.SwaggerEndpoint("/swagger/Camera/swagger.json", "API - Camera");
|
||||
});
|
||||
app.UseSwagger();
|
||||
app.UseSwaggerUI(options =>
|
||||
{
|
||||
options.DocExpansion(DocExpansion.None);
|
||||
options.SwaggerEndpoint("/swagger/General/swagger.json", "API - General");
|
||||
options.SwaggerEndpoint("/swagger/Admin/swagger.json", "API - Admin");
|
||||
options.SwaggerEndpoint("/swagger/Client/swagger.json", "API - Client");
|
||||
options.SwaggerEndpoint("/swagger/Camera/swagger.json", "API - Camera");
|
||||
});
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
//Create Http Pipeline
|
||||
|
||||
#region Create Http Pipeline
|
||||
|
||||
|
||||
if (builder.Environment.IsDevelopment())
|
||||
{
|
||||
app.UseDeveloperExceptionPage();
|
||||
@@ -352,7 +357,6 @@ app.UseAuthentication();
|
||||
app.UseAuthorization();
|
||||
|
||||
|
||||
|
||||
app.UseHttpsRedirection();
|
||||
|
||||
|
||||
@@ -361,13 +365,13 @@ app.UseStaticFiles();
|
||||
app.UseCookiePolicy();
|
||||
|
||||
|
||||
|
||||
#region Mahan
|
||||
|
||||
//app.UseLoginHandlerMiddleware();
|
||||
|
||||
//app.UseCheckTaskMiddleware();
|
||||
app.UseMiddleware<RazorJsonEnumOverrideMiddleware>();
|
||||
app.UseMiddleware<RazorJsonEnumOverrideMiddleware>();
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -377,6 +381,7 @@ app.MapHub<HolidayApiHub>("/trackingHolidayHub");
|
||||
app.MapHub<CheckoutHub>("/trackingCheckoutHub");
|
||||
app.MapRazorPages();
|
||||
app.MapControllers();
|
||||
|
||||
#endregion
|
||||
|
||||
app.Run();
|
||||
app.Run();
|
||||
@@ -11,7 +11,7 @@
|
||||
},
|
||||
"ServiceHost": {
|
||||
"commandName": "Project",
|
||||
"launchBrowser": true,
|
||||
"launchBrowser": false,
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
//"MesbahDb": "Data Source=DESKTOP-NUE119G\\MSNEW;Initial Catalog=Mesbah_db;Integrated Security=True"
|
||||
|
||||
//server
|
||||
//"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]18[3019]#@ATt;TrustServerCertificate=true;",
|
||||
"MesbahDbServer": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]18[3019]#@ATt;TrustServerCertificate=true;",
|
||||
|
||||
|
||||
//local
|
||||
@@ -35,7 +35,7 @@
|
||||
"ApiKey": "Og5M562igmzJRhQPnq0GdtieYdLgtfikjzxOmeQBPxJjZtyge5Klc046Lfw1mxSa",
|
||||
"SecretKey": "dadmehr"
|
||||
},
|
||||
"Domain": ".gozareshgir.ir"
|
||||
"Domain": ".dadmehrg.ir"
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -329,10 +329,13 @@
|
||||
/*********************************** Start Table Checkout List ***********************************/
|
||||
.table-contracts .checkout-list .Rtable--collapse .Rtable-row--head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
}
|
||||
|
||||
.table-contracts .checkout-list .width1 {
|
||||
width: 10%;
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
.table-contracts .checkout-list .width2 {
|
||||
@@ -352,7 +355,7 @@
|
||||
}
|
||||
|
||||
.table-contracts .checkout-list .width6 {
|
||||
width: 20%;
|
||||
width: 22%;
|
||||
}
|
||||
|
||||
.table-contracts .checkout-list .width7 {
|
||||
@@ -364,7 +367,7 @@
|
||||
}
|
||||
|
||||
.table-contracts .checkout-list .width9 {
|
||||
width: 10%;
|
||||
width: 8%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
@@ -374,6 +377,11 @@
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
}
|
||||
.table-contracts .checkout-list .width11 {
|
||||
width: 5%;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
}
|
||||
/*********************************** End Table Checkout List ***********************************/
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -48,7 +48,6 @@ function ajaxBanks() {
|
||||
}
|
||||
|
||||
|
||||
|
||||
// *************************** عملیت مربوط اسکرول کردن مربوط به سال و ماه در دسکتاپ ********************************
|
||||
var Scrollbar = window.Scrollbar;
|
||||
Scrollbar.init(document.querySelector('#my-scrollbar'), {
|
||||
@@ -74,7 +73,7 @@ $(document).ready(function () {
|
||||
//});
|
||||
|
||||
$('.select2Option').on('change', function () {
|
||||
$('#SearchModel_EmployeeId').val(this.value);
|
||||
$('#SearchModel_EmployeeId').val(this.value);
|
||||
});
|
||||
|
||||
$(".select2Option").select2({
|
||||
@@ -137,7 +136,7 @@ $(document).ready(function () {
|
||||
// datePattern: ['Y', 'm', 'd']
|
||||
//});
|
||||
});
|
||||
|
||||
|
||||
var filterEmployeeId = $('#employeeId').val();
|
||||
var filterYear = $('#Year').val();
|
||||
var filterMonth = $('#Month').val();
|
||||
@@ -172,7 +171,6 @@ $(document).ready(function () {
|
||||
$('.goToTop').hide();
|
||||
|
||||
|
||||
|
||||
////******************** چسباندن هدر تیبل به صفحه بالا ********************
|
||||
//// Get the offset position of the sticky element
|
||||
//var stickyDiv = $(".sticky-div");
|
||||
@@ -259,6 +257,7 @@ function handleDropdown(dropdown, arrow, open) {
|
||||
dropdown.classList.remove("active");
|
||||
}
|
||||
}
|
||||
|
||||
// *************************** عملیت مربوط اسکرول کردن مربوط به سال و ماه در دسکتاپ ********************************
|
||||
|
||||
|
||||
@@ -358,7 +357,6 @@ $(document).on('click', '.btn-clear-filter', function () {
|
||||
});
|
||||
|
||||
|
||||
|
||||
// قسمت دکمه حذف فیلتر
|
||||
// $('#filterRemove').filter(function () {
|
||||
// if ($('.start-date').val() == '' && $('.end-date').val() == '') {
|
||||
@@ -414,22 +412,22 @@ if ($(window).width() < 768) {
|
||||
|
||||
var middleYearIndexArray = [];
|
||||
let yearlyList = [];
|
||||
yearlyList.push({ year: 1368 });
|
||||
yearlyList.push({ year: 1369 });
|
||||
yearlyList.push({year: 1368});
|
||||
yearlyList.push({year: 1369});
|
||||
itemsYearList.forEach(function (year) {
|
||||
yearlyList.push({ year: Number(year) });
|
||||
yearlyList.push({year: Number(year)});
|
||||
});
|
||||
|
||||
var yearIndex = yearlyList.length;
|
||||
yearIndex = yearIndex - 1;
|
||||
var no3 = yearlyList[yearIndex].year + 1;
|
||||
var no4 = yearlyList[yearIndex].year + 2;
|
||||
yearlyList.push({ year: no3 });
|
||||
yearlyList.push({ year: no4 });
|
||||
yearlyList.push({year: no3});
|
||||
yearlyList.push({year: no4});
|
||||
var i = 0;
|
||||
|
||||
for (var j = yearlyList[yearIndex + 2].year; j >= 1368; j--) {
|
||||
let y = { index: i, value: j };
|
||||
let y = {index: i, value: j};
|
||||
middleYearIndexArray.push(j);
|
||||
i++;
|
||||
|
||||
@@ -470,12 +468,12 @@ if ($(window).width() < 768) {
|
||||
|
||||
clearTimeout(scrollTimeout);
|
||||
scrollTimeout = setTimeout(function () {
|
||||
var scrollTopYearRounded = customRound(yearsScrollTop);
|
||||
var scrollTopYearRounded = customRound(yearsScrollTop);
|
||||
|
||||
if (yearsScrollTop !== scrollTopYearRounded) {
|
||||
years.scrollTop(scrollTopYearRounded);
|
||||
}
|
||||
},
|
||||
if (yearsScrollTop !== scrollTopYearRounded) {
|
||||
years.scrollTop(scrollTopYearRounded);
|
||||
}
|
||||
},
|
||||
250);
|
||||
|
||||
var containerId = $(this).attr('id');
|
||||
@@ -614,12 +612,12 @@ if ($(window).width() < 768) {
|
||||
|
||||
clearTimeout(scrollTimeout);
|
||||
scrollTimeout = setTimeout(function () {
|
||||
var scrollTopMonthRounded = customRound(monthScrollTop);
|
||||
var scrollTopMonthRounded = customRound(monthScrollTop);
|
||||
|
||||
if (monthScrollTop !== scrollTopMonthRounded) {
|
||||
months.scrollTop(scrollTopMonthRounded);
|
||||
}
|
||||
},
|
||||
if (monthScrollTop !== scrollTopMonthRounded) {
|
||||
months.scrollTop(scrollTopMonthRounded);
|
||||
}
|
||||
},
|
||||
250);
|
||||
|
||||
var containerId = $(this).attr('id');
|
||||
@@ -780,24 +778,24 @@ if ($(window).width() < 768) {
|
||||
// Populate years, months, and days
|
||||
var middleYearIndexArray = [];
|
||||
let yearlyList = [];
|
||||
yearlyList.push({ year: 1368 });
|
||||
yearlyList.push({ year: 1369 });
|
||||
yearlyList.push({year: 1368});
|
||||
yearlyList.push({year: 1369});
|
||||
|
||||
itemsYearList.forEach(function (year) {
|
||||
yearlyList.push({ year: Number(year) });
|
||||
yearlyList.push({year: Number(year)});
|
||||
});
|
||||
|
||||
var yearIndex = yearlyList.length;
|
||||
yearIndex = yearIndex - 1;
|
||||
var no3 = yearlyList[yearIndex].year + 1;
|
||||
var no4 = yearlyList[yearIndex].year + 2;
|
||||
yearlyList.push({ year: no3 });
|
||||
yearlyList.push({ year: no4 });
|
||||
yearlyList.push({year: no3});
|
||||
yearlyList.push({year: no4});
|
||||
var i = 0;
|
||||
|
||||
|
||||
for (var j = yearlyList[yearIndex + 2].year; j >= 1368; j--) {
|
||||
let y = { index: i, value: j };
|
||||
let y = {index: i, value: j};
|
||||
middleYearIndexArray.push(j);
|
||||
i++;
|
||||
|
||||
@@ -908,20 +906,20 @@ if ($(window).width() < 768) {
|
||||
|
||||
clearTimeout(scrollTimeout);
|
||||
scrollTimeout = setTimeout(function () {
|
||||
var scrollTopYearRounded = customRound(yearsScrollTop);
|
||||
var scrollTopMonthRounded = customRound(monthScrollTop);
|
||||
var scrollTopDayRounded = customRound(dayScrollTop);
|
||||
var scrollTopYearRounded = customRound(yearsScrollTop);
|
||||
var scrollTopMonthRounded = customRound(monthScrollTop);
|
||||
var scrollTopDayRounded = customRound(dayScrollTop);
|
||||
|
||||
if (yearsScrollTop !== scrollTopYearRounded) {
|
||||
years.scrollTop(scrollTopYearRounded);
|
||||
}
|
||||
if (monthScrollTop !== scrollTopMonthRounded) {
|
||||
months.scrollTop(scrollTopMonthRounded);
|
||||
}
|
||||
if (dayScrollTop !== scrollTopDayRounded) {
|
||||
days.scrollTop(scrollTopDayRounded);
|
||||
}
|
||||
},
|
||||
if (yearsScrollTop !== scrollTopYearRounded) {
|
||||
years.scrollTop(scrollTopYearRounded);
|
||||
}
|
||||
if (monthScrollTop !== scrollTopMonthRounded) {
|
||||
months.scrollTop(scrollTopMonthRounded);
|
||||
}
|
||||
if (dayScrollTop !== scrollTopDayRounded) {
|
||||
days.scrollTop(scrollTopDayRounded);
|
||||
}
|
||||
},
|
||||
250);
|
||||
|
||||
var containerId = $(this).attr('id');
|
||||
@@ -1066,22 +1064,22 @@ if ($(window).width() < 768) {
|
||||
// Populate years, months, and days
|
||||
var middleYearIndexArray = [];
|
||||
let yearlyList = [];
|
||||
yearlyList.push({ year: 1368 });
|
||||
yearlyList.push({ year: 1369 });
|
||||
yearlyList.push({year: 1368});
|
||||
yearlyList.push({year: 1369});
|
||||
itemsYearList.forEach(function (year) {
|
||||
yearlyList.push({ year: Number(year) });
|
||||
yearlyList.push({year: Number(year)});
|
||||
});
|
||||
|
||||
var yearIndex = yearlyList.length;
|
||||
yearIndex = yearIndex - 1;
|
||||
var no3 = yearlyList[yearIndex].year + 1;
|
||||
var no4 = yearlyList[yearIndex].year + 2;
|
||||
yearlyList.push({ year: no3 });
|
||||
yearlyList.push({ year: no4 });
|
||||
yearlyList.push({year: no3});
|
||||
yearlyList.push({year: no4});
|
||||
var i = 0;
|
||||
|
||||
for (var j = yearlyList[yearIndex + 2].year; j >= 1368; j--) {
|
||||
let y = { index: i, value: j };
|
||||
let y = {index: i, value: j};
|
||||
middleYearIndexArray.push(j);
|
||||
i++;
|
||||
|
||||
@@ -1193,20 +1191,20 @@ if ($(window).width() < 768) {
|
||||
|
||||
clearTimeout(scrollTimeout);
|
||||
scrollTimeout = setTimeout(function () {
|
||||
var scrollTopYearRounded = customRound(yearsScrollTop);
|
||||
var scrollTopMonthRounded = customRound(monthScrollTop);
|
||||
var scrollTopDayRounded = customRound(dayScrollTop);
|
||||
var scrollTopYearRounded = customRound(yearsScrollTop);
|
||||
var scrollTopMonthRounded = customRound(monthScrollTop);
|
||||
var scrollTopDayRounded = customRound(dayScrollTop);
|
||||
|
||||
if (yearsScrollTop !== scrollTopYearRounded) {
|
||||
years.scrollTop(scrollTopYearRounded);
|
||||
}
|
||||
if (monthScrollTop !== scrollTopMonthRounded) {
|
||||
months.scrollTop(scrollTopMonthRounded);
|
||||
}
|
||||
if (dayScrollTop !== scrollTopDayRounded) {
|
||||
days.scrollTop(scrollTopDayRounded);
|
||||
}
|
||||
},
|
||||
if (yearsScrollTop !== scrollTopYearRounded) {
|
||||
years.scrollTop(scrollTopYearRounded);
|
||||
}
|
||||
if (monthScrollTop !== scrollTopMonthRounded) {
|
||||
months.scrollTop(scrollTopMonthRounded);
|
||||
}
|
||||
if (dayScrollTop !== scrollTopDayRounded) {
|
||||
days.scrollTop(scrollTopDayRounded);
|
||||
}
|
||||
},
|
||||
250);
|
||||
|
||||
|
||||
@@ -1319,7 +1317,6 @@ if ($(window).width() < 768) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
$(".date").keyup(function () {
|
||||
let value = $(this).val();
|
||||
let lengthValue = value.length;
|
||||
@@ -1400,14 +1397,14 @@ function loadMore() {
|
||||
OrderBy: sorting,
|
||||
BankId: bankId
|
||||
},
|
||||
headers: { "RequestVerificationToken": antiForgeryToken },
|
||||
headers: {"RequestVerificationToken": antiForgeryToken},
|
||||
|
||||
success: function (response) {
|
||||
|
||||
if (response.pageIndex > 0) {
|
||||
var n = pageIndex + 1;
|
||||
$.each(response.data, function (i, item) {
|
||||
const html = `
|
||||
let html = `
|
||||
<div class="Rtable-row align-items-center position-relative printAllTd">
|
||||
<div class="Rtable-cell d-md-block d-none width1">
|
||||
<div class="Rtable-cell--heading">
|
||||
@@ -1436,7 +1433,25 @@ function loadMore() {
|
||||
</div>
|
||||
<div class="Rtable-cell d-md-block d-none width6">
|
||||
<div class="Rtable-cell--heading">نام پرسنل</div>
|
||||
<div class="Rtable-cell--content ">${item.employeeFullName}</div>
|
||||
<div class="Rtable-cell--content ">${item.employeeFullName}`;
|
||||
if (item.hasAmountConflict) {
|
||||
html += ` <svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24"
|
||||
fill="red"
|
||||
className="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت صدور فیش حقوقی استاندارد مجددا فیش را ایجاد کنید!">
|
||||
<path
|
||||
d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path
|
||||
d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>`;
|
||||
}
|
||||
html += `</div>
|
||||
</div>
|
||||
<div class="Rtable-cell d-md-block d-none width7">
|
||||
<div class="Rtable-cell--heading">آغاز قرارداد</div>
|
||||
@@ -1480,8 +1495,25 @@ function loadMore() {
|
||||
|
||||
<div class="Rtable-cell--content">
|
||||
<span class="mx-sm-2">
|
||||
${item.employeeFullName}
|
||||
</span>
|
||||
${item.employeeFullName}`;
|
||||
if (item.hasAmountConflict) {
|
||||
html += ` <svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24"
|
||||
fill="red"
|
||||
className="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت صدور فیش حقوقی استاندارد مجددا فیش را ایجاد کنید!">
|
||||
<path
|
||||
d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path
|
||||
d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>`;
|
||||
}
|
||||
html += `</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1579,6 +1611,9 @@ function loadMore() {
|
||||
`;
|
||||
|
||||
$('.tb').append(html);
|
||||
document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(el => {
|
||||
bootstrap.Tooltip.getOrCreateInstance(el);
|
||||
});
|
||||
n += 1;
|
||||
});
|
||||
updateRowNumbers();
|
||||
@@ -1594,7 +1629,7 @@ function loadMore() {
|
||||
}
|
||||
|
||||
$('.goToTop').on('click', function () {
|
||||
$('html, body').animate({ scrollTop: 0 }, 360);
|
||||
$('html, body').animate({scrollTop: 0}, 360);
|
||||
return false;
|
||||
});
|
||||
|
||||
@@ -1697,7 +1732,7 @@ function showExcelAllModal() {
|
||||
}, 3500);
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
window.location.href = showCheckoutExcelModalUrl;
|
||||
}
|
||||
|
||||
@@ -1810,8 +1845,6 @@ function printAllMobile() {
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
function openCreateCheckoutTemporaryModal() {
|
||||
if (!isTodayFirst) {
|
||||
var goTo = `#showmodal=/Client/Company/CustomizeCheckout/CheckoutTemporary?handler=Create`;
|
||||
@@ -1877,18 +1910,20 @@ $(document).on('click', '.RemoveBtn', function () {
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function updateRowNumbers() {
|
||||
$('.Rtable-row').each(function (index) {
|
||||
$(this).find('.row-number').text(index);
|
||||
});
|
||||
}
|
||||
|
||||
function deleteOneItem(id, button) {
|
||||
$.ajax({
|
||||
async: false,
|
||||
type: 'POST',
|
||||
url: deleteOneAjax,
|
||||
data: { checkoutId: Number(id) },
|
||||
headers: { "RequestVerificationToken": `${antiForgeryToken}` },
|
||||
data: {checkoutId: Number(id)},
|
||||
headers: {"RequestVerificationToken": `${antiForgeryToken}`},
|
||||
success: function (response) {
|
||||
if (response.success) {
|
||||
$('.alert-success-msg').show();
|
||||
@@ -1917,8 +1952,6 @@ function deleteOneItem(id, button) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$('.RemoveBtnAll').on("click", function () {
|
||||
var idListArray = [];
|
||||
var year = $('#Year').val();
|
||||
@@ -1971,8 +2004,8 @@ $('.RemoveBtnAll').on("click", function () {
|
||||
async: false,
|
||||
type: 'POST',
|
||||
url: deleteAllAjax,
|
||||
data: { checkoutIds: idListArray },
|
||||
headers: { "RequestVerificationToken": `${antiForgeryToken}` },
|
||||
data: {checkoutIds: idListArray},
|
||||
headers: {"RequestVerificationToken": `${antiForgeryToken}`},
|
||||
success: function (response) {
|
||||
if (response.success) {
|
||||
$('.alert-success-msg').show();
|
||||
|
||||
@@ -1403,7 +1403,7 @@ function loadMore() {
|
||||
if (response.pageIndex > 0) {
|
||||
var n = pageIndex + 1;
|
||||
$.each(response.data, function (i, item) {
|
||||
const html = `
|
||||
let html = `
|
||||
<div class="Rtable-row align-items-center position-relative printAllTd">
|
||||
<div class="Rtable-cell d-md-block d-none width1">
|
||||
<div class="Rtable-cell--heading">
|
||||
@@ -1432,7 +1432,25 @@ function loadMore() {
|
||||
</div>
|
||||
<div class="Rtable-cell d-md-block d-none width6">
|
||||
<div class="Rtable-cell--heading">نام پرسنل</div>
|
||||
<div class="Rtable-cell--content ">${item.employeeFullName}</div>
|
||||
<div class="Rtable-cell--content ">${item.employeeFullName}`;
|
||||
if (item.hasAmountConflict) {
|
||||
html+= ` <svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24" height="24"
|
||||
fill="red"
|
||||
className="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت صدور فیش حقوقی استاندارد مجددا فیش را ایجاد کنید!">
|
||||
<path
|
||||
d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path
|
||||
d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>`;
|
||||
}
|
||||
html += `</div>
|
||||
</div>
|
||||
<div class="Rtable-cell d-md-block d-none width7">
|
||||
<div class="Rtable-cell--heading">آغاز قرارداد</div>
|
||||
@@ -1476,8 +1494,25 @@ function loadMore() {
|
||||
|
||||
<div class="Rtable-cell--content">
|
||||
<span class="mx-sm-2">
|
||||
${item.employeeFullName}
|
||||
</span>
|
||||
${item.employeeFullName}`;
|
||||
if (item.hasAmountConflict) {
|
||||
html += ` <svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="12" height="12"
|
||||
fill="red"
|
||||
className="bi bi-exclamation-circle"
|
||||
viewBox="0 0 16 16"
|
||||
style="cursor: pointer; margin-left: 10px;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
title="توجه داشته باشید این فیش حقوقی دارای تغییرات اعمال نشده میباشد. جهت صدور فیش حقوقی استاندارد مجددا فیش را ایجاد کنید!">
|
||||
<path
|
||||
d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
|
||||
<path
|
||||
d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm.1-5.995a.905.905 0 0 1 1.8 0l-.35 3.5a.552.552 0 0 1-1.1 0l-.35-3.5z"/>
|
||||
</svg>`;
|
||||
}
|
||||
html += `</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1564,6 +1599,9 @@ function loadMore() {
|
||||
`;
|
||||
|
||||
$('.tb').append(html);
|
||||
document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach(el => {
|
||||
bootstrap.Tooltip.getOrCreateInstance(el);
|
||||
});
|
||||
n += 1;
|
||||
});
|
||||
updateRowNumbers();
|
||||
|
||||
@@ -344,15 +344,17 @@ function CheckExistAjax() {
|
||||
success: function (response) {
|
||||
var checkoutType = "";
|
||||
|
||||
if (response.customizeCheckout) {
|
||||
checkoutType = "غیررسمی نهایی";
|
||||
} else if (response.customizeCheckoutTemp) {
|
||||
checkoutType = "غیررسمی موقت";
|
||||
}
|
||||
if (response.checkout){
|
||||
if (response.checkout)
|
||||
checkoutType = "-فیش حقوقی رسمی\n";
|
||||
|
||||
var message = " با افزودن مبلغ مساعده فیش های حقوقی ذیل تغییر میکنند:\n " +
|
||||
checkoutType +
|
||||
"در صورت نیاز به فیش با محاسبه دقیق پس از ثبت مساعده، فیش های موجود را حذف و مجددا اقدام به صدور نمایید.";
|
||||
|
||||
|
||||
if (response.checkout) {
|
||||
swal({
|
||||
title: `پرسنل دارای فیش رسمی است با تایید این پیغام مساعده شما ثبت میشود ولی در فیش حقوقی رسمی پرسنل اعمال نمیشود. درصورت نیاز به ثبت مساعده در فیش رسمی میبایست فیش حقوقی رسمی را مجددا ایجاد کنید. آیا ادامه میدهید؟`,
|
||||
title: message,
|
||||
text: "",
|
||||
type: "warning",
|
||||
showCancelButton: true,
|
||||
@@ -368,26 +370,8 @@ function CheckExistAjax() {
|
||||
$('#createData').removeClass('disable');
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
else if (response.customizeCheckout || response.customizeCheckoutTemp) {
|
||||
swal({
|
||||
title: `برای این پرسنل فیش حقوقی ${checkoutType} صادر شده است. در صورت تایید، این فیش حقوقی به صورت خودکار تغییر پیدا میکند.`,
|
||||
text: "",
|
||||
type: "warning",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#DD6B55",
|
||||
confirmButtonText: "بله",
|
||||
cancelButtonText: "خیر",
|
||||
closeOnConfirm: true,
|
||||
closeOnCancel: true
|
||||
}, function (isConfirm) {
|
||||
if (isConfirm) {
|
||||
SaveDataAjax();
|
||||
} else {
|
||||
$('#createData').removeClass('disable');
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
SaveDataAjax();
|
||||
}
|
||||
|
||||
@@ -275,34 +275,15 @@ function CheckExistAjax() {
|
||||
//if (response.checkout)
|
||||
var checkoutType = "";
|
||||
|
||||
if (response.customizeCheckout) {
|
||||
checkoutType = "غیررسمی نهایی";
|
||||
} else if (response.customizeCheckoutTemp) {
|
||||
checkoutType = "غیررسمی موقت";
|
||||
}
|
||||
if (response.checkout ||response.customizeCheckoutTemp || response.customizeCheckout){
|
||||
if (response.checkout)
|
||||
checkoutType = "-فیش حقوقی رسمی\n";
|
||||
var message = " با افزودن مبلغ مساعده فیش های حقوقی ذیل تغییر میکنند:\n " +
|
||||
checkoutType +
|
||||
"در صورت نیاز به فیش با محاسبه دقیق پس از ثبت مساعده، فیش های موجود را حذف و مجددا اقدام به صدور نمایید.";
|
||||
|
||||
if (response.checkout) {
|
||||
swal({
|
||||
title: `پرسنل دارای فیش رسمی است با تایید این پیغام مساعده شما ثبت میشود ولی در فیش حقوقی رسمی پرسنل اعمال نمیشود. درصورت نیاز به اعمال مساعده در فیش رسمی میبایست فیش حقوقی رسمی را مجددا ایجاد کنید. آیا ادامه میدهید؟`,
|
||||
text: "",
|
||||
type: "warning",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#DD6B55",
|
||||
confirmButtonText: "بله",
|
||||
cancelButtonText: "خیر",
|
||||
closeOnConfirm: true,
|
||||
closeOnCancel: true
|
||||
}, function (isConfirm) {
|
||||
if (isConfirm) {
|
||||
SaveDataAjax();
|
||||
} else {
|
||||
$('#createData').removeClass('disable');
|
||||
}
|
||||
});
|
||||
}
|
||||
else if (response.customizeCheckout || response.customizeCheckoutTemp) {
|
||||
swal({
|
||||
title: `برای این پرسنل فیش حقوقی ${checkoutType} صادر شده است. در صورت تایید، این فیش حقوقی به صورت خودکار تغییر پیدا میکند.`,
|
||||
title: message,
|
||||
text: "",
|
||||
type: "warning",
|
||||
showCancelButton: true,
|
||||
|
||||
@@ -762,18 +762,17 @@ function CheckExistAjax() {
|
||||
employeeIds: employeeSelectArray
|
||||
},
|
||||
success: function (response) {
|
||||
//if (response.checkout)
|
||||
|
||||
var checkoutType = "";
|
||||
|
||||
if (response.customizeCheckout) {
|
||||
checkoutType = "غیررسمی نهایی";
|
||||
} else if (response.customizeCheckoutTemp) {
|
||||
checkoutType = "غیررسمی موقت";
|
||||
}
|
||||
if (response.checkout){
|
||||
if (response.checkout)
|
||||
checkoutType = "-فیش حقوقی رسمی\n";
|
||||
|
||||
var message = " با افزودن مبلغ مساعده فیش های حقوقی ذیل تغییر میکنند:\n " + checkoutType+"در صورت نیاز به فیش به فیش با محاسبه دقیق پس از ثبت مساعده، فیش های موجود را حذف و مجددا اقدام به صدور نمایید.";
|
||||
|
||||
if (response.checkout) {
|
||||
swal({
|
||||
title: `پرسنل دارای فیش رسمی است با تایید این پیغام مساعده شما ثبت میشود ولی در فیش حقوقی رسمی پرسنل اعمال نمیشود. درصورت نیاز به اعمال مساعده در فیش رسمی میبایست فیش حقوقی رسمی را مجددا ایجاد کنید. آیا ادامه میدهید؟`,
|
||||
title: message,
|
||||
text: "",
|
||||
type: "warning",
|
||||
showCancelButton: true,
|
||||
@@ -789,26 +788,9 @@ function CheckExistAjax() {
|
||||
$('#createData').removeClass('disable');
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
else if (response.customizeCheckout || response.customizeCheckoutTemp) {
|
||||
swal({
|
||||
title: `برای این پرسنل فیش حقوقی ${checkoutType} صادر شده است. در صورت تایید، این فیش حقوقی به صورت خودکار تغییر پیدا میکند.`,
|
||||
text: "",
|
||||
type: "warning",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#DD6B55",
|
||||
confirmButtonText: "بله",
|
||||
cancelButtonText: "خیر",
|
||||
closeOnConfirm: true,
|
||||
closeOnCancel: true
|
||||
}, function (isConfirm) {
|
||||
if (isConfirm) {
|
||||
SaveDataAjax();
|
||||
} else {
|
||||
$('#createData').removeClass('disable');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
else {
|
||||
SaveDataAjax();
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user