Prod validation
This commit is contained in:
parent
af46e47314
commit
792277e83b
|
@ -383,7 +383,7 @@ namespace HRM.BO
|
|||
List<SalaryProcessStatus> SalaryProcess(SalaryProcess item, List<Employee> employees);
|
||||
int Save(SalaryProcess item);
|
||||
void Delete(int id);
|
||||
|
||||
bool IsSalaryprocessed(DateTime salarymonth, int payrollTypeID);
|
||||
void UndoSalary(int id);
|
||||
void UndoMonthlySalaryByIDs(string ids);
|
||||
void UndoMonthlySalaryByEmpIDs(string ids, DateTime salaryMonth);
|
||||
|
|
|
@ -114,7 +114,16 @@ namespace HRM.DA
|
|||
return bShowInDesktop;
|
||||
}
|
||||
|
||||
|
||||
internal static bool IsSalaryprocessed(TransactionContext tc, DateTime dSMonth, int payrollTypeID)
|
||||
{
|
||||
bool bShowInDesktop = false;
|
||||
object obj =
|
||||
tc.ExecuteScalar("Select SALARYPROCESSID from SALARYPROCESS where SALARYMONTH=%d AND PAYROLLTYPEID=%n",
|
||||
dSMonth, payrollTypeID);
|
||||
if (obj == DBNull.Value) return false;
|
||||
else bShowInDesktop=true;
|
||||
return bShowInDesktop;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Delete function
|
||||
|
|
|
@ -978,6 +978,31 @@ namespace HRM.DA
|
|||
return bShowInDesktop;
|
||||
}
|
||||
|
||||
public bool IsSalaryprocessed(DateTime dSalaryMonth, int payrollTypeID)
|
||||
{
|
||||
TransactionContext tc = null;
|
||||
bool isSalaryprocessed;
|
||||
try
|
||||
{
|
||||
tc = TransactionContext.Begin();
|
||||
isSalaryprocessed = SalaryProcessDA.IsSalaryprocessed(tc, dSalaryMonth, payrollTypeID);
|
||||
tc.End();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
#region Handle Exception
|
||||
|
||||
if (tc != null)
|
||||
tc.HandleError();
|
||||
ExceptionLog.Write(e);
|
||||
throw new ServiceException(e.Message, e);
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
return isSalaryprocessed;
|
||||
}
|
||||
|
||||
public List<SalaryProcess> GetAllProcess(int payrollTypeID, DateTime nextPayProcessDate)
|
||||
{
|
||||
List<SalaryProcess> salaryProcesss = new List<SalaryProcess>();
|
||||
|
|
|
@ -238,5 +238,7 @@ export class SalaryService {
|
|||
DownloadPayslipForMultiple(param: any): Observable<HttpEvent<any>> {
|
||||
return this.apiService.httpPost<any>('/salary/DownloadPayslipForMultiple', param);
|
||||
}
|
||||
|
||||
IsSalaryProcessed(salaryMonth: Date) {
|
||||
return this.apiService.httpGet<boolean>('/salary' + '/IsSalaryprocessedMonthly' + '/' + salaryMonth.toDateString());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -136,6 +136,6 @@
|
|||
</div>
|
||||
<div class="p-col-10"></div>
|
||||
<div class="p-col-2" align="right">
|
||||
<button icon="save" kendoButton style="width:80%" (click)="onClickSubmit()">Submit</button>
|
||||
<button icon="save" kendoButton style="width:80%" (click)="onClickSubmit()" [disabled]="isprevious">Submit</button>
|
||||
</div>
|
||||
</div>
|
|
@ -20,6 +20,9 @@ import { EnumBonusItemType, EnumProductionBonusType } from 'src/app/_models/enum
|
|||
import { ProdBonusParameter } from 'src/app/_models/Payroll/ProductionBonus/prodBonusParameter';
|
||||
import { error } from 'console';
|
||||
import { GridComponent } from '@progress/kendo-angular-grid';
|
||||
import { AuthService } from '../../_services/auth/auth.service';
|
||||
import { SalaryService } from '../../_services/payroll/salary.service';
|
||||
import { PayrollType } from '../../_models/Authentication/payrollType';
|
||||
|
||||
|
||||
@Component({
|
||||
|
@ -64,6 +67,10 @@ export class ProductionBonusAttendanceComponent implements OnInit {
|
|||
|
||||
employeeList: Employee[] = [];
|
||||
allEmps: any[] = [];
|
||||
isprevious: boolean = false;
|
||||
iSalaryProcesed: boolean = false;
|
||||
salaryMonth: Date = new Date();
|
||||
payrollType: PayrollType;
|
||||
|
||||
value: '';
|
||||
|
||||
|
@ -73,6 +80,8 @@ export class ProductionBonusAttendanceComponent implements OnInit {
|
|||
public WindowPopUp: AppWindowPopUp,
|
||||
public loadingPanelService: loadingPanelService,
|
||||
public employeeService: EmployeeServices,
|
||||
public authservice: AuthService,
|
||||
public salaryService: SalaryService,
|
||||
public bonusService: BonusService) {
|
||||
this.apiService.selectedMenuName = 'Production Bonus Attendance';
|
||||
this._departmentPicker = new DynamicPicker(EnumDynamicpickerType.Department, false);
|
||||
|
@ -81,6 +90,16 @@ export class ProductionBonusAttendanceComponent implements OnInit {
|
|||
|
||||
ngOnInit(): void {
|
||||
// this.Loadlayout();
|
||||
this.authservice.GetPayrollTypeByLoginID().subscribe(
|
||||
(resp: any) => {
|
||||
this.payrollType = resp;
|
||||
},
|
||||
(err: any) => {
|
||||
},
|
||||
() => {
|
||||
this.salaryMonth = new Date(this.payrollType.nextPayProcessDate);
|
||||
}
|
||||
);
|
||||
this.GetAllEmployees();
|
||||
this.productionBonusSetup = new ProductionBonusSetup();
|
||||
this.showScheduleDate = false;
|
||||
|
@ -118,6 +137,30 @@ export class ProductionBonusAttendanceComponent implements OnInit {
|
|||
Loadlayout() {
|
||||
this.clear();
|
||||
debugger;
|
||||
this.loadingPanelService.ShowLoadingPanel = true;
|
||||
this.salaryService.IsSalaryProcessed(new Date(this.payrollType.nextPayProcessDate)).subscribe(
|
||||
(resp: any) => {
|
||||
this.iSalaryProcesed = resp;
|
||||
},
|
||||
(err: any) => {
|
||||
this.loadingPanelService.ShowLoadingPanel = false;
|
||||
this.notificationService.showError(err.error);
|
||||
|
||||
},
|
||||
() => {
|
||||
|
||||
this.loadingPanelService.ShowLoadingPanel = false;
|
||||
|
||||
if (new Date(this.selectedSalaryDate) <= new Date(this.payrollType.lastPayProcessDate) ||
|
||||
(new Date(this.selectedSalaryDate) > new Date(this.payrollType.lastPayProcessDate) &&
|
||||
new Date(this.payrollType.nextPayProcessDate) >= new Date(this.selectedSalaryDate) && this.iSalaryProcesed)) {
|
||||
this.isprevious = true;
|
||||
}
|
||||
else {
|
||||
this.isprevious = false;
|
||||
}
|
||||
|
||||
});
|
||||
const data = {
|
||||
createdDate: this.selectedSalaryDate
|
||||
}
|
||||
|
|
|
@ -130,7 +130,7 @@
|
|||
|
||||
|
||||
<div class="p-col-12 p-lg-12" align="right">
|
||||
<button kendoButton icon="save" [primary]="true" style="width: fit-content" (click)="onClickSubmit()">Submit</button>
|
||||
<button kendoButton icon="save" [primary]="true" style="width: fit-content" (click)="onClickSubmit()" [disabled]="isprevious">Submit</button>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
|
|
@ -29,6 +29,9 @@ import { process, State } from '@progress/kendo-data-query';
|
|||
import { DataStateChangeEvent } from '@progress/kendo-angular-grid';
|
||||
import { noUndefined } from '@angular/compiler/src/util';
|
||||
import { EnumStatus } from '../../_models/enums';
|
||||
import { AuthService } from '../../_services/auth/auth.service';
|
||||
import { PayrollType } from '../../_models/Authentication/payrollType';
|
||||
import { SalaryService } from '../../_services/payroll/salary.service';
|
||||
|
||||
|
||||
|
||||
|
@ -47,6 +50,8 @@ export class ProductionBonusSetupComponent implements OnInit {
|
|||
public loadingPanelService: loadingPanelService,
|
||||
public employeeService: EmployeeServices,
|
||||
public bonusService: BonusService,
|
||||
public authservice: AuthService,
|
||||
public salaryService: SalaryService,
|
||||
public datePipe: DatePipe) {
|
||||
this.apiService.selectedMenuName = 'Production Bonus Setup';
|
||||
this._departmentPicker = new DynamicPicker(EnumDynamicpickerType.Department, false);
|
||||
|
@ -70,6 +75,10 @@ export class ProductionBonusSetupComponent implements OnInit {
|
|||
//Child-level 2
|
||||
prodBonusSupervisor: ProdBonusSupervisor;
|
||||
prodBonusParameter: ProdBonusParameter;
|
||||
isprevious: boolean = false;
|
||||
iSalaryProcesed: boolean = false;
|
||||
salaryMonth: Date = new Date();
|
||||
payrollType: PayrollType;
|
||||
|
||||
prodBonusAttn: ProdBonusAttn[];
|
||||
depts: Department[] = [];
|
||||
|
@ -120,11 +129,22 @@ export class ProductionBonusSetupComponent implements OnInit {
|
|||
// ];
|
||||
|
||||
ngOnInit(): void {
|
||||
|
||||
this.productionBonusSetup = new ProductionBonusSetup();
|
||||
this.prodBonusLine = new ProdBonusLine();
|
||||
this.prodBonusSupervisor = new ProdBonusSupervisor();
|
||||
this.prodBonusParameter = new ProdBonusParameter();
|
||||
this.prodBonusWork = new ProdBonusWorkSchedule();
|
||||
this.authservice.GetPayrollTypeByLoginID().subscribe(
|
||||
(resp: any) => {
|
||||
this.payrollType = resp;
|
||||
},
|
||||
(err: any) => {
|
||||
},
|
||||
() => {
|
||||
this.salaryMonth = new Date(this.payrollType.nextPayProcessDate);
|
||||
}
|
||||
);
|
||||
this.getBonusType();
|
||||
|
||||
|
||||
|
@ -175,6 +195,32 @@ export class ProductionBonusSetupComponent implements OnInit {
|
|||
Loadlayout() {
|
||||
this.selectedProdBSdata = undefined;
|
||||
debugger;
|
||||
this.loadingPanelService.ShowLoadingPanel = true;
|
||||
this.salaryService.IsSalaryProcessed(new Date(this.payrollType.nextPayProcessDate)).subscribe(
|
||||
(resp: any) => {
|
||||
this.iSalaryProcesed = resp;
|
||||
},
|
||||
(err: any) => {
|
||||
this.loadingPanelService.ShowLoadingPanel = false;
|
||||
this.notificationService.showError(err.error);
|
||||
|
||||
},
|
||||
() => {
|
||||
|
||||
this.loadingPanelService.ShowLoadingPanel = false;
|
||||
|
||||
if (new Date(this.selectedSalaryDate) <= new Date(this.payrollType.lastPayProcessDate) ||
|
||||
(new Date(this.selectedSalaryDate) > new Date(this.payrollType.lastPayProcessDate) &&
|
||||
new Date(this.payrollType.nextPayProcessDate) >= new Date(this.selectedSalaryDate) && this.iSalaryProcesed)) {
|
||||
this.isprevious = true;
|
||||
}
|
||||
else {
|
||||
this.isprevious = false;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
const data = {
|
||||
createdDate: this.selectedSalaryDate
|
||||
}
|
||||
|
|
|
@ -956,6 +956,27 @@ namespace HRM.UI.Controllers.Payroll
|
|||
return Ok();
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[Route("IsSalaryprocessedMonthly/{salarymonth}")]
|
||||
public ActionResult IsSalaryprocessedMonthly(string salarymonth)
|
||||
{
|
||||
bool isSalaryprocessed = false;
|
||||
DateTime month=Convert.ToDateTime(salarymonth);
|
||||
|
||||
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
|
||||
try
|
||||
{
|
||||
|
||||
isSalaryprocessed= _salaryProcessService.IsSalaryprocessed(month, (int)currentUser.PayrollTypeID);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
|
||||
}
|
||||
|
||||
return Ok(isSalaryprocessed);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("salaryProcessApprove")]
|
||||
public ActionResult SalaryProcessApprove(SalaryProcess process)
|
||||
|
|
Loading…
Reference in New Issue
Block a user