AttendanceProcess Modification
Task No- 20250320-0128
This commit is contained in:
parent
4b7e9c47b1
commit
9200c31f10
|
@ -223,7 +223,7 @@ namespace HRM.DA
|
|||
id);
|
||||
tc.ExecuteNonQuery("DELETE FROM SalaryMonthly WHERE SalaryProcessID=%n", id);
|
||||
//}
|
||||
tc.ExecuteNonQuery("DELETE FROM SalaryProcess WHERE SalaryProcessID=%n", id);
|
||||
//tc.ExecuteNonQuery("DELETE FROM SalaryProcess WHERE SalaryProcessID=%n", id);
|
||||
}
|
||||
|
||||
internal static void UndoMonthlySalaryByIDs(TransactionContext tc, string ids)
|
||||
|
|
|
@ -473,7 +473,7 @@ namespace HRM.DA
|
|||
}
|
||||
_attnRunSummary = new AttnProcessRunSummary();
|
||||
_attnRunSummary.ProcessMode = prMode;
|
||||
// bool isInOutApplicable = false;
|
||||
//bool isInOutApplicable = false;
|
||||
|
||||
_shifts = _shifts ?? new ShiftService().GetAllShift();
|
||||
|
||||
|
@ -483,7 +483,7 @@ namespace HRM.DA
|
|||
#region Initialization for Attendence Process
|
||||
|
||||
Attdate = fromDate;
|
||||
// isInOutApplicable = new SystemConfigarationService().GetconfigBooleanValue(EnumConfigurationType.Logic, "attendence", "inoutapplicable");
|
||||
//isInOutApplicable = new SystemConfigarationService().GetconfigBooleanValue(EnumConfigurationType.Logic, "attendence", "inoutapplicable");
|
||||
|
||||
List<DailyAttnProcess> dailyattProcesses = new List<DailyAttnProcess>();
|
||||
List<DailyAttendanceAllowance> dailyAttendanceAllowances = new List<DailyAttendanceAllowance>();
|
||||
|
@ -2597,7 +2597,11 @@ namespace HRM.DA
|
|||
|
||||
List<Shift> shifts =new ShiftService().GetAllShift();
|
||||
List<WorkPlanGroup> workPlanGroups = new WorkPlanGroupService().GetAll();
|
||||
if( employees == null) employees = new EmployeeService().GetAllLive();
|
||||
//if( employees == null) employees = new EmployeeService().GetAllLive();
|
||||
if( employees == null)
|
||||
employees = new EmployeeService().Get(EnumEmployeeStatus.Live, payrolltypeid)
|
||||
.OrderBy(num => num.EmployeeNo.Length).ThenBy(num => Convert.ToInt32(num.EmployeeNo)).ToList();
|
||||
|
||||
List<Employee> discontinueEmps =new EmployeeService().GetDiscontinueEmp(Attdate, DateTime.Now, payrolltypeid);
|
||||
|
||||
//List<AttnRawData> attRawdata = new AttnRawDataService().Get(startTime, ToTime, payrolltypeid);// get raw data by a date and order by date, employee, punchTime
|
||||
|
@ -2636,7 +2640,6 @@ namespace HRM.DA
|
|||
|
||||
foreach (Employee emp in employees)
|
||||
{
|
||||
|
||||
//EmpTempid = emp.ID.Integer;
|
||||
|
||||
#region EmployeeWise Setup
|
||||
|
|
|
@ -2960,9 +2960,9 @@ namespace HRM.DA
|
|||
}
|
||||
}
|
||||
|
||||
public DateTime GetLastProcessDateUsingPayrollType(int PayrolltypeID)
|
||||
public DateTime? GetLastProcessDateUsingPayrollType(int PayrolltypeID)
|
||||
{
|
||||
DateTime lastProcessDate = DateTime.MinValue;
|
||||
DateTime? lastProcessDate = null;
|
||||
TransactionContext tc = null;
|
||||
try
|
||||
{
|
||||
|
@ -2972,7 +2972,7 @@ namespace HRM.DA
|
|||
{
|
||||
lastProcessDate = oreader.GetDateTime("LastProcessDate").HasValue
|
||||
? oreader.GetDateTime("LastProcessDate").Value
|
||||
: DateTime.MinValue;
|
||||
: null;
|
||||
}
|
||||
|
||||
oreader.Close();
|
||||
|
|
|
@ -209,6 +209,10 @@ export class AttendanceServices {
|
|||
// return this.apiService.httpGet<EmployeeWorkPlanSetup[]>('/Attendance' + '/getNotYetAssiged');
|
||||
return this.apiService.httpGet<Employee[]>('/Attendance' + '/getNotYetAssiged');
|
||||
}
|
||||
getLastAttnProcessDate() {
|
||||
// return this.apiService.httpGet<EmployeeWorkPlanSetup[]>('/Attendance' + '/getNotYetAssiged');
|
||||
return this.apiService.httpGet<Date>('/Attendance' + '/getLastAttnProcessDate');
|
||||
}
|
||||
getEmployeeWorkPlanSetupByWPGroupID(groupId: number) {
|
||||
return this.apiService.httpGet<EmployeeWorkPlanSetup[]>('/Attendance' + '/getEmployeeWorkPlanSetupByWPGroupID' + '/' + groupId);
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<form>
|
||||
<div class="card card-w-title">
|
||||
<div class="p-grid form-group">
|
||||
<div class="p-col-12 p-md-5">
|
||||
<div class="p-col-12 p-md-4">
|
||||
<div class="p-col-12">
|
||||
<label for="processFromDate">Process From</label>
|
||||
</div>
|
||||
|
@ -17,7 +17,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="p-col-12 p-md-5">
|
||||
<div class="p-col-12 p-md-4">
|
||||
<div class="p-col-12">
|
||||
<label for="processToDate">Process To</label>
|
||||
</div>
|
||||
|
@ -33,12 +33,23 @@
|
|||
</div>
|
||||
|
||||
<div class="p-col-12 p-md-2">
|
||||
<div class="p-col-12">
|
||||
<label for="chkIWithEmployee">Employee Wise</label>
|
||||
</div>
|
||||
<div class="p-col-12">
|
||||
<input type="checkbox" (change)="checkBoxChange()" [checked]="withEmployee"
|
||||
id="withEmployee" kendoCheckBox/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="p-col-12 p-md-2" *ngIf="withEmployee">
|
||||
<div class="p-col-12">
|
||||
<label for="employeePicker">Select Employee</label>
|
||||
</div>
|
||||
<div class="p-col-12">
|
||||
<app-employee-picker
|
||||
[MultiSelect]="true"
|
||||
[isActive]="withEmployee"
|
||||
(ItemSelected)="GetSelectedEmployee($event)"
|
||||
></app-employee-picker>
|
||||
</div>
|
||||
|
@ -47,7 +58,11 @@
|
|||
<div class="p-grid form-group">
|
||||
<div class="p-col-12 p-md-5">
|
||||
<div class="p-col-12">
|
||||
<label for="txtWP">(Number of Employees not in Work Plan : {{ employees.length }})</label>
|
||||
<!-- <label for="txtLE">(Number of Attendance Employees : {{ employees.length }})</label> -->
|
||||
<label for="txtWP">Number of Employees not in Work Plan : {{ employees.length }}</label>
|
||||
</div>
|
||||
<div class="p-col-12" *ngIf="lastProcessDate != null">
|
||||
<label style="color: red;" for="txtWP">Last Process date : {{ lastProcessDate != null ? (lastProcessDate | date: 'dd MMM yyyy') : '' }}</label>
|
||||
</div>
|
||||
<div class="p-col-12">
|
||||
<button icon="rotate"
|
||||
|
|
|
@ -23,7 +23,9 @@ export class AttendanceProcessComponent {
|
|||
selectedEmployees: SearchEmployee[] = [];
|
||||
notYetAssingedList: EmployeeWorkPlanSetup[];
|
||||
employees: any[] = [];
|
||||
processStatus:string = "";
|
||||
lastProcessDate: Date;
|
||||
processStatus: string = "";
|
||||
withEmployee: boolean = false;
|
||||
constructor(public attnService: AttendanceServices, public datatransferservice: DataTransferService,
|
||||
public loadingPanel: loadingPanelService,
|
||||
public notificationService: HRMNotificationService,
|
||||
|
@ -35,7 +37,7 @@ export class AttendanceProcessComponent {
|
|||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.notYetAssingedList =[]
|
||||
this.notYetAssingedList = []
|
||||
this.fromDate = new Date();
|
||||
this.toDate = new Date();
|
||||
this.attnService.getNotYetAssiged().subscribe(
|
||||
|
@ -46,7 +48,18 @@ export class AttendanceProcessComponent {
|
|||
},
|
||||
() => {
|
||||
});
|
||||
|
||||
this.attnService.getLastAttnProcessDate().subscribe(
|
||||
(resp) => {
|
||||
if (resp != null) {
|
||||
this.lastProcessDate = new Date(resp);
|
||||
}
|
||||
|
||||
},
|
||||
(x) => {
|
||||
},
|
||||
() => {
|
||||
});
|
||||
|
||||
}
|
||||
public GetSelectedEmployee(childData) {
|
||||
this.selectedEmployees = childData;
|
||||
|
@ -81,18 +94,25 @@ export class AttendanceProcessComponent {
|
|||
|
||||
|
||||
attnRequest.push({ "fromDate": this.fromDate, "toDate": this.toDate, "isWithEmployee": true, "employeeID": 0 });
|
||||
if (this.selectedEmployees != undefined && this.selectedEmployees.length > 0) {
|
||||
attnRequest = [];
|
||||
this.selectedEmployees.forEach(x => {
|
||||
attnRequest.push({ "fromDate": this.fromDate, "toDate": this.toDate, "isWithEmployee": false, "employeeID": x.employeeID });
|
||||
|
||||
});
|
||||
if (this.withEmployee) {
|
||||
if (this.selectedEmployees != undefined && this.selectedEmployees.length > 0) {
|
||||
attnRequest = [];
|
||||
this.selectedEmployees.forEach(x => {
|
||||
attnRequest.push({ "fromDate": this.fromDate, "toDate": this.toDate, "isWithEmployee": false, "employeeID": x.employeeID });
|
||||
|
||||
});
|
||||
}
|
||||
else {
|
||||
this.notificationService.showWarning('Please Select Employee!');
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
this.loadingPanel.ShowLoadingPanel = true;
|
||||
|
||||
this.attnService.dailyAttnProcessManual(attnRequest).subscribe(
|
||||
(x) => {
|
||||
|
||||
|
||||
},
|
||||
(x) => {
|
||||
this.loadingPanel.ShowLoadingPanel = false;
|
||||
|
@ -106,4 +126,15 @@ export class AttendanceProcessComponent {
|
|||
this.processStatus = "Attendance Process is completed successfully.";
|
||||
});
|
||||
}
|
||||
|
||||
public checkBoxChange() {
|
||||
debugger
|
||||
if (this.withEmployee) {
|
||||
this.withEmployee = false;
|
||||
this.selectedEmployees = [];
|
||||
}
|
||||
else
|
||||
this.withEmployee = true;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ using Microsoft.Extensions.Options;
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlTypes;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using static iTextSharp.text.pdf.AcroFields;
|
||||
|
@ -957,6 +958,22 @@ namespace HRM.UI.Controllers.Attendance
|
|||
|
||||
return Ok(items);
|
||||
}
|
||||
[HttpGet("getLastAttnProcessDate")]
|
||||
public ActionResult getLastAttnProcessDate()
|
||||
{
|
||||
DateTime? date = new DateTime();
|
||||
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
|
||||
try
|
||||
{
|
||||
date = new DailyAttnProcessService().GetLastProcessDateUsingPayrollType((int)currentUser.PayrollTypeID);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
|
||||
}
|
||||
|
||||
return Ok(date);
|
||||
}
|
||||
|
||||
[HttpGet("getEmployeeWorkPlanSetupByWPGroupID/{groupId}")]
|
||||
public ActionResult GetEmployeeWorkPlanSetupByWPGroupID(int groupId)
|
||||
|
@ -2618,6 +2635,12 @@ namespace HRM.UI.Controllers.Attendance
|
|||
(int)currentUser.PayrollTypeID);
|
||||
count++;
|
||||
}
|
||||
else
|
||||
{
|
||||
//employees = new EmployeeService().Get(EnumEmployeeStatus.Live, (int)currentUser.PayrollTypeID)
|
||||
// .OrderBy(num => num.EmployeeNo.Length).ThenBy(num => Convert.ToInt32(num.EmployeeNo)).ToList();
|
||||
//count++;
|
||||
}
|
||||
|
||||
for (DateTime attDate = fromDate; attDate <= toDate; attDate = attDate.AddDays(1))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user