feat: add dynamic deduction items to customize checkout and temp entities with migration

This commit is contained in:
2025-11-20 15:20:45 +03:30
parent 3937cd8a9f
commit 7025478417
14 changed files with 11398 additions and 50 deletions

View File

@@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Security.AccessControl; using System.Security.AccessControl;
using _0_Framework.Application; using _0_Framework.Application;
using _0_Framework.Application.Enums; using _0_Framework.Application.Enums;
@@ -158,7 +159,7 @@ public class CustomizeCheckoutMandatoryViewModel
/// </summary> /// </summary>
public double TotalDeductionsDouble => FineAbsenceDeduction + InsuranceDeduction + LateToWorkDeduction + public double TotalDeductionsDouble => FineAbsenceDeduction + InsuranceDeduction + LateToWorkDeduction +
EarlyExitDeduction + SalaryAidDeduction + InstallmentDeduction + EarlyExitDeduction + SalaryAidDeduction + InstallmentDeduction +
FineDeduction + TaxDeduction; FineDeduction + TaxDeduction+ DynamicDeductions.Sum(x=>x.Amount.MoneyToDouble());
/// <summary> /// <summary>
/// مجموع مطالبات /// مجموع مطالبات

View File

@@ -131,5 +131,12 @@ public class CustomizeCheckoutMapping : IEntityTypeConfiguration<CustomizeChecko
// .HasForeignKey(x => x.EmployeeId); // .HasForeignKey(x => x.EmployeeId);
#endregion #endregion
builder.OwnsMany(x => x.CheckoutDynamicDeductions, dynamicDeduction =>
{
dynamicDeduction.Property(x => x.Name).HasMaxLength(100);
dynamicDeduction.Property(x => x.Count);
dynamicDeduction.Property(x => x.Amount).HasMaxLength(30);
});
} }
} }

View File

@@ -129,5 +129,12 @@ public class CustomizeCheckoutTempMapping : IEntityTypeConfiguration<CustomizeCh
// .HasForeignKey(x => x.EmployeeId); // .HasForeignKey(x => x.EmployeeId);
#endregion #endregion
builder.OwnsMany(x => x.CheckoutDynamicDeductions, dynamicDeduction =>
{
dynamicDeduction.Property(x => x.Name).HasMaxLength(100);
dynamicDeduction.Property(x => x.Count);
dynamicDeduction.Property(x => x.Amount).HasMaxLength(30);
});
} }
} }

View File

@@ -0,0 +1,68 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace CompanyManagment.EFCore.Migrations
{
/// <inheritdoc />
public partial class adddynamicdeductiontocustomizecheckouts : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "CustomizeCheckouts_CheckoutDynamicDeductions",
columns: table => new
{
CustomizeCheckoutid = table.Column<long>(type: "bigint", nullable: false),
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
Count = table.Column<int>(type: "int", nullable: false),
Amount = table.Column<string>(type: "nvarchar(30)", maxLength: 30, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_CustomizeCheckouts_CheckoutDynamicDeductions", x => new { x.CustomizeCheckoutid, x.Id });
table.ForeignKey(
name: "FK_CustomizeCheckouts_CheckoutDynamicDeductions_CustomizeCheckouts_CustomizeCheckoutid",
column: x => x.CustomizeCheckoutid,
principalTable: "CustomizeCheckouts",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "CustomizeCheckoutTemps_CheckoutDynamicDeductions",
columns: table => new
{
CustomizeCheckoutTempid = table.Column<long>(type: "bigint", nullable: false),
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
Count = table.Column<int>(type: "int", nullable: false),
Amount = table.Column<string>(type: "nvarchar(30)", maxLength: 30, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_CustomizeCheckoutTemps_CheckoutDynamicDeductions", x => new { x.CustomizeCheckoutTempid, x.Id });
table.ForeignKey(
name: "FK_CustomizeCheckoutTemps_CheckoutDynamicDeductions_CustomizeCheckoutTemps_CustomizeCheckoutTempid",
column: x => x.CustomizeCheckoutTempid,
principalTable: "CustomizeCheckoutTemps",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
});
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "CustomizeCheckouts_CheckoutDynamicDeductions");
migrationBuilder.DropTable(
name: "CustomizeCheckoutTemps_CheckoutDynamicDeductions");
}
}
}

View File

@@ -7398,6 +7398,36 @@ namespace CompanyManagment.EFCore.Migrations
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
b.OwnsMany("_0_Framework.Application.Enums.CheckoutDynamicDeductionItem", "CheckoutDynamicDeductions", b1 =>
{
b1.Property<long>("CustomizeCheckoutid")
.HasColumnType("bigint");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property<int>("Id"));
b1.Property<string>("Amount")
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<int>("Count")
.HasColumnType("int");
b1.Property<string>("Name")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b1.HasKey("CustomizeCheckoutid", "Id");
b1.ToTable("CustomizeCheckouts_CheckoutDynamicDeductions");
b1.WithOwner()
.HasForeignKey("CustomizeCheckoutid");
});
b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 =>
{ {
b1.Property<long>("CustomizeCheckoutid") b1.Property<long>("CustomizeCheckoutid")
@@ -7659,6 +7689,8 @@ namespace CompanyManagment.EFCore.Migrations
.HasForeignKey("CustomizeCheckoutid"); .HasForeignKey("CustomizeCheckoutid");
}); });
b.Navigation("CheckoutDynamicDeductions");
b.Navigation("CheckoutFines"); b.Navigation("CheckoutFines");
b.Navigation("CustomizeCheckoutLoanInstallments"); b.Navigation("CustomizeCheckoutLoanInstallments");
@@ -7692,6 +7724,36 @@ namespace CompanyManagment.EFCore.Migrations
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
b.OwnsMany("_0_Framework.Application.Enums.CheckoutDynamicDeductionItem", "CheckoutDynamicDeductions", b1 =>
{
b1.Property<long>("CustomizeCheckoutTempid")
.HasColumnType("bigint");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property<int>("Id"));
b1.Property<string>("Amount")
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<int>("Count")
.HasColumnType("int");
b1.Property<string>("Name")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b1.HasKey("CustomizeCheckoutTempid", "Id");
b1.ToTable("CustomizeCheckoutTemps_CheckoutDynamicDeductions");
b1.WithOwner()
.HasForeignKey("CustomizeCheckoutTempid");
});
b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 =>
{ {
b1.Property<long>("CustomizeCheckoutTempid") b1.Property<long>("CustomizeCheckoutTempid")
@@ -7953,6 +8015,8 @@ namespace CompanyManagment.EFCore.Migrations
.HasForeignKey("CustomizeCheckoutTempid"); .HasForeignKey("CustomizeCheckoutTempid");
}); });
b.Navigation("CheckoutDynamicDeductions");
b.Navigation("CheckoutFines"); b.Navigation("CheckoutFines");
b.Navigation("CustomizeCheckoutLoanInstallments"); b.Navigation("CustomizeCheckoutLoanInstallments");

View File

@@ -230,8 +230,8 @@ namespace CompanyManagment.EFCore.Repository
ShiftStatus = x.ShiftStatus, ShiftStatus = x.ShiftStatus,
IrregularShift = x.IrregularShift, IrregularShift = x.IrregularShift,
CustomizeRotatingShifts = x.CustomizeRotatingShifts.ToList(), CustomizeRotatingShifts = x.CustomizeRotatingShifts.ToList(),
RegularShift = x.RegularShifts.Select(s => (CustomizeSifts)s).ToList() RegularShift = x.RegularShifts.Select(s => (CustomizeSifts)s).ToList(),
CheckoutDynamicDeductions = x.CheckoutDynamicDeductions.ToList()
}).ToList(); }).ToList();
List<WorkshopViewModel> workshopsList = workshopsQuery.Select(x => new WorkshopViewModel List<WorkshopViewModel> workshopsList = workshopsQuery.Select(x => new WorkshopViewModel
{ {

View File

@@ -371,7 +371,8 @@ namespace CompanyManagment.EFCore.Repository
ShiftStatus = x.ShiftStatus, ShiftStatus = x.ShiftStatus,
IrregularShift = x.IrregularShift, IrregularShift = x.IrregularShift,
CustomizeRotatingShifts = x.CustomizeRotatingShifts.ToList(), CustomizeRotatingShifts = x.CustomizeRotatingShifts.ToList(),
RegularShift = x.RegularShifts.Select(x => (CustomizeSifts)x).ToList() RegularShift = x.RegularShifts.Select(x => (CustomizeSifts)x).ToList(),
CheckoutDynamicDeductions = x.CheckoutDynamicDeductions.ToList()
}).ToList(); }).ToList();
List<WorkshopViewModel> workshopsList = workshopsQuery.Select(x => new WorkshopViewModel List<WorkshopViewModel> workshopsList = workshopsQuery.Select(x => new WorkshopViewModel

View File

@@ -5089,10 +5089,12 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
# region جریمه افراد غایبی که بیمه هستند # region جریمه افراد غایبی که بیمه هستند
var leftWorkInsurance = _context.LeftWorkInsuranceList.FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId var leftWorkInsurance = _context.LeftWorkInsuranceList
&&( x.StartWorkDate <= contractEnd && .FirstOrDefault(x => x.WorkshopId == workshopId
&& x.EmployeeId == employeeId
&&(( x.StartWorkDate <= contractEnd &&
x.LeftWorkDate >= contractStart) x.LeftWorkDate >= contractStart)
|| (x.LeftWorkDate == null && x.StartWorkDate <= contractEnd)); || (x.LeftWorkDate == null && x.StartWorkDate <= contractEnd)));
if (leftWorkInsurance != null && absenceDays >0) if (leftWorkInsurance != null && absenceDays >0)
{ {
absenceForInsuranceFine = absenceDays * absenceForInsuranceEmployeesAmount; absenceForInsuranceFine = absenceDays * absenceForInsuranceEmployeesAmount;

View File

@@ -152,7 +152,6 @@ namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout
public IActionResult OnGetPrintOne(long checkoutId, int yearFa, int monthFa) public IActionResult OnGetPrintOne(long checkoutId, int yearFa, int monthFa)
{ {
List<long> id = new() { checkoutId }; List<long> id = new() { checkoutId };
Console.WriteLine(id);
var result = _customizeCheckoutTempApplication.PrintAll(_workshopId, id).FirstOrDefault(); var result = _customizeCheckoutTempApplication.PrintAll(_workshopId, id).FirstOrDefault();
return Partial("PrintOneCheckoutTemporary", result); return Partial("PrintOneCheckoutTemporary", result);
} }

View File

@@ -170,7 +170,11 @@
</table> </table>
</div> </div>
</div> </div>
@{
var firstDynamicData = Model.CheckoutDynamicDeductions.FirstOrDefault();
var secondDynamicData = Model.CheckoutDynamicDeductions.Skip(1).FirstOrDefault();
var thirdDynamicData = Model.CheckoutDynamicDeductions.Skip(2).FirstOrDefault();
}
<div class="row" style="margin-top: 10px;padding: 0 12px;"> <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;"> <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;">
<table style="/* table-layout: fixed; */ width: 100%"> <table style="/* table-layout: fixed; */ width: 100%">
@@ -277,27 +281,27 @@
<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; border-left: 1px solid #000;"> - </td>
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.BonusesPay == "0" ? "-" : Model.BonusesPay) </td> <td style="text-align: center; border-left: 2px solid #000;"> @(Model.BonusesPay == "0" ? "-" : Model.BonusesPay) </td>
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td> <td style="padding-right: 8px; border-left: 1px solid #000;">@firstDynamicData?.Name </td>
<td style="text-align: center; border-left: 1px solid #000;"> </td> <td style="text-align: center; border-left: 1px solid #000;">@firstDynamicData?.Count </td>
<td style="text-align: center;"> </td> <td style="text-align: center;">@firstDynamicData?.Amount </td>
</tr> </tr>
<tr style="font-size: 12px; background-color: #f1f1f1 !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; "> <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 ">10</td> <td style="text-align: center; border-left: 1px solid #000; padding: 2px ">10</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; border-left: 1px solid #000;"> - </td>
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.BaseYearsPay == "0" ? "-" : Model.BaseYearsPay) </td> <td style="text-align: center; border-left: 2px solid #000;"> @(Model.BaseYearsPay == "0" ? "-" : Model.BaseYearsPay) </td>
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td> <td style="padding-right: 8px; border-left: 1px solid #000;">@secondDynamicData?.Name </td>
<td style="text-align: center; border-left: 1px solid #000;"> </td> <td style="text-align: center; border-left: 1px solid #000;">@secondDynamicData?.Count </td>
<td style="text-align: center;"> </td> <td style="text-align: center;">@secondDynamicData?.Amount </td>
</tr> </tr>
<tr style="font-size: 12px;"> <tr style="font-size: 12px;">
<td style="text-align: center; border-left: 1px solid #000; padding: 2px ">11</td> <td style="text-align: center; border-left: 1px solid #000; padding: 2px ">11</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; border-left: 1px solid #000;"> - </td>
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.LeavePay == "0" ? "-" : Model.LeavePay) </td> <td style="text-align: center; border-left: 2px solid #000;"> @(Model.LeavePay == "0" ? "-" : Model.LeavePay) </td>
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td> <td style="padding-right: 8px; border-left: 1px solid #000;">@thirdDynamicData?.Name </td>
<td style="text-align: center; border-left: 1px solid #000;"> </td> <td style="text-align: center; border-left: 1px solid #000;">@thirdDynamicData?.Count </td>
<td style="text-align: center;"> </td> <td style="text-align: center;">@thirdDynamicData?.Amount </td>
</tr> </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; "> <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; ">
<td style="text-align: center; padding: 2px "></td> <td style="text-align: center; padding: 2px "></td>
@@ -528,7 +532,7 @@
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;@(day.IsHoliday || day.IsFriday ? "background-color: #BBBBBB !important;" : "background-color: #efefef !important;") -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.ExitDifferencesMinutes1</td> <td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;@(day.IsHoliday || day.IsFriday ? "background-color: #BBBBBB !important;" : "background-color: #efefef !important;") -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.ExitDifferencesMinutes1</td>
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;@(day.IsHoliday || day.IsFriday ? "background-color: #BBBBBB !important;" : "background-color: #efefef !important;") -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.EnterDifferencesMinutes1</td> <td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;@(day.IsHoliday || day.IsFriday ? "background-color: #BBBBBB !important;" : "background-color: #efefef !important;") -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.EnterDifferencesMinutes2</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 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> <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>

View File

@@ -172,7 +172,11 @@
</table> </table>
</div> </div>
</div> </div>
@{
var firstDynamicData = Model.CheckoutDynamicDeductions.FirstOrDefault();
var secondDynamicData = Model.CheckoutDynamicDeductions.Skip(1).FirstOrDefault();
var thirdDynamicData = Model.CheckoutDynamicDeductions.Skip(2).FirstOrDefault();
}
<div class="row" style="margin-top: 10px;padding: 0 12px;"> <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;"> <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;">
@@ -280,27 +284,27 @@
<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; border-left: 1px solid #000;"> - </td>
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.BonusesPay == "0" ? "-" : Model.BonusesPay) </td> <td style="text-align: center; border-left: 2px solid #000;"> @(Model.BonusesPay == "0" ? "-" : Model.BonusesPay) </td>
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td> <td style="padding-right: 8px; border-left: 1px solid #000;">@firstDynamicData?.Name </td>
<td style="text-align: center; border-left: 1px solid #000;"> </td> <td style="text-align: center; border-left: 1px solid #000;">@firstDynamicData?.Count </td>
<td style="text-align: center;"> </td> <td style="text-align: center;">@firstDynamicData?.Amount </td>
</tr> </tr>
<tr style="font-size: 12px; background-color: #f1f1f1 !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; "> <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 ">10</td> <td style="text-align: center; border-left: 1px solid #000; padding: 2px ">10</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; border-left: 1px solid #000;"> - </td>
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.BaseYearsPay == "0" ? "-" : Model.BaseYearsPay) </td> <td style="text-align: center; border-left: 2px solid #000;"> @(Model.BaseYearsPay == "0" ? "-" : Model.BaseYearsPay) </td>
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td> <td style="padding-right: 8px; border-left: 1px solid #000;">@secondDynamicData?.Name </td>
<td style="text-align: center; border-left: 1px solid #000;"> </td> <td style="text-align: center; border-left: 1px solid #000;">@secondDynamicData?.Count </td>
<td style="text-align: center;"> </td> <td style="text-align: center;">@secondDynamicData?.Amount </td>
</tr> </tr>
<tr style="font-size: 12px;"> <tr style="font-size: 12px;">
<td style="text-align: center; border-left: 1px solid #000; padding: 2px ">11</td> <td style="text-align: center; border-left: 1px solid #000; padding: 2px ">11</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; border-left: 1px solid #000;"> - </td>
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.LeavePay == "0" ? "-" : Model.LeavePay) </td> <td style="text-align: center; border-left: 2px solid #000;"> @(Model.LeavePay == "0" ? "-" : Model.LeavePay) </td>
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td> <td style="padding-right: 8px; border-left: 1px solid #000;">@thirdDynamicData?.Name </td>
<td style="text-align: center; border-left: 1px solid #000;"> </td> <td style="text-align: center; border-left: 1px solid #000;">@thirdDynamicData?.Count </td>
<td style="text-align: center;"> </td> <td style="text-align: center;">@thirdDynamicData?.Amount </td>
</tr> </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; "> <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; ">
<td style="text-align: center; padding: 2px "></td> <td style="text-align: center; padding: 2px "></td>

View File

@@ -147,7 +147,12 @@
</table> </table>
</div> </div>
</div> </div>
@{
var firstDynamicData = Model.CheckoutDynamicDeductions.FirstOrDefault();
Console.WriteLine(firstDynamicData.Name);
var secondDynamicData = Model.CheckoutDynamicDeductions.Skip(1).FirstOrDefault();
var thirdDynamicData = Model.CheckoutDynamicDeductions.Skip(2).FirstOrDefault();
}
<div class="row" style="margin-top: 10px;padding: 0 12px;"> <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;"> <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;">
<table style="/* table-layout: fixed; */ width: 100%"> <table style="/* table-layout: fixed; */ width: 100%">
@@ -254,27 +259,27 @@
<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; border-left: 1px solid #000;"> - </td>
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.BonusesPay == "0" ? "-" : Model.BonusesPay) </td> <td style="text-align: center; border-left: 2px solid #000;"> @(Model.BonusesPay == "0" ? "-" : Model.BonusesPay) </td>
<td style="padding-right: 8px; border-left: 1px solid #000;">تتتتتتت</td> <td style="padding-right: 8px; border-left: 1px solid #000;">@firstDynamicData?.Name</td>
<td style="text-align: center; border-left: 1px solid #000;"> </td> <td style="text-align: center; border-left: 1px solid #000;">@firstDynamicData?.Count </td>
<td style="text-align: center;"> </td> <td style="text-align: center;">@firstDynamicData?.Amount </td>
</tr> </tr>
<tr style="font-size: 12px; background-color: #f1f1f1 !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; "> <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 ">10</td> <td style="text-align: center; border-left: 1px solid #000; padding: 2px ">10</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; border-left: 1px solid #000;"> - </td>
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.BaseYearsPay == "0" ? "-" : Model.BaseYearsPay) </td> <td style="text-align: center; border-left: 2px solid #000;"> @(Model.BaseYearsPay == "0" ? "-" : Model.BaseYearsPay) </td>
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td> <td style="padding-right: 8px; border-left: 1px solid #000;">@secondDynamicData?.Name </td>
<td style="text-align: center; border-left: 1px solid #000;"> </td> <td style="text-align: center; border-left: 1px solid #000;">@secondDynamicData?.Count </td>
<td style="text-align: center;"> </td> <td style="text-align: center;">@secondDynamicData?.Amount </td>
</tr> </tr>
<tr style="font-size: 12px;"> <tr style="font-size: 12px;">
<td style="text-align: center; border-left: 1px solid #000; padding: 2px ">11</td> <td style="text-align: center; border-left: 1px solid #000; padding: 2px ">11</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; border-left: 1px solid #000;"> - </td>
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.LeavePay == "0" ? "-" : Model.LeavePay) </td> <td style="text-align: center; border-left: 2px solid #000;"> @(Model.LeavePay == "0" ? "-" : Model.LeavePay) </td>
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td> <td style="padding-right: 8px; border-left: 1px solid #000;">@thirdDynamicData?.Name </td>
<td style="text-align: center; border-left: 1px solid #000;"> </td> <td style="text-align: center; border-left: 1px solid #000;">@thirdDynamicData?.Count </td>
<td style="text-align: center;"> </td> <td style="text-align: center;">@thirdDynamicData?.Amount </td>
</tr> </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; "> <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; ">
<td style="text-align: center; padding: 2px "></td> <td style="text-align: center; padding: 2px "></td>
@@ -505,7 +510,7 @@
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;@(day.IsHoliday || day.IsFriday ? "background-color: #BBBBBB !important;" : "background-color: #efefef !important;") -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.ExitDifferencesMinutes1</td> <td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;@(day.IsHoliday || day.IsFriday ? "background-color: #BBBBBB !important;" : "background-color: #efefef !important;") -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.ExitDifferencesMinutes1</td>
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;@(day.IsHoliday || day.IsFriday ? "background-color: #BBBBBB !important;" : "background-color: #efefef !important;") -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.EnterDifferencesMinutes1</td> <td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;@(day.IsHoliday || day.IsFriday ? "background-color: #BBBBBB !important;" : "background-color: #efefef !important;") -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.EnterDifferencesMinutes2</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 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> <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>

View File

@@ -146,6 +146,12 @@
</table> </table>
</div> </div>
</div> </div>
@{
var firstDynamicData = Model.CheckoutDynamicDeductions.FirstOrDefault();
var secondDynamicData = Model.CheckoutDynamicDeductions.Skip(1).FirstOrDefault();
var thirdDynamicData = Model.CheckoutDynamicDeductions.Skip(2).FirstOrDefault();
}
<div class="row" style="margin-top: 10px;padding: 0 12px;"> <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;"> <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;">
@@ -253,27 +259,27 @@
<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; border-left: 1px solid #000;"> - </td>
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.BonusesPay == "0" ? "-" : Model.BonusesPay) </td> <td style="text-align: center; border-left: 2px solid #000;"> @(Model.BonusesPay == "0" ? "-" : Model.BonusesPay) </td>
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td> <td style="padding-right: 8px; border-left: 1px solid #000;"> @firstDynamicData?.Name </td>
<td style="text-align: center; border-left: 1px solid #000;"> </td> <td style="text-align: center; border-left: 1px solid #000;"> @firstDynamicData?.Count </td>
<td style="text-align: center;"> </td> <td style="text-align: center;"> @firstDynamicData?.Amount </td>
</tr> </tr>
<tr style="font-size: 12px; background-color: #f1f1f1 !important; -webkit-print-color-adjust: exact;print-color-adjust: exact; "> <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 ">10</td> <td style="text-align: center; border-left: 1px solid #000; padding: 2px ">10</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; border-left: 1px solid #000;"> - </td>
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.BaseYearsPay == "0" ? "-" : Model.BaseYearsPay) </td> <td style="text-align: center; border-left: 2px solid #000;"> @(Model.BaseYearsPay == "0" ? "-" : Model.BaseYearsPay) </td>
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td> <td style="padding-right: 8px; border-left: 1px solid #000;"> @secondDynamicData?.Name </td>
<td style="text-align: center; border-left: 1px solid #000;"> </td> <td style="text-align: center; border-left: 1px solid #000;"> @secondDynamicData?.Count </td>
<td style="text-align: center;"> </td> <td style="text-align: center;"> @secondDynamicData?.Amount</td>
</tr> </tr>
<tr style="font-size: 12px;"> <tr style="font-size: 12px;">
<td style="text-align: center; border-left: 1px solid #000; padding: 2px ">11</td> <td style="text-align: center; border-left: 1px solid #000; padding: 2px ">11</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; border-left: 1px solid #000;"> - </td>
<td style="text-align: center; border-left: 2px solid #000;"> @(Model.LeavePay == "0" ? "-" : Model.LeavePay) </td> <td style="text-align: center; border-left: 2px solid #000;"> @(Model.LeavePay == "0" ? "-" : Model.LeavePay) </td>
<td style="padding-right: 8px; border-left: 1px solid #000;"> </td> <td style="padding-right: 8px; border-left: 1px solid #000;"> @thirdDynamicData?.Name </td>
<td style="text-align: center; border-left: 1px solid #000;"> </td> <td style="text-align: center; border-left: 1px solid #000;"> @thirdDynamicData?.Count </td>
<td style="text-align: center;"> </td> <td style="text-align: center;"> @thirdDynamicData?.Amount</td>
</tr> </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; "> <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; ">
<td style="text-align: center; padding: 2px "></td> <td style="text-align: center; padding: 2px "></td>
@@ -504,7 +510,7 @@
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;@(day.IsHoliday || day.IsFriday ? "background-color: #BBBBBB !important;" : "background-color: #efefef !important;") -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.ExitDifferencesMinutes1</td> <td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;@(day.IsHoliday || day.IsFriday ? "background-color: #BBBBBB !important;" : "background-color: #efefef !important;") -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.ExitDifferencesMinutes1</td>
<td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;@(day.IsHoliday || day.IsFriday ? "background-color: #BBBBBB !important;" : "background-color: #efefef !important;") -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.EnterDifferencesMinutes1</td> <td style="font-size: 8px; text-align: center;border-width: 2px 0 2px 2px;border-color: #DDDCDC;border-style: solid;@(day.IsHoliday || day.IsFriday ? "background-color: #BBBBBB !important;" : "background-color: #efefef !important;") -webkit-print-color-adjust: exact;print-color-adjust: exact; ">@day.EnterDifferencesMinutes2</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 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> <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>