Compare commits
8 Commits
ce4c5d8f07
...
d897acd8fe
Author | SHA1 | Date | |
---|---|---|---|
d897acd8fe | |||
ab1e4bb0e5 | |||
ba4cdaf6b9 | |||
785e9c24ff | |||
133ec0b76c | |||
853b83e2e6 | |||
72222f6ce4 | |||
3522e50b94 |
|
@ -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
|
||||||
|
|
|
@ -78,7 +78,9 @@ namespace HRM.BO
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
public string devName { get; set; }
|
||||||
|
public string devParentName{ get; set; }
|
||||||
|
public string devGrantParentName{ get; set; }
|
||||||
public string EmployeeNo { get; set; }
|
public string EmployeeNo { get; set; }
|
||||||
public string EmpName { get; set; }
|
public string EmpName { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -55,6 +55,20 @@ namespace HRM.DA
|
||||||
{
|
{
|
||||||
return tc.ExecuteReader("SELECT * FROM ProdBonusWorkSchedule where ProdBonusSetupID=%n", nSetupID);
|
return tc.ExecuteReader("SELECT * FROM ProdBonusWorkSchedule where ProdBonusSetupID=%n", nSetupID);
|
||||||
}
|
}
|
||||||
|
internal static DataTable GetschedulewithTime(TransactionContext tc, int lineID)
|
||||||
|
{
|
||||||
|
return tc.ExecuteDataTable(@"select a.*,bb.scheduleCount , (select max(ps.InTime) from ProdBonusAttn ps where ps.ProdBonusLineID =%n
|
||||||
|
and DATEADD(dd, 0, DATEDIFF(dd, 0, ps.InTime)) = bb.scheduleDate) as inTime,
|
||||||
|
(select max(ps.OutTime) from ProdBonusAttn ps where ps.ProdBonusLineID =%n
|
||||||
|
and DATEADD(dd, 0, DATEDIFF(dd, 0, ps.InTime)) = bb.scheduleDate) as outTime from
|
||||||
|
(SELECT * FROM ProdBonusWorkSchedule where ProdBonusLineID=%n) a,
|
||||||
|
(
|
||||||
|
select DATEADD(dd, 0, DATEDIFF(dd, 0, InTime)) scheduleDate,COUNT(*) scheduleCount from ProdBonusAttn where
|
||||||
|
ProdBonusLineID =%n group by DATEADD(dd, 0, DATEDIFF(dd, 0, InTime))
|
||||||
|
) bb
|
||||||
|
where bb.scheduleDate = DATEADD(dd, 0, DATEDIFF(dd, 0, a.StartDateTime)) ", lineID, lineID, lineID, lineID);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
internal static IDataReader GetByLineID(TransactionContext tc, int lineID)
|
internal static IDataReader GetByLineID(TransactionContext tc, int lineID)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -717,8 +717,8 @@ namespace HRM.DA
|
||||||
bonusIntime = oProductionBonusSetup.FromDate > dailyAtt.InTime ? oProductionBonusSetup.FromDate : dailyAtt.InTime;
|
bonusIntime = oProductionBonusSetup.FromDate > dailyAtt.InTime ? oProductionBonusSetup.FromDate : dailyAtt.InTime;
|
||||||
else if (dailyAtt.InTime.GetValueOrDefault().TimeOfDay < tAtt.InTime.TimeOfDay)
|
else if (dailyAtt.InTime.GetValueOrDefault().TimeOfDay < tAtt.InTime.TimeOfDay)
|
||||||
bonusIntime = dailyAtt.InTime.GetValueOrDefault().Date.AddHours(tAtt.InTime.Hour).AddMinutes(tAtt.InTime.Minute);
|
bonusIntime = dailyAtt.InTime.GetValueOrDefault().Date.AddHours(tAtt.InTime.Hour).AddMinutes(tAtt.InTime.Minute);
|
||||||
if (oProductionBonusSetup.ToDate.Date == dailyAtt.AttnDate.Date)
|
//if (oProductionBonusSetup.ToDate.Date == dailyAtt.AttnDate.Date)
|
||||||
bonusOuttime = oProductionBonusSetup.ToDate < dailyAtt.OutTime ? oProductionBonusSetup.ToDate : dailyAtt.OutTime;
|
// bonusOuttime = oProductionBonusSetup.ToDate < dailyAtt.OutTime ? oProductionBonusSetup.ToDate : dailyAtt.OutTime;
|
||||||
else if (dailyAtt.OutTime.GetValueOrDefault().TimeOfDay > tAtt.OutTime.TimeOfDay)
|
else if (dailyAtt.OutTime.GetValueOrDefault().TimeOfDay > tAtt.OutTime.TimeOfDay)
|
||||||
bonusOuttime = dailyAtt.OutTime.GetValueOrDefault().Date.AddHours(tAtt.OutTime.Hour).AddMinutes(tAtt.OutTime.Minute);
|
bonusOuttime = dailyAtt.OutTime.GetValueOrDefault().Date.AddHours(tAtt.OutTime.Hour).AddMinutes(tAtt.OutTime.Minute);
|
||||||
//else if (oShift != null && dailyAtt.InTime.GetValueOrDefault().TimeOfDay < oShift.InTime.TimeOfDay)
|
//else if (oShift != null && dailyAtt.InTime.GetValueOrDefault().TimeOfDay < oShift.InTime.TimeOfDay)
|
||||||
|
@ -780,8 +780,8 @@ namespace HRM.DA
|
||||||
bonusIntime = oProductionBonusSetup.FromDate > dailyAtt.InTime ? oProductionBonusSetup.FromDate : dailyAtt.InTime;
|
bonusIntime = oProductionBonusSetup.FromDate > dailyAtt.InTime ? oProductionBonusSetup.FromDate : dailyAtt.InTime;
|
||||||
else if (dailyAtt.InTime.GetValueOrDefault().TimeOfDay < tAtt.InTime.TimeOfDay)
|
else if (dailyAtt.InTime.GetValueOrDefault().TimeOfDay < tAtt.InTime.TimeOfDay)
|
||||||
bonusIntime = dailyAtt.InTime.GetValueOrDefault().Date.AddHours(tAtt.InTime.Hour).AddMinutes(tAtt.InTime.Minute);
|
bonusIntime = dailyAtt.InTime.GetValueOrDefault().Date.AddHours(tAtt.InTime.Hour).AddMinutes(tAtt.InTime.Minute);
|
||||||
if (oProductionBonusSetup.ToDate.Date == dailyAtt.AttnDate.Date)
|
//if (oProductionBonusSetup.ToDate.Date == dailyAtt.AttnDate.Date)
|
||||||
bonusOuttime = oProductionBonusSetup.ToDate < dailyAtt.OutTime ? oProductionBonusSetup.ToDate : dailyAtt.OutTime;
|
// bonusOuttime = oProductionBonusSetup.ToDate < dailyAtt.OutTime ? oProductionBonusSetup.ToDate : dailyAtt.OutTime;
|
||||||
else if (dailyAtt.OutTime.GetValueOrDefault().TimeOfDay > tAtt.OutTime.TimeOfDay)
|
else if (dailyAtt.OutTime.GetValueOrDefault().TimeOfDay > tAtt.OutTime.TimeOfDay)
|
||||||
bonusOuttime = dailyAtt.OutTime.GetValueOrDefault().Date.AddHours(tAtt.OutTime.Hour).AddMinutes(tAtt.OutTime.Minute);
|
bonusOuttime = dailyAtt.OutTime.GetValueOrDefault().Date.AddHours(tAtt.OutTime.Hour).AddMinutes(tAtt.OutTime.Minute);
|
||||||
//else if (oShift != null && dailyAtt.InTime.GetValueOrDefault().TimeOfDay < oShift.InTime.TimeOfDay)
|
//else if (oShift != null && dailyAtt.InTime.GetValueOrDefault().TimeOfDay < oShift.InTime.TimeOfDay)
|
||||||
|
|
|
@ -129,6 +129,31 @@ namespace HRM.DA
|
||||||
|
|
||||||
return ProdBonusWorkSchedules;
|
return ProdBonusWorkSchedules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DataTable GetschedulewithTime(int lineid)
|
||||||
|
{
|
||||||
|
DataTable items = null;
|
||||||
|
TransactionContext tc = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
tc = TransactionContext.Begin();
|
||||||
|
items = ProdBonusWorkScheduleDA.GetschedulewithTime(tc, lineid);
|
||||||
|
tc.End();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
#region Handle Exception
|
||||||
|
|
||||||
|
if (tc != null)
|
||||||
|
tc.HandleError();
|
||||||
|
ExceptionLog.Write(e);
|
||||||
|
throw new ServiceException(e.Message, e);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
|
||||||
|
return items;
|
||||||
|
}
|
||||||
public List<ProdBonusWorkSchedule> GetWithSetupID(int nSetupID)
|
public List<ProdBonusWorkSchedule> GetWithSetupID(int nSetupID)
|
||||||
{
|
{
|
||||||
List<ProdBonusWorkSchedule> ProdBonusWorkSchedules = null;
|
List<ProdBonusWorkSchedule> ProdBonusWorkSchedules = null;
|
||||||
|
|
|
@ -393,9 +393,9 @@ namespace HRM.Report
|
||||||
bonusIntime = design.FromDate > dailyAtt.InTime ? design.FromDate : dailyAtt.InTime;
|
bonusIntime = design.FromDate > dailyAtt.InTime ? design.FromDate : dailyAtt.InTime;
|
||||||
else if (dailyAtt.InTime.GetValueOrDefault().TimeOfDay < tAtt.InTime.TimeOfDay)
|
else if (dailyAtt.InTime.GetValueOrDefault().TimeOfDay < tAtt.InTime.TimeOfDay)
|
||||||
bonusIntime = dailyAtt.InTime.GetValueOrDefault().Date.AddHours(tAtt.InTime.Hour).AddMinutes(tAtt.InTime.Minute);
|
bonusIntime = dailyAtt.InTime.GetValueOrDefault().Date.AddHours(tAtt.InTime.Hour).AddMinutes(tAtt.InTime.Minute);
|
||||||
if (design.ToDate.Date == dailyAtt.AttnDate.Date)
|
//if (design.ToDate.Date == dailyAtt.AttnDate.Date)
|
||||||
bonusOuttime = design.ToDate < dailyAtt.OutTime ? design.ToDate : dailyAtt.OutTime;
|
// bonusOuttime = design.ToDate < dailyAtt.OutTime ? design.ToDate : dailyAtt.OutTime;
|
||||||
else if (dailyAtt.OutTime.GetValueOrDefault().TimeOfDay > tAtt.OutTime.TimeOfDay)
|
if (dailyAtt.OutTime.GetValueOrDefault().TimeOfDay > tAtt.OutTime.TimeOfDay)
|
||||||
bonusOuttime = dailyAtt.OutTime.GetValueOrDefault().Date.AddHours(tAtt.OutTime.Hour).AddMinutes(tAtt.OutTime.Minute);
|
bonusOuttime = dailyAtt.OutTime.GetValueOrDefault().Date.AddHours(tAtt.OutTime.Hour).AddMinutes(tAtt.OutTime.Minute);
|
||||||
//else if (oShift != null && dailyAtt.InTime.GetValueOrDefault().TimeOfDay < oShift.InTime.TimeOfDay)
|
//else if (oShift != null && dailyAtt.InTime.GetValueOrDefault().TimeOfDay < oShift.InTime.TimeOfDay)
|
||||||
// bonusIntime = dailyAtt.InTime.GetValueOrDefault().Date.AddHours(oShift.InTime.Hour).AddMinutes(oShift.InTime.Minute);
|
// bonusIntime = dailyAtt.InTime.GetValueOrDefault().Date.AddHours(oShift.InTime.Hour).AddMinutes(oShift.InTime.Minute);
|
||||||
|
|
|
@ -40,8 +40,8 @@ namespace HRM.Report
|
||||||
oDR["PARMANENTADDRESS"] = oDRow["PARMANENTADDRESS"];
|
oDR["PARMANENTADDRESS"] = oDRow["PARMANENTADDRESS"];
|
||||||
oDR["PRESENTADDRESS"] = oDRow["PRESENTADDRESS"];
|
oDR["PRESENTADDRESS"] = oDRow["PRESENTADDRESS"];
|
||||||
oDR["BIRTHDATE"] = Convert.ToDateTime(oDRow["BIRTHDATE"]).ToString("dd/MM/yyyy");
|
oDR["BIRTHDATE"] = Convert.ToDateTime(oDRow["BIRTHDATE"]).ToString("dd/MM/yyyy");
|
||||||
if (oDRow["PHOTO"] is not DBNull)
|
//if (oDRow["PHOTO"] is not DBNull)
|
||||||
oDR["PHOTO"] = Convert.ToBase64String((byte[])oDRow["PHOTO"]);
|
// oDR["PHOTO"] = Convert.ToBase64String((byte[])oDRow["PHOTO"]);
|
||||||
oDR["NIDNO"] = oDRow["NIDNO"];
|
oDR["NIDNO"] = oDRow["NIDNO"];
|
||||||
oDR["HEIGHT"] = oDRow["HEIGHT"];
|
oDR["HEIGHT"] = oDRow["HEIGHT"];
|
||||||
oDR["BLOODGROUP"] = GlobalExtensions.BloodGroupToFriendlyName((EnumBloodGroup)Enum.Parse(typeof(EnumBloodGroup),
|
oDR["BLOODGROUP"] = GlobalExtensions.BloodGroupToFriendlyName((EnumBloodGroup)Enum.Parse(typeof(EnumBloodGroup),
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
<None Remove="Attendence\RDLC\rptMonthlyKPI.rdlc" />
|
<None Remove="Attendence\RDLC\rptMonthlyKPI.rdlc" />
|
||||||
<None Remove="RDLC\ActiveEmployeeDetail.rdlc" />
|
<None Remove="RDLC\ActiveEmployeeDetail.rdlc" />
|
||||||
<None Remove="RDLC\Advice.rdlc" />
|
<None Remove="RDLC\Advice.rdlc" />
|
||||||
|
<None Remove="RDLC\AllDigitalServiceBook.rdlc" />
|
||||||
<None Remove="RDLC\AllEmpTaxInfo.rdlc" />
|
<None Remove="RDLC\AllEmpTaxInfo.rdlc" />
|
||||||
<None Remove="RDLC\AllMedicalClaim.rdlc" />
|
<None Remove="RDLC\AllMedicalClaim.rdlc" />
|
||||||
<None Remove="RDLC\ApointmentLetterForStuff.rdlc" />
|
<None Remove="RDLC\ApointmentLetterForStuff.rdlc" />
|
||||||
|
@ -310,6 +311,7 @@
|
||||||
<EmbeddedResource Include="Attendence\RDLC\MultipleJobCardSub.rdlc" />
|
<EmbeddedResource Include="Attendence\RDLC\MultipleJobCardSub.rdlc" />
|
||||||
<EmbeddedResource Include="Attendence\RDLC\rptMonthlyKPI.rdlc" />
|
<EmbeddedResource Include="Attendence\RDLC\rptMonthlyKPI.rdlc" />
|
||||||
<EmbeddedResource Include="RDLC\ActiveEmployeeDetail.rdlc" />
|
<EmbeddedResource Include="RDLC\ActiveEmployeeDetail.rdlc" />
|
||||||
|
<EmbeddedResource Include="RDLC\AllDigitalServiceBook.rdlc" />
|
||||||
<EmbeddedResource Include="RDLC\AllEmpTaxInfo.rdlc" />
|
<EmbeddedResource Include="RDLC\AllEmpTaxInfo.rdlc" />
|
||||||
<EmbeddedResource Include="RDLC\AllMedicalClaim.rdlc" />
|
<EmbeddedResource Include="RDLC\AllMedicalClaim.rdlc" />
|
||||||
<EmbeddedResource Include="RDLC\ApointmentLetterForStuff.rdlc" />
|
<EmbeddedResource Include="RDLC\ApointmentLetterForStuff.rdlc" />
|
||||||
|
|
|
@ -11,7 +11,9 @@ export class ProdBonusSupervisor {
|
||||||
employeeNo:string; // view purpose
|
employeeNo:string; // view purpose
|
||||||
empName:string; // view purpose
|
empName:string; // view purpose
|
||||||
// employee: Employee;
|
// employee: Employee;
|
||||||
|
devName: string;
|
||||||
|
devParentName: string;
|
||||||
|
devGrantParentName: string;
|
||||||
constructor() {
|
constructor() {
|
||||||
// super();
|
// super();
|
||||||
this.id = 0;
|
this.id = 0;
|
||||||
|
|
|
@ -7,6 +7,8 @@ var ProdBonusWorkSchedule = /** @class */ (function () {
|
||||||
this.prodBonusLineID = 0;
|
this.prodBonusLineID = 0;
|
||||||
this.startDateTime = new Date();
|
this.startDateTime = new Date();
|
||||||
this.endDateTime = new Date();
|
this.endDateTime = new Date();
|
||||||
|
this.inTime = undefined;
|
||||||
|
this.outTime = undefined;
|
||||||
}
|
}
|
||||||
return ProdBonusWorkSchedule;
|
return ProdBonusWorkSchedule;
|
||||||
}());
|
}());
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"prodBonusWorkSchedule.js","sourceRoot":"","sources":["prodBonusWorkSchedule.ts"],"names":[],"mappings":";;;AAEA;IAOI;QACI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IAClC,CAAC;IACL,4BAAC;AAAD,CAAC,AAbD,IAaC;AAbY,sDAAqB"}
|
{"version":3,"file":"prodBonusWorkSchedule.js","sourceRoot":"","sources":["prodBonusWorkSchedule.ts"],"names":[],"mappings":";;;AAEA;IASI;QACI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC7B,CAAC;IACL,4BAAC;AAAD,CAAC,AAjBD,IAiBC;AAjBY,sDAAqB"}
|
|
@ -6,11 +6,15 @@ export class ProdBonusWorkSchedule{
|
||||||
prodBonusLineID: number;
|
prodBonusLineID: number;
|
||||||
startDateTime: Date;
|
startDateTime: Date;
|
||||||
endDateTime: Date;
|
endDateTime: Date;
|
||||||
|
inTime?: Date;
|
||||||
|
outTime?: Date;
|
||||||
|
totalCount?: number;
|
||||||
constructor(){
|
constructor(){
|
||||||
this.id = 0;
|
this.id = 0;
|
||||||
this.prodBonusLineID = 0;
|
this.prodBonusLineID = 0;
|
||||||
this.startDateTime = new Date();
|
this.startDateTime = new Date();
|
||||||
this.endDateTime = new Date();
|
this.endDateTime = new Date();
|
||||||
|
this.inTime = undefined;
|
||||||
|
this.outTime = undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -111,6 +111,10 @@ export class BonusService {
|
||||||
getLayoutDetails(setUpid: number) {
|
getLayoutDetails(setUpid: number) {
|
||||||
return this.apiService.httpGet<any>('/Bonus/getLayoutDetails/'+ setUpid);
|
return this.apiService.httpGet<any>('/Bonus/getLayoutDetails/'+ setUpid);
|
||||||
}
|
}
|
||||||
|
GetschedulewithTime(lineid: number) {
|
||||||
|
return this.apiService.httpGet<any>('/Bonus/GetschedulewithTime/' + lineid);
|
||||||
|
}
|
||||||
|
|
||||||
getLines(setupid: number) {
|
getLines(setupid: number) {
|
||||||
return this.apiService.httpGet<ProdBonusLine[]>('/Bonus/getLines/'+ setupid);
|
return this.apiService.httpGet<ProdBonusLine[]>('/Bonus/getLines/'+ setupid);
|
||||||
}
|
}
|
||||||
|
@ -120,6 +124,9 @@ export class BonusService {
|
||||||
getProdBonusAttnEmployeeList(item: any) {
|
getProdBonusAttnEmployeeList(item: any) {
|
||||||
return this.apiService.httpPost<Employee[]>('/Bonus/getProdBonusAttnEmployeeList', item);
|
return this.apiService.httpPost<Employee[]>('/Bonus/getProdBonusAttnEmployeeList', item);
|
||||||
}
|
}
|
||||||
|
getProdBonusAttnEmployeeListSwingAndPrinting(item: any) {
|
||||||
|
return this.apiService.httpPost<Employee[]>('/Bonus/getProdBonusAttnEmployeeListSwingAndPrinting', item);
|
||||||
|
}
|
||||||
saveAllProdBonusAttn(item: any) {
|
saveAllProdBonusAttn(item: any) {
|
||||||
return this.apiService.httpPost<any[]>('/Bonus/saveAllProdBonusAttn', item);
|
return this.apiService.httpPost<any[]>('/Bonus/saveAllProdBonusAttn', item);
|
||||||
}
|
}
|
||||||
|
|
|
@ -247,10 +247,12 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="p-col-12 p-md-12 p-lg-8">
|
<div class="p-col-12 p-md-12 p-lg-8">
|
||||||
<input [(ngModel)]="hrEmployee.nationalID" formControlName="nationalId"
|
<input [(ngModel)]="hrEmployee.nationalID" formControlName="nationalId"
|
||||||
id="txtNationalId" pInputText style="width:84%" type="text" [readonly]="!active">
|
id="txtNationalId" pInputText style="width:84%" type="text">
|
||||||
|
<!-- [readonly]="!active" -->
|
||||||
<button class="k-button k-primary" kendoButton icon="k-i-attachment-45 k-i-clip-45"
|
<button class="k-button k-primary" kendoButton icon="k-i-attachment-45 k-i-clip-45"
|
||||||
style="width: 15.5%; vertical-align: bottom; padding: 16px;" [disabled]="!active"
|
style="width: 15.5%; vertical-align: bottom; padding: 16px;"
|
||||||
(click)="popUpAttachment('NID')"></button>
|
(click)="popUpAttachment('NID')"></button>
|
||||||
|
<!-- [disabled]="!active" -->
|
||||||
</div>
|
</div>
|
||||||
<div class="p-col-12 p-md-12 p-lg-4">
|
<div class="p-col-12 p-md-12 p-lg-4">
|
||||||
<label for="txtPassportNo">Passport No</label>
|
<label for="txtPassportNo">Passport No</label>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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);
|
||||||
|
@ -225,7 +226,6 @@ export class ProductionBonusAttendanceComponent implements OnInit {
|
||||||
debugger
|
debugger
|
||||||
this.employeeList = resp;
|
this.employeeList = resp;
|
||||||
this.employeeList.forEach(x => this.AddEmployeeGridData(x.id, false));
|
this.employeeList.forEach(x => this.AddEmployeeGridData(x.id, false));
|
||||||
// console.log('employee List', this.employeeList);
|
|
||||||
},
|
},
|
||||||
(err) => {
|
(err) => {
|
||||||
this.notificationService.showError(err.error);
|
this.notificationService.showError(err.error);
|
||||||
|
@ -246,6 +246,31 @@ export class ProductionBonusAttendanceComponent implements OnInit {
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//New For Swing And Printig
|
||||||
|
if (this.prodBonusAttn.length <= 0 && (this.productionBonusSetup.productionBonusType == EnumProductionBonusType.Sewing ||
|
||||||
|
this.productionBonusSetup.productionBonusType == EnumProductionBonusType.Printing)) {
|
||||||
|
let data = {
|
||||||
|
prodLine: this.selectedLine,
|
||||||
|
date: this.selectedDate
|
||||||
|
}
|
||||||
|
this.loadingPanelService.ShowLoadingPanel = true;
|
||||||
|
this.bonusService.getProdBonusAttnEmployeeListSwingAndPrinting(data).subscribe(
|
||||||
|
(resp) => {
|
||||||
|
debugger
|
||||||
|
this.employeeList = resp;
|
||||||
|
this.employeeList.forEach(x => this.AddEmployeeGridData(x.id, false));
|
||||||
|
},
|
||||||
|
(err) => {
|
||||||
|
this.notificationService.showError(err.error);
|
||||||
|
this.loadingPanelService.ShowLoadingPanel = false;
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
this.loadingPanelService.ShowLoadingPanel = false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (this.prodBonusAttn.length > 0) {
|
if (this.prodBonusAttn.length > 0) {
|
||||||
debugger;
|
debugger;
|
||||||
for (let i = 0; i < this.prodBonusAttn.length; i++) {
|
for (let i = 0; i < this.prodBonusAttn.length; i++) {
|
||||||
|
@ -260,7 +285,7 @@ export class ProductionBonusAttendanceComponent implements OnInit {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.notificationService.showWarning('Date did not match with Work Schedule! Schedule not match');
|
this.notificationService.showWarning('Date did not match with Work Schedule','Schedule not matched!');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onClickAdd() {
|
onClickAdd() {
|
||||||
|
|
|
@ -141,7 +141,7 @@
|
||||||
<label>Line Name</label>
|
<label>Line Name</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-col-12 p-lg-5" *ngIf="isNewLine">
|
<div class="p-col-12 p-lg-5" *ngIf="isNewLine">
|
||||||
<app-dynamic-picker [dynamicPickerView]="_departmentPicker"></app-dynamic-picker>
|
<app-dynamic-picker [dynamicPickerView]="_departmentPicker" (onSelectCompleted)="createWorkSchedule($event)"></app-dynamic-picker>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-col-12 p-lg-5" *ngIf="!isNewLine">
|
<div class="p-col-12 p-lg-5" *ngIf="!isNewLine">
|
||||||
<input [(ngModel)]="selectedRow.lineName" [readonly]="!isNewLine" type="text"
|
<input [(ngModel)]="selectedRow.lineName" [readonly]="!isNewLine" type="text"
|
||||||
|
@ -181,27 +181,54 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<kendo-grid [kendoGridBinding]="prodBonusLine.prodBonusSupervisors" [sortable]="true" [style.height.%]="100"
|
<kendo-grid [kendoGridBinding]="prodBonusLine.prodBonusSupervisors" [sortable]="true" [style.height.%]="100"
|
||||||
[reorderable]="true"><!-- [resizable]="true" [pageSize]="state.take" [skip]="state.skip"
|
[reorderable]="true">
|
||||||
|
<!-- [resizable]="true" [pageSize]="state.take" [skip]="state.skip"
|
||||||
[sort]="state.sort" [pageable]="true" (dataStateChange)="dataStateChange($event)">-->
|
[sort]="state.sort" [pageable]="true" (dataStateChange)="dataStateChange($event)">-->
|
||||||
<kendo-grid-column field="empName" title="Supervisor/Line Chief/Common Worker" [width]="170">
|
<kendo-grid-column field="empName" title="Supervisor/Line Chief/Common Worker" [width]="150">
|
||||||
<!-- <ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
|
<!-- <ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
|
||||||
</ng-template> -->
|
</ng-template> -->
|
||||||
</kendo-grid-column>
|
</kendo-grid-column>
|
||||||
<kendo-grid-column field="employeeNo" title="Employee No" [width]="120">
|
<kendo-grid-column field="employeeNo" title="Employee No" [width]="100">
|
||||||
<!-- <ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
|
<!-- <ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
|
||||||
</ng-template> -->
|
</ng-template> -->
|
||||||
</kendo-grid-column>
|
</kendo-grid-column>
|
||||||
|
|
||||||
|
<kendo-grid-column field="devGrantParentName" title="top Parent (section)" [width]="120">
|
||||||
|
</kendo-grid-column>
|
||||||
|
<kendo-grid-column field="devParentName" title="parent (floor)" [width]="120">
|
||||||
|
</kendo-grid-column>
|
||||||
|
|
||||||
|
<kendo-grid-column field="devName" title="posted" [width]="120">
|
||||||
|
</kendo-grid-column>
|
||||||
|
|
||||||
|
|
||||||
<kendo-grid-column field="bonusPercent" title="Bonus Percent" [width]="100">
|
<kendo-grid-column field="bonusPercent" title="Bonus Percent" [width]="100">
|
||||||
</kendo-grid-column>
|
</kendo-grid-column>
|
||||||
<kendo-grid-column title="Actions" [width]="200">
|
<kendo-grid-column title="Actions" [width]="50">
|
||||||
<ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
|
<ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
|
||||||
<button type="button" kendoButton icon="delete" class="kt-delete"
|
<button type="button" kendoButton icon="delete" class="kt-delete"
|
||||||
style="width: fit-content;" (click)="onClickRemoveSupervisors(dataItem)">Remove</button>
|
style="width: fit-content;" (click)="onClickRemoveSupervisors(dataItem)">
|
||||||
|
Remove
|
||||||
|
</button>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</kendo-grid-column>
|
</kendo-grid-column>
|
||||||
</kendo-grid>
|
</kendo-grid>
|
||||||
</p-tabPanel>
|
</p-tabPanel>
|
||||||
<p-tabPanel header="Work Schedule" leftIcon="pi pi-briefcase">
|
<p-tabPanel header="Work Schedule" leftIcon="pi pi-briefcase">
|
||||||
|
|
||||||
|
<app-loading-panel></app-loading-panel>
|
||||||
|
<div class="p-grid">
|
||||||
|
<div class="p-col-12 p-lg-3 label-ailgn">
|
||||||
|
<button type="button" kendoButton class="kt-delete"
|
||||||
|
style="width: fit-content;" (click)="GetScheduleTime(dataItem)">
|
||||||
|
Load Time Schedule
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-12 p-lg-5 label-ailgn">
|
||||||
|
this will take around 30 Second or more.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<kendo-grid [kendoGridBinding]="prodBonusLine.prodBonusWorkSchedules" [pageable]="true"
|
<kendo-grid [kendoGridBinding]="prodBonusLine.prodBonusWorkSchedules" [pageable]="true"
|
||||||
[sortable]="true" [reorderable]="true" [resizable]="true">
|
[sortable]="true" [reorderable]="true" [resizable]="true">
|
||||||
|
|
||||||
|
@ -211,17 +238,22 @@
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</kendo-grid-column>
|
</kendo-grid-column>
|
||||||
|
|
||||||
<!-- <kendo-grid-column field="startDateTime" title="Start Time" width="100">
|
<kendo-grid-column field="inTime" title="Start Time" width="100">
|
||||||
<ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
|
<ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
|
||||||
{{dataItem.startDateTime | date: 'hh:mm a'}}
|
{{dataItem?.inTime | date: 'hh:mm'}}
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</kendo-grid-column>
|
</kendo-grid-column>
|
||||||
|
|
||||||
<kendo-grid-column field="endDateTime" title="End Time" width="100">
|
<kendo-grid-column field="outTime" title="End Time" width="100">
|
||||||
<ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
|
<ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
|
||||||
{{dataItem.endDateTime | date: 'hh:mm a'}}
|
{{dataItem?.outTime | date: 'hh:mm'}}
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</kendo-grid-column> -->
|
</kendo-grid-column>
|
||||||
|
<kendo-grid-column field="totalCount" title="Count" width="100">
|
||||||
|
<!--<ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
|
||||||
|
{{dataItem.endDateTime | date: 'hh:mm a'}}
|
||||||
|
</ng-template>-->
|
||||||
|
</kendo-grid-column>
|
||||||
</kendo-grid>
|
</kendo-grid>
|
||||||
</p-tabPanel>
|
</p-tabPanel>
|
||||||
</p-tabView>
|
</p-tabView>
|
||||||
|
|
|
@ -28,6 +28,7 @@ import { numberSymbols } from '@progress/kendo-angular-intl';
|
||||||
import { process, State } from '@progress/kendo-data-query';
|
import { process, State } from '@progress/kendo-data-query';
|
||||||
import { DataStateChangeEvent } from '@progress/kendo-angular-grid';
|
import { DataStateChangeEvent } from '@progress/kendo-angular-grid';
|
||||||
import { noUndefined } from '@angular/compiler/src/util';
|
import { noUndefined } from '@angular/compiler/src/util';
|
||||||
|
import { EnumStatus } from '../../_models/enums';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,6 +72,7 @@ export class ProductionBonusSetupComponent implements OnInit {
|
||||||
prodBonusParameter: ProdBonusParameter;
|
prodBonusParameter: ProdBonusParameter;
|
||||||
|
|
||||||
prodBonusAttn: ProdBonusAttn[];
|
prodBonusAttn: ProdBonusAttn[];
|
||||||
|
depts: Department[] = [];
|
||||||
layoutNo: string;
|
layoutNo: string;
|
||||||
// programName: string;
|
// programName: string;
|
||||||
// maxPerson: number;
|
// maxPerson: number;
|
||||||
|
@ -104,7 +106,7 @@ export class ProductionBonusSetupComponent implements OnInit {
|
||||||
department: Department;
|
department: Department;
|
||||||
|
|
||||||
selectedRow: any;
|
selectedRow: any;
|
||||||
|
scheduleTime: any;
|
||||||
|
|
||||||
|
|
||||||
editDetails: boolean = false;
|
editDetails: boolean = false;
|
||||||
|
@ -124,7 +126,9 @@ export class ProductionBonusSetupComponent implements OnInit {
|
||||||
this.prodBonusParameter = new ProdBonusParameter();
|
this.prodBonusParameter = new ProdBonusParameter();
|
||||||
this.prodBonusWork = new ProdBonusWorkSchedule();
|
this.prodBonusWork = new ProdBonusWorkSchedule();
|
||||||
this.getBonusType();
|
this.getBonusType();
|
||||||
// this.createForm();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
OnclickCheckbox() {
|
OnclickCheckbox() {
|
||||||
|
@ -313,21 +317,44 @@ export class ProductionBonusSetupComponent implements OnInit {
|
||||||
this.loadingPanelService.ShowLoadingPanel = true;
|
this.loadingPanelService.ShowLoadingPanel = true;
|
||||||
debugger;
|
debugger;
|
||||||
if (this.prodBonusLine.id !== 0) {
|
if (this.prodBonusLine.id !== 0) {
|
||||||
this.bonusService.getProdBonusAttenbyLineId(this.prodBonusLine.id).subscribe(
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
GetScheduleTime(dataItem: any) {
|
||||||
|
console.log('line');
|
||||||
|
console.log(this.prodBonusLine.prodBonusWorkSchedules);
|
||||||
|
this.loadingPanelService.ShowLoadingPanel = true;
|
||||||
|
this.bonusService.GetschedulewithTime(this.prodBonusLine.prodBonusWorkSchedules[0].prodBonusLineID).subscribe(
|
||||||
(resp) => {
|
(resp) => {
|
||||||
this.prodBonusAttn = resp;
|
this.scheduleTime = resp;
|
||||||
},
|
},
|
||||||
(err: any) => {
|
(err: any) => {
|
||||||
this.notificationService.showError(err.error);
|
this.notificationService.showError(err.error);
|
||||||
this.loadingPanelService.ShowLoadingPanel = false;
|
this.loadingPanelService.ShowLoadingPanel = false;
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
|
console.log(this.scheduleTime);
|
||||||
this.loadingPanelService.ShowLoadingPanel = false;
|
if (this.prodBonusLine.prodBonusWorkSchedules != undefined) {
|
||||||
|
var pdrs = this.prodBonusLine.prodBonusWorkSchedules;
|
||||||
|
pdrs.forEach(x => {
|
||||||
|
var item = this.scheduleTime.find(y => y.startDateTime == x.startDateTime);
|
||||||
|
if (item != undefined) {
|
||||||
|
x.inTime = new Date( item.inTime);
|
||||||
|
x.outTime = new Date( item.outTime);
|
||||||
|
x.totalCount = item.scheduleCount;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
console.log(this.prodBonusLine.prodBonusWorkSchedules);
|
||||||
|
this.loadingPanelService.ShowLoadingPanel = false;
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
onCellClickEdit(dataItem: ProdBonusLine) {
|
onCellClickEdit(dataItem: ProdBonusLine) {
|
||||||
|
@ -335,7 +362,7 @@ export class ProductionBonusSetupComponent implements OnInit {
|
||||||
// console.log(dataItem);
|
// console.log(dataItem);
|
||||||
this.isNewLine = false;
|
this.isNewLine = false;
|
||||||
this.prodBonusLine = new ProdBonusLine();
|
this.prodBonusLine = new ProdBonusLine();
|
||||||
debugger;
|
|
||||||
// if (this.isNewLayout) { //ADD Line
|
// if (this.isNewLayout) { //ADD Line
|
||||||
// this.prodBonusLine.prodBonusSupervisors = [];
|
// this.prodBonusLine.prodBonusSupervisors = [];
|
||||||
// this.prodBonusLine.prodBonusWorkSchedules = [];
|
// this.prodBonusLine.prodBonusWorkSchedules = [];
|
||||||
|
@ -434,11 +461,12 @@ export class ProductionBonusSetupComponent implements OnInit {
|
||||||
() => {
|
() => {
|
||||||
//newlineItem.amount
|
//newlineItem.amount
|
||||||
this.prodBonusLine.prodBonusSupervisors.push(newlineSupervisor);
|
this.prodBonusLine.prodBonusSupervisors.push(newlineSupervisor);
|
||||||
this.prodBonusLine.prodBonusParameters.push(newlineParameter);
|
|
||||||
|
//Commented For Test
|
||||||
|
// this.prodBonusLine.prodBonusParameters.push(newlineParameter);
|
||||||
|
|
||||||
this.prodBonusLine.scheduledHour = this.scheduledHours;
|
this.prodBonusLine.scheduledHour = this.scheduledHours;
|
||||||
this.prodBonusLine.lineName = this.department.name;
|
this.prodBonusLine.lineName = this.department.name;
|
||||||
// console.log(this.prodBonusLine);
|
|
||||||
this.clearProdbonusLine();
|
this.clearProdbonusLine();
|
||||||
// this.notificationService.showSuccess('Supervisor added to the line');
|
// this.notificationService.showSuccess('Supervisor added to the line');
|
||||||
}
|
}
|
||||||
|
@ -456,17 +484,19 @@ export class ProductionBonusSetupComponent implements OnInit {
|
||||||
// this.prodBonusLine.prodBonusWorkSchedules.push(newLayoutWork);
|
// this.prodBonusLine.prodBonusWorkSchedules.push(newLayoutWork);
|
||||||
// currentDate.setDate(currentDate.getDate() + 1);
|
// currentDate.setDate(currentDate.getDate() + 1);
|
||||||
// }
|
// }
|
||||||
for (let i = 0; currentDate <= this.productionBonusSetup.toDate; i++) {
|
|
||||||
let newLayoutWork: ProdBonusWorkSchedule = {
|
// //Commented For Test
|
||||||
prodBonusSetupID: 0,
|
// for (let i = 0; currentDate <= this.productionBonusSetup.toDate; i++) {
|
||||||
prodBonusLineID: 0,
|
// let newLayoutWork: ProdBonusWorkSchedule = {
|
||||||
id: 0,
|
// prodBonusSetupID: 0,
|
||||||
startDateTime: new Date(currentDate.setHours(0, 0, 0, 0)),
|
// prodBonusLineID: 0,
|
||||||
endDateTime: new Date(currentDate.setHours(23, 59, 59, 999))
|
// id: 0,
|
||||||
};
|
// startDateTime: new Date(currentDate.setHours(0, 0, 0, 0)),
|
||||||
this.prodBonusLine.prodBonusWorkSchedules.push(newLayoutWork);
|
// endDateTime: new Date(currentDate.setHours(23, 59, 59, 999))
|
||||||
currentDate.setDate(currentDate.getDate() + 1);
|
// };
|
||||||
}
|
// this.prodBonusLine.prodBonusWorkSchedules.push(newLayoutWork);
|
||||||
|
// currentDate.setDate(currentDate.getDate() + 1);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
debugger;
|
debugger;
|
||||||
|
@ -585,4 +615,32 @@ export class ProductionBonusSetupComponent implements OnInit {
|
||||||
this.scheduledHours;
|
this.scheduledHours;
|
||||||
this.productionBonusSetup.productionBonusLines
|
this.productionBonusSetup.productionBonusLines
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
createWorkSchedule(data: any) {
|
||||||
|
debugger;
|
||||||
|
var newlineParameter: ProdBonusParameter = new ProdBonusParameter();
|
||||||
|
if (this.isNewLine){
|
||||||
|
newlineParameter.itemID = this._departmentPicker.selectedID;
|
||||||
|
newlineParameter.itemType = 0;
|
||||||
|
newlineParameter.prodBonusSetupID = this.productionBonusSetup.id;
|
||||||
|
this.prodBonusLine.prodBonusParameters.push(newlineParameter);
|
||||||
|
|
||||||
|
const currentDate = new Date(this.productionBonusSetup.fromDate);
|
||||||
|
const maxDate = new Date(this.productionBonusSetup.toDate);
|
||||||
|
maxDate.setDate(this.productionBonusSetup.toDate.getDate() + 1);
|
||||||
|
|
||||||
|
for (let i = 0; currentDate <= maxDate; i++) {
|
||||||
|
let newLayoutWork: ProdBonusWorkSchedule = {
|
||||||
|
prodBonusSetupID: 0,
|
||||||
|
prodBonusLineID: 0,
|
||||||
|
id: 0,
|
||||||
|
startDateTime: new Date(currentDate.setHours(0, 0, 0, 0)),
|
||||||
|
endDateTime: new Date(currentDate.setHours(23, 59, 59, 999))
|
||||||
|
};
|
||||||
|
this.prodBonusLine.prodBonusWorkSchedules.push(newLayoutWork);
|
||||||
|
currentDate.setDate(currentDate.getDate() + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ using NPOI.SS.Formula.Eval;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using Payroll.BO;
|
using Payroll.BO;
|
||||||
using Ease.Core.Model;
|
using Ease.Core.Model;
|
||||||
|
using Microsoft.AspNetCore.Mvc.ViewFeatures;
|
||||||
|
|
||||||
namespace HRM.UI.Controllers.Payroll
|
namespace HRM.UI.Controllers.Payroll
|
||||||
{
|
{
|
||||||
|
@ -463,6 +464,7 @@ namespace HRM.UI.Controllers.Payroll
|
||||||
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
|
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
|
||||||
ProductionBonusSetup item = new ProductionBonusSetup();
|
ProductionBonusSetup item = new ProductionBonusSetup();
|
||||||
//ProdBonusLine item = new ProdBonusLine();
|
//ProdBonusLine item = new ProdBonusLine();
|
||||||
|
List<Department> detps = new DepartmentService().Get(EnumStatus.Regardless, (int)currentUser.PayrollTypeID);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
item = _productionBonusSetupService.Get(ID);
|
item = _productionBonusSetupService.Get(ID);
|
||||||
|
@ -474,7 +476,33 @@ namespace HRM.UI.Controllers.Payroll
|
||||||
foreach (ProdBonusSupervisor prodSupervisor in prodLine.ProdBonusSupervisors)
|
foreach (ProdBonusSupervisor prodSupervisor in prodLine.ProdBonusSupervisors)
|
||||||
{
|
{
|
||||||
oEmp = new EmployeeService().Get(prodSupervisor.EmployeeID);
|
oEmp = new EmployeeService().Get(prodSupervisor.EmployeeID);
|
||||||
|
if (oEmp.DepartmentID != null)
|
||||||
|
{
|
||||||
|
|
||||||
|
var dev = detps.FirstOrDefault(x => x.ID == oEmp.DepartmentID);
|
||||||
|
prodSupervisor.devName = dev.Name;
|
||||||
|
if(dev.ParentsID !=null)
|
||||||
|
{
|
||||||
|
var pr = detps.FirstOrDefault(x => x.ID == dev.ParentID);
|
||||||
|
if (pr != null)
|
||||||
|
{
|
||||||
|
prodSupervisor.devParentName = pr.Name;
|
||||||
|
|
||||||
|
if (pr.ParentsID != null)
|
||||||
|
{
|
||||||
|
var gpr = detps.FirstOrDefault(x => x.ID == pr.ParentID);
|
||||||
|
if (gpr != null)
|
||||||
|
{
|
||||||
|
prodSupervisor.devGrantParentName = gpr.Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
prodSupervisor.EmpName = oEmp.Name;
|
prodSupervisor.EmpName = oEmp.Name;
|
||||||
prodSupervisor.EmployeeNo = oEmp.EmployeeNo;
|
prodSupervisor.EmployeeNo = oEmp.EmployeeNo;
|
||||||
|
|
||||||
|
@ -496,6 +524,25 @@ namespace HRM.UI.Controllers.Payroll
|
||||||
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
|
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return Ok(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[HttpGet("GetschedulewithTime/{lineid}")]
|
||||||
|
public ActionResult GetschedulewithTime(int lineid)
|
||||||
|
{
|
||||||
|
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
|
||||||
|
DataTable item =null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
item = new ProdBonusWorkScheduleService().GetschedulewithTime(lineid);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
|
||||||
|
}
|
||||||
|
|
||||||
return Ok(item);
|
return Ok(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -522,6 +569,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 +577,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)
|
||||||
|
@ -609,6 +657,52 @@ namespace HRM.UI.Controllers.Payroll
|
||||||
|
|
||||||
return Ok(_oFinalEmployees);
|
return Ok(_oFinalEmployees);
|
||||||
}
|
}
|
||||||
|
[HttpPost]
|
||||||
|
[Route("getProdBonusAttnEmployeeListSwingAndPrinting")]
|
||||||
|
public ActionResult getProdBonusAttnEmployeeListSwingAndPrinting(dynamic pItem)
|
||||||
|
{
|
||||||
|
var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(pItem));
|
||||||
|
DateTime date = (DateTime)item["date"].ToObject<DateTime>();
|
||||||
|
ProdBonusLine _oProdBonusLine = (ProdBonusLine)item["prodLine"].ToObject<ProdBonusLine>();
|
||||||
|
|
||||||
|
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
|
||||||
|
List<Employee> _oEmployees = new EmployeeService().Get(EnumEmployeeStatus.Live, (int)currentUser.PayrollTypeID);
|
||||||
|
List<Employee> _oFinalEmployees = new List<Employee>();
|
||||||
|
List<ProdBonusParameter> _oProdBonusParameters = new List<ProdBonusParameter>();
|
||||||
|
List<ProdBonusSupervisor> _oProdBonusSupervisors = new List<ProdBonusSupervisor>();
|
||||||
|
List<DailyAttnProcess> _oDailyAttnProsess = new List<DailyAttnProcess>();
|
||||||
|
List<ProdBonusAttn> _oProdBonusAttns = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
DateTime? maxDate = _prodBonusAttnService.GetMaxDate(_oProdBonusLine.ProdBonusSetupID, _oProdBonusLine.ID, date);
|
||||||
|
|
||||||
|
if(maxDate != null)
|
||||||
|
_oProdBonusAttns = _prodBonusAttnService.GetBySetupLineDate(_oProdBonusLine.ProdBonusSetupID, _oProdBonusLine.ID, (DateTime)maxDate);
|
||||||
|
|
||||||
|
List<ProdBonusParameter> desigparam = _oProdBonusParameters.Where(o => o.ItemType == EnumBonusItemType.Designation).ToList();
|
||||||
|
if(_oProdBonusAttns != null && _oProdBonusAttns.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var pda in _oProdBonusAttns)
|
||||||
|
{
|
||||||
|
Employee emp = _oEmployees.Find(o => o.ID == pda.EmployeeID);
|
||||||
|
|
||||||
|
if (emp != null) _oFinalEmployees.Add(emp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
string emIds = _oFinalEmployees.Aggregate(new StringBuilder(), (sb, x) => sb.Append(x.ID + ","), sb => sb.ToString().Trim(','));
|
||||||
|
if (emIds != "")
|
||||||
|
{
|
||||||
|
_oDailyAttnProsess = new DailyAttnProcessService().Get(emIds, date.Date, date.Date.AddHours(23.9));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Ok(_oFinalEmployees);
|
||||||
|
}
|
||||||
[HttpGet("getByLineID/{lineID}")]
|
[HttpGet("getByLineID/{lineID}")]
|
||||||
public ActionResult getByLineID(int lineID)
|
public ActionResult getByLineID(int lineID)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user