CopyFromLastYear OnGet

This commit is contained in:
SamSys
2025-05-18 21:06:18 +03:30
parent abc8f408a7
commit 2fffa67ff6
8 changed files with 135 additions and 23 deletions

View File

@@ -19,7 +19,7 @@ public interface IInsuranceJobRepositpry:IRepository<long, InsuranceJob>
List<InsuranceJobViewModel> Search(InsuranceJobSearchModel searchModel);
OperationResult CreateInsuranceJob(CreateInsuranceJob command);
List<(long id, string date)> GetOldYersInsuranceItemIds();
OperationResult CopyFromLastYear(string startDate, string endDate, long insuranceJobItem);
OperationResult CopyFromLastYear(CopyFromLastYearViewModel command);
OperationResult Remove(long id);
OperationResult EditInsuranceJob(EditInsuranceJob command);
}

View File

@@ -1,5 +1,6 @@
using System.Collections.Generic;
using CompanyManagment.App.Contracts.InsuranceJobItem;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace CompanyManagment.App.Contracts.InsuranceJob;
@@ -10,5 +11,5 @@ public class CopyFromLastYearViewModel
public long InsuranceJobItemId { get; set; }
public List<(long id, string date)> InsuranceJobItemViewModels { get; set; }
public SelectList InsuranceJobItemViewModels { get; set; }
}

View File

@@ -11,7 +11,7 @@ namespace CompanyManagment.App.Contracts.InsuranceJob;
public interface IInsuranceJobApplication
{
List<(long id, string date)> GetOldYersInsuranceItemIds();
OperationResult CopyFromLastYear(string startDate, string endDate, long insuranceJobItem);
OperationResult CopyFromLastYear(CopyFromLastYearViewModel command);
OperationResult Create(CreateInsuranceJob command);
OperationResult Edit(EditInsuranceJob command);
EditInsuranceJob GetDetails(long id);

View File

@@ -24,9 +24,9 @@ public class InsuranceJobApplication: IInsuranceJobApplication
return _insuranceJobRepositpry.GetOldYersInsuranceItemIds();
}
public OperationResult CopyFromLastYear(string startDate, string endDate, long insuranceJobItem)
public OperationResult CopyFromLastYear(CopyFromLastYearViewModel command)
{
return _insuranceJobRepositpry.CopyFromLastYear(startDate, endDate, insuranceJobItem);
return _insuranceJobRepositpry.CopyFromLastYear(command);
}
public OperationResult Create(CreateInsuranceJob command)

View File

@@ -136,28 +136,31 @@ public class InsuranceJobRepository : RepositoryBase<long, InsuranceJob>, IInsur
var res = _context.InsuranceJobItems
.GroupBy(x => x.StartDate)
.Select(g => g.First())
.Select(x=> new InsuranceJobItemViewModel()
.ToList().Select(x => new InsuranceJobItemViewModel()
{
Id = x.id,
StartDate = x.StartDate,
EndDate = x.EndDate,
})
.ToList();
});
return res.Select(x=> (x.Id, $"{(x.StartDate.HasValue ? x.StartDate.Value.ToFarsi() : "نامشخص")} - {(x.EndDate.HasValue ? x.EndDate.Value.ToFarsi() : "نامشخص")}")).ToList();
}
public OperationResult CopyFromLastYear(string startDate, string endDate, long insuranceJobItem)
public OperationResult CopyFromLastYear(CopyFromLastYearViewModel command)
{
var op = new OperationResult();
if (command.InsuranceJobItemId == 0)
return op.Failed("بازه را انتخاب کنید");
DateTime startDateGr = new DateTime();
DateTime endDateGr = new DateTime();
try
{
startDateGr = startDate.ToGeorgianDateTime();
endDateGr = endDate.ToGeorgianDateTime();
startDateGr = command.StartDate.ToGeorgianDateTime();
endDateGr = command.EndDate.ToGeorgianDateTime();
}
catch (Exception e)
@@ -171,7 +174,7 @@ public class InsuranceJobRepository : RepositoryBase<long, InsuranceJob>, IInsur
if (chekExist)
return op.Failed("بازه تاریخ وارد شده با بازه های قبلی تداخل دارد");
var insuranceJobItemObj = _insuranceJobItemRepositpry.Get(insuranceJobItem);
var insuranceJobItemObj = _insuranceJobItemRepositpry.Get(command.InsuranceJobItemId);
if (insuranceJobItemObj == null)
return op.Failed("آیتم شغلی انتخاب شده وجود ندارد");
var insuranceJobItemList = _context.InsuranceJobItems.Where(x => x.StartDate == insuranceJobItemObj.StartDate).Select(x => new InsuranceJobItemViewModel()

View File

@@ -0,0 +1,95 @@
@model CompanyManagment.App.Contracts.InsuranceJob.CopyFromLastYearViewModel
@{
<style>
.input {
border: 1px solid #0000004a;
border-radius: 7px;
padding: 7px;
width: 100%;
background: whitesmoke;
}
.input:focus {
box-shadow: 0 2px 5px 0 rgb(136 137 141), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
}
</style>
}
<div class="modal-header" id="createContractingParty">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<form asp-page="./Index" asp-page-handler="CopyFromLastYear" autocomplete="off"
method="post"
data-ajax="true"
data-callback=""
data-action="Refresh"
enctype="multipart/form-data">
<div class="modal-body">
<div class="row">
<fieldset style="border: 1px solid #999797; border-radius: 10px; padding: revert;padding-bottom: 30px">
<legend style="margin-bottom: 5px; font-size: large; border-bottom: 0px; color: #505458; width: 394px; text-align: center;"> ساخت لیست اصناف با استفاده از داده های قبلی</legend>
<div class="flexible-wrap">
<div class="row">
<div class="col-md-12 col-xs-12">
<div class="form-group">
<select class="form-control select-city" asp-for="InsuranceJobItemId" asp-items='@Model.InsuranceJobItemViewModels'>
<option value="0">انتخاب بازه زمانی</option>
</select>
<span asp-validation-for="InsuranceJobItemId" class="error"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 inputs">
<input type="text" style="text-align: center" id="fromDate" placeholder="تاریخ شروع" asp-for="StartDate" class="input upper-in date">
</div>
<div class="col-md-6 inputs">
<input type="text" style="text-align: center" id="toDate" placeholder="تاریخ پایان" asp-for="EndDate" class="input upper-in date" style="direction: rtl;">
</div>
</div>
</div>
</fieldset>
</div>
</div>
@*<input type="hidden" asp-for="id" value="id"/>*@
<div class="modal-footer">
@*<button type="button" class="btn btn-default waves-effect" data-dismiss="modal">بستن</button>*@
<button type="submit" class="btn btn-success btn-rounded waves-effect waves-light" id="save"> ذخیره </button>
<button type="button" class="btn btn-default btn-rounded waves-effect waves-light m-b-5" data-dismiss="modal">بستن </button>
</div>
</form>
<script>
$(document).ready(function() {
$(".select-city").select2({
language: "fa",
dir: "rtl"
});
});
$(document).ready(function() {
$(".date").mask("0000/00/00");
});
$(".date").keyup(function() {
const value = $(this).val();
const lengthValue = value.length;
if (lengthValue == 10) {
if (!dateValidCheck(this)) {
$(this).addClass("errored");
} else {
$(this).removeClass("errored");
}
}
});
</script>

View File

@@ -5,11 +5,17 @@
<link href="@Href("~/admintheme/css/index.css")" rel="stylesheet"/>
<div id="index" class="row">
<div class="col-sm-12 m-r-10">
<p class="pull-right">
<a href="#showmodal=@Url.Page("/Company/InsuranceJob/Index", "Create")" class="btn btn-rounded waves-effect waves-light m-b-5 btn-show-modal"><i class="fa fa-user-plus"></i> ایجاد صنف جدید </a>
@*<a href="#showmodal=@Url.Page("/Company/InsuranceJob/Index","CreateInformation")" class="btn btn-rounded waves-effect waves-light m-b-5 btn-show-modal"><i class="fa fa-user-plus" ></i> ثبت اطلاعات مقطوع </a>*@
</p>
<p class="pull-right">
<a href="#showmodal=@Url.Page("/Company/InsuranceJob/Index", "Create")" class="btn btn-rounded waves-effect waves-light m-b-5 btn-show-modal"><i class="fa fa-user-plus"></i> مشاغل مقطوع </a>
@*<a href="#showmodal=@Url.Page("/Company/InsuranceJob/Index","CreateInformation")" class="btn btn-rounded waves-effect waves-light m-b-5 btn-show-modal"><i class="fa fa-user-plus" ></i> ثبت اطلاعات مقطوع </a>*@
</p>
</div>
<a href="#showmodal=@Url.Page("/Company/InsuranceJob/Index", "CopyFromLastYear")" class="btn btn-rounded waves-effect waves-light m-b-5 btn-show-modal"><i class="fa fa-user-plus"></i> کپی از اصناف سال قبل </a>
@*<a href="#showmodal=@Url.Page("/Company/InsuranceJob/Index","CreateInformation")" class="btn btn-rounded waves-effect waves-light m-b-5 btn-show-modal"><i class="fa fa-user-plus" ></i> ثبت اطلاعات مقطوع </a>*@
</p>
</div>
<div class="col-sm-12">
<div class="panel-group panel-group-joined" id="accordion-test">
<div class="panel panel-default">

View File

@@ -6,6 +6,7 @@ using CompanyManagment.App.Contracts.YearlySalary;
using MD.PersianDateTime.Standard;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace ServiceHost.Areas.Admin.Pages.Company.InsuranceJob;
@@ -59,16 +60,22 @@ public class IndexModel : PageModel
public IActionResult OnGetCopyFromLastYear()
{
var model = new CopyFromLastYearViewModel()
var dats = _insuranceJobApplication.GetOldYersInsuranceItemIds()
.Select(x => new { Id = x.id, Date = x.date })
.ToList();
var model = new CopyFromLastYearViewModel()
{
InsuranceJobItemViewModels = _insuranceJobApplication.GetOldYersInsuranceItemIds()
InsuranceJobItemId = 0,
StartDate = "",
EndDate = "",
InsuranceJobItemViewModels = new SelectList(dats,"Id", "Date"),
};
return new JsonResult(new { });
return Partial("./CopyFromLastYear", model);
}
public IActionResult OnPostCopyFromLastYear(string startDate, string endDate, long insuranceJobItemId)
public IActionResult OnPostCopyFromLastYear(CopyFromLastYearViewModel commnad)
{
return new JsonResult(new { });
var res = _insuranceJobApplication.CopyFromLastYear(commnad);
return new JsonResult(res);
}
//public async Task<IActionResult> OnPostJobListByText(string textSearch)