Production Bonus attn Swing and Printing #12

Merged
chapal merged 4 commits from dev_mashfiq into devqc 2024-11-18 15:05:35 +06:00
6 changed files with 87 additions and 20 deletions
Showing only changes of commit 785e9c24ff - Show all commits

View File

@ -283,12 +283,13 @@ namespace HRM.BO
List<ProdBonusAttn> Get(int setupID, int ScheduleID); List<ProdBonusAttn> Get(int setupID, int ScheduleID);
List<ProdBonusAttn> Get(int setupID, DateTime dateTime); List<ProdBonusAttn> Get(int setupID, DateTime dateTime);
List<ProdBonusAttn> GetBySetupLineDate(int setupID, int lineID, DateTime dateTime);
List<ProdBonusAttn> GetBySetupID(int iD); List<ProdBonusAttn> GetBySetupID(int iD);
List<ProdBonusAttn> GetBySetupIDs(string iDs); List<ProdBonusAttn> GetBySetupIDs(string iDs);
List<ProdBonusAttn> GetByLineID(int lineID); List<ProdBonusAttn> GetByLineID(int lineID);
List<ProdBonusAttn> GetbySetupAndLineID(int setupID, int lineID); List<ProdBonusAttn> GetbySetupAndLineID(int setupID, int lineID);
DateTime? GetMaxDate(int setupID, int lineID, DateTime date);
} }
#endregion #endregion

View File

@ -90,7 +90,24 @@ namespace HRM.DA
return tc.ExecuteReader(sql); return tc.ExecuteReader(sql);
//return tc.ExecuteReader("SELECT * FROM ProdBonusAttn WHERE ProdBonusSetupID=%n AND CAST(InTime AS date)=%d", setupID, dateTime); //return tc.ExecuteReader("SELECT * FROM ProdBonusAttn WHERE ProdBonusSetupID=%n AND CAST(InTime AS date)=%d", setupID, dateTime);
} }
internal static IDataReader GetBySetupLineDate(TransactionContext tc, int setupID, int lineID, DateTime dateTime)
{
string sql = SQLParser.MakeSQL("SELECT PBA.*, E.EMPLOYEENO FROM ProdBonusAttn PBA Left Join EMPLOYEE E on E.EMPLOYEEID = PBA.EmployeeID WHERE PBA.ProdBonusSetupID=%n AND PBA.ProdBonusLineID=%n AND year(PBA.InTime)= %n AND month(PBA.InTime)= %n AND day(PBA.InTime)= %n ORDER BY TRY_CAST(E.EMPLOYEENO AS INT) ASC",
setupID, lineID, dateTime.Year, dateTime.Month,dateTime.Day);
return tc.ExecuteReader(sql);
}
internal static DateTime? GetMaxDate(TransactionContext tc, int setupID, int lineID, DateTime date)
{
DateTime? value = null;
object obj = tc.ExecuteScalar("SELECT max(intime) FROM ProdBonusAttn WHERE ProdBonusSetupID=%n AND ProdBonusLineID = %n AND OutTime < %d", setupID, lineID, date);
if (obj is not DBNull)
{
value = Convert.ToDateTime(obj);
}
return value;
}
#endregion #endregion
#region Delete function #region Delete function

View File

@ -159,6 +159,32 @@ namespace HRM.DA
return ProdBonusAttns; return ProdBonusAttns;
} }
public List<ProdBonusAttn> GetBySetupLineDate(int setupID, int lineID, DateTime dateTime)
{
List<ProdBonusAttn> ProdBonusAttns = new List<ProdBonusAttn>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(ProdBonusAttnDA.GetBySetupLineDate(tc, setupID, lineID, dateTime));
ProdBonusAttns = this.CreateObjects<ProdBonusAttn>(dr);
dr.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return ProdBonusAttns;
}
public List<ProdBonusAttn> GetBySetupID(int setupID) public List<ProdBonusAttn> GetBySetupID(int setupID)
{ {
@ -295,6 +321,31 @@ namespace HRM.DA
return ProdBonusAttns; return ProdBonusAttns;
} }
public DateTime? GetMaxDate(int setupID, int lineID, DateTime date)
{
TransactionContext tc = null;
try
{
DateTime? dateValue = null;
tc = TransactionContext.Begin();
dateValue = ProdBonusAttnDA.GetMaxDate(tc, setupID, lineID, date);
tc.End();
return dateValue;
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public int Save(ProdBonusAttn oProdBonusAttn) public int Save(ProdBonusAttn oProdBonusAttn)
{ {
TransactionContext tc = null; TransactionContext tc = null;

View File

@ -84,7 +84,7 @@
</div> </div>
<div class="p-col-12" align="right"> <div class="p-col-12" align="right">
<button icon="refresh" kendoButton [primary]="true" style="width: fit-content" (click)="onClickRefresh()" <button icon="refresh" kendoButton [primary]="true" style="width: fit-content" (click)="onClickLoad()"
[disabled]="selectedProdBSdata===undefined||selectedLine===undefined||selectedDate===undefined">Load</button> [disabled]="selectedProdBSdata===undefined||selectedLine===undefined||selectedDate===undefined">Load</button>
</div> </div>
<div class="p-col-12"> <div class="p-col-12">
@ -94,6 +94,7 @@
Remove All Remove All
</button> </button>
<kendo-grid-spacer></kendo-grid-spacer> <kendo-grid-spacer></kendo-grid-spacer>
<label>Attendance Count: {{employeeList.length}} </label>
<!--<button kendoGridExcelCommand type="button" icon="file-excel">Export to <!--<button kendoGridExcelCommand type="button" icon="file-excel">Export to
Excel</button>class="customButton"--> Excel</button>class="customButton"-->
</ng-template> </ng-template>

View File

@ -187,7 +187,7 @@ export class ProductionBonusAttendanceComponent implements OnInit {
) )
} }
onClickRefresh() { onClickLoad() {
// debugger; // debugger;
const fromDate = new Date(this.productionBonusSetup.fromDate.setHours(0, 0, 0, 0)); const fromDate = new Date(this.productionBonusSetup.fromDate.setHours(0, 0, 0, 0));
const toDate = new Date(this.productionBonusSetup.toDate.setHours(0, 0, 0, 0)); const toDate = new Date(this.productionBonusSetup.toDate.setHours(0, 0, 0, 0));
@ -195,6 +195,7 @@ export class ProductionBonusAttendanceComponent implements OnInit {
if (selectedDate >= fromDate && selectedDate <= toDate) { if (selectedDate >= fromDate && selectedDate <= toDate) {
var dataForAttn = { var dataForAttn = {
setupId: this.productionBonusSetup.id, setupId: this.productionBonusSetup.id,
lineId: this.selectedLine.id,
date: this.selectedDate date: this.selectedDate
} }
// console.log(dataForAttn); // console.log(dataForAttn);

View File

@ -522,6 +522,7 @@ namespace HRM.UI.Controllers.Payroll
{ {
var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(processItems)); var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(processItems));
int setupID = (int)item["setupId"].ToObject<int>(); int setupID = (int)item["setupId"].ToObject<int>();
int lineID = (int)item["lineId"].ToObject<int>();
DateTime date = (DateTime)item["date"].ToObject<DateTime>(); DateTime date = (DateTime)item["date"].ToObject<DateTime>();
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
@ -529,7 +530,7 @@ namespace HRM.UI.Controllers.Payroll
List<ProdBonusAttn> AttnItems = new List<ProdBonusAttn>(); List<ProdBonusAttn> AttnItems = new List<ProdBonusAttn>();
try try
{ {
AttnItems = _prodBonusAttnService.Get(setupID, date); AttnItems = _prodBonusAttnService.GetBySetupLineDate(setupID, lineID, date);
} }
catch (Exception e) catch (Exception e)
@ -623,29 +624,24 @@ namespace HRM.UI.Controllers.Payroll
List<ProdBonusParameter> _oProdBonusParameters = new List<ProdBonusParameter>(); List<ProdBonusParameter> _oProdBonusParameters = new List<ProdBonusParameter>();
List<ProdBonusSupervisor> _oProdBonusSupervisors = new List<ProdBonusSupervisor>(); List<ProdBonusSupervisor> _oProdBonusSupervisors = new List<ProdBonusSupervisor>();
List<DailyAttnProcess> _oDailyAttnProsess = new List<DailyAttnProcess>(); List<DailyAttnProcess> _oDailyAttnProsess = new List<DailyAttnProcess>();
List<ProdBonusAttn> _oProdBonusAttns = null;
try try
{ {
//List<ProdBonusWorkSchedule> _oProdBonusWorkSchedules = _prodBonusWorkScheduleService.Get(); DateTime? maxDate = _prodBonusAttnService.GetMaxDate(_oProdBonusLine.ProdBonusSetupID, _oProdBonusLine.ID, date);
List<ProdBonusAttn> _oProdBonusAttns = _prodBonusAttnService.Get(_oProdBonusLine.ProdBonusSetupID, date.AddDays(-1));
//_oProdBonusParameters = _oProdBonusLine.ProdBonusParameters; if(maxDate != null)
_oProdBonusAttns = _prodBonusAttnService.GetBySetupLineDate(_oProdBonusLine.ProdBonusSetupID, _oProdBonusLine.ID, (DateTime)maxDate);
//if (_oProdBonusParameters != null && _oProdBonusParameters.Count > 0) List<ProdBonusParameter> desigparam = _oProdBonusParameters.Where(o => o.ItemType == EnumBonusItemType.Designation).ToList();
//{ if(_oProdBonusAttns != null && _oProdBonusAttns.Count > 0)
List<ProdBonusParameter> desigparam = _oProdBonusParameters.Where(o => o.ItemType == EnumBonusItemType.Designation).ToList(); {
//foreach (ProdBonusParameter pbp in _oProdBonusParameters) foreach (var pda in _oProdBonusAttns)
//{
if(_oProdBonusAttns != null && _oProdBonusAttns.Count > 0)
{ {
foreach (var pda in _oProdBonusAttns) Employee emp = _oEmployees.Find(o => o.ID == pda.EmployeeID);
{
Employee emp = _oEmployees.Find(o => o.ID == pda.EmployeeID);
if (emp != null) _oFinalEmployees.Add(emp); if (emp != null) _oFinalEmployees.Add(emp);
}
} }
//} }
//}
string emIds = _oFinalEmployees.Aggregate(new StringBuilder(), (sb, x) => sb.Append(x.ID + ","), sb => sb.ToString().Trim(',')); string emIds = _oFinalEmployees.Aggregate(new StringBuilder(), (sb, x) => sb.Append(x.ID + ","), sb => sb.ToString().Trim(','));
if (emIds != "") if (emIds != "")
{ {