Compare commits

...

87 Commits

Author SHA1 Message Date
bf55c6674a merge from Mashfic 2025-07-01 15:16:25 +06:00
6b9726d850 Merge pull request 'Employee Search (Short Profile, Long Profile, Lifecycle), job card remarks' (#44) from dev_Mohaimen into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/44
2025-07-01 13:01:51 +06:00
Mohaimen Hasan
cd9c836c62 Employee Search (Short Profile, Long Profile, Lifecycle), job card remarks 2025-06-30 10:19:54 +06:00
1ce3ff8a14 Employee details report 2025-06-25 10:19:55 +06:00
616cb5d748 Merge pull request 'benefit' (#43) from dev_chapal into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/43
2025-05-08 14:33:47 +06:00
ea05eb3440 benefit 2025-05-08 14:27:24 +06:00
f02f0a4348 Merge pull request 'ok' (#42) from dev_chapal into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/42
2025-05-06 11:17:17 +06:00
7b04c7a3e5 ok 2025-05-06 11:14:15 +06:00
2791455be2 Merge pull request 'OT process' (#41) from dev_chapal into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/41
2025-04-28 16:45:48 +06:00
a0150b0eed OT process 2025-04-28 16:43:39 +06:00
8169c0791b Merge pull request 'Attendance Manual Entry' (#40) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/40
2025-04-28 10:08:05 +06:00
40e190844f manual entry 2025-04-28 10:05:31 +06:00
37fdfec490 Merge branch 'devqc' into dev_mashfiq 2025-04-27 14:49:52 +06:00
999280b906 attendance manual entry modified 2025-04-27 14:49:02 +06:00
3ed751441d Merge pull request 'Attendance process Not in workplan employees show (Task : 20250421-0361)' (#39) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/39
2025-04-27 11:15:55 +06:00
dc1309640f manual entry 2025-04-27 11:13:48 +06:00
13d197b2e3 Merge pull request 'Attn process and benifit process' (#38) from dev_chapal into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/38
2025-04-27 10:27:16 +06:00
dddeb8fbed Attn process and benifit process 2025-04-24 17:04:36 +06:00
5e569492ba Attendance process Not in workplan employees show (Task : 20250421-0361) 2025-04-21 17:25:12 +06:00
b812f3c53c Merge pull request 'dev_mashfiq' (#37) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/37
2025-04-20 14:41:52 +06:00
43fbf03d1d Attendance reports 2025-04-17 12:11:08 +06:00
2a30841b13 Attendance report starus edition 2025-04-13 17:30:55 +06:00
63253ff06d Merge pull request 'Production bonus break time for ramadan' (#36) from dev_chapal into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/36
2025-03-25 11:11:39 +06:00
256b364ca9 Merge pull request 'Bangla Info and Employee serach' (#35) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/35
2025-03-25 11:11:15 +06:00
d0c80f9276 Production bonus break time for ramadan 2025-03-25 11:09:47 +06:00
9200c31f10 AttendanceProcess Modification
Task No- 20250320-0128
2025-03-24 14:29:03 +06:00
4b7e9c47b1 Govt service book report, Job card Bug fix
(Task No - 20250317-0072)
2025-03-17 15:04:14 +06:00
38a0a298d1 roaster assignment, multiple employee job card report, Monthly attendance details report modified 2025-03-13 11:28:40 +06:00
47414d9124 Merge branch 'devqc' into dev_mashfiq 2025-02-27 17:13:48 +06:00
f8882b172b Bangla Info and Employee serach 2025-02-27 17:11:40 +06:00
89f428bd2f Merge pull request 'dev_mashfiq' (#34) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/34
2025-02-27 11:42:01 +06:00
a3c8a22703 default set in nominee 2025-02-26 12:41:11 +06:00
2547d6209e nominee , family , academic modified and default value addition 2025-02-25 12:54:57 +06:00
efbd3ca782 Profile related works 2025-02-23 16:13:19 +06:00
751ae428bb blood group 2025-02-23 09:07:30 +06:00
e9b6337030 EnumBloodgroup changed 2025-02-23 09:01:17 +06:00
057e27c226 multiple letter generation 2025-02-12 18:02:49 +06:00
083ae15e1e employee profile issues 2025-02-12 11:12:32 +06:00
6e8a28a477 roster assignment type addition 2025-02-05 15:02:49 +06:00
f418e7ab3d employee profile issues upon client requirement 2025-02-04 12:12:16 +06:00
1558e175e8 Merge pull request 'Prod Bonus Setup Modified Edit in supervisor' (#32) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/32
2025-01-26 17:27:15 +06:00
38e1917a33 Prod Bonus Setup Modified Edit in supervisor 2025-01-26 15:00:26 +06:00
491b56cc0f Merge pull request 'dev_mashfiq' (#31) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/31
2025-01-26 12:00:59 +06:00
ccabffeeec Kpi Report modified 2025-01-23 16:34:05 +06:00
634c30f368 IsSalaryprocess null checker 2025-01-22 11:20:55 +06:00
116f8171ef profile letter 2025-01-19 15:20:09 +06:00
558c53d4d3 Profile generated letter 2025-01-16 18:23:03 +06:00
2d28fb9ac5 Merge branch 'devqc' into dev_mashfiq 2025-01-16 16:19:39 +06:00
accd302ef4 msword, profile letter 2025-01-16 16:18:21 +06:00
e6cafe58f8 Merge pull request 'Pro Pic Sign' (#30) from dev_chapal into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/30
2025-01-16 15:35:21 +06:00
0831f3df6a Pro Pic Sign 2025-01-16 15:32:16 +06:00
dc29f2f17c profile letter 2025-01-15 18:02:59 +06:00
7b8473faef profile letter Template 2025-01-15 17:30:18 +06:00
327d9843d7 Merge pull request 'Sp_dashboardinformation Procedure fucntion Changed for Timout Exception' (#28) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/28
2025-01-15 16:54:22 +06:00
e77dbeaf9f Merge pull request 'dev_chapal' (#29) from dev_chapal into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/29
2025-01-15 16:54:03 +06:00
4468d8f269 profile 2025-01-15 16:47:46 +06:00
4f7337c5b7 profile reports 2025-01-14 18:23:48 +06:00
89f9dddd85 employee profile Backend function addition 2025-01-14 10:55:32 +06:00
be93060dea Job card report problem solved 2025-01-13 14:40:31 +06:00
d78c5879ac Sp_dashboardinformation Procedure fucntion Changed for Timout Exception 2025-01-09 15:58:16 +06:00
62d6ccb45c Merge from Chapal 2025-01-09 12:41:23 +06:00
792277e83b Prod validation 2025-01-09 12:03:52 +06:00
8ebc08eb60 Merge pull request 'dev_mashfiq' (#26) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/26
2025-01-09 10:53:27 +06:00
cde8907768 Employee Profile and Prod bonus setup 2025-01-09 10:44:51 +06:00
af46e47314 bonus 2025-01-07 15:40:12 +06:00
5b834601eb EmployeeNo generation placed just before save 2025-01-07 14:14:49 +06:00
6a89e67a42 Attendance Reports 2025-01-06 18:28:16 +06:00
ceb4fa8fb1 user role issue 2025-01-02 13:27:05 +06:00
6babd91d22 Merge pull request 'Prod' (#24) from dev_chapal into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/24
2024-12-24 13:01:51 +06:00
77a7512781 Prod 2024-12-24 12:59:08 +06:00
110fc609ac Merge pull request 'Single Employee Picker Modified for Department permission' (#23) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/23
2024-12-23 10:51:21 +06:00
4ab0535819 Merge branch 'devqc' into dev_mashfiq 2024-12-18 11:58:59 +06:00
134c0db3d1 Single Employee Picker Modified 2024-12-17 18:22:20 +06:00
c576cea7d7 Merge pull request 'bug' (#22) from dev_chapal into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/22
2024-12-17 16:41:32 +06:00
9e974f1b6e bug 2024-12-17 16:39:43 +06:00
f784e6f7e9 Merge pull request 'worked on employee basic info and deleted life cycle report' (#21) from dev_sojib into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/21
2024-12-17 16:39:26 +06:00
55590f8035 Merge pull request 'Prod Bonus Attn grid modified' (#20) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/20
2024-12-17 14:12:57 +06:00
710f5ba9c4 Data Permission bug fix 2024-12-12 15:44:31 +06:00
6063bf6cf9 Prod Bonus Attn stable grid modified 2024-12-12 11:45:37 +06:00
a95acdeaef Merge pull request 'Employee Design-wise prod bonus report & employee long and short profile' (#18) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/18
2024-12-11 17:13:32 +06:00
a0474a12b3 Employee Picker search modified 2024-12-11 11:49:15 +06:00
b3aaed7af4 employee search ordered and lenth addition 2024-12-10 17:01:26 +06:00
6a436e9b3c Employee Joining status Issue Fixed 2024-12-09 14:34:10 +06:00
ca8befd8cb Employee Short profile and long profile issues 2024-11-27 12:55:13 +06:00
bfd2b38e58 Merge branch 'devqc' into dev_mashfiq 2024-11-26 12:02:21 +06:00
d3a7d1be86 Merge branch 'devqc' into dev_mashfiq 2024-11-25 10:07:13 +06:00
185f9f1155 Empdesign wise prod bonus report 2024-11-25 10:05:39 +06:00
152 changed files with 52154 additions and 8275 deletions

View File

@ -441,20 +441,21 @@ namespace HRM.BO
} }
} }
public bool OnlyManualInTime //public bool OnlyManualInTime
{ //{
get { // get {
return (this.IsManualEntry == true && this.ActualInTime != null) ? true : false;} // return (this.IsManualEntry == true && this.ActualInTime != null) ? true : false;}
}
public bool OnlyManualOutTime
{
get
{
return (this.IsManualEntry == true && this.ActualOutTime != null) ? true : false;
}
}
//}
//public bool OnlyManualOutTime
//{
// get
// {
// return (this.IsManualEntry == true && this.ActualOutTime != null) ? true : false;
// }
//}
public bool OnlyManualInTime { get; set; }
public bool OnlyManualOutTime { get; set; }
@ -3382,6 +3383,7 @@ namespace HRM.BO
DataTable getTopEmpAbsentData(Employee oEmp, EnumAttendanceType type); DataTable getTopEmpAbsentData(Employee oEmp, EnumAttendanceType type);
DataTable getcorehrAbsentData(Employee oEmp, EnumAttendanceType type); DataTable getcorehrAbsentData(Employee oEmp, EnumAttendanceType type);
DataSet AttnDaysSummaryForSalaryProcess(DateTime FromDate, DateTime ToDate); DataSet AttnDaysSummaryForSalaryProcess(DateTime FromDate, DateTime ToDate);
List<DailyAttnProcess> GetByEmployees(DateTime attnDate, string employeeIDs);
} }
#endregion #endregion

View File

@ -1,6 +1,7 @@
using Ease.Core.Model; using Ease.Core.Model;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@ -504,6 +505,20 @@ namespace HRM.BO
return isNullOrWhiteSpace; return isNullOrWhiteSpace;
} }
public static string[] GetDFSL(DataTable dt, string nDepartmentID)
{
string sDes = "";
foreach (DataRow dr in dt.Rows)
{
if (dr[0].ToString() == nDepartmentID)
{
sDes = dr[3].ToString();
break;
}
}
string[] values = sDes.Split(',');
return values;
}
} }
public class CustomException : Exception public class CustomException : Exception

View File

@ -542,6 +542,7 @@ namespace HRM.BO
void UpdatePayrollType(int empID, int payrollTypeID, DateTime dEffectDate); void UpdatePayrollType(int empID, int payrollTypeID, DateTime dEffectDate);
//void SaveIntegration(List<HREmployee> oEmps); //void SaveIntegration(List<HREmployee> oEmps);
int Save(Employee item); int Save(Employee item);
Employee SaveEmployee(Employee item);
//void Delete(int id); //void Delete(int id);
//void DeleteAll(); //void DeleteAll();
//string GenerateLoanNo(Employee oEmp, string sLoanName); //string GenerateLoanNo(Employee oEmp, string sLoanName);

View File

@ -312,18 +312,10 @@ namespace HRM.BO
type = "A"; type = "A";
break; break;
case EnumAttendanceType.Delay:
type = "L";
break;
case EnumAttendanceType.Holiday: case EnumAttendanceType.Holiday:
type = "H"; type = "H";
break; break;
case EnumAttendanceType.Late:
type = "L";
break;
case EnumAttendanceType.Leave: case EnumAttendanceType.Leave:
type = "Lv"; type = "Lv";
break; break;
@ -332,6 +324,17 @@ namespace HRM.BO
type = "P"; type = "P";
break; break;
case EnumAttendanceType.HalfDay:
type = "HD";
break;
case EnumAttendanceType.Delay:
type = "L";
break;
case EnumAttendanceType.Late:
type = "L";
break;
case EnumAttendanceType.OutSideDuty: case EnumAttendanceType.OutSideDuty:
type = "OD"; type = "OD";
@ -1377,11 +1380,11 @@ namespace HRM.BO
//return words; //return words;
#endregion #endregion
string[] Below20 = { "", "One ", "Two ", "Three ", "Four ", string[] Below20 = { "", "One ", "Two ", "Three ", "Four ",
"Five ", "Six " , "Seven ", "Eight ", "Nine ", "Ten ", "Eleven ", "Five ", "Six " , "Seven ", "Eight ", "Nine ", "Ten ", "Eleven ",
"Twelve " , "Thirteen ", "Fourteen ","Fifteen ", "Twelve " , "Thirteen ", "Fourteen ","Fifteen ",
"Sixteen " , "Seventeen ","Eighteen " , "Nineteen " }; "Sixteen " , "Seventeen ","Eighteen " , "Nineteen " };
string[] Below100 = { "", "", "Twenty ", "Thirty ", string[] Below100 = { "", "", "Twenty ", "Thirty ",
"Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety " }; "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety " };
string InWords = ""; string InWords = "";
if (Num >= 1 && Num < 20) if (Num >= 1 && Num < 20)
InWords += Below20[Num]; InWords += Below20[Num];
@ -1398,6 +1401,54 @@ namespace HRM.BO
return InWords; return InWords;
} }
public static string MillionToInWords(int no)
{
if (no == 0)
return "zero";
if (no < 0)
return "minus " + MillionToInWords(Math.Abs(no));
string stringValue = "";
if ((no / 1000000) > 0)
{
stringValue += MillionToInWords(no / 1000000) + " million ";
no %= 1000000;
}
if ((no / 1000) > 0)
{
stringValue += MillionToInWords(no / 1000) + " thousand ";
no %= 1000;
}
if ((no / 100) > 0)
{
stringValue += MillionToInWords(no / 100) + " hundred ";
no %= 100;
}
if (no > 0)
{
if (stringValue != "")
stringValue += "and ";
var units = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
var tens = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
if (no < 20)
stringValue += units[no];
else
{
stringValue += tens[no / 10];
if ((no % 10) > 0)
stringValue += "-" + units[no % 10];
}
}
return stringValue;
}
} }

View File

@ -417,7 +417,8 @@ namespace HRM.BO
{ {
Email = 1, Email = 1,
Event = 2, Event = 2,
Letter = 3 Letter = 3,
Desktop_Letter = 4
} }
public enum EnumLeaveDayPeriod public enum EnumLeaveDayPeriod
@ -555,9 +556,14 @@ namespace HRM.BO
public const string CandidateDesig = "<<CANDIDATEDESIGNATION>>"; public const string CandidateDesig = "<<CANDIDATEDESIGNATION>>";
public const string CandidateGrade = "<<CANDIDATEGRADE>>"; public const string CandidateGrade = "<<CANDIDATEGRADE>>";
public const string CandidateBasic = "<<CANDIDATEBASIC>>"; public const string CandidateBasic = "<<CANDIDATEBASIC>>";
public const string CandidateBasicPercent = "<<CANDIDATEBASICPERCENT>>";
public const string AllowHR = "<<ALLOWHR>>"; public const string AllowHR = "<<ALLOWHR>>";
public const string AllowHRPercent = "<<ALLOWHRPERCENT>>";
public const string AllowLTA = "<<ALLOWLTA>>"; public const string AllowLTA = "<<ALLOWLTA>>";
public const string AllowMedical = "<<ALLOWMEDICAL>>";
public const string AllowMedicalPercent = "<<ALLOWMEDICALPERCENT>>";
public const string AllowConveyance = "<<ALLOWCONVEYANCE>>"; public const string AllowConveyance = "<<ALLOWCONVEYANCE>>";
public const string AllowConveyancePercent = "<<ALLOWCONVEYANCEPERCENT>>";
public const string AllowTotal = "<<TOTAL>>"; public const string AllowTotal = "<<TOTAL>>";
public const string AcceptWithIN = "<<ACCEPTWITHIN>>"; public const string AcceptWithIN = "<<ACCEPTWITHIN>>";
public const string JoiningBefore = "<<JOINBEFORE>>"; public const string JoiningBefore = "<<JOINBEFORE>>";
@ -575,6 +581,53 @@ namespace HRM.BO
public const string LineManagerDesignation = "<<SUPERVISORDESIGNATION>>"; public const string LineManagerDesignation = "<<SUPERVISORDESIGNATION>>";
public const string FathersName = "<<FATHERSNAME>>"; public const string FathersName = "<<FATHERSNAME>>";
public const string MothersName = "<<MOTHERSNAME>>"; public const string MothersName = "<<MOTHERSNAME>>";
public const string TakaInWord = "<<TakaInWord>>";
public const string EmpPresentAddress = "<<EMPPresentAddress>>";
public const string EmpPresentDistrict = "<<EMPPresentDistrict>>";
public const string EmpPresentThana = "<<EMPPresentThana>>";
public const string EmpPresentCountry = "<<EMPPresentCountry>>";
public const string EmpNationality = "<<EMPNationality>>";
public const string EmpPresentPhone = "<<EMPPresentPhone>>";
public const string EmpPresentMobile = "<<EMPPresentMobile>>";
public const string EmpReligion = "<<EmpReligion>>";
public const string EmpGender = "<<EmpGender>>";
public const string EmpMaritalStatus = "<<EmpMaritalStatus>>";
// Bangla Tags
public const string EmpNameBangla = "<<bvg>>";
public const string EmpCodeBangla = "<<‡KvW>>";
public const string EmpWorkType = "<<Kv‡RiaiY>>";
public const string EmpSpouseName = "<<¯^vgx/¯¿xibvg>>";
public const string JoiningDateBangla = "<<‡hvM`vb>>";
public const string EmpDesignaionBangla = "<<c`ex>>";
public const string EmpDepartmentBangla = "<<wefvM>>";
public const string BirthDateBangla = "<<Rb¥ZvwiL>>";
public const string ProbationDateBangla = "<<wk¶vbexkZvwiL>>";
public const string GradeBangla = "<<†MÖW>>";
public const string BasicSalaryBangla = "<<gyj†eZb>>";
public const string HouseRentBangla = "<<evoxfvov>>";
public const string ConveyenceBangla = "<<hvZvqvZfvZv>>";
public const string MedicalBangla = "<<wPwKrmvfvZv>>";
public const string FoodBangla = "<<Lv`¨fvZv>>";
public const string AttendenceBonusBangla = "<<ab>>";
public const string ConductBonusBangla = "<<cb>>";
public const string FatherNameBangla = "<<wcZvibvg>>";
public const string MotherNameBangla = "<<gvZvibvg>>";
public const string SpouseNameBangla = "<<¯úvD†Ri bvg>>";
public const string VillagePABangla = "<<¯vqxMÖvg>>";
public const string PostOfficePABangla = "<<¯vqx‡cvóAwdm>>";
public const string ThanaPABangla = "<<¯vqx_vbv>>";
public const string DistrictPABangla = "<<¯vqx‡Rjv>>";
public const string VillageTABangla = "<<eZ©gvbMÖvg>>";
public const string PostOfficeTABangla = "<<eZ©gvb‡cvóAwdm>>";
public const string ThanaTABangla = "<<eZ©gvb_vbv>>";
public const string DistrictTABangla = "<<eZ©gvb‡Rjv>>";
public const string TotalTakaBangla = "<<me©‡gvU>>";
public const string SectionBangla = "<<‡mKkb>>";
public const string BloodGroupBangla = "<<i‡³iMÖæc>>";
public const string FloorBangla = "<<‡d¬vi>>";
#endregion #endregion
@ -1424,16 +1477,16 @@ namespace HRM.BO
public enum EnumBloodGroup public enum EnumBloodGroup
{ {
None = 0, NA = 0,
APos = 1, None = 1,
ANeg = 2, APos = 2,
BPos = 3, ANeg = 3,
BNeg = 4, BPos = 4,
OPos = 5, BNeg = 5,
ONeg = 6, OPos = 6,
ABPos = 7, ONeg = 7,
ABNeg = 8, ABPos = 8,
NA = 9 ABNeg = 9
} }
@ -2372,13 +2425,24 @@ namespace HRM.BO
//Delay = 3, //Delay = 3,
//Leave = 4, //Leave = 4,
//Holiday = 5, //Holiday = 5,
WeeklyOff = 6, //WeeklyOff = 6,
//TourDuty = 7, //TourDuty = 7,
//OfficialDuty = 8, //OfficialDuty = 8,
Compensation = 9, //Compensation = 9,
ManualEntry = 10, //ManualEntry = 10,
//Late = 11 //Late = 11
None = 0, None = 0,
//Present = 1,
//Absent = 2,
//Delay = 3,
//Late = 11,
//Early = 12,
//Leave = 4,
//Holiday = 5,
//OutSideDuty = 7,
//WeeklyHoliday = 8,
//HalfDay = 18,
//LOA = 22
Present = 1, Present = 1,
Absent = 2, Absent = 2,
Delay = 3, Delay = 3,
@ -2386,10 +2450,9 @@ namespace HRM.BO
Early = 12, Early = 12,
Leave = 4, Leave = 4,
Holiday = 5, Holiday = 5,
HalfDay = 6,
OutSideDuty = 7, OutSideDuty = 7,
WeeklyHoliday = 8, WeeklyHoliday = 8
HalfDay = 18,
LOA = 22
} }
@ -3991,4 +4054,13 @@ namespace HRM.BO
ReadyInOneYear = 2, ReadyInOneYear = 2,
ReadyInTwoYears = 3 ReadyInTwoYears = 3
} }
public enum EnumProfileReportType : short
{
Print_CV = 1,
Employee_Service_Book = 2,
Appointment_Letter_Worker = 3,
Appointment_Letter_Staff = 4,
Appointment_Letter_Officer = 5
}
} }

View File

@ -259,7 +259,9 @@ namespace HRM.BO
public Relation ContactPersonRelation { get; set; } public Relation ContactPersonRelation { get; set; }
public string PermanentAddressInBangla { get; set; } public string PermanentAddressInBangla { get; set; }
public string PresentAddressInBangla { get; set; } public string PresentAddressInBangla { get; set; }
public string PresentPO { get; set; }
public string PresentPOInBangla { get; set; } public string PresentPOInBangla { get; set; }
public string PermanentPO { get; set; }
public string ParmanentPOInBangla { get; set; } public string ParmanentPOInBangla { get; set; }
//#region Property PermanentDistrict : District //#region Property PermanentDistrict : District
@ -989,6 +991,7 @@ namespace HRM.BO
_telePhone = string.Empty; _telePhone = string.Empty;
_emailAddress = string.Empty; _emailAddress = string.Empty;
Gender = EnumGender.None;
} }
#endregion #endregion
@ -1128,7 +1131,24 @@ namespace HRM.BO
} }
#endregion #endregion
#region Property NomineeMobileNo : string
private string _nomineeMobileNo;
public string NomineeMobileNo
{
get { return _nomineeMobileNo; }
set { _nomineeMobileNo = value; }
}
#endregion
public string FatherName { get; set; }
public string MotherName { get; set; }
public string SpouseName { get; set; }
public string NationalID{ get; set; }
public EnumGender Gender { get; set; }
public int? DistrictID{ get; set; }
public int? ThanaID { get; set; }
public string PostOffice { get; set; }
public EnumProfileStatus ProfileStatus { get; set; } public EnumProfileStatus ProfileStatus { get; set; }
public string NomineeStatus { get; set; } public string NomineeStatus { get; set; }
public bool HasPicture { get; set; } public bool HasPicture { get; set; }
@ -1300,8 +1320,8 @@ namespace HRM.BO
#endregion #endregion
//CGPA or Marks //CGPA or Marks
#region GPAOrMarks #region GPAOrMarks
private double _gpa; private double? _gpa;
public double GPAOrMarks public double? GPAOrMarks
{ {
get { return _gpa; } get { return _gpa; }
set { _gpa = value; } set { _gpa = value; }
@ -1310,8 +1330,8 @@ namespace HRM.BO
//OutOf //OutOf
#region Property OutOf : double #region Property OutOf : double
private double _outOf; private double? _outOf;
public double OutOf public double? OutOf
{ {
get { return _outOf; } get { return _outOf; }
set { _outOf = value; } set { _outOf = value; }
@ -2349,7 +2369,7 @@ namespace HRM.BO
#region parent's function definition #region parent's function definition
HREmployee Get(int id); HREmployee Get(int id);
int SavePersonalInfo(HREmployee employee); HREmployee SavePersonalInfo(HREmployee employee);
void SaveEmployeeProfileUpload(List<HREmployee> oHREmployee); void SaveEmployeeProfileUpload(List<HREmployee> oHREmployee);
void DeleteChildData(string tableName, string columnName, int id); void DeleteChildData(string tableName, string columnName, int id);
List<HREmployee> GetAllHREmps(); List<HREmployee> GetAllHREmps();

View File

@ -26,7 +26,18 @@
<Compile Remove="Attendance\BuyerSetup.cs" /> <Compile Remove="Attendance\BuyerSetup.cs" />
<Compile Remove="Organogram\OrganisationChart.cs" /> <Compile Remove="Organogram\OrganisationChart.cs" />
<Compile Remove="Process\NotificationProcess.cs" /> <Compile Remove="Process\NotificationProcess.cs" />
<Compile Remove="TagOutput\MSWord.cs" /> </ItemGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Interop.Word">
<WrapperTool>tlbimp</WrapperTool>
<VersionMinor>7</VersionMinor>
<VersionMajor>8</VersionMajor>
<Guid>00020905-0000-0000-c000-000000000046</Guid>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
<EmbedInteropTypes>true</EmbedInteropTypes>
</COMReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -110,6 +110,28 @@ namespace HRM.BO
get { return _basicSalary; } get { return _basicSalary; }
set { _basicSalary = value; } set { _basicSalary = value; }
} }
private DateTime _encashMonth;
public DateTime EncashMonth
{
get { return _encashMonth; }
set { _encashMonth = value; }
}
private DateTime _encashmentFromDate;
public DateTime EncashmentFromDate
{
get { return _encashmentFromDate; }
set { _encashmentFromDate = value; }
}
private DateTime _encashmentToDate;
public DateTime EncashmentToDate
{
get { return _encashmentToDate; }
set { _encashmentToDate = value; }
}
#region Property IncomeTax : List<IncomeTax> #region Property IncomeTax : List<IncomeTax>
private List<IncomeTax> _incomeTax = null; private List<IncomeTax> _incomeTax = null;

View File

@ -58,6 +58,7 @@ namespace HRM.BO
public string Experience { get; set; } public string Experience { get; set; }
public string Skill { get; set; } public string Skill { get; set; }
public string PrevCandidateStatus { get; set; } public string PrevCandidateStatus { get; set; }
public string TrackNo { get; set; }
#endregion #endregion
//#region Service Factory ICVService : ICVService //#region Service Factory ICVService : ICVService

View File

@ -383,7 +383,7 @@ namespace HRM.BO
List<SalaryProcessStatus> SalaryProcess(SalaryProcess item, List<Employee> employees); List<SalaryProcessStatus> SalaryProcess(SalaryProcess item, List<Employee> employees);
int Save(SalaryProcess item); int Save(SalaryProcess item);
void Delete(int id); void Delete(int id);
bool IsSalaryprocessed(DateTime salarymonth, int payrollTypeID);
void UndoSalary(int id); void UndoSalary(int id);
void UndoMonthlySalaryByIDs(string ids); void UndoMonthlySalaryByIDs(string ids);
void UndoMonthlySalaryByEmpIDs(string ids, DateTime salaryMonth); void UndoMonthlySalaryByEmpIDs(string ids, DateTime salaryMonth);

View File

@ -369,7 +369,9 @@ namespace HRM.BO
List<SearchEmployee> Find(SearchManager oManager); List<SearchEmployee> Find(SearchManager oManager);
List<SearchEmployee> FindCordinator(int? id, int? payrollTypeID); List<SearchEmployee> FindCordinator(int? id, int? payrollTypeID);
List<SearchEmployee> FindEmpCodeName(int payrolltypeid, string code, string name); List<SearchEmployee> FindEmpCodeName(int payrolltypeid, string code, string name);
SearchEmployee get(int empid); List<SearchEmployee> FindEmpCodeNameForEmployeePicker(int userid, int payrolltypeid, string code, string name);
List<SearchEmployee> FindEmpCodeNameForEmployeePickerNew(int userid, int payrolltypeid, string code, string name, bool isForLifeCycle);
SearchEmployee get(int empid);
List<SearchEmployee> GetEmployeeNotYetUser(int payrollTypeID); List<SearchEmployee> GetEmployeeNotYetUser(int payrollTypeID);
List<SearchEmployee> GetTeam(int employeeid); List<SearchEmployee> GetTeam(int employeeid);
List<SearchEmployee> GetTeam(int employeeid, EnumStatus enumStatus); List<SearchEmployee> GetTeam(int employeeid, EnumStatus enumStatus);

View File

@ -14,29 +14,60 @@ namespace HRM.BO
public class FixedLetterTemplte public class FixedLetterTemplte
{ {
//BAT Letter Template ////BAT Letter Template
public const int Visa_Letter_Business_Trip_With_Family = 1; //public const int Visa_Letter_Business_Trip_With_Family = 1;
public const int Salary_Certificate = 2; //public const int Salary_Certificate = 2;
public const int Visa_Letter_Business_Trip = 3; //public const int Visa_Letter_Business_Trip = 3;
public const int Visa_Letter_Personal_Trip = 4; //public const int Visa_Letter_Personal_Trip = 4;
public const int Visa_Letter_With_Family = 5; //public const int Visa_Letter_With_Family = 5;
public const int Loan_Letter_Bank = 6; //public const int Loan_Letter_Bank = 6;
public const int Foreign_Currency_Bank_AC_For_secondee = 7; //public const int Foreign_Currency_Bank_AC_For_secondee = 7;
public const int Visa_for_Business_trip_or_Family = 8; //public const int Visa_for_Business_trip_or_Family = 8;
public const int Visa_for_Company_Business = 9; //public const int Visa_for_Company_Business = 9;
public const int Loan_Certificate_Letter_for_Authorization = 10; //public const int Loan_Certificate_Letter_for_Authorization = 10;
public const int Loan_Certificate_Take_Home_Salary = 11; //public const int Loan_Certificate_Take_Home_Salary = 11;
public const int Intvw_BrdMember_Notify_Mail = 12; //public const int Intvw_BrdMember_Notify_Mail = 12;
public const int Employee_Intvw_Notify_Mail = 13; //public const int Employee_Intvw_Notify_Mail = 13;
public const int Applicant_Intvw_Notify_Mail = 14; //public const int Applicant_Intvw_Notify_Mail = 14;
//public const int Welcome_Mail_New_Joiner = 15;
//public const int Welcome_Mail_Employee = 16;
//public const int Induction_Request_New_Joiner = 17;
//public const int Induction_Request_Employee = 18;
//public const int Announcement_New_Joiner = 19;
//public const int Announcement_Employee = 20;
//public const int Candidate_Offer_Letter = 21;
//public const int Candidate_Appointment_Letter = 22;
//Echotex Letter Template
public const int None = 0;
public const int Officer_Appointment_Letter = 1;
public const int Staff_Appointment_Letter = 2;
public const int Worker_Appointment_Letter = 3;
public const int Salary_Certificate_Letter = 4;
public const int Official_Visa_Letter = 5;
public const int Visa_with_family_Letter = 6;
public const int University_admission_Letter = 7;
public const int Credit_card_Letter = 8;
public const int EXPERIENCE_CERTIFICATE_Letter = 9;
public const int Training_Notification = 10; //Done
public const int Applicant_Intvw_Notify_Mail = 11; //Done
public const int Employee_Intvw_Notify_Mail = 12; //Done
public const int Intvw_BrdMember_Notify_Mail = 13; //Done
public const int Candidate_Offer_Letter = 14; //Done
public const int Welcome_Mail_New_Joiner = 15; public const int Welcome_Mail_New_Joiner = 15;
public const int Welcome_Mail_Employee = 16; public const int Welcome_Mail_Employee = 16;
public const int Induction_Request_New_Joiner = 17; public const int Induction_Request_New_Joiner = 17;
public const int Induction_Request_Employee = 18; public const int Induction_Request_Employee = 18;
public const int Announcement_New_Joiner = 19; public const int Announcement_New_Joiner = 19;
public const int Announcement_Employee = 20; public const int Announcement_Employee = 20;
public const int Candidate_Offer_Letter = 21; public const int Notify_Candidate_for_Interview = 21;
public const int Candidate_Appointment_Letter = 22; public const int Notify_Candidate_For_Not_Selected = 22;
public const int Travel_NOC_Business = 23;
public const int Travel_NOC_Personal_with_Family = 24;
public const int Travel_NOC_Personal_without_Family = 25;
public const int Employment_Certificate = 26;
public const int Salary_Without_Increment_Letter = 27;
public const int Salary_With_Increment_Letter = 28;
public static bool IsValidForDelete(int templateID) public static bool IsValidForDelete(int templateID)
{ {
if (templateID <= 17) if (templateID <= 17)

View File

@ -1,26 +1,24 @@
using Common.BO;
using Ease.Core.Model;
using Payroll.BO;
using System; using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Data; using System.Data;
using System.IO; using System.IO;
//using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Word;
using System.Reflection; using System.Reflection;
namespace Payroll.BO namespace HRM.BO
{ {
public class MSWord public class MSWord
{ {
private Hashtable _Pair; private Hashtable _Pair;
private string _OriginalFile; private string _OriginalFile;
private string _PreparedFile; private string _PreparedFile;
private Microsoft.Office.Interop.Word.Application _wordapp; private Application _wordapp;
public MSWord() public MSWord()
{ {
_wordapp = null; //_wordapp = null;
} }
public Hashtable Pair public Hashtable Pair
{ {
@ -102,15 +100,15 @@ namespace Payroll.BO
public void OpenWordApplication() public void OpenWordApplication()
{ {
_wordapp = new Microsoft.Office.Interop.Word.Application(); _wordapp = new Microsoft.Office.Interop.Word.Application();
} }
public void CloseWordApplication() public void CloseWordApplication()
{ {
object SaveChanges = true; object SaveChanges = true;
object Missing = System.Reflection.Missing.Value; object Missing = System.Reflection.Missing.Value;
if (_wordapp!=null) if (_wordapp != null)
_wordapp.Quit(ref SaveChanges, ref Missing, ref Missing); _wordapp.Quit(ref SaveChanges, ref Missing, ref Missing);
} }
public void PrintWordDoc(object[] argValues, String[] argNames) public void PrintWordDoc(object[] argValues, String[] argNames)
@ -142,12 +140,12 @@ namespace Payroll.BO
public void ReplaceWords(string destFileName, Hashtable tagValueHashTable) public void ReplaceWords(string destFileName, Hashtable tagValueHashTable)
{ {
object SaveChanges = true; object SaveChanges = true;
// if (_wordapp == null) OpenWordApplication(); // if (_wordapp == null) OpenWordApplication();
object Missing = System.Reflection.Missing.Value; object Missing = System.Reflection.Missing.Value;
CreateCopy(destFileName); CreateCopy(destFileName);
Microsoft.Office.Interop.Word.Document oDoc=null; Microsoft.Office.Interop.Word.Document oDoc = null;
try try
{ {
object FileName = _PreparedFile; object FileName = _PreparedFile;
@ -159,7 +157,7 @@ namespace Payroll.BO
object ReplaceText = ""; object ReplaceText = "";
oDoc = _wordapp.Documents.Open(ref FileName, ref Missing, ref ReadOnly, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref IsVisible, ref Missing, ref Missing, ref Missing, ref Missing); oDoc = _wordapp.Documents.Open(ref FileName, ref Missing, ref ReadOnly, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref IsVisible, ref Missing, ref Missing, ref Missing, ref Missing);
oDoc.Activate(); oDoc.Activate();
object FindContinue = Microsoft.Office.Interop.Word.WdFindWrap.wdFindContinue; object FindContinue = Microsoft.Office.Interop.Word.WdFindWrap.wdFindContinue;
@ -171,7 +169,7 @@ namespace Payroll.BO
FindText = sKey; FindText = sKey;
ReplaceText = tagValueHashTable[sKey]; ReplaceText = tagValueHashTable[sKey];
_wordapp.Selection.Find.Execute(ref FindText, ref MatchCase, ref TrueBool, ref Missing, ref Missing, ref Missing, ref TrueBool, ref FindContinue, ref Missing, _wordapp.Selection.Find.Execute(ref FindText, ref MatchCase, ref TrueBool, ref Missing, ref Missing, ref Missing, ref TrueBool, ref FindContinue, ref Missing,
ref ReplaceText, ref ReplaceAll, ref Missing, ref Missing, ref Missing, ref Missing); ref ReplaceText, ref ReplaceAll, ref Missing, ref Missing, ref Missing, ref Missing);
} }
} }
@ -181,7 +179,7 @@ namespace Payroll.BO
} }
finally finally
{ {
if (oDoc != null) _wordapp.Documents.Close(ref SaveChanges, ref Missing, ref Missing); if (oDoc != null) _wordapp.Documents.Close(ref SaveChanges, ref Missing, ref Missing);
} }
} }

View File

@ -24,19 +24,37 @@ namespace HRM.DA
#region Insert function #region Insert function
//internal static void Insert(TransactionContext tc, DailyAttnProcess item) internal static void Insert(TransactionContext tc, DailyAttnProcess item)
//{ {
// tc.ExecuteNonQuery( //tc.ExecuteNonQuery(
// "INSERT INTO DailyAttnProcess(DailyAttnProcessID, EmployeeID, AttnDate, ShiftID, InTime, OutTime,WorkDayType, AttenType, Comments,Reason, IsManualEntry,IsLate, LateHour, EarlyHour, OTHour, ReferenceID, CreatedBy, CreatedDate, OtRemarks, BenefitRemarks, TempShiftID, WFStatus, ApprovedOTHOUR, LMRemarks, DHRemarks, SalaryMonth, ActualInTime, ActualOutTime, CLAIMWFSTATUS)" + // "INSERT INTO DailyAttnProcess(DailyAttnProcessID, EmployeeID, AttnDate, ShiftID, InTime, OutTime,WorkDayType, AttenType, Comments,Reason, IsManualEntry,IsLate, LateHour, EarlyHour, OTHour, ReferenceID, CreatedBy, CreatedDate, OtRemarks, BenefitRemarks, TempShiftID, WFStatus, ApprovedOTHOUR, LMRemarks, DHRemarks, SalaryMonth, ActualInTime, ActualOutTime, CLAIMWFSTATUS)" +
// " VALUES(%n, %n, %d, %n, %D, %D, %n, %n, %s,%s,%b, %b, %n, %n, %n, %n, %n, %d, %s, %s, %n,%n,%n, %s, %s, %d,%D,%D, %n)", // " VALUES(%n, %n, %d, %n, %D, %D, %n, %n, %s,%s,%b, %b, %n, %n, %n, %n, %n, %d, %s, %s, %n,%n,%n, %s, %s, %d,%D,%D, %n)",
// item.ID, item.EmployeeID, item.AttnDate, DataReader.GetNullValue(item.ShiftID), // item.ID, item.EmployeeID, item.AttnDate, DataReader.GetNullValue(item.ShiftID),
// DataReader.GetNullValue(item.EmpInTime), DataReader.GetNullValue(item.EmpOutTime), item.WorkDayType, // DataReader.GetNullValue(item.EmpInTime), DataReader.GetNullValue(item.EmpOutTime), item.WorkDayType,
// item.AttenType, item.Comments, item.Reason, item.IsManualEntry, item.IsLate, item.LateHour, // item.AttenType, item.Comments, item.Reason, item.IsManualEntry, item.IsLate, item.LateHour,
// item.EarlyHour, item.OTHour, DataReader.GetNullValue(item.ReferenceID, 0), item.CreatedBy, // item.EarlyHour, item.OTHour, DataReader.GetNullValue(item.ReferenceID, 0), item.CreatedBy,
// item.CreatedDate, item.OtRemarks, item.BenefitRemarks, item.TempShiftID, // item.CreatedDate, item.OtRemarks, item.BenefitRemarks, item.TempShiftID,
// item.WFStatus, item.ApprovedOTHour, item.LMRemarks, item.DHRemarks, item.SalaryMonth, item.ActualInTime, // item.WFStatus, item.ApprovedOTHour, item.LMRemarks, item.DHRemarks, item.SalaryMonth, item.ActualInTime,
// item.ActualOutTime, (int)EnumClaimWFStatus.None); // item.ActualOutTime, (int)EnumClaimWFStatus.None);
//} tc.ExecuteNonQuery(@"INSERT INTO DailyAttnProcess(DailyAttnProcessID, EmployeeID, AttnDate,
ShiftID, InTime, OutTime,
WorkDayType, ATTENTYPE, Comments,
IsManualEntry,OnlyManualInTime,OnlyManualOutTime,
LateHour, EarlyHour, OTHour,
ReferenceID, CreatedBy, CreatedDate)
VALUES(%n, %n, %d,
%n, %D, %D,
%n, %n, %s,
%b, %b, %b,
%n, %n, %n,
%n, %n, %d)",
item.ID, item.EmployeeID, item.AttnDate,
DataReader.GetNullValue(item.ShiftID), DataReader.GetNullValue(item.InTime), DataReader.GetNullValue(item.OutTime),
item.WorkDayType, item.AttenType, item.Comments,
item.IsManualEntry, item.OnlyManualInTime, item.OnlyManualOutTime,
item.LateHour, item.EarlyHour, item.OTHour,
DataReader.GetNullValue(item.ReferenceID), item.CreatedBy, item.CreatedDate);
}
#endregion #endregion
@ -642,10 +660,16 @@ namespace HRM.DA
internal static IDataReader Get(TransactionContext tc, string empID, DateTime fromDate, DateTime toDate) internal static IDataReader Get(TransactionContext tc, string empID, DateTime fromDate, DateTime toDate)
{ {
//string sql =
// SQLParser.MakeSQL(
// "SELECT dap.* FROM DailyAttnProcess dap Inner Join Employee e on e.EmployeeID=dap.EmployeeID " +
// "WHERE dap.EmployeeID IN(%q) AND dap.AttnDate BETWEEN %d AND %d order by dap.AttnDate DESC",
// empID, fromDate, toDate);
string sql = string sql =
SQLParser.MakeSQL( SQLParser.MakeSQL(
"SELECT dap.* FROM DailyAttnProcess dap Inner Join Employee e on e.EmployeeID=dap.EmployeeID WHERE dap.EmployeeID IN(%q) AND dap.AttnDate BETWEEN %d AND %d order by dap.AttnDate DESC", "SELECT dap.* FROM DailyAttnProcess dap " +
empID, fromDate, toDate); "WHERE dap.EmployeeID IN(%q) AND dap.AttnDate BETWEEN %d AND %d order by dap.AttnDate DESC",
empID, fromDate, toDate);
IDataReader dr = tc.ExecuteReader(sql); IDataReader dr = tc.ExecuteReader(sql);
return dr; return dr;
} }
@ -4086,6 +4110,11 @@ namespace HRM.DA
return ds.Tables[0]; return ds.Tables[0];
} }
internal static IDataReader GetByEmployees(TransactionContext tc, DateTime attnDate, string employeeIDs)
{
return tc.ExecuteReader("SELECT * FROM DailyAttnProcess WHERE AttnDate=%d And employeeid in (%q)", attnDate, employeeIDs);
}
} }
#endregion #endregion

View File

@ -85,7 +85,10 @@ namespace HRM.DA
} }
internal static IDataReader Get(TransactionContext tc, EnumStatus status) internal static IDataReader Get(TransactionContext tc, EnumStatus status)
{ {
return tc.ExecuteReader("SELECT * FROM GRADES where Status=%n order by code", status); if(status == EnumStatus.Regardless)
return tc.ExecuteReader("SELECT * FROM GRADES order by code");
else
return tc.ExecuteReader("SELECT * FROM GRADES where Status=%n order by code", status);
} }
internal static IDataReader Get(TransactionContext tc, EnumStatus status, string sIDs, internal static IDataReader Get(TransactionContext tc, EnumStatus status, string sIDs,
string sTargetPropertyName, int payrolltypeid) string sTargetPropertyName, int payrolltypeid)

View File

@ -730,7 +730,8 @@ namespace HRM.DA
} }
internal static void UpdateBanglaContactInformation(TransactionContext tc, List<object> employeBanglaInfo) internal static void UpdateBanglaContactInformation(TransactionContext tc, List<object> employeBanglaInfo)
{ {
tc.ExecuteNonQuery("UPDATE EMPCONTACT SET presentPOInBangla = %s, presentAddressInBangla = %s, parmanentPOInBangla = %s, permanentAddressInBangla =%s WHERE EMPLOYEEID = %s", employeBanglaInfo[1], employeBanglaInfo[2], employeBanglaInfo[3], employeBanglaInfo[4], employeBanglaInfo[0]); string sql = SQLParser.MakeSQL("UPDATE EMPCONTACT SET presentPOInBangla = %s, presentAddressInBangla = %s, parmanentPOInBangla = %s, permanentAddressInBangla =%s WHERE EMPLOYEEID = %n", employeBanglaInfo[1], employeBanglaInfo[2], employeBanglaInfo[3], employeBanglaInfo[4], employeBanglaInfo[0]);
tc.ExecuteNonQuery(sql);
} }
internal static IDataReader GetByEmpIDs(TransactionContext tc, string empIDs) internal static IDataReader GetByEmpIDs(TransactionContext tc, string empIDs)
@ -841,6 +842,21 @@ namespace HRM.DA
} }
return tc.ExecuteReader(strSQLQuery); return tc.ExecuteReader(strSQLQuery);
} }
internal static IDataReader GetForOTprocess(TransactionContext tc, EnumEmployeeStatus status, int payrollTypeID, DateTime salarymonth )
{
string strSQLQuery = string.Empty;
if (status == EnumEmployeeStatus.Regardless)
{
strSQLQuery = SQLParser.MakeSQL("SELECT * FROM Employee WHERE PAYROLLTYPEID = %n ", payrollTypeID);
}
else
{
strSQLQuery = SQLParser.MakeSQL("SELECT * FROM Employee WHERE (Status = %n or endofcontractdate between %d and %d) AND PAYROLLTYPEID = %n ",
(int)status,GlobalFunctions.FirstDateOfMonth(salarymonth), GlobalFunctions.LastDateOfMonth(salarymonth), payrollTypeID);
}
return tc.ExecuteReader(strSQLQuery);
}
internal static DataSet GetEmpIDsOfManager(TransactionContext tc, int status, DateTime lastDateOfYear) internal static DataSet GetEmpIDsOfManager(TransactionContext tc, int status, DateTime lastDateOfYear)
{ {
@ -3628,7 +3644,8 @@ AND ea.EMPLOYEEID=emp.EMPLOYEEID AND ea.LASTLEVEL=1),'') LastAcademic ,
SqlHelperExtension.CreateInParam("@ModAttendance", SqlDbType.Int, isAttendance), SqlHelperExtension.CreateInParam("@ModAttendance", SqlDbType.Int, isAttendance),
SqlHelperExtension.CreateInParam("@PayrollTypeID", SqlDbType.Int, payrollTypeId) SqlHelperExtension.CreateInParam("@PayrollTypeID", SqlDbType.Int, payrollTypeId)
}; };
return tc.ExecuteDataSet(CommandType.StoredProcedure, "sp_DashboardInformation", p.ToArray()); //return tc.ExecuteDataSet(CommandType.StoredProcedure, "sp_DashboardInformation", p.ToArray());
return tc.ExecuteDataSet("SELECT * FROM DashboardInformation");
} }
//Mobile Profile //Mobile Profile
internal static DataSet GetMobileProfile(TransactionContext tc, int employeeID) internal static DataSet GetMobileProfile(TransactionContext tc, int employeeID)
@ -4133,6 +4150,85 @@ AND ea.EMPLOYEEID=emp.EMPLOYEEID AND ea.LASTLEVEL=1),'') LastAcademic ,
return tc.ExecuteDataTable( return tc.ExecuteDataTable(
"SELECT e.employeeId as id, e.employeeNo, e.name FROM employee e WHERE e.payrolltypeid=%n", payrolltypeid); "SELECT e.employeeId as id, e.employeeNo, e.name FROM employee e WHERE e.payrolltypeid=%n", payrolltypeid);
} }
internal static DataSet GetEmpDetailsEcho(TransactionContext tc, string sEmpID)
{
DataSet oEmpDetails = new DataSet();
try
{
string sql =
SQLParser.MakeSQL(
@"SELECT Emp.employeeID, Emp.EMPLOYEENO,Emp.Name,Emp.DepartmentID,Emp.BIRTHDATE,Emp.JOININGDATE,Emp.DATEOFCONFIRMATION,
Cat.Description as Category, Bangla.BanglaName, Bangla.BanglaDesignation, Bangla.DEPARTMENTBANGLA, Bangla.SectionBangla,
Emp.GENDER,Emp.MARITALSTATUSID,Emp.MOBILENO,Emp.EMAILADDRESS,Emp.ACCOUNTNO,Emp.OutPayAccountNo,
Emp.BASICSALARY,Emp.GrossSalary,Emp.VendorCode,Emp.TAXAMOUNT,Deg.NAME AS DegName,Dep.DESCRIPTION AS DepDes,
GD.DESCRIPTION AS GDDes,BK.NAME AS Bank,BR.NAME AS Branch,BKOUT.NAME AS OUTPayBank,BROUT.NAME As OUTPayBranch,
RG.NAME AS RegName,Loc.Description as Locdes,IsNull(ac.CardNumber,'') as CardNo,na.Description AS Nationality,
Emp.FATHERNAME,Emp.MOTHERNAME,eSpouse.Name AS Spouse,Emp.NationalID,Emp.BLOODGROUP,eContact.PARMANENTADDRESS AS PerVillage,
dis1.[NAME] AS PerDist,t1.[NAME] AS PerThana,eContact.PRESENTADDRESS AS TempVillage,eContact.PresentPO,eContact.PermanentPO,dis2.[NAME] AS TempDist,
t2.[NAME] AS TempThana,eContact.PERSONALTELEPHONE AS LANDPHONE,eContact.PARMANENTMOBILE AS OFFICEMOBILE
FROM EMPLOYEE AS Emp
LEFT Outer JOIN DESIGNATION AS Deg ON Emp.DESIGNATIONID=Deg.DESIGNATIONID
LEFT OUTER JOIN Department AS Dep ON Emp.DEPARTMENTID=Dep.DEPARTMENTID
LEFT OUTER JOIN Grades AS GD ON Emp.GRADEID=GD.GRADEID
LEFT OUTER JOIN Religion AS RG ON Emp.RELIGIONID=RG.RELIGIONID
LEFT OUTER JOIN Branches AS BR ON Emp.BRANCHID=BR.BRANCHID
LEFT OUTER JOIN BANKS AS BK ON BK.BANKID=BR.BANKID
LEFT OUTER JOIN Branches AS BROUT ON Emp.OUTPayBRANCHID=BROUT.BRANCHID
LEFT OUTER JOIN BANKS AS BKOUT ON BKOUT.BANKID=BROUT.BANKID
LEFT OUTER JOIN Location AS Loc ON Emp.LocationID=Loc.LocationID
LEFT OUTER JOIN AccessCard ac ON Emp.CardID = ac.AccessCardID
LEFT OUTER JOIN NATIONALITY na ON Emp.NationalityID = na.NATIONALITYID
LEFT OUTER JOIN EMPSPOUSE eSpouse ON Emp.EMPLOYEEID = eSpouse.EMPLOYEEID
LEFT OUTER JOIN EMPCONTACT eContact ON Emp.EMPLOYEEID = eContact.EMPLOYEEID
LEFT OUTER JOIN DISTRICT dis1 ON eContact.PARMANENTDISTRICTID = dis1.DISTRICTID
LEFT OUTER JOIN THANA t1 ON eContact.PARMANENTTHANAID = t1.THANAID
LEFT OUTER JOIN DISTRICT dis2 ON eContact.PRESENTDISTRICTID = dis2.DISTRICTID
LEFT OUTER JOIN Thana t2 ON eContact.PRESENTTHANAID = t2.THANAID
LEFT OUTER JOIN Category Cat on emp.categoryid = cat.categoryID
LEFT OUTER JOIN vw_EmployeeImportantInfo Bangla on Emp.EmployeeID = Bangla.EmployeeID
ORDER BY Emp.EMPLOYEENO");
// string sql =
// SQLParser.MakeSQL(
// @"SELECT Emp.EMPLOYEENO,Emp.Name,Emp.DepartmentID,Emp.BIRTHDATE,Emp.JOININGDATE,Emp.DATEOFCONFIRMATION,
// Cat.Description as Category, Bangla.BanglaName, Bangla.BanglaDesignation, Bangla.DEPARTMENTBANGLA, Bangla.SectionBangla,
//Emp.GENDER,Emp.MARITALSTATUSID,Emp.MOBILENO,Emp.EMAILADDRESS,Emp.ACCOUNTNO,Emp.OutPayAccountNo,
//Emp.BASICSALARY,Emp.GrossSalary,Emp.VendorCode,Emp.TAXAMOUNT,Deg.NAME AS DegName,Dep.DESCRIPTION AS DepDes,
//GD.DESCRIPTION AS GDDes,BK.NAME AS Bank,BR.NAME AS Branch,BKOUT.NAME AS OUTPayBank,BROUT.NAME As OUTPayBranch,
//RG.NAME AS RegName,Loc.Description as Locdes,IsNull(ac.CardNumber,'') as CardNo,na.Description AS Nationality,
//Emp.FATHERNAME,Emp.MOTHERNAME,eSpouse.Name AS Spouse,Emp.NationalID,Emp.BLOODGROUP,eContact.PARMANENTADDRESS AS PerVillage,
//dis1.[NAME] AS PerDist,t1.[NAME] AS PerThana,eContact.PRESENTADDRESS AS TempVillage,eContact.PresentPO,eContact.PermanentPO,dis2.[NAME] AS TempDist,
//t2.[NAME] AS TempThana,eContact.PERSONALTELEPHONE AS LANDPHONE,eContact.PARMANENTMOBILE AS OFFICEMOBILE
//FROM EMPLOYEE AS Emp
//LEFT Outer JOIN DESIGNATION AS Deg ON Emp.DESIGNATIONID=Deg.DESIGNATIONID
//LEFT OUTER JOIN Department AS Dep ON Emp.DEPARTMENTID=Dep.DEPARTMENTID
//LEFT OUTER JOIN Grades AS GD ON Emp.GRADEID=GD.GRADEID
//LEFT OUTER JOIN Religion AS RG ON Emp.RELIGIONID=RG.RELIGIONID
//LEFT OUTER JOIN Branches AS BR ON Emp.BRANCHID=BR.BRANCHID
//LEFT OUTER JOIN BANKS AS BK ON BK.BANKID=BR.BANKID
//LEFT OUTER JOIN Branches AS BROUT ON Emp.OUTPayBRANCHID=BROUT.BRANCHID
//LEFT OUTER JOIN BANKS AS BKOUT ON BKOUT.BANKID=BROUT.BANKID
//LEFT OUTER JOIN Location AS Loc ON Emp.LocationID=Loc.LocationID
//LEFT OUTER JOIN AccessCard ac ON Emp.CardID = ac.AccessCardID
//LEFT OUTER JOIN NATIONALITY na ON Emp.NationalityID = na.NATIONALITYID
//LEFT OUTER JOIN EMPSPOUSE eSpouse ON Emp.EMPLOYEEID = eSpouse.EMPLOYEEID
//LEFT OUTER JOIN EMPCONTACT eContact ON Emp.EMPLOYEEID = eContact.EMPLOYEEID
//LEFT OUTER JOIN DISTRICT dis1 ON eContact.PARMANENTDISTRICTID = dis1.DISTRICTID
//LEFT OUTER JOIN THANA t1 ON eContact.PARMANENTTHANAID = t1.THANAID
//LEFT OUTER JOIN DISTRICT dis2 ON eContact.PRESENTDISTRICTID = dis2.DISTRICTID
//LEFT OUTER JOIN Thana t2 ON eContact.PRESENTTHANAID = t2.THANAID
// LEFT OUTER JOIN Category Cat on emp.categoryid = cat.categoryID
// LEFT OUTER JOIN vw_EmployeeImportantInfo Bangla on Emp.EmployeeID = Bangla.EmployeeID
//WHERE Emp.EMPLOYEEID IN(%q) ORDER BY Emp.EMPLOYEENO", sEmpID);
oEmpDetails = tc.ExecuteDataSet(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return oEmpDetails;
}
} }
#endregion #endregion

View File

@ -4,6 +4,7 @@ using Ease.Core.DataAccess;
using HRM.BO; using HRM.BO;
using Microsoft.AspNetCore.Routing.Template; using Microsoft.AspNetCore.Routing.Template;
using Microsoft.Data.SqlClient; using Microsoft.Data.SqlClient;
using Org.BouncyCastle.Asn1.X509;
namespace HRM.DA namespace HRM.DA
{ {
@ -434,12 +435,12 @@ namespace HRM.DA
"EmployeeID, ContactID, PARMANENTADDRESS, PARMANENTDISTRICTID, PARMANENTTHANAID, PARMANENTTELEPHONE," + "EmployeeID, ContactID, PARMANENTADDRESS, PARMANENTDISTRICTID, PARMANENTTHANAID, PARMANENTTELEPHONE," +
" PresentAddress, PresentDistrictID, PresentThanaID, PresentTelephone, Mobile, PersonalEmail," + " PresentAddress, PresentDistrictID, PresentThanaID, PresentTelephone, Mobile, PersonalEmail," +
" OfficialEMail, Fax, EmergencyContactAddress, EmergencyContactPerson, EmergencyTelephone, PARMANENTMOBILE, " + " OfficialEMail, Fax, EmergencyContactAddress, EmergencyContactPerson, EmergencyTelephone, PARMANENTMOBILE, " +
" PRESENTMOBILE, PERSONALTELEPHONE, EMERGENCYMOBILE, CPRELATIONID,ProfileStatus,PermanentAddressInBangla,PresentAddressInBangla,PermanentPostCodeNo,PresentPostCodeNo, PresentPOInBangla, ParmanentPOInBangla)" + " PRESENTMOBILE, PERSONALTELEPHONE, EMERGENCYMOBILE, CPRELATIONID,ProfileStatus,PermanentAddressInBangla,PresentAddressInBangla,PermanentPostCodeNo,PresentPostCodeNo, PresentPOInBangla, ParmanentPOInBangla, PresentPO, PermanentPO)" +
" VALUES(" + " VALUES(" +
" %n, %n, %s, %n, %n, %s, " + " %n, %n, %s, %n, %n, %s, " +
" %s, %n, %n, %s, %s, %s," + " %s, %n, %n, %s, %s, %s," +
" %s, %s, %s, %s, %s, %s," + " %s, %s, %s, %s, %s, %s," +
" %s, %s, %s, %n,%n, %u, %u, %s, %s, %u, %u)", " %s, %s, %s, %n,%n, %u, %u, %s, %s, %u, %u, %s, %s)",
item.EmployeeID, item.ID, item.PermanentAddress, DataReader.GetNullValue(item.PermanentDistrictID, 0), item.EmployeeID, item.ID, item.PermanentAddress, DataReader.GetNullValue(item.PermanentDistrictID, 0),
DataReader.GetNullValue(item.PermanentThanaID, 0), item.PermanentTelephone, DataReader.GetNullValue(item.PermanentThanaID, 0), item.PermanentTelephone,
item.PresentAddress, DataReader.GetNullValue(item.PresentDistrictID, 0), item.PresentAddress, DataReader.GetNullValue(item.PresentDistrictID, 0),
@ -448,7 +449,7 @@ namespace HRM.DA
item.EmergencyTelephone, DataReader.GetNullValue(item.PermanentMobile), item.EmergencyTelephone, DataReader.GetNullValue(item.PermanentMobile),
DataReader.GetNullValue(item.PresentMobile), DataReader.GetNullValue(item.PersonalTelephone), DataReader.GetNullValue(item.PresentMobile), DataReader.GetNullValue(item.PersonalTelephone),
DataReader.GetNullValue(item.EmergencyMobile), DataReader.GetNullValue(item.EmergencyMobile),
DataReader.GetNullValue(item.ContactPersonRelationId, 0), item.ProfileStatus, item.PermanentAddressInBangla, item.PresentAddressInBangla, item.PermanentPostCodeNo, item.PresentPostCodeNo, item.PresentPOInBangla, item.ParmanentPOInBangla); DataReader.GetNullValue(item.ContactPersonRelationId, 0), item.ProfileStatus, item.PermanentAddressInBangla, item.PresentAddressInBangla, item.PermanentPostCodeNo, item.PresentPostCodeNo, item.PresentPOInBangla, item.ParmanentPOInBangla, item.PresentPO, item.PermanentPO);
tc.ExecuteNonQuery(sql); tc.ExecuteNonQuery(sql);
} }
@ -459,7 +460,7 @@ namespace HRM.DA
"PARMANENTADDRESS =%s , PARMANENTDISTRICTID =%n, PARMANENTTHANAID =%n, PARMANENTTELEPHONE=%s," + "PARMANENTADDRESS =%s , PARMANENTDISTRICTID =%n, PARMANENTTHANAID =%n, PARMANENTTELEPHONE=%s," +
" PresentAddress=%s, PresentDistrictID=%n, PresentThanaID=%n, PresentTelephone=%s, Mobile =%s, PersonalEmail=%s," + " PresentAddress=%s, PresentDistrictID=%n, PresentThanaID=%n, PresentTelephone=%s, Mobile =%s, PersonalEmail=%s," +
" OfficialEMail=%s, Fax=%s, EmergencyContactAddress=%s, EmergencyContactPerson=%s, EmergencyTelephone=%s, PARMANENTMOBILE=%s, " + " OfficialEMail=%s, Fax=%s, EmergencyContactAddress=%s, EmergencyContactPerson=%s, EmergencyTelephone=%s, PARMANENTMOBILE=%s, " +
" PRESENTMOBILE=%s, PERSONALTELEPHONE=%s, EMERGENCYMOBILE=%s, CPRELATIONID=%n,ProfileStatus=%n,PermanentAddressInBangla=%u,PresentAddressInBangla=%u,PermanentPostCodeNo=%s,PresentPostCodeNo=%s, PresentPOInBangla = %u, ParmanentPOInBangla = %u" + " PRESENTMOBILE=%s, PERSONALTELEPHONE=%s, EMERGENCYMOBILE=%s, CPRELATIONID=%n,ProfileStatus=%n,PermanentAddressInBangla=%u,PresentAddressInBangla=%u,PermanentPostCodeNo=%s,PresentPostCodeNo=%s, PresentPOInBangla = %u, ParmanentPOInBangla = %u, PresentPO = %s, PermanentPO = %s" +
" where EmployeeID =%n and ContactID =%n ", " where EmployeeID =%n and ContactID =%n ",
item.PermanentAddress, DataReader.GetNullValue(item.PermanentDistrictID, 0), item.PermanentAddress, DataReader.GetNullValue(item.PermanentDistrictID, 0),
DataReader.GetNullValue(item.PermanentThanaID, 0), item.PermanentTelephone, DataReader.GetNullValue(item.PermanentThanaID, 0), item.PermanentTelephone,
@ -469,7 +470,7 @@ namespace HRM.DA
item.EmergencyTelephone, DataReader.GetNullValue(item.PermanentMobile), item.EmergencyTelephone, DataReader.GetNullValue(item.PermanentMobile),
DataReader.GetNullValue(item.PresentMobile), DataReader.GetNullValue(item.PersonalTelephone), DataReader.GetNullValue(item.PresentMobile), DataReader.GetNullValue(item.PersonalTelephone),
DataReader.GetNullValue(item.EmergencyMobile), DataReader.GetNullValue(item.EmergencyMobile),
DataReader.GetNullValue(item.ContactPersonRelationId, 0), item.ProfileStatus, item.PermanentAddressInBangla, item.PresentAddressInBangla, item.PermanentPostCodeNo, item.PresentPostCodeNo, item.PresentPOInBangla, item.ParmanentPOInBangla, item.EmployeeID, item.ID); DataReader.GetNullValue(item.ContactPersonRelationId, 0), item.ProfileStatus, item.PermanentAddressInBangla, item.PresentAddressInBangla, item.PermanentPostCodeNo, item.PresentPostCodeNo, item.PresentPOInBangla, item.ParmanentPOInBangla, item.PresentPO, item.PermanentPO, item.EmployeeID, item.ID);
tc.ExecuteNonQuery(sql); tc.ExecuteNonQuery(sql);
} }
@ -588,8 +589,8 @@ namespace HRM.DA
academic.ID, academic.EmployeeID, academic.EducationLevelID, academic.ID, academic.EmployeeID, academic.EducationLevelID,
DataReader.GetNullValue(academic.DisciplineID, 0), DataReader.GetNullValue(academic.InstitutionID, 0), DataReader.GetNullValue(academic.DisciplineID, 0), DataReader.GetNullValue(academic.InstitutionID, 0),
DataReader.GetNullValue(academic.PassingYear), DataReader.GetNullValue(academic.PassingYear),
DataReader.GetNullValue(academic.ClassOrDivision), academic.GPAOrMarks, academic.LastLevel, DataReader.GetNullValue(academic.ClassOrDivision), DataReader.GetNullValue(academic.GPAOrMarks), academic.LastLevel,
academic.OutOf, DataReader.GetNullValue(academic.ResultTypeID, 0), DataReader.GetNullValue(academic.OutOf), DataReader.GetNullValue(academic.ResultTypeID),
DataReader.GetNullValue(academic.InstituteName), DataReader.GetNullValue(academic.EducationTypeID, 0), DataReader.GetNullValue(academic.InstituteName), DataReader.GetNullValue(academic.EducationTypeID, 0),
academic.PhotoPath, academic.DocSubmissionDate, academic.ProfileStatus); academic.PhotoPath, academic.DocSubmissionDate, academic.ProfileStatus);
} }
@ -602,8 +603,8 @@ namespace HRM.DA
" where AcademicID =%n and EmployeeID =%n ", academic.EducationLevelID, " where AcademicID =%n and EmployeeID =%n ", academic.EducationLevelID,
DataReader.GetNullValue(academic.DisciplineID, 0), DataReader.GetNullValue(academic.InstitutionID, 0), DataReader.GetNullValue(academic.DisciplineID, 0), DataReader.GetNullValue(academic.InstitutionID, 0),
DataReader.GetNullValue(academic.PassingYear), DataReader.GetNullValue(academic.PassingYear),
DataReader.GetNullValue(academic.ClassOrDivision), academic.GPAOrMarks, academic.LastLevel, DataReader.GetNullValue(academic.ClassOrDivision), DataReader.GetNullValue(academic.GPAOrMarks), academic.LastLevel,
academic.OutOf, DataReader.GetNullValue(academic.ResultTypeID, 0), DataReader.GetNullValue(academic.OutOf), DataReader.GetNullValue(academic.ResultTypeID),
DataReader.GetNullValue(academic.InstituteName), DataReader.GetNullValue(academic.EducationTypeID, 0), DataReader.GetNullValue(academic.InstituteName), DataReader.GetNullValue(academic.EducationTypeID, 0),
academic.PhotoPath, academic.DocSubmissionDate, academic.ProfileStatus, academic.PhotoPath, academic.DocSubmissionDate, academic.ProfileStatus,
academic.ID, academic.EmployeeID); academic.ID, academic.EmployeeID);
@ -676,16 +677,16 @@ namespace HRM.DA
tc.ExecuteNonQuery("INSERT INTO EmpNominee(" + tc.ExecuteNonQuery("INSERT INTO EmpNominee(" +
"EmployeeID, NomineeID, NominationPurposeID, NominationDate, Name, RelationID, " + "EmployeeID, NomineeID, NominationPurposeID, NominationDate, Name, RelationID, " +
" Percentage, BirthDate, OccupationID, Address, TelePhone," + " Percentage, BirthDate, OccupationID, Address, TelePhone," +
" EmailAddress)" + " EmailAddress, NomineeMobileNo, FatherName , MotherName , SpouseName , GENDER , DistrictID , ThanaID , PostOffice)" +
" VALUES(" + " VALUES(" +
" %n, %n, %n, %d, %s, %n," + " %n, %n, %n, %d, %s, %n," +
" %n, %d, %n, %s, %s, %s)", " %n, %d, %n, %s, %s, %s, %s, %s, %s, %s, %n, %n, %n, %s)",
nominee.EmployeeID, nominee.ID, nominee.NominationPurposeID, nominee.EmployeeID, nominee.ID, nominee.NominationPurposeID,
DataReader.GetNullValue(nominee.NominationDate), nominee.Name, DataReader.GetNullValue(nominee.NominationDate), nominee.Name,
DataReader.GetNullValue(nominee.RelationID, 0), DataReader.GetNullValue(nominee.RelationID, 0),
nominee.Percentage, DataReader.GetNullValue(nominee.BirthDate), nominee.Percentage, DataReader.GetNullValue(nominee.BirthDate),
DataReader.GetNullValue(nominee.OccupationID, 0), nominee.Address, nominee.TelePhone, DataReader.GetNullValue(nominee.OccupationID, 0), nominee.Address, nominee.TelePhone,
nominee.EmailAddress); nominee.EmailAddress, nominee.NomineeMobileNo, nominee.FatherName, nominee.MotherName, nominee.SpouseName, nominee.Gender, nominee.DistrictID, nominee.ThanaID, nominee.PostOffice);
} }
public static void Update(TransactionContext tc, EmpNominee nominee) public static void Update(TransactionContext tc, EmpNominee nominee)
@ -700,8 +701,17 @@ namespace HRM.DA
,[ADDRESS] = %s ,[ADDRESS] = %s
,[TELEPHONE] = %s ,[TELEPHONE] = %s
,[EMAILADDRESS] = %s ,[EMAILADDRESS] = %s
,[NomineeMobileNo] = %s
,[FatherName] = %s
,[MotherName] = %s
,[SpouseName] = %s
,[Gender] = %n
,[DistrictID] = %n
,[ThanaID] = %n
,[PostOffice] = %s
WHERE NOMINEEID = %n", nominee.ID, nominee.NominationPurposeID, nominee.Name, nominee.RelationID, WHERE NOMINEEID = %n", nominee.ID, nominee.NominationPurposeID, nominee.Name, nominee.RelationID,
nominee.Percentage, nominee.OccupationID, nominee.Address, nominee.TelePhone, nominee.EmailAddress, nominee.Percentage, nominee.OccupationID, nominee.Address, nominee.TelePhone, nominee.EmailAddress, nominee.NomineeMobileNo,
nominee.FatherName, nominee.MotherName, nominee.SpouseName, nominee.Gender, nominee.DistrictID, nominee.ThanaID, nominee.PostOffice,
nominee.ID); nominee.ID);
} }
@ -943,6 +953,7 @@ namespace HRM.DA
,[PHOTOPATH] ,[PHOTOPATH]
,[TELEPHONE] ,[TELEPHONE]
,[EMAILADDRESS] ,[EMAILADDRESS]
,[NomineeMobileNo]
,[SIGNATURE] ,[SIGNATURE]
,[EMPLOYEEID] ,[EMPLOYEEID]
,[NOMINEENAME] ,[NOMINEENAME]
@ -958,6 +969,13 @@ namespace HRM.DA
,[IsMinor] ,[IsMinor]
,[NID] ,[NID]
,[NIDPath] ,[NIDPath]
,[FatherName]
,[MotherName]
,[SpouseName]
,[Gender]
,[DistrictID]
,[ThanaID]
,[PostOffice]
,iif(isnull(eu.empfileuploadid, 0) > 0, 1, 0) HasPicture ,iif(isnull(eu.empfileuploadid, 0) > 0, 1, 0) HasPicture
,iif(isnull(eu2.empfileuploadid, 0) > 0, 1, 0) HasSignature ,iif(isnull(eu2.empfileuploadid, 0) > 0, 1, 0) HasSignature
from [EMPNOMINEE] en from [EMPNOMINEE] en
@ -1077,6 +1095,31 @@ namespace HRM.DA
return ds; return ds;
} }
public static IDataReader GetAllEmpAcademics(TransactionContext tc)
{
return tc.ExecuteReader(@"SELECT [INSTITUTENAME]
,[EDUCATIONTYPEID]
,[ACADEMICID]
,[EMPLOYEEID]
,[EDUCATIONLEVELID]
,[EDUCATIONTYPEID]
,[DISCIPLINEID]
,[INSTITUTIONID]
,[PASSINGYEAR]
,[CLASSORDIVISION]
,[GPAORMARKS]
,[LASTLEVEL]
,[OUTOF]
,[RESULTTYPEID]
,[PHOTOPATH]
,[DOCSUBMISSIONDATE]
,[LastLevelNonTech]
,[ProfileStatus]
, iif(isnull(empfileuploadid, 0) > 0, 1, 0) HasAttachment
from[EMPACADEMIC] ea
left join empfileupload eu on eu.empid = ea.employeeid and
eu.referenceid = ea.ACADEMICID and eu.fileType = 10");
}
#endregion #endregion
#region EmpAchievements Get #region EmpAchievements Get
@ -1465,5 +1508,35 @@ namespace HRM.DA
return tc.ExecuteReader(sSQL); return tc.ExecuteReader(sSQL);
} }
public static DataSet GetEmpELDetails(TransactionContext tc, int empID)
{
string sql = SQLParser.MakeSQL(@"SELECT le.EMPID,le.APRFROMDATE STARTDATE,le.APRTODATE ENDDATE,le.APRTOTALDAYS,Year(le.APRFROMDATE) AS Year
FROM
LEAVEENTRY le,
LEAVE lv
WHERE le.EMPID = %n
AND lv.LEAVEID = le.LEAVEID
AND lv.CODE = 'EL' AND le.APRFROMDATE > '31 Dec 2018' order by le.APRFROMDATE", empID);
return tc.ExecuteDataSet(sql);
}
public static DataSet GetNumberOfYears(TransactionContext tc, int empID)
{
string sql = SQLParser.MakeSQL(@"SELECT tab.Year,count(tab.Year) Number FROM
(
SELECT Year(le.APRFROMDATE) AS Year
FROM
LEAVEENTRY le,
LEAVE lv
WHERE le.EMPID = %n
AND lv.LEAVEID = le.LEAVEID
AND lv.CODE = 'EL' AND le.APRFROMDATE > '31 Dec 2018'
) tab
GROUP BY tab.Year
order by tab.Year", empID);
return tc.ExecuteDataSet(sql);
}
} }
} }

View File

@ -114,7 +114,16 @@ namespace HRM.DA
return bShowInDesktop; 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 || obj == null) return false;
else bShowInDesktop=true;
return bShowInDesktop;
}
#endregion #endregion
#region Delete function #region Delete function
@ -214,7 +223,7 @@ namespace HRM.DA
id); id);
tc.ExecuteNonQuery("DELETE FROM SalaryMonthly WHERE SalaryProcessID=%n", 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) internal static void UndoMonthlySalaryByIDs(TransactionContext tc, string ids)

View File

@ -231,6 +231,7 @@ END;";
{ {
string orderby = "name"; string orderby = "name";
string sqlClause = ""; string sqlClause = "";
string top = "";
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("PayrollTypeID =%n AND Status = %n", payrollTypeID, EnumStatus.Active); sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("PayrollTypeID =%n AND Status = %n", payrollTypeID, EnumStatus.Active);
if (code != string.Empty) if (code != string.Empty)
{ {
@ -242,12 +243,327 @@ END;";
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("Name LIKE %s", ("%" + name + "%")); sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("Name LIKE %s", ("%" + name + "%"));
return tc.ExecuteReader( return tc.ExecuteReader(
"Select EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q Order by %s", "Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q Order by %s",
sqlClause, orderby); top, sqlClause, orderby);
}
internal static IDataReader SearchForEmployeePicker(TransactionContext tc, int userID, int payrollTypeID, string code, string name)
{
string orderby = "name";
string sqlClause = "";
string top = "";
string recurSqlClause = SQLParser.MakeSQL(@"
DECLARE @userid INT = %n;
DECLARE @payrolltypeid INT = %n;
DECLARE @permissionstatus INT = %n;
WITH RecursiveCategory AS
(
SELECT
CATEGORYID
FROM
dbo.CATEGORY
WHERE
CATEGORYID IN (
SELECT REFERENCEID
FROM DATAPERMISSION
WHERE USERID = @userid
AND PAYROLLTYPEID = @payrolltypeid
AND PERMISSIONSTATUS = @permissionstatus
AND PERMISSIONTYPE = %n
)
),
RecursiveGrade AS
(
SELECT
GRADEID
FROM
dbo.GRADES
WHERE
GRADEID IN (
SELECT REFERENCEID
FROM DATAPERMISSION
WHERE USERID = @userid
AND PAYROLLTYPEID = @payrolltypeid
AND PERMISSIONSTATUS = @permissionstatus
AND PERMISSIONTYPE = %n
)
),
RecursiveDepartment AS
(
SELECT
DEPARTMENTID
FROM
dbo.DEPARTMENT
WHERE
DEPARTMENTID IN (
SELECT REFERENCEID
FROM DATAPERMISSION
WHERE USERID = @userid
AND PAYROLLTYPEID = @payrolltypeid
AND PERMISSIONSTATUS = @permissionstatus
AND PERMISSIONTYPE = %n
)
UNION ALL
SELECT
d.DEPARTMENTID
FROM
dbo.DEPARTMENT d
INNER JOIN
RecursiveDepartment rd
ON
d.PARENTID = rd.DEPARTMENTID
),
RecursiveLocation AS
(
SELECT
LOCATIONID
FROM
dbo.LOCATION
WHERE
LOCATIONID IN (
SELECT REFERENCEID
FROM DATAPERMISSION
WHERE USERID = @userid
AND PAYROLLTYPEID = @payrolltypeid
AND PERMISSIONSTATUS = @permissionstatus
AND PERMISSIONTYPE = %n
)
UNION ALL
SELECT
l.LOCATIONID
FROM
dbo.LOCATION l
INNER JOIN
RecursiveLocation rl
ON
l.PARENTID = rl.LOCATIONID
)", userID, payrollTypeID, EnumMenuPermissionStatus.Approved, EnumDataPermissionType.Cagtegory, EnumDataPermissionType.Grade, EnumDataPermissionType.Department, EnumDataPermissionType.Location);
string recurWhereClause = SQLParser.MakeSQL(@"
AND
(
(
EXISTS (SELECT 1 FROM RecursiveCategory)
AND CATEGORYID IN (SELECT CATEGORYID FROM RecursiveCategory)
)
OR
(
EXISTS (SELECT 1 FROM RecursiveGrade)
AND GRADEID IN (SELECT GRADEID FROM RecursiveGrade)
)
OR
(
EXISTS (SELECT 1 FROM RecursiveDepartment)
AND DEPARTMENTID IN (SELECT DEPARTMENTID FROM RecursiveDepartment)
)
OR
(
EXISTS (SELECT 1 FROM RecursiveLocation)
AND LOCATIONID IN (SELECT LOCATIONID FROM RecursiveLocation)
)
)");
//Previous Code For only Live Employee
//sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("PayrollTypeID =%n AND Status = %n", payrollTypeID, EnumStatus.Active);
//New Code For live And Waitiong for join Employee
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("PayrollTypeID =%n AND (Status = %n OR Status = %n)", payrollTypeID, EnumEmployeeStatus.Live, EnumEmployeeStatus.Waitingforjoin);
if (code != string.Empty)
{
//Previous with suggestion
//sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo LIKE %s", ("%" + code + "%"));
//orderby = "EmployeeNo";
//Using TOP
//sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo LIKE %s", ( code + "%")); // Using LIKE Operator
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo = %s", ( code)); // Without Using LIKE Operator
orderby = "EmployeeNo";
top = "TOP 5";
//Without suggestion
//sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo = %s", code );
//orderby = "EmployeeNo";
}
if (name != string.Empty)
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("Name LIKE %s", ("%" + name + "%"));
//string finalSQl = SQLParser.MakeSQL(
// "%q Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q %q Order by %s",
// recurSqlClause, top, sqlClause, recurWhereClause, orderby);
string finalSQl = SQLParser.MakeSQL(
"%q Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q %q " +
" UNION Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q " +
" Order by %s",
recurSqlClause, top, sqlClause, recurWhereClause, top, sqlClause, orderby);
return tc.ExecuteReader(finalSQl);
} }
#endregion internal static IDataReader SearchForEmployeePickerNew(TransactionContext tc, int userID, int payrollTypeID, string code, string name, bool isForLifeCycle)
} {
string orderby = "name";
string sqlClause = "";
string top = "";
#endregion string recurSqlClause = SQLParser.MakeSQL(@"
DECLARE @userid INT = %n;
DECLARE @payrolltypeid INT = %n;
DECLARE @permissionstatus INT = %n;
WITH RecursiveCategory AS
(
SELECT
CATEGORYID
FROM
dbo.CATEGORY
WHERE
CATEGORYID IN (
SELECT REFERENCEID
FROM DATAPERMISSION
WHERE USERID = @userid
AND PAYROLLTYPEID = @payrolltypeid
AND PERMISSIONSTATUS = @permissionstatus
AND PERMISSIONTYPE = %n
)
),
RecursiveGrade AS
(
SELECT
GRADEID
FROM
dbo.GRADES
WHERE
GRADEID IN (
SELECT REFERENCEID
FROM DATAPERMISSION
WHERE USERID = @userid
AND PAYROLLTYPEID = @payrolltypeid
AND PERMISSIONSTATUS = @permissionstatus
AND PERMISSIONTYPE = %n
)
),
RecursiveDepartment AS
(
SELECT
DEPARTMENTID
FROM
dbo.DEPARTMENT
WHERE
DEPARTMENTID IN (
SELECT REFERENCEID
FROM DATAPERMISSION
WHERE USERID = @userid
AND PAYROLLTYPEID = @payrolltypeid
AND PERMISSIONSTATUS = @permissionstatus
AND PERMISSIONTYPE = %n
)
UNION ALL
SELECT
d.DEPARTMENTID
FROM
dbo.DEPARTMENT d
INNER JOIN
RecursiveDepartment rd
ON
d.PARENTID = rd.DEPARTMENTID
),
RecursiveLocation AS
(
SELECT
LOCATIONID
FROM
dbo.LOCATION
WHERE
LOCATIONID IN (
SELECT REFERENCEID
FROM DATAPERMISSION
WHERE USERID = @userid
AND PAYROLLTYPEID = @payrolltypeid
AND PERMISSIONSTATUS = @permissionstatus
AND PERMISSIONTYPE = %n
)
UNION ALL
SELECT
l.LOCATIONID
FROM
dbo.LOCATION l
INNER JOIN
RecursiveLocation rl
ON
l.PARENTID = rl.LOCATIONID
)", userID, payrollTypeID, EnumMenuPermissionStatus.Approved, EnumDataPermissionType.Cagtegory, EnumDataPermissionType.Grade, EnumDataPermissionType.Department, EnumDataPermissionType.Location);
string recurWhereClause = SQLParser.MakeSQL(@"
AND
(
(
EXISTS (SELECT 1 FROM RecursiveCategory)
AND CATEGORYID IN (SELECT CATEGORYID FROM RecursiveCategory)
)
OR
(
EXISTS (SELECT 1 FROM RecursiveGrade)
AND GRADEID IN (SELECT GRADEID FROM RecursiveGrade)
)
OR
(
EXISTS (SELECT 1 FROM RecursiveDepartment)
AND DEPARTMENTID IN (SELECT DEPARTMENTID FROM RecursiveDepartment)
)
OR
(
EXISTS (SELECT 1 FROM RecursiveLocation)
AND LOCATIONID IN (SELECT LOCATIONID FROM RecursiveLocation)
)
)");
//Previous Code For only Live Employee
//sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("PayrollTypeID =%n AND Status = %n", payrollTypeID, EnumStatus.Active);
//New Code For live And Waitiong for join Employee
if (isForLifeCycle == true)
{
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("PayrollTypeID =%n ", payrollTypeID);
}
else
{
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("PayrollTypeID =%n AND (Status = %n OR Status = %n)", payrollTypeID, EnumEmployeeStatus.Live, EnumEmployeeStatus.Waitingforjoin);
}
if (code != string.Empty)
{
//Previous with suggestion
//sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo LIKE %s", ("%" + code + "%"));
//orderby = "EmployeeNo";
//Using TOP
//sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo LIKE %s", ( code + "%")); // Using LIKE Operator
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo = %s", (code)); // Without Using LIKE Operator
orderby = "EmployeeNo";
top = "TOP 5";
//Without suggestion
//sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo = %s", code );
//orderby = "EmployeeNo";
}
if (name != string.Empty)
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("Name LIKE %s", ("%" + name + "%"));
//string finalSQl = SQLParser.MakeSQL(
// "%q Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q %q Order by %s",
// recurSqlClause, top, sqlClause, recurWhereClause, orderby);
string finalSQl = SQLParser.MakeSQL(
"%q Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q %q " +
" UNION Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q " +
" Order by %s",
recurSqlClause, top, sqlClause, recurWhereClause, top, sqlClause, orderby);
return tc.ExecuteReader(finalSQl);
}
#endregion
}
#endregion
} }

View File

@ -117,8 +117,11 @@ namespace HRM.DA
{ {
DateTime oLastDate = attnProcess.AttnDate.LastDateOfMonth(); DateTime oLastDate = attnProcess.AttnDate.LastDateOfMonth();
DateTime oFirstDate = attnProcess.AttnDate.FirstDateOfMonth(); DateTime oFirstDate = attnProcess.AttnDate.FirstDateOfMonth();
//_AttNHolidays =
// new AttnNationalHolidayService().GetByMonthAndPayrollType(oFirstDate, oLastDate, payrollTypeID);
_AttNHolidays = _AttNHolidays =
new AttnNationalHolidayService().GetByMonthAndPayrollType(oFirstDate, oLastDate, payrollTypeID); new AttnNationalHolidayService().Get(EnumStatus.Active, payrollTypeID);
} }
AttnNationalHoliday oAttNHoliday = _AttNHolidays.Where(o => AttnNationalHoliday oAttNHoliday = _AttNHolidays.Where(o =>
@ -473,7 +476,7 @@ namespace HRM.DA
} }
_attnRunSummary = new AttnProcessRunSummary(); _attnRunSummary = new AttnProcessRunSummary();
_attnRunSummary.ProcessMode = prMode; _attnRunSummary.ProcessMode = prMode;
// bool isInOutApplicable = false; //bool isInOutApplicable = false;
_shifts = _shifts ?? new ShiftService().GetAllShift(); _shifts = _shifts ?? new ShiftService().GetAllShift();
@ -483,7 +486,7 @@ namespace HRM.DA
#region Initialization for Attendence Process #region Initialization for Attendence Process
Attdate = fromDate; 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<DailyAttnProcess> dailyattProcesses = new List<DailyAttnProcess>();
List<DailyAttendanceAllowance> dailyAttendanceAllowances = new List<DailyAttendanceAllowance>(); List<DailyAttendanceAllowance> dailyAttendanceAllowances = new List<DailyAttendanceAllowance>();
@ -2098,7 +2101,7 @@ namespace HRM.DA
AttnWiseAllowance attnAllow = new AttnWiseAllowance(); AttnWiseAllowance attnAllow = new AttnWiseAllowance();
// List<Employee> employees = new EmployeeService().GetByEmpIDs("352,70"); // List<Employee> employees = new EmployeeService().GetByEmpIDs("352,70");
List<Employee> employees = new EmployeeService().GetAllEmps(); List<Employee> employees = new EmployeeService().GetAllLive();
List<ADParameter> oadParameters = new ADParameterService().GetWithDetail(EnumStatus.Active, PayrollTypeId); List<ADParameter> oadParameters = new ADParameterService().GetWithDetail(EnumStatus.Active, PayrollTypeId);
PayrollType oPayrollType = new PayrollTypeService().Get(PayrollTypeId); PayrollType oPayrollType = new PayrollTypeService().Get(PayrollTypeId);
List<TermParameter> termParameters = tps.GetwithDetail(oPayrollType.ID); List<TermParameter> termParameters = tps.GetwithDetail(oPayrollType.ID);
@ -2129,7 +2132,7 @@ namespace HRM.DA
Employee oemp = employees.FirstOrDefault(x => x.ID == Convert.ToInt32(oRow["EMPLOYEEID"].ToString())); Employee oemp = employees.FirstOrDefault(x => x.ID == Convert.ToInt32(oRow["EMPLOYEEID"].ToString()));
if (oemp == null) if (oemp == null)
{ {
ErrorList.Add(new SalaryProcessStatus("", "", " Employee not found, Internal ID:" + oRow["EMPLOYEEID"].ToString())); // ErrorList.Add(new SalaryProcessStatus("", "", " Employee not found, Internal ID:" + oRow["EMPLOYEEID"].ToString()));
continue; continue;
} }
@ -2451,22 +2454,26 @@ namespace HRM.DA
DataSet EmpOTHours = new ShiftTermService().GetEmpOT(oPayrollType.NextPayProcessDate, trm.ID); DataSet EmpOTHours = new ShiftTermService().GetEmpOT(oPayrollType.NextPayProcessDate, trm.ID);
foreach (DataRow Dr in EmpOTHours.Tables[0].Rows) foreach (DataRow Dr in EmpOTHours.Tables[0].Rows)
{ {
Employee tempEmployee = employees.Where(emp => emp.ID.ToString() == Dr["EmployeeID"].ToString()).FirstOrDefault(); if (Convert.ToDouble(Dr["TotalOT"]) > 0)
if (tempEmployee == null) continue;
if (tempEmployee.GradeID == null)
{ {
ErrorList.Add(new SalaryProcessStatus(tempEmployee.EmployeeNo, tempEmployee.Name, "Grade not assinged")); Employee tempEmployee = employees.Where(emp => emp.ID.ToString() == Dr["EmployeeID"].ToString()).FirstOrDefault();
continue; if (tempEmployee == null || tempEmployee.IsEligibleOT == false) continue;
} if (tempEmployee.GradeID == null)
if (Dr["TotalOT"] == DBNull.Value) {
{ ErrorList.Add(new SalaryProcessStatus(tempEmployee.EmployeeNo, tempEmployee.Name, "Grade not assinged"));
// ErrorList.Add(new SalaryProcessStatus(tempEmployee.EmployeeNo, tempEmployee.Name, "value can't be null ")); continue;
continue;
}
EmpOverTimes = MakeEmployeeOvertimeObj(ref EmpOverTimes, ref ErrorList, tempEmployee, termParameters, }
oPayrollType, trm.ID, Convert.ToDouble(Dr["TotalOT"]), userid); if (Dr["TotalOT"] == DBNull.Value)
{
// ErrorList.Add(new SalaryProcessStatus(tempEmployee.EmployeeNo, tempEmployee.Name, "value can't be null "));
continue;
}
EmpOverTimes = MakeEmployeeOvertimeObj(ref EmpOverTimes, ref ErrorList, tempEmployee, termParameters,
oPayrollType, trm.ID, Convert.ToDouble(Dr["TotalOT"]), userid);
}
} }
} }
} }
@ -2597,7 +2604,11 @@ namespace HRM.DA
List<Shift> shifts =new ShiftService().GetAllShift(); List<Shift> shifts =new ShiftService().GetAllShift();
List<WorkPlanGroup> workPlanGroups = new WorkPlanGroupService().GetAll(); 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<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 //List<AttnRawData> attRawdata = new AttnRawDataService().Get(startTime, ToTime, payrolltypeid);// get raw data by a date and order by date, employee, punchTime
@ -2636,7 +2647,6 @@ namespace HRM.DA
foreach (Employee emp in employees) foreach (Employee emp in employees)
{ {
//EmpTempid = emp.ID.Integer; //EmpTempid = emp.ID.Integer;
#region EmployeeWise Setup #region EmployeeWise Setup

View File

@ -46,7 +46,9 @@ namespace HRM.DA
oDailyAttnProcess.AttenType = (EnumAttendanceType)oReader.GetInt32("AttenType").Value; oDailyAttnProcess.AttenType = (EnumAttendanceType)oReader.GetInt32("AttenType").Value;
oDailyAttnProcess.Comments = oReader.GetString("Comments") == null ? "" : oReader.GetString("Comments"); oDailyAttnProcess.Comments = oReader.GetString("Comments") == null ? "" : oReader.GetString("Comments");
oDailyAttnProcess.Reason = oReader.GetString("Reason") == null ? "" : oReader.GetString("Reason"); oDailyAttnProcess.Reason = oReader.GetString("Reason") == null ? "" : oReader.GetString("Reason");
oDailyAttnProcess.IsManualEntry = oReader.GetBoolean("IsManualEntry").Value; oDailyAttnProcess.IsManualEntry = oReader.GetBoolean("IsManualEntry", false);
oDailyAttnProcess.OnlyManualInTime = oReader.GetBoolean("OnlyManualInTime", false);
oDailyAttnProcess.OnlyManualOutTime = oReader.GetBoolean("OnlyManualOutTime", false);
oDailyAttnProcess.IsFromMobile = (EnumIsFromMobile)oReader.GetInt32("IsFromMobile").Value; oDailyAttnProcess.IsFromMobile = (EnumIsFromMobile)oReader.GetInt32("IsFromMobile").Value;
oDailyAttnProcess.InTimeLatitude = oReader.GetString("InTimeLatitude") == null ? 0.0m : Convert.ToDecimal(oReader.GetString("InTimeLatitude")); oDailyAttnProcess.InTimeLatitude = oReader.GetString("InTimeLatitude") == null ? 0.0m : Convert.ToDecimal(oReader.GetString("InTimeLatitude"));
oDailyAttnProcess.OutTimeLatitude = oReader.GetString("OutTimeLatitude") == null ? 0.0m : Convert.ToDecimal(oReader.GetString("OutTimeLatitude")); oDailyAttnProcess.OutTimeLatitude = oReader.GetString("OutTimeLatitude") == null ? 0.0m : Convert.ToDecimal(oReader.GetString("OutTimeLatitude"));
@ -1135,7 +1137,16 @@ namespace HRM.DA
tc = TransactionContext.Begin(true); tc = TransactionContext.Begin(true);
foreach (DailyAttnProcess item in oDAttnProcessess) foreach (DailyAttnProcess item in oDAttnProcessess)
{ {
DailyAttnProcessDA.ManualEditUpdate(tc, item); if (item.IsNew)
{
int id = tc.GenerateID("DailyAttnProcess", "DAILYATTNPROCESSID");
base.SetObjectID(item, id);
DailyAttnProcessDA.Insert(tc, item);
}
else
{
DailyAttnProcessDA.ManualEditUpdate(tc, item);
}
} }
//if (attnMonthlyBenefit.Count > 0) //if (attnMonthlyBenefit.Count > 0)
@ -2960,9 +2971,9 @@ namespace HRM.DA
} }
} }
public DateTime GetLastProcessDateUsingPayrollType(int PayrolltypeID) public DateTime? GetLastProcessDateUsingPayrollType(int PayrolltypeID)
{ {
DateTime lastProcessDate = DateTime.MinValue; DateTime? lastProcessDate = null;
TransactionContext tc = null; TransactionContext tc = null;
try try
{ {
@ -2972,7 +2983,7 @@ namespace HRM.DA
{ {
lastProcessDate = oreader.GetDateTime("LastProcessDate").HasValue lastProcessDate = oreader.GetDateTime("LastProcessDate").HasValue
? oreader.GetDateTime("LastProcessDate").Value ? oreader.GetDateTime("LastProcessDate").Value
: DateTime.MinValue; : null;
} }
oreader.Close(); oreader.Close();
@ -4807,6 +4818,29 @@ namespace HRM.DA
return dt; return dt;
} }
public List<DailyAttnProcess> GetByEmployees(DateTime attnDate, string employeeIDs)
{
List<DailyAttnProcess> dailyAttnProcesses = new List<DailyAttnProcess>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(DailyAttnProcessDA.GetByEmployees(tc, attnDate, employeeIDs));
dailyAttnProcesses = this.CreateObjects<DailyAttnProcess>(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 dailyAttnProcesses;
}
} }

View File

@ -728,11 +728,11 @@ namespace HRM.DA
if (ts.Minutes < 16 && ts.Hours < 5) if (ts.Minutes < 16 && ts.Hours < 5)
wh = ts.Hours; wh = ts.Hours;
else if (ts.Minutes < 16) else if (ts.Minutes < 16)
wh = ts.Hours - oProductionBonusSetup.BreakHour; wh = ts.Hours - ((tAtt.InTime.Date >= new DateTime(2025, 3, 1) && tAtt.InTime.Date <= new DateTime(2025, 3, 28)) ? 0.5 : oProductionBonusSetup.BreakHour);
else if (ts.TotalHours < 5) else if (ts.TotalHours < 5)
wh = ts.TotalHours; wh = ts.TotalHours;
else else
wh = ts.TotalHours - oProductionBonusSetup.BreakHour; wh = ts.TotalHours - ((tAtt.InTime.Date >= new DateTime(2025, 3, 1) && tAtt.InTime.Date <= new DateTime(2025, 3, 28)) ? 0.5 : oProductionBonusSetup.BreakHour);
hour += wh < 0 ? 0 : wh; hour += wh < 0 ? 0 : wh;
} }
@ -791,11 +791,11 @@ namespace HRM.DA
if (ts.Minutes < 16 && ts.Hours < 5) if (ts.Minutes < 16 && ts.Hours < 5)
wh = ts.Hours; wh = ts.Hours;
else if (ts.Minutes < 16) else if (ts.Minutes < 16)
wh = ts.Hours - oProductionBonusSetup.BreakHour; wh = ts.Hours - ((tAtt.InTime.Date>=new DateTime(2025,3,1) && tAtt.InTime.Date <= new DateTime(2025, 3, 28))?0.5: oProductionBonusSetup.BreakHour);
else if (ts.TotalHours < 5) else if (ts.TotalHours < 5)
wh = ts.TotalHours; wh = ts.TotalHours;
else else
wh = ts.TotalHours - oProductionBonusSetup.BreakHour; wh = ts.TotalHours - ((tAtt.InTime.Date >= new DateTime(2025, 3, 1) && tAtt.InTime.Date <= new DateTime(2025, 3, 28)) ? 0.5 : oProductionBonusSetup.BreakHour);
// hour += ts.Hours < 0 ? 0 : ts.Hours; // hour += ts.Hours < 0 ? 0 : ts.Hours;
hour += wh < 0 ? 0 : wh; hour += wh < 0 ? 0 : wh;

View File

@ -9,6 +9,7 @@ using System.Linq.Expressions;
using HRM.BO; using HRM.BO;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using static iTextSharp.text.pdf.AcroFields; using static iTextSharp.text.pdf.AcroFields;
using System.Collections;
namespace HRM.DA namespace HRM.DA
{ {
@ -1563,6 +1564,37 @@ namespace HRM.DA
return employees; return employees;
} }
public List<Employee> GetForOTprocess(EnumEmployeeStatus status, int payrollTypeID, DateTime salarymonth)
{
List<Employee> employees = new List<Employee>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(EmployeeDA.GetForOTprocess(tc, status, payrollTypeID, salarymonth));
employees = this.CreateObjects<Employee>(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 employees;
}
public DataTable GetEmpIDsOfManager(int status, DateTime lastDateOfYear) public DataTable GetEmpIDsOfManager(int status, DateTime lastDateOfYear)
{ {
@ -1985,6 +2017,39 @@ namespace HRM.DA
#endregion #endregion
} }
} }
public Employee SaveEmployee(Employee oEmployee)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
if (oEmployee.IsNew)
{
int id = tc.GenerateID("Employee", "EmployeeID");
base.SetObjectID(oEmployee, id);
oEmployee.EmployeeNo = new HREmployeeService().GetNextEmployeeNo(tc);
EmployeeDA.Insert(tc, oEmployee);
}
else
{
EmployeeDA.Update(tc, oEmployee);
}
tc.End();
return oEmployee;
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
public int SaveHnmEmployee(List<object> employeeData) public int SaveHnmEmployee(List<object> employeeData)
{ {
@ -5640,5 +5705,201 @@ namespace HRM.DA
return oEmpBasicInfos; return oEmpBasicInfos;
} }
public Hashtable CollectDataForBanglaAppointmentHash(HREmployee employee, PayrollType payrollType)//, bool isPhotoNeeded = false)
{
Hashtable table = new Hashtable();
//DataRow oRow = null;
//DataTable dEmpInfo = new DataTable();
string sempId = Convert.ToString(employee.ID);
PhotoPath pPath = new PhotoPathService().Get().FirstOrDefault();
DataTable dtEmpBasicInfo = new EmployeeService().GetAllEmpBasicInfo(sempId)
.Tables[0]
.AsEnumerable()
.CopyToDataTable();
if (dtEmpBasicInfo.Rows.Count > 0)
{
DataRow drBasic = dtEmpBasicInfo.Rows[0];
//oRow = dEmpInfo.NewRow();
table.Add(TagOutputConstant.EmpNameBangla, drBasic["BanglaName"].ToString());
table.Add(TagOutputConstant.EmpCodeBangla, drBasic["EmployeeNo"].ToString());
table.Add(TagOutputConstant.EmpSpouseName, drBasic["SPOUSENAMEBANGLA"].ToString());
table.Add(TagOutputConstant.EmpWorkType, drBasic["WorkType"].ToString());
table.Add(TagOutputConstant.FatherNameBangla, drBasic["FATHERNAMEBANGLA"].ToString());
table.Add(TagOutputConstant.MotherNameBangla, drBasic["MOTHERNAMEBANGLA"].ToString());
table.Add(TagOutputConstant.SpouseNameBangla, drBasic["SPOUSENAMEBANGLA"].ToString());
//oRow["HusbandName"] = string.Empty;
table.Add(TagOutputConstant.JoiningDateBangla, Convert.ToDateTime(drBasic["JoiningDate"].ToString()).ToString("dd'/'MM'/'yyyy"));
table.Add(TagOutputConstant.ProbationDateBangla, Convert.ToDateTime(drBasic["JoiningDate"].ToString()).AddDays(90).ToString("dd'/'MM'/'yyyy"));
table.Add(TagOutputConstant.BirthDateBangla, Convert.ToDateTime(drBasic["BIRTHDATE"].ToString()).ToString("dd'/'MM'/'yyyy"));
//table.Add(TagOutputConstant.BloodGroupBangla, ((EnumBloodGroup)Convert.ToInt32(drBasic["BLOODGROUP"].ToString())).BloodGroupToBangla());
table.Add(TagOutputConstant.BloodGroupBangla, GlobalFunctions.BloodGroupToBangla((EnumBloodGroup)Convert.ToInt32(drBasic["BLOODGROUP"].ToString())));
//if (isPhotoNeeded && _rImageManager != null)
//{
// oRow["EmpPhotograph"] = _rImageManager.GetImage(drBasic["PhotoPath"].ToString());
//}
table.Add(TagOutputConstant.VillagePABangla, drBasic["PERMANENTADDRESSINBANGLA"].ToString());
table.Add(TagOutputConstant.PostOfficePABangla, drBasic["ParmanentPOInBangla"].ToString());
table.Add(TagOutputConstant.ThanaPABangla, drBasic["ParmanentThanaBangla"].ToString());
table.Add(TagOutputConstant.DistrictPABangla, drBasic["ParmanentDistricBANGLA"].ToString());
table.Add(TagOutputConstant.VillageTABangla, drBasic["PRESENTADDRESSINBANGLA"].ToString());
table.Add(TagOutputConstant.PostOfficeTABangla, drBasic["PresentPOInBangla"].ToString());
table.Add(TagOutputConstant.ThanaTABangla, drBasic["TempThanaBangla"].ToString());
table.Add(TagOutputConstant.DistrictTABangla, drBasic["TempDistricBANGLA"].ToString());
table.Add(TagOutputConstant.EmpDepartmentBangla, drBasic["DepartmentBangla"].ToString());
table.Add(TagOutputConstant.SectionBangla, drBasic["SectionBangla"].ToString());
table.Add(TagOutputConstant.FloorBangla, drBasic["FloorBangla"].ToString());
//oRow["EducationLevel"] = drBasic["EducationLevel"];
table.Add(TagOutputConstant.EmpDesignaionBangla, drBasic["BanglaDesignation"].ToString());
table.Add(TagOutputConstant.GradeBangla, drBasic["GradeBanglaName"].ToString());
//oRow["NationalID"] = drBasic["NationalID"];
string moneyFormat = "#,##0.00";
table.Add(TagOutputConstant.BasicSalaryBangla, employee.BasicSalary.ToString(moneyFormat));
table.Add(TagOutputConstant.HouseRentBangla, 0.ToString(moneyFormat));
table.Add(TagOutputConstant.ConveyenceBangla, 0.ToString(moneyFormat));
table.Add(TagOutputConstant.MedicalBangla, 0.ToString(moneyFormat));
table.Add(TagOutputConstant.FoodBangla, 0.ToString(moneyFormat));
table.Add(TagOutputConstant.AttendenceBonusBangla, 0.ToString(moneyFormat));
table.Add(TagOutputConstant.ConductBonusBangla, 0.ToString(moneyFormat));
List<ADParameterEmployee> adParamEmps = null;
List<ADParameter> adParams = new ADParameterService().Get(employee.GradeID, EnumEntitleType.Grade, EnumAllowOrDeduct.Allowance, payrollType.ID);
List<AllowanceDeduction> allowdeducitons = new AllowanceDeductionService().Get(EnumStatus.Regardless, payrollType.ID);
EmployeeGradeSalary oEmpGradeSalary = new EmployeeGradeSalaryService().GetBasicOnDateBAT(employee.ID, DateTime.Now);
if (adParams != null)
{
foreach (ADParameter adParam in adParams)
{
//double amount = new ADParameterService().GetGradeDefinedAmount(employee, employee.BasicSalary, employee.GrossSalary, payrollTypeID);
double amount = new ADParameterService().GetGradeDefinedAmount(employee, employee.BasicSalary, employee.GrossSalary, oEmpGradeSalary, adParam);
adParam.AllowanceDeduction = allowdeducitons.FirstOrDefault(x => x.ID == adParam.AllowDeductID);
switch (adParam.AllowanceDeduction.Code.Trim())
{
case "001":
table.Remove(TagOutputConstant.AttendenceBonusBangla);
table.Add(TagOutputConstant.AttendenceBonusBangla, amount.ToString(moneyFormat));
break;
case "002":
table.Remove(TagOutputConstant.ConductBonusBangla);
table.Add(TagOutputConstant.ConductBonusBangla, amount.ToString(moneyFormat));
break;
case "008":
table.Remove(TagOutputConstant.HouseRentBangla);
table.Add(TagOutputConstant.HouseRentBangla, amount.ToString(moneyFormat));
break;
case "010":
table.Remove(TagOutputConstant.ConveyenceBangla);
table.Add(TagOutputConstant.ConveyenceBangla, amount.ToString(moneyFormat));
break;
case "011":
table.Remove(TagOutputConstant.MedicalBangla);
table.Add(TagOutputConstant.MedicalBangla, amount.ToString(moneyFormat));
break;
case "006":
table.Remove(TagOutputConstant.FoodBangla);
table.Add(TagOutputConstant.FoodBangla, amount.ToString(moneyFormat));
break;
default:
break;
}
}
}
adParamEmps = new ADParameterEmployeeService().GetByEmployee(employee.ID, EnumAllowOrDeduct.Allowance, EnumADEmpType.AppliedToIndividual);
if (adParamEmps != null)
{
foreach (ADParameterEmployee adEmp in adParamEmps)
{
switch (adEmp.AllowDeduct.Code.Trim())
{
case "001":
table.Remove(TagOutputConstant.AttendenceBonusBangla);
table.Add(TagOutputConstant.AttendenceBonusBangla, adEmp.MonthlyAmount.ToString(moneyFormat));
break;
case "002":
table.Remove(TagOutputConstant.ConductBonusBangla);
table.Add(TagOutputConstant.ConductBonusBangla, adEmp.MonthlyAmount.ToString(moneyFormat));
break;
case "008":
table.Remove(TagOutputConstant.HouseRentBangla);
table.Add(TagOutputConstant.HouseRentBangla, adEmp.MonthlyAmount.ToString(moneyFormat));
break;
case "010":
table.Remove(TagOutputConstant.ConveyenceBangla);
table.Add(TagOutputConstant.ConveyenceBangla, adEmp.MonthlyAmount.ToString(moneyFormat));
break;
case "011":
table.Remove(TagOutputConstant.MedicalBangla);
table.Add(TagOutputConstant.MedicalBangla, adEmp.MonthlyAmount.ToString(moneyFormat));
break;
case "006":
table.Remove(TagOutputConstant.FoodBangla);
table.Add(TagOutputConstant.FoodBangla, adEmp.MonthlyAmount.ToString(moneyFormat));
break;
default:
break;
}
}
}
table.Add(TagOutputConstant.TotalTakaBangla, Math.Round(Convert.ToDouble(table[TagOutputConstant.BasicSalaryBangla]) +
Convert.ToDouble(table[TagOutputConstant.HouseRentBangla]) +
Convert.ToDouble(table[TagOutputConstant.ConveyenceBangla]) +
Convert.ToDouble(table[TagOutputConstant.MedicalBangla]) +
Convert.ToDouble(table[TagOutputConstant.FoodBangla]), 0).ToString(moneyFormat));
double epf = 0, cpf = 0;
double pfPercent = (payrollType.pFContriCompany / 100);
epf = cpf = employee.BasicSalary * pfPercent;
List<PFException> oPfExceptions = new PFExceptionService().Get();
PFException oEmpPFException = oPfExceptions.FirstOrDefault(x => x.EmployeeID == employee.ID);
if (oEmpPFException != null) // && oEmpPFException.StartDate <= salary.SalaryMonth)
{
epf = oEmpPFException.EPFPercent == 0 ? oEmpPFException.EPFAmount : GlobalFunctions.Round(employee.BasicSalary * (oEmpPFException.EPFPercent / 100));
cpf = oEmpPFException.EPFPercent == 0 ? oEmpPFException.CPFAmount : GlobalFunctions.Round(employee.BasicSalary * (oEmpPFException.CPFPercent / 100));
}
//oRow["EPF"] = epf;
//oRow["CPF"] = cpf;
}
return table;
}
public DataSet GetEmpDetailsEcho(string sEmpID)
{
DataSet oEmpDetails = new DataSet();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
oEmpDetails = EmployeeDA.GetEmpDetailsEcho(tc, sEmpID);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return oEmpDetails;
}
} }
} }

View File

@ -254,6 +254,8 @@ namespace HRM.DA
oEmpContact.ProfileStatus = (EnumProfileStatus)oReader.GetInt32("ProfileStatus").GetValueOrDefault(); oEmpContact.ProfileStatus = (EnumProfileStatus)oReader.GetInt32("ProfileStatus").GetValueOrDefault();
oEmpContact.PresentPOInBangla = oReader.GetString("PresentPOInBangla", true, null); oEmpContact.PresentPOInBangla = oReader.GetString("PresentPOInBangla", true, null);
oEmpContact.ParmanentPOInBangla = oReader.GetString("ParmanentPOInBangla", true, null); oEmpContact.ParmanentPOInBangla = oReader.GetString("ParmanentPOInBangla", true, null);
oEmpContact.PresentPO = oReader.GetString("PresentPO", true, null);
oEmpContact.PermanentPO = oReader.GetString("PermanentPO", true, null);
this.SetObjectState(oEmpContact, ObjectState.Saved); this.SetObjectState(oEmpContact, ObjectState.Saved);
} }
@ -551,10 +553,21 @@ namespace HRM.DA
oEmpNominee.TelePhone = oReader.GetString("TelePhone"); oEmpNominee.TelePhone = oReader.GetString("TelePhone");
oEmpNominee.EmailAddress = oReader.GetString("EmailAddress"); oEmpNominee.EmailAddress = oReader.GetString("EmailAddress");
oEmpNominee.NomineeMobileNo = oReader.GetString("NomineeMobileNo", true, string.Empty);
oEmpNominee.ProfileStatus = (EnumProfileStatus)oReader.GetInt32("ProfileStatus", true, 0); oEmpNominee.ProfileStatus = (EnumProfileStatus)oReader.GetInt32("ProfileStatus", true, 0);
oEmpNominee.HasPicture = oReader.GetBoolean("HasPicture", true, false); oEmpNominee.HasPicture = oReader.GetBoolean("HasPicture", true, false);
oEmpNominee.HasSignature = oReader.GetBoolean("HasSignature", true, false); oEmpNominee.HasSignature = oReader.GetBoolean("HasSignature", true, false);
oEmpNominee.FatherName = oReader.GetString("FatherName");
oEmpNominee.MotherName = oReader.GetString("MotherName");
oEmpNominee.SpouseName = oReader.GetString("SpouseName");
oEmpNominee.NationalID = oReader.GetString("NID");
oEmpNominee.Gender = (EnumGender)oReader.GetInt32("Gender", 0);
oEmpNominee.DistrictID = oReader.GetInt32("DistrictID").HasValue ? oReader.GetInt32("DistrictID").Value : null;
oEmpNominee.ThanaID = oReader.GetInt32("ThanaID").HasValue ? oReader.GetInt32("ThanaID").Value : null;
oEmpNominee.PostOffice = oReader.GetString("PostOffice");
this.SetObjectState(oEmpNominee, ObjectState.Saved); this.SetObjectState(oEmpNominee, ObjectState.Saved);
} }
@ -595,8 +608,8 @@ namespace HRM.DA
oEmpAcademic.ProfileStatus = (EnumProfileStatus)oReader.GetInt32("ProfileStatus", 0); oEmpAcademic.ProfileStatus = (EnumProfileStatus)oReader.GetInt32("ProfileStatus", 0);
oEmpAcademic.ResultTypeID = oReader.GetInt32("ResultTypeID", 0); oEmpAcademic.ResultTypeID = oReader.GetInt32("ResultTypeID", 0);
oEmpAcademic.GPAOrMarks = oReader.GetDouble("GPAOrMarks", 0); oEmpAcademic.GPAOrMarks = oReader.GetDouble("OutOf").HasValue ? oReader.GetDouble("GPAOrMarks") : null;
oEmpAcademic.OutOf = oReader.GetDouble("OutOf", 0); oEmpAcademic.OutOf = oReader.GetDouble("OutOf").HasValue ? oReader.GetDouble("OutOf") : null;
oEmpAcademic.LastLevel = oReader.GetBoolean("LastLevel", false); oEmpAcademic.LastLevel = oReader.GetBoolean("LastLevel", false);
oEmpAcademic.InstituteName = oReader.GetString("InstituteName"); oEmpAcademic.InstituteName = oReader.GetString("InstituteName");
oEmpAcademic.PhotoPath = oReader.GetString("PhotoPath"); oEmpAcademic.PhotoPath = oReader.GetString("PhotoPath");
@ -2722,7 +2735,7 @@ namespace HRM.DA
tc.End(); tc.End();
} }
public int SavePersonalInfo(HREmployee employee) public HREmployee SavePersonalInfo(HREmployee employee)
{ {
TransactionContext tc = null; TransactionContext tc = null;
try try
@ -2737,7 +2750,7 @@ namespace HRM.DA
if (employee.IsNew) if (employee.IsNew)
{ {
this.SetObjectID(employee, (HREmployeeDA.GetNewID(tc))); this.SetObjectID(employee, (HREmployeeDA.GetNewID(tc)));
employee.EmployeeNo = this.GetNextEmployeeNo(tc);
HREmployeeDA.Insert(tc, employee); HREmployeeDA.Insert(tc, employee);
} }
else else
@ -2749,7 +2762,7 @@ namespace HRM.DA
tc.End(); tc.End();
return employee.ID; return employee;
} }
catch (Exception e) catch (Exception e)
{ {
@ -2763,7 +2776,35 @@ namespace HRM.DA
#endregion #endregion
} }
} }
public string GetNextEmployeeNo(TransactionContext tc)
{
string nextEmployeeNo = string.Empty;
try
{
object obj = tc.ExecuteScalar("SELECT MAX(Cast(EmployeeNo AS Decimal(18,0)))+1 FROM EMPLOYEE");
if (obj == DBNull.Value)
{
nextEmployeeNo = "1";
}
else
{
nextEmployeeNo = Convert.ToString(obj);
}
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new Exception(e.Message, e);
#endregion
}
return nextEmployeeNo;
}
public int Save(HREmployee employee) public int Save(HREmployee employee)
@ -4136,6 +4177,35 @@ namespace HRM.DA
return ds; return ds;
} }
public List<EmpAcademic> GetAllEmpAcademics()
{
List<EmpAcademic> oEmpAcademics = new List<EmpAcademic>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(HREmployeeDA.GetAllEmpAcademics(tc));
oEmpAcademics = this.CreateEmpAcademicObjects(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 oEmpAcademics;
}
#endregion #endregion
@ -5023,6 +5093,40 @@ namespace HRM.DA
return list; return list;
} }
public DataSet GetEmpELDetails(int empID)
{
DataSet empLeaveDetails = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
empLeaveDetails = HREmployeeDA.GetEmpELDetails(tc, empID);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
return empLeaveDetails;
}
public DataSet GetNumberOfYears(int empID)
{
DataSet NumberOfYears = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
NumberOfYears = HREmployeeDA.GetNumberOfYears(tc, empID);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
return NumberOfYears;
}
#region EmpHRQuestionAnswer service implementation #region EmpHRQuestionAnswer service implementation
public List<EmpHRQuestionAnswer> GetEmpHRQuestionAnswers(TransactionContext tc, int id) public List<EmpHRQuestionAnswer> GetEmpHRQuestionAnswers(TransactionContext tc, int id)

View File

@ -340,19 +340,19 @@ namespace HRM.DA
using (SqlBulkCopy bulkCopy = new SqlBulkCopy((SqlConnection)tc.Connection, SqlBulkCopyOptions.Default, (SqlTransaction)tc.Transaction)) using (SqlBulkCopy bulkCopy = new SqlBulkCopy((SqlConnection)tc.Connection, SqlBulkCopyOptions.Default, (SqlTransaction)tc.Transaction))
{ {
bulkCopy.BulkCopyTimeout = 6000; // in seconds bulkCopy.BulkCopyTimeout = 6000; // in seconds
bulkCopy.ColumnMappings.Add("EMPLOYEEID", "EMPLOYEEID"); bulkCopy.ColumnMappings.Add("EMPLOYEEID", "EmployeeID");
bulkCopy.ColumnMappings.Add("MONTHDATE", "MONTHDATE"); bulkCopy.ColumnMappings.Add("MONTHDATE", "MonthDate");
bulkCopy.ColumnMappings.Add("TERMID", "TERMID"); bulkCopy.ColumnMappings.Add("TERMID", "TermID");
bulkCopy.ColumnMappings.Add("TERMPARAMETERID", "TERMPARAMETERID"); bulkCopy.ColumnMappings.Add("TERMPARAMETERID", "TermParameterID");
bulkCopy.ColumnMappings.Add("OTHOURS", "OTHOURS"); bulkCopy.ColumnMappings.Add("OTHOURS", "OTHours");
bulkCopy.ColumnMappings.Add("AMOUNT", "AMOUNT"); bulkCopy.ColumnMappings.Add("AMOUNT", "Amount");
bulkCopy.ColumnMappings.Add("CREATEDBY", "CREATEDBY"); bulkCopy.ColumnMappings.Add("CREATEDBY", "CreatedBy");
bulkCopy.ColumnMappings.Add("CREATIONDATE", "CREATIONDATE"); bulkCopy.ColumnMappings.Add("CREATIONDATE", "CreationDate");
bulkCopy.ColumnMappings.Add("MODIFIEDBY", "MODIFIEDBY"); bulkCopy.ColumnMappings.Add("MODIFIEDBY", "ModifiedBy");
bulkCopy.ColumnMappings.Add("MODIFIEDDATE", "MODIFIEDDATE"); bulkCopy.ColumnMappings.Add("MODIFIEDDATE", "ModifiedDate");
bulkCopy.ColumnMappings.Add("OTMONTH", "OTMONTH"); bulkCopy.ColumnMappings.Add("OTMONTH", "OTMonth");
bulkCopy.ColumnMappings.Add("EMPOVERTIMEID", "EMPOVERTIMEID"); bulkCopy.ColumnMappings.Add("EMPOVERTIMEID", "EmpOverTimeID");
bulkCopy.ColumnMappings.Add("PAYROLLTYPEID", "PAYROLLTYPEID"); bulkCopy.ColumnMappings.Add("PAYROLLTYPEID", "PayrollTypeID");
bulkCopy.ColumnMappings.Add("PRVMONTHHOURS", "PRVMONTHHOURS"); bulkCopy.ColumnMappings.Add("PRVMONTHHOURS", "PRVMONTHHOURS");
bulkCopy.ColumnMappings.Add("CURRMONTHHOURS", "CURRMONTHHOURS"); bulkCopy.ColumnMappings.Add("CURRMONTHHOURS", "CURRMONTHHOURS");

View File

@ -524,21 +524,21 @@ namespace HRM.DA
{ {
bulkCopy.BulkCopyTimeout = 6000; // in seconds bulkCopy.BulkCopyTimeout = 6000; // in seconds
bulkCopy.ColumnMappings.Add("PROCESSID", "PROCESSID"); bulkCopy.ColumnMappings.Add("PROCESSID", "ProcessId");
bulkCopy.ColumnMappings.Add("PROCESSMONTH", "PROCESSMONTH"); bulkCopy.ColumnMappings.Add("PROCESSMONTH", "ProcessMonth");
bulkCopy.ColumnMappings.Add("EMPID", "EMPID"); bulkCopy.ColumnMappings.Add("EMPID", "EmpID");
bulkCopy.ColumnMappings.Add("AMOUNT", "AMOUNT"); bulkCopy.ColumnMappings.Add("AMOUNT", "Amount");
bulkCopy.ColumnMappings.Add("TERMID", "TERMID"); bulkCopy.ColumnMappings.Add("TERMID", "TermID");
bulkCopy.ColumnMappings.Add("HOURS", "HOURS"); bulkCopy.ColumnMappings.Add("HOURS", "Hours");
bulkCopy.ColumnMappings.Add("CREATEDBY", "CREATEDBY"); bulkCopy.ColumnMappings.Add("CREATEDBY", "CreatedBy");
bulkCopy.ColumnMappings.Add("CREATIONDATE", "CREATIONDATE"); bulkCopy.ColumnMappings.Add("CREATIONDATE", "CreationDate");
bulkCopy.ColumnMappings.Add("MODIFIEDBY", "MODIFIEDBY"); bulkCopy.ColumnMappings.Add("MODIFIEDBY", "ModifiedBy");
bulkCopy.ColumnMappings.Add("MODIFIEDDATE", "MODIFIEDDATE"); bulkCopy.ColumnMappings.Add("MODIFIEDDATE", "ModifiedDate");
bulkCopy.ColumnMappings.Add("TERMPARAMETERID", "TERMPARAMETERID"); bulkCopy.ColumnMappings.Add("TERMPARAMETERID", "TermParameterID");
bulkCopy.ColumnMappings.Add("EMPOVERTIMEID", "EMPOVERTIMEID"); bulkCopy.ColumnMappings.Add("EMPOVERTIMEID", "EmpOverTimeID");
bulkCopy.ColumnMappings.Add("ARREARAMOUNT", "ARREARAMOUNT"); bulkCopy.ColumnMappings.Add("ARREARAMOUNT", "ArrearAmount");
bulkCopy.ColumnMappings.Add("OTMONTH", "OTMONTH"); bulkCopy.ColumnMappings.Add("OTMONTH", "OTMonth");
bulkCopy.ColumnMappings.Add("PAYROLLTYPEID", "PAYROLLTYPEID"); bulkCopy.ColumnMappings.Add("PAYROLLTYPEID", "PayrollTypeID");
bulkCopy.DestinationTableName = "OTProcess"; bulkCopy.DestinationTableName = "OTProcess";
@ -614,7 +614,7 @@ namespace HRM.DA
public void Process(List<Employee> emps, int userid, int payrolltypeid) public void Process(List<Employee> emps, int userid, int payrolltypeid)
{ {
// TermParameter.EntryType = ConfigurationManager.GetStringValue("overtime", "entrytype", EnumConfigurationType.Logic); TermParameter.EntryType = new SystemConfigarationService().GetconfigStringValue(EnumConfigurationType.Logic,"overtime", "entrytype");
bool calOnEarnedBasic = new SystemConfigarationService().GetconfigBooleanValue(EnumConfigurationType.Logic, "overtime", "earnedbasic"); bool calOnEarnedBasic = new SystemConfigarationService().GetconfigBooleanValue(EnumConfigurationType.Logic, "overtime", "earnedbasic");
int basicOnMonth = Convert.ToInt32(new SystemConfigarationService().GetconfigValue(EnumConfigurationType.Logic, "overtime", "basicondate")); int basicOnMonth = Convert.ToInt32(new SystemConfigarationService().GetconfigValue(EnumConfigurationType.Logic, "overtime", "basicondate"));
bool fixedotmonth = new SystemConfigarationService().GetconfigBooleanValue(EnumConfigurationType.Logic, "overtime", "fixedotmonth"); bool fixedotmonth = new SystemConfigarationService().GetconfigBooleanValue(EnumConfigurationType.Logic, "overtime", "fixedotmonth");
@ -623,7 +623,7 @@ namespace HRM.DA
PayrollType ptype = new PayrollTypeService().Get(payrolltypeid); PayrollType ptype = new PayrollTypeService().Get(payrolltypeid);
List<Employee> omployees = emps; List<Employee> omployees = emps;
if (emps == null) omployees = new EmployeeService().Get(EnumEmployeeStatus.Live, payrolltypeid); if (emps == null) omployees = new EmployeeService().GetForOTprocess(EnumEmployeeStatus.Live, payrolltypeid, ptype.NextPayProcessDate);
_OtProcess = new List<OTProcess>(); _OtProcess = new List<OTProcess>();
_EmpOvertimes = new EmployeeOverTimeService().Get(ptype.NextPayProcessDate, payrolltypeid); _EmpOvertimes = new EmployeeOverTimeService().Get(ptype.NextPayProcessDate, payrolltypeid);
double basicSalary = 0; double basicSalary = 0;
@ -835,13 +835,16 @@ namespace HRM.DA
TermParameter tparam = TermParameter.GetParameter(this._termParameters, (int)ot.Employee.GradeID, ot.TermID); TermParameter tparam = TermParameter.GetParameter(this._termParameters, (int)ot.Employee.GradeID, ot.TermID);
if (tparam == null) throw new Exception("OT parameter/Policy not found for the employee:" if (tparam == null) throw new Exception("OT parameter/Policy not found for the employee:"
+ ot.Employee.EmployeeNo + " " + ot.Employee.Name); + ot.Employee.EmployeeNo + " " + ot.Employee.Name);
double nHour = ot.OTHours; //double nHour = ot.OTHours;
//if ((ot.OTHours - nHour) == 0) ////if ((ot.OTHours - nHour) == 0)
//{ ////{
// throw new Exception("Monthly OT hours can be zero"); //// throw new Exception("Monthly OT hours can be zero");
//} ////}
nHour = Math.Floor(ot.OTHours); //nHour = Math.Floor(ot.OTHours);
nHour += (ot.OTHours - nHour) * 100 / 60; //nHour += (ot.OTHours - nHour) * 100 / 60;
double nHour = TermParameter.EntryType.ToUpper() == "MINUTE" ? // Means decimal part is in minutes
Math.Round(Math.Floor(ot.OTHours) + (((ot.OTHours - Math.Floor(ot.OTHours)) * 100.00) / 60.00), 2)
: Math.Round(ot.OTHours, 2);
switch (tparam.Type) switch (tparam.Type)
{ {
case EnumOverTimeType.AnyAmount: case EnumOverTimeType.AnyAmount:
@ -853,7 +856,7 @@ namespace HRM.DA
case EnumOverTimeType.FixedAmount: case EnumOverTimeType.FixedAmount:
return ot.OTHours ; return ot.OTHours ;
case EnumOverTimeType.HourlyBasicPercent: case EnumOverTimeType.HourlyBasicPercent:
return this.ConvertToHourlyRate(nBasic, ot.OTMonth, tparam.housInMonth) * ot.OTHours * (tparam.Amount/100); return this.ConvertToHourlyRate(nBasic, ot.OTMonth, _hoursInMonth) * nHour * (tparam.Amount/100);
case EnumOverTimeType.HourlyFlatAmount: case EnumOverTimeType.HourlyFlatAmount:
return ot.OTHours * tparam.Amount; return ot.OTHours * tparam.Amount;
case EnumOverTimeType.HoursOfMonth: case EnumOverTimeType.HoursOfMonth:
@ -911,8 +914,8 @@ namespace HRM.DA
process.OTMonth = GlobalFunctions.LastDateOfMonth(ot.OTMonth); process.OTMonth = GlobalFunctions.LastDateOfMonth(ot.OTMonth);
process.TermID = ot.TermID; process.TermID = ot.TermID;
process.TermParameterID = ot.TermParameterID; process.TermParameterID = ot.TermParameterID;
process.TotalHour = ot.OTHours; process.TotalHour = Math.Round(ot.OTHours, 2);
process.Amount = this.GetPayableAmount(ot, nBasic); process.Amount = Math.Round(this.GetPayableAmount(ot, Math.Round(nBasic)));
process.PayrollTypeID = ot.PayrollTypeID; process.PayrollTypeID = ot.PayrollTypeID;
return process; return process;

View File

@ -978,6 +978,31 @@ namespace HRM.DA
return bShowInDesktop; 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) public List<SalaryProcess> GetAllProcess(int payrollTypeID, DateTime nextPayProcessDate)
{ {
List<SalaryProcess> salaryProcesss = new List<SalaryProcess>(); List<SalaryProcess> salaryProcesss = new List<SalaryProcess>();

View File

@ -288,9 +288,83 @@ namespace HRM.DA
return searchEmployees; return searchEmployees;
} }
public List<SearchEmployee> FindEmpCodeNameForEmployeePicker(int userID, int payrollTypeID, string code, string name)
{
List<SearchEmployee> searchEmployees = new List<SearchEmployee>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
public List<SearchEmployee> GetEmployeeNotYetUser(int payrollTypeID) DataReader dr = new DataReader(SearchEmployeeDA.SearchForEmployeePicker(tc, userID, payrollTypeID, code, name));
searchEmployees = this.CreateObjects<SearchEmployee>(dr);
//while (dr.Read())
//{
// SearchEmployee item = new SearchEmployee();
// item.Name = dr.GetString("name");
// item.EmployeeNo = dr.GetString("employeeNo");
// searchEmployees.Add(item);
//}
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 searchEmployees;
}
public List<SearchEmployee> FindEmpCodeNameForEmployeePickerNew(int userID, int payrollTypeID, string code, string name, bool isForLifeCycle)
{
List<SearchEmployee> searchEmployees = new List<SearchEmployee>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(SearchEmployeeDA.SearchForEmployeePickerNew(tc, userID, payrollTypeID, code, name, isForLifeCycle));
searchEmployees = this.CreateObjects<SearchEmployee>(dr);
//while (dr.Read())
//{
// SearchEmployee item = new SearchEmployee();
// item.Name = dr.GetString("name");
// item.EmployeeNo = dr.GetString("employeeNo");
// searchEmployees.Add(item);
//}
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 searchEmployees;
}
public List<SearchEmployee> GetEmployeeNotYetUser(int payrollTypeID)
{ {
List<SearchEmployee> searchEmployees = new List<SearchEmployee>(); List<SearchEmployee> searchEmployees = new List<SearchEmployee>();

View File

@ -759,21 +759,21 @@ namespace HRM.DA
using (SqlBulkCopy bulkCopy = new SqlBulkCopy((SqlConnection)tc.Connection, SqlBulkCopyOptions.Default, (SqlTransaction)tc.Transaction)) using (SqlBulkCopy bulkCopy = new SqlBulkCopy((SqlConnection)tc.Connection, SqlBulkCopyOptions.Default, (SqlTransaction)tc.Transaction))
{ {
bulkCopy.BulkCopyTimeout = 6000; // in seconds bulkCopy.BulkCopyTimeout = 6000; // in seconds
bulkCopy.ColumnMappings.Add("EMPLEAVEID", "EMPLEAVEID"); bulkCopy.ColumnMappings.Add("EMPLEAVEID", "EmpLeaveID");
bulkCopy.ColumnMappings.Add("EMPLOYEEID", "EMPLOYEEID"); bulkCopy.ColumnMappings.Add("EMPLOYEEID", "EMPLOYEEID");
bulkCopy.ColumnMappings.Add("LEAVEID", "LEAVEID"); bulkCopy.ColumnMappings.Add("LEAVEID", "LEAVEID");
bulkCopy.ColumnMappings.Add("MONTHDATE", "MONTHDATE"); bulkCopy.ColumnMappings.Add("MONTHDATE", "MONTHDATE");
bulkCopy.ColumnMappings.Add("LEAVEDAY", "LEAVEDAY"); bulkCopy.ColumnMappings.Add("LEAVEDAY", "LEAVEDAY");
bulkCopy.ColumnMappings.Add("CREATEDBY", "CREATEDBY"); bulkCopy.ColumnMappings.Add("CREATEDBY", "CreatedBy");
bulkCopy.ColumnMappings.Add("LEAVEMONTH", "LEAVEMONTH"); bulkCopy.ColumnMappings.Add("LEAVEMONTH", "LEAVEMONTH");
bulkCopy.ColumnMappings.Add("FROMDATE", "FROMDATE"); bulkCopy.ColumnMappings.Add("FROMDATE", "FROMDATE");
bulkCopy.ColumnMappings.Add("TODATE", "TODATE"); bulkCopy.ColumnMappings.Add("TODATE", "TODATE");
bulkCopy.ColumnMappings.Add("CREATIONDATE", "CREATIONDATE"); bulkCopy.ColumnMappings.Add("CREATIONDATE", "CreationDate");
bulkCopy.ColumnMappings.Add("MODIFIEDBY", "MODIFIEDBY"); bulkCopy.ColumnMappings.Add("MODIFIEDBY", "ModifiedBy");
bulkCopy.ColumnMappings.Add("MODIFIEDDATE", "MODIFIEDDATE"); bulkCopy.ColumnMappings.Add("MODIFIEDDATE", "ModifiedDate");
bulkCopy.ColumnMappings.Add("TYPE", "TYPE"); bulkCopy.ColumnMappings.Add("TYPE", "Type");
bulkCopy.ColumnMappings.Add("REFERENCEID", "REFERENCEID"); bulkCopy.ColumnMappings.Add("REFERENCEID", "ReferenceID");
bulkCopy.ColumnMappings.Add("PARAMID", "PARAMID"); bulkCopy.ColumnMappings.Add("PARAMID", "ParamID");
bulkCopy.ColumnMappings.Add("ISLATEATTENDANCERELATED", "ISLATEATTENDANCERELATED"); bulkCopy.ColumnMappings.Add("ISLATEATTENDANCERELATED", "ISLATEATTENDANCERELATED");
bulkCopy.ColumnMappings.Add("PAYROLLTYPEID", "PAYROLLTYPEID"); bulkCopy.ColumnMappings.Add("PAYROLLTYPEID", "PAYROLLTYPEID");

View File

@ -15448,6 +15448,10 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
private global::System.Data.DataColumn columnShift; private global::System.Data.DataColumn columnShift;
private global::System.Data.DataColumn columnMinutes;
private global::System.Data.DataColumn columnExtraAllowance;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
public MonthlyKPIDetailDataTable() { public MonthlyKPIDetailDataTable() {
@ -15633,6 +15637,22 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
} }
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
public global::System.Data.DataColumn MinutesColumn {
get {
return this.columnMinutes;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
public global::System.Data.DataColumn ExtraAllowanceColumn {
get {
return this.columnExtraAllowance;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
[global::System.ComponentModel.Browsable(false)] [global::System.ComponentModel.Browsable(false)]
@ -15689,7 +15709,9 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
string Department, string Department,
string Unit, string Unit,
string FunctionalUnit, string FunctionalUnit,
string Shift) { string Shift,
double Minutes,
int ExtraAllowance) {
MonthlyKPIDetailRow rowMonthlyKPIDetailRow = ((MonthlyKPIDetailRow)(this.NewRow())); MonthlyKPIDetailRow rowMonthlyKPIDetailRow = ((MonthlyKPIDetailRow)(this.NewRow()));
object[] columnValuesArray = new object[] { object[] columnValuesArray = new object[] {
EmployeeName, EmployeeName,
@ -15710,7 +15732,9 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
Department, Department,
Unit, Unit,
FunctionalUnit, FunctionalUnit,
Shift}; Shift,
Minutes,
ExtraAllowance};
rowMonthlyKPIDetailRow.ItemArray = columnValuesArray; rowMonthlyKPIDetailRow.ItemArray = columnValuesArray;
this.Rows.Add(rowMonthlyKPIDetailRow); this.Rows.Add(rowMonthlyKPIDetailRow);
return rowMonthlyKPIDetailRow; return rowMonthlyKPIDetailRow;
@ -15752,6 +15776,8 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
this.columnUnit = base.Columns["Unit"]; this.columnUnit = base.Columns["Unit"];
this.columnFunctionalUnit = base.Columns["FunctionalUnit"]; this.columnFunctionalUnit = base.Columns["FunctionalUnit"];
this.columnShift = base.Columns["Shift"]; this.columnShift = base.Columns["Shift"];
this.columnMinutes = base.Columns["Minutes"];
this.columnExtraAllowance = base.Columns["ExtraAllowance"];
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
@ -15795,6 +15821,10 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
base.Columns.Add(this.columnFunctionalUnit); base.Columns.Add(this.columnFunctionalUnit);
this.columnShift = new global::System.Data.DataColumn("Shift", typeof(string), null, global::System.Data.MappingType.Element); this.columnShift = new global::System.Data.DataColumn("Shift", typeof(string), null, global::System.Data.MappingType.Element);
base.Columns.Add(this.columnShift); base.Columns.Add(this.columnShift);
this.columnMinutes = new global::System.Data.DataColumn("Minutes", typeof(double), null, global::System.Data.MappingType.Element);
base.Columns.Add(this.columnMinutes);
this.columnExtraAllowance = new global::System.Data.DataColumn("ExtraAllowance", typeof(int), null, global::System.Data.MappingType.Element);
base.Columns.Add(this.columnExtraAllowance);
this.columnAttenType.Caption = "AttnType"; this.columnAttenType.Caption = "AttnType";
} }
@ -31459,6 +31489,38 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
} }
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
public double Minutes {
get {
try {
return ((double)(this[this.tableMonthlyKPIDetail.MinutesColumn]));
}
catch (global::System.InvalidCastException e) {
throw new global::System.Data.StrongTypingException("The value for column \'Minutes\' in table \'MonthlyKPIDetail\' is DBNull.", e);
}
}
set {
this[this.tableMonthlyKPIDetail.MinutesColumn] = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
public int ExtraAllowance {
get {
try {
return ((int)(this[this.tableMonthlyKPIDetail.ExtraAllowanceColumn]));
}
catch (global::System.InvalidCastException e) {
throw new global::System.Data.StrongTypingException("The value for column \'ExtraAllowance\' in table \'MonthlyKPIDetail\' is DBNull.", e);
}
}
set {
this[this.tableMonthlyKPIDetail.ExtraAllowanceColumn] = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
public bool IsEmployeeNameNull() { public bool IsEmployeeNameNull() {
@ -31686,6 +31748,30 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
public void SetShiftNull() { public void SetShiftNull() {
this[this.tableMonthlyKPIDetail.ShiftColumn] = global::System.Convert.DBNull; this[this.tableMonthlyKPIDetail.ShiftColumn] = global::System.Convert.DBNull;
} }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
public bool IsMinutesNull() {
return this.IsNull(this.tableMonthlyKPIDetail.MinutesColumn);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
public void SetMinutesNull() {
this[this.tableMonthlyKPIDetail.MinutesColumn] = global::System.Convert.DBNull;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
public bool IsExtraAllowanceNull() {
return this.IsNull(this.tableMonthlyKPIDetail.ExtraAllowanceColumn);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
public void SetExtraAllowanceNull() {
this[this.tableMonthlyKPIDetail.ExtraAllowanceColumn] = global::System.Convert.DBNull;
}
} }
/// <summary> /// <summary>

View File

@ -649,6 +649,8 @@
<xs:element name="Unit" msprop:Generator_ColumnPropNameInTable="UnitColumn" msprop:Generator_ColumnPropNameInRow="Unit" msprop:Generator_UserColumnName="Unit" msprop:Generator_ColumnVarNameInTable="columnUnit" type="xs:string" minOccurs="0" /> <xs:element name="Unit" msprop:Generator_ColumnPropNameInTable="UnitColumn" msprop:Generator_ColumnPropNameInRow="Unit" msprop:Generator_UserColumnName="Unit" msprop:Generator_ColumnVarNameInTable="columnUnit" type="xs:string" minOccurs="0" />
<xs:element name="FunctionalUnit" msprop:Generator_ColumnPropNameInTable="FunctionalUnitColumn" msprop:Generator_ColumnPropNameInRow="FunctionalUnit" msprop:Generator_UserColumnName="FunctionalUnit" msprop:Generator_ColumnVarNameInTable="columnFunctionalUnit" type="xs:string" minOccurs="0" /> <xs:element name="FunctionalUnit" msprop:Generator_ColumnPropNameInTable="FunctionalUnitColumn" msprop:Generator_ColumnPropNameInRow="FunctionalUnit" msprop:Generator_UserColumnName="FunctionalUnit" msprop:Generator_ColumnVarNameInTable="columnFunctionalUnit" type="xs:string" minOccurs="0" />
<xs:element name="Shift" msprop:Generator_ColumnPropNameInTable="ShiftColumn" msprop:Generator_ColumnPropNameInRow="Shift" msprop:Generator_UserColumnName="Shift" msprop:Generator_ColumnVarNameInTable="columnShift" type="xs:string" minOccurs="0" /> <xs:element name="Shift" msprop:Generator_ColumnPropNameInTable="ShiftColumn" msprop:Generator_ColumnPropNameInRow="Shift" msprop:Generator_UserColumnName="Shift" msprop:Generator_ColumnVarNameInTable="columnShift" type="xs:string" minOccurs="0" />
<xs:element name="Minutes" msprop:Generator_ColumnPropNameInRow="Minutes" msprop:Generator_ColumnPropNameInTable="MinutesColumn" msprop:Generator_ColumnVarNameInTable="columnMinutes" msprop:Generator_UserColumnName="Minutes" type="xs:double" minOccurs="0" />
<xs:element name="ExtraAllowance" msprop:Generator_ColumnPropNameInRow="ExtraAllowance" msprop:Generator_ColumnPropNameInTable="ExtraAllowanceColumn" msprop:Generator_ColumnVarNameInTable="columnExtraAllowance" msprop:Generator_UserColumnName="ExtraAllowance" type="xs:int" minOccurs="0" />
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@ -698,7 +700,7 @@
<xs:element name="Line" msprop:Generator_ColumnPropNameInTable="LineColumn" msprop:Generator_ColumnPropNameInRow="Line" msprop:Generator_UserColumnName="Line" msprop:Generator_ColumnVarNameInTable="columnLine" type="xs:string" minOccurs="0" /> <xs:element name="Line" msprop:Generator_ColumnPropNameInTable="LineColumn" msprop:Generator_ColumnPropNameInRow="Line" msprop:Generator_UserColumnName="Line" msprop:Generator_ColumnVarNameInTable="columnLine" type="xs:string" minOccurs="0" />
<xs:element name="Floor" msprop:Generator_ColumnPropNameInTable="FloorColumn" msprop:Generator_ColumnPropNameInRow="Floor" msprop:Generator_UserColumnName="Floor" msprop:Generator_ColumnVarNameInTable="columnFloor" type="xs:string" minOccurs="0" /> <xs:element name="Floor" msprop:Generator_ColumnPropNameInTable="FloorColumn" msprop:Generator_ColumnPropNameInRow="Floor" msprop:Generator_UserColumnName="Floor" msprop:Generator_ColumnVarNameInTable="columnFloor" type="xs:string" minOccurs="0" />
<xs:element name="TotalOTDBL" msprop:Generator_ColumnPropNameInTable="TotalOTDBLColumn" msprop:Generator_ColumnPropNameInRow="TotalOTDBL" msprop:Generator_UserColumnName="TotalOTDBL" msprop:Generator_ColumnVarNameInTable="columnTotalOTDBL" type="xs:double" minOccurs="0" /> <xs:element name="TotalOTDBL" msprop:Generator_ColumnPropNameInTable="TotalOTDBLColumn" msprop:Generator_ColumnPropNameInRow="TotalOTDBL" msprop:Generator_UserColumnName="TotalOTDBL" msprop:Generator_ColumnVarNameInTable="columnTotalOTDBL" type="xs:double" minOccurs="0" />
<xs:element name="Division" msprop:Generator_UserColumnName="Division" msprop:Generator_ColumnPropNameInTable="DivisionColumn" msprop:Generator_ColumnPropNameInRow="Division" msprop:Generator_ColumnVarNameInTable="columnDivision" type="xs:string" minOccurs="0" /> <xs:element name="Division" msprop:Generator_ColumnPropNameInTable="DivisionColumn" msprop:Generator_ColumnPropNameInRow="Division" msprop:Generator_UserColumnName="Division" msprop:Generator_ColumnVarNameInTable="columnDivision" type="xs:string" minOccurs="0" />
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@ -730,7 +732,7 @@
<xs:element name="AttnDate" msprop:Generator_ColumnPropNameInTable="AttnDateColumn" msprop:Generator_ColumnPropNameInRow="AttnDate" msprop:Generator_UserColumnName="AttnDate" msprop:Generator_ColumnVarNameInTable="columnAttnDate" type="xs:string" minOccurs="0" /> <xs:element name="AttnDate" msprop:Generator_ColumnPropNameInTable="AttnDateColumn" msprop:Generator_ColumnPropNameInRow="AttnDate" msprop:Generator_UserColumnName="AttnDate" msprop:Generator_ColumnVarNameInTable="columnAttnDate" type="xs:string" minOccurs="0" />
<xs:element name="WorkingHour" msprop:Generator_ColumnPropNameInTable="WorkingHourColumn" msprop:Generator_ColumnPropNameInRow="WorkingHour" msprop:Generator_UserColumnName="WorkingHour" msprop:Generator_ColumnVarNameInTable="columnWorkingHour" type="xs:string" minOccurs="0" /> <xs:element name="WorkingHour" msprop:Generator_ColumnPropNameInTable="WorkingHourColumn" msprop:Generator_ColumnPropNameInRow="WorkingHour" msprop:Generator_UserColumnName="WorkingHour" msprop:Generator_ColumnVarNameInTable="columnWorkingHour" type="xs:string" minOccurs="0" />
<xs:element name="InTimeShow" msprop:Generator_ColumnPropNameInTable="InTimeShowColumn" msprop:Generator_ColumnPropNameInRow="InTimeShow" msprop:Generator_UserColumnName="InTimeShow" msprop:Generator_ColumnVarNameInTable="columnInTimeShow" type="xs:string" minOccurs="0" /> <xs:element name="InTimeShow" msprop:Generator_ColumnPropNameInTable="InTimeShowColumn" msprop:Generator_ColumnPropNameInRow="InTimeShow" msprop:Generator_UserColumnName="InTimeShow" msprop:Generator_ColumnVarNameInTable="columnInTimeShow" type="xs:string" minOccurs="0" />
<xs:element name="LateHour" msprop:Generator_ColumnPropNameInRow="LateHour" msprop:Generator_ColumnPropNameInTable="LateHourColumn" msprop:Generator_ColumnVarNameInTable="columnLateHour" msprop:Generator_UserColumnName="LateHour" type="xs:string" minOccurs="0" /> <xs:element name="LateHour" msprop:Generator_UserColumnName="LateHour" msprop:Generator_ColumnPropNameInTable="LateHourColumn" msprop:Generator_ColumnPropNameInRow="LateHour" msprop:Generator_ColumnVarNameInTable="columnLateHour" type="xs:string" minOccurs="0" />
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>

View File

@ -4,48 +4,48 @@
Changes to this file may cause incorrect behavior and will be lost if Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated. the code is regenerated.
</autogenerated>--> </autogenerated>-->
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="1" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout"> <DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="123" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes> <Shapes>
<Shape ID="DesignTable:DailyAttnProcess" ZOrder="17" X="2" Y="30" Height="28" Width="164" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" /> <Shape ID="DesignTable:DailyAttnProcess" ZOrder="18" X="2" Y="30" Height="28" Width="164" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
<Shape ID="DesignTable:EmpDailyAttnPrev" ZOrder="7" X="310" Y="116" Height="28" Width="172" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="349" SplitterPosition="24" /> <Shape ID="DesignTable:EmpDailyAttnPrev" ZOrder="8" X="310" Y="116" Height="28" Width="172" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="349" SplitterPosition="24" />
<Shape ID="DesignTable:EmpDailyAttnParentNew" ZOrder="4" X="236" Y="34" Height="28" Width="211" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:EmpDailyAttnParentNew" ZOrder="5" X="236" Y="34" Height="28" Width="211" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:MonthlyDetail" ZOrder="40" X="1184" Y="70" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="253" /> <Shape ID="DesignTable:MonthlyDetail" ZOrder="40" X="1184" Y="70" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="253" />
<Shape ID="DesignTable:EmpInfo" ZOrder="39" X="1446" Y="165" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" /> <Shape ID="DesignTable:EmpInfo" ZOrder="39" X="1446" Y="165" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" />
<Shape ID="DesignTable:IDCard" ZOrder="11" X="7" Y="131" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="24" /> <Shape ID="DesignTable:IDCard" ZOrder="12" X="7" Y="131" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="24" />
<Shape ID="DesignTable:MonthlyAttnBenefit" ZOrder="25" X="1010" Y="275" Height="28" Width="182" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:MonthlyAttnBenefit" ZOrder="26" X="1010" Y="275" Height="28" Width="182" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:BadliEmpNotAssignInWork" ZOrder="13" X="2" Y="165" Height="28" Width="224" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" /> <Shape ID="DesignTable:BadliEmpNotAssignInWork" ZOrder="14" X="2" Y="165" Height="28" Width="224" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
<Shape ID="DesignTable:BadliPaymentRegister" ZOrder="12" X="3" Y="96" Height="28" Width="194" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:BadliPaymentRegister" ZOrder="13" X="3" Y="96" Height="28" Width="194" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:BadliWorkStatus" ZOrder="5" X="782" Y="388" Height="28" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="24" /> <Shape ID="DesignTable:BadliWorkStatus" ZOrder="6" X="782" Y="388" Height="28" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="24" />
<Shape ID="DesignTable:DailyLabourSummary" ZOrder="36" X="1517" Y="371" Height="162" Width="191" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="158" /> <Shape ID="DesignTable:DailyLabourSummary" ZOrder="36" X="1517" Y="371" Height="162" Width="191" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="158" />
<Shape ID="DesignTable:BadliDailyBill" ZOrder="38" X="1295" Y="310" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:BadliDailyBill" ZOrder="38" X="1295" Y="310" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:BadliEmpAssignInWork" ZOrder="16" X="0" Y="0" Height="28" Width="202" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:BadliEmpAssignInWork" ZOrder="17" X="0" Y="0" Height="28" Width="202" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:TimeCard" ZOrder="30" X="242" Y="180" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:TimeCard" ZOrder="30" X="242" Y="180" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:BadliWeeklyPayment" ZOrder="10" X="240" Y="149" Height="28" Width="189" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:BadliWeeklyPayment" ZOrder="11" X="240" Y="149" Height="28" Width="189" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:BadliMonthWiseSummary" ZOrder="8" X="4" Y="321" Height="28" Width="217" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" /> <Shape ID="DesignTable:BadliMonthWiseSummary" ZOrder="9" X="4" Y="321" Height="28" Width="217" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" />
<Shape ID="DesignTable:DailyOverTime" ZOrder="37" X="1116" Y="539" Height="257" Width="151" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:DailyOverTime" ZOrder="37" X="1116" Y="539" Height="257" Width="151" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:AttnBenefitDataCompare" ZOrder="35" X="717" Y="718" Height="239" Width="213" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" /> <Shape ID="DesignTable:AttnBenefitDataCompare" ZOrder="35" X="717" Y="718" Height="239" Width="213" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:AttnMonthlyBDataCompare" ZOrder="34" X="3" Y="353" Height="28" Width="228" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:AttnMonthlyBDataCompare" ZOrder="34" X="3" Y="353" Height="28" Width="228" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:ActingAllowance" ZOrder="9" X="237" Y="120" Height="28" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:ActingAllowance" ZOrder="10" X="237" Y="120" Height="28" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:DepartmentWiseOT" ZOrder="33" X="1145" Y="777" Height="239" Width="180" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" /> <Shape ID="DesignTable:DepartmentWiseOT" ZOrder="33" X="1145" Y="777" Height="239" Width="180" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:LeaveWithoutPay" ZOrder="19" X="235" Y="92" Height="28" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:LeaveWithoutPay" ZOrder="20" X="235" Y="92" Height="28" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:DailyInOut" ZOrder="15" X="7" Y="195" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:DailyInOut" ZOrder="16" X="7" Y="195" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:EmpAttenInfo" ZOrder="27" X="1434" Y="144" Height="182" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" /> <Shape ID="DesignTable:EmpAttenInfo" ZOrder="28" X="1434" Y="144" Height="182" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:DailyAbsent" ZOrder="14" X="10" Y="260" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" /> <Shape ID="DesignTable:DailyAbsent" ZOrder="15" X="10" Y="260" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
<Shape ID="DesignTable:OddNumberInOut" ZOrder="32" X="13" Y="292" Height="28" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" /> <Shape ID="DesignTable:OddNumberInOut" ZOrder="32" X="13" Y="292" Height="28" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" />
<Shape ID="DesignTable:InOutMissing" ZOrder="20" X="236" Y="63" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:InOutMissing" ZOrder="21" X="236" Y="63" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:MnthlyKPIDtlSummary" ZOrder="21" X="236" Y="2" Height="28" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:MnthlyKPIDtlSummary" ZOrder="22" X="236" Y="2" Height="28" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:DateWiseInOut" ZOrder="26" X="1020" Y="502" Height="28" Width="154" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" /> <Shape ID="DesignTable:DateWiseInOut" ZOrder="27" X="1020" Y="502" Height="28" Width="154" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" />
<Shape ID="DesignTable:LateNessWise" ZOrder="6" X="930" Y="280" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:LateNessWise" ZOrder="7" X="930" Y="280" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:DateWiseInOutFiledForce" ZOrder="31" X="1178" Y="502" Height="239" Width="213" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" /> <Shape ID="DesignTable:DateWiseInOutFiledForce" ZOrder="31" X="1178" Y="502" Height="239" Width="213" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:AbsentDataForMailSender" ZOrder="23" X="407" Y="1" Height="28" Width="218" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" /> <Shape ID="DesignTable:AbsentDataForMailSender" ZOrder="24" X="407" Y="1" Height="28" Width="218" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
<Shape ID="DesignTable:DailyAttnReportForMailSender" ZOrder="22" X="405" Y="28" Height="28" Width="245" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="273" SplitterPosition="24" /> <Shape ID="DesignTable:DailyAttnReportForMailSender" ZOrder="23" X="405" Y="28" Height="28" Width="245" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="273" SplitterPosition="24" />
<Shape ID="DesignTable:MonthlyKPIDetail" ZOrder="29" X="968" Y="266" Height="257" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:MonthlyKPIDetail" ZOrder="1" X="968" Y="266" Height="257" Width="169" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:MonthlyAttendanceReportNew" ZOrder="18" X="0" Y="0" Height="28" Width="248" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:MonthlyAttendanceReportNew" ZOrder="19" X="0" Y="0" Height="28" Width="248" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:MonthlyAttn" ZOrder="2" X="12" Y="63" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" /> <Shape ID="DesignTable:MonthlyAttn" ZOrder="3" X="12" Y="63" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" />
<Shape ID="DesignTable:EmpDailyAttn" ZOrder="1" X="470" Y="232" Height="257" Width="154" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" /> <Shape ID="DesignTable:EmpDailyAttn" ZOrder="2" X="470" Y="232" Height="257" Width="154" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" />
<Shape ID="DesignTable:EmpDailyAttnParent" ZOrder="28" X="0" Y="108" Height="28" Width="184" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" /> <Shape ID="DesignTable:EmpDailyAttnParent" ZOrder="29" X="0" Y="108" Height="28" Width="184" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" />
<Shape ID="DesignTable:EmpDailyAttnTest" ZOrder="24" X="681" Y="242" Height="239" Width="170" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" /> <Shape ID="DesignTable:EmpDailyAttnTest" ZOrder="25" X="681" Y="242" Height="239" Width="170" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:EmpDailyAttnParentNewLiFung" ZOrder="3" X="312" Y="281" Height="219" Width="250" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="215" /> <Shape ID="DesignTable:EmpDailyAttnParentNewLiFung" ZOrder="4" X="312" Y="281" Height="219" Width="250" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="215" />
</Shapes> </Shapes>
<Connectors /> <Connectors />
</DiagramLayout> </DiagramLayout>

View File

@ -1242,6 +1242,7 @@ namespace HRM.Report
string shortAttnType = ""; string shortAttnType = "";
if (!(dAttnProcessess == null || dAttnProcessess.Count <= 0)) if (!(dAttnProcessess == null || dAttnProcessess.Count <= 0))
{ {
dAttnProcessess= dAttnProcessess.OrderBy(x => x.AttnDate).ToList();
foreach (DailyAttnProcess dAttnProcess in dAttnProcessess) foreach (DailyAttnProcess dAttnProcess in dAttnProcessess)
{ {
sLeaveName = string.Empty; sLeaveName = string.Empty;
@ -1351,7 +1352,7 @@ namespace HRM.Report
startTime = startTime.Value.AddMinutes(-15) > dAttnProcess.InTime ? startTime.Value.AddMinutes(-15) : dAttnProcess.InTime; startTime = startTime.Value.AddMinutes(-15) > dAttnProcess.InTime ? startTime.Value.AddMinutes(-15) : dAttnProcess.InTime;
endTime = dAttnProcess.OutTime; endTime = dAttnProcess.OutTime;
if (endTime != DateTime.MinValue) if (endTime != DateTime.MinValue && endTime != null)
{ {
if (endTime.Value.Subtract(startTime.Value).Add(TimeSpan.FromMinutes(1)).TotalHours >= dExtraAllowanceHours) if (endTime.Value.Subtract(startTime.Value).Add(TimeSpan.FromMinutes(1)).TotalHours >= dExtraAllowanceHours)
{ {
@ -1413,10 +1414,10 @@ namespace HRM.Report
dTable.Rows.Add(Rowbody); dTable.Rows.Add(Rowbody);
} }
} }
DataView dv = dTable.DefaultView; //DataView dv = dTable.DefaultView;
dv.Sort = "Date ASC"; //dv.Sort = "Date ASC";
DataTable sortedDT = dv.ToTable(); //DataTable sortedDT = dv.ToTable();
return sortedDT; return dTable;
} }
public DataTable GetEmpDailyAttn(int EmpID, DateTime dFromDate, DateTime dToDate, int PayrollTypeID) public DataTable GetEmpDailyAttn(int EmpID, DateTime dFromDate, DateTime dToDate, int PayrollTypeID)

View File

@ -266,6 +266,146 @@
<TablixCornerCell /> <TablixCornerCell />
<TablixCornerCell /> <TablixCornerCell />
<TablixCornerCell /> <TablixCornerCell />
<TablixCornerCell>
<CellContents>
<Textbox Name="Textbox3">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Department</Value>
<Style>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox3</rd:DefaultName>
<Style>
<Border>
<Style>Solid</Style>
</Border>
<BackgroundColor>Gainsboro</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCornerCell>
<TablixCornerCell>
<CellContents>
<Textbox Name="Textbox9">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Floor</Value>
<Style>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox9</rd:DefaultName>
<Style>
<Border>
<Style>Solid</Style>
</Border>
<BackgroundColor>Gainsboro</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCornerCell>
<TablixCornerCell>
<CellContents>
<Textbox Name="Textbox11">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Section</Value>
<Style>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox11</rd:DefaultName>
<Style>
<Border>
<Style>Solid</Style>
</Border>
<BackgroundColor>Gainsboro</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCornerCell>
<TablixCornerCell>
<CellContents>
<Textbox Name="Textbox13">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Line</Value>
<Style>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox13</rd:DefaultName>
<Style>
<Border>
<Style>Solid</Style>
</Border>
<BackgroundColor>Gainsboro</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixCornerCell>
</TablixCornerRow> </TablixCornerRow>
</TablixCornerRows> </TablixCornerRows>
</TablixCorner> </TablixCorner>
@ -541,33 +681,225 @@
</TablixHeader> </TablixHeader>
<TablixMembers> <TablixMembers>
<TablixMember> <TablixMember>
<Group Name="matrix1_RowGroup7"> <Group Name="matrix1_Department">
<GroupExpressions> <GroupExpressions>
<GroupExpression>=Fields!EmployeeNo.Value</GroupExpression> <GroupExpression>=Fields!Department.Value</GroupExpression>
</GroupExpressions> </GroupExpressions>
</Group> </Group>
<SortExpressions>
<SortExpression>
<Value>=Fields!Department.Value</Value>
</SortExpression>
</SortExpressions>
<TablixHeader>
<Size>1in</Size>
<CellContents>
<Textbox Name="Department">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=First(Fields!Department.Value)</Value>
<Style>
<FontSize>7pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Department</rd:DefaultName>
<Style>
<Border>
<Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixHeader>
<TablixMembers> <TablixMembers>
<TablixMember> <TablixMember>
<Group Name="matrix1_RowGroup9"> <Group Name="matrix1_Floor">
<GroupExpressions> <GroupExpressions>
<GroupExpression>=Fields!EmployeeNo.Value</GroupExpression> <GroupExpression>=Fields!Floor.Value</GroupExpression>
</GroupExpressions> </GroupExpressions>
</Group> </Group>
<SortExpressions>
<SortExpression>
<Value>=Fields!Floor.Value</Value>
</SortExpression>
</SortExpressions>
<TablixHeader>
<Size>1in</Size>
<CellContents>
<Textbox Name="Floor">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=First(Fields!Floor.Value)</Value>
<Style>
<FontSize>7pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Floor</rd:DefaultName>
<Style>
<Border>
<Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixHeader>
<TablixMembers> <TablixMembers>
<TablixMember> <TablixMember>
<Group Name="matrix1_RowGroup10"> <Group Name="matrix1_Section">
<GroupExpressions> <GroupExpressions>
<GroupExpression>=Fields!EmployeeNo.Value</GroupExpression> <GroupExpression>=Fields!Section.Value</GroupExpression>
</GroupExpressions> </GroupExpressions>
</Group> </Group>
<DataElementOutput>Output</DataElementOutput> <SortExpressions>
<KeepTogether>true</KeepTogether> <SortExpression>
<Value>=Fields!Section.Value</Value>
</SortExpression>
</SortExpressions>
<TablixHeader>
<Size>1in</Size>
<CellContents>
<Textbox Name="Section">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=First(Fields!Section.Value)</Value>
<Style>
<FontSize>7pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Section</rd:DefaultName>
<Style>
<Border>
<Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixHeader>
<TablixMembers>
<TablixMember>
<Group Name="matrix1_Line">
<GroupExpressions>
<GroupExpression>=Fields!Line.Value</GroupExpression>
</GroupExpressions>
</Group>
<SortExpressions>
<SortExpression>
<Value>=Fields!Line.Value</Value>
</SortExpression>
</SortExpressions>
<TablixHeader>
<Size>1in</Size>
<CellContents>
<Textbox Name="Line">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=First(Fields!Line.Value)</Value>
<Style>
<FontSize>7pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Line</rd:DefaultName>
<Style>
<Border>
<Style>Solid</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixHeader>
<TablixMembers>
<TablixMember>
<Group Name="matrix1_RowGroup7">
<GroupExpressions>
<GroupExpression>=Fields!EmployeeNo.Value</GroupExpression>
</GroupExpressions>
</Group>
<TablixMembers>
<TablixMember>
<Group Name="matrix1_RowGroup9">
<GroupExpressions>
<GroupExpression>=Fields!EmployeeNo.Value</GroupExpression>
</GroupExpressions>
</Group>
<TablixMembers>
<TablixMember>
<Group Name="matrix1_RowGroup10">
<GroupExpressions>
<GroupExpression>=Fields!EmployeeNo.Value</GroupExpression>
</GroupExpressions>
</Group>
<DataElementOutput>Output</DataElementOutput>
<KeepTogether>true</KeepTogether>
</TablixMember>
</TablixMembers>
<DataElementOutput>Output</DataElementOutput>
</TablixMember>
</TablixMembers>
<DataElementOutput>Output</DataElementOutput>
</TablixMember>
</TablixMembers>
</TablixMember>
</TablixMembers>
</TablixMember> </TablixMember>
</TablixMembers> </TablixMembers>
<DataElementOutput>Output</DataElementOutput>
</TablixMember> </TablixMember>
</TablixMembers> </TablixMembers>
<DataElementOutput>Output</DataElementOutput>
</TablixMember> </TablixMember>
</TablixMembers> </TablixMembers>
<DataElementOutput>Output</DataElementOutput> <DataElementOutput>Output</DataElementOutput>
@ -591,7 +923,7 @@
<DataSetName>AttendenceDataSet_MonthlyDetail</DataSetName> <DataSetName>AttendenceDataSet_MonthlyDetail</DataSetName>
<Top>0.6875in</Top> <Top>0.6875in</Top>
<Height>0.9in</Height> <Height>0.9in</Height>
<Width>4.35in</Width> <Width>8.35in</Width>
<Style /> <Style />
</Tablix> </Tablix>
<Textbox Name="textbox1"> <Textbox Name="textbox1">

View File

@ -1371,7 +1371,7 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>="Festival Holidays: "&amp;sum(cint(iif(Fields!Status.Value="H",1,0)))</Value> <Value>="Festival Holidays: "&amp;sum(cint(iif(Fields!Status.Value="N",1,0)))</Value>
<Style> <Style>
<FontSize>8pt</FontSize> <FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight> <FontWeight>Bold</FontWeight>

View File

@ -46,19 +46,19 @@
</Field> </Field>
<Field Name="AttnDate"> <Field Name="AttnDate">
<DataField>AttnDate</DataField> <DataField>AttnDate</DataField>
<rd:TypeName>System.DateTime</rd:TypeName> <rd:TypeName>System.String</rd:TypeName>
</Field> </Field>
<Field Name="AttnType"> <Field Name="AttenType">
<DataField>AttnType</DataField> <DataField>AttenType</DataField>
<rd:TypeName>System.Int16</rd:TypeName> <rd:TypeName>System.String</rd:TypeName>
</Field> </Field>
<Field Name="OTHour"> <Field Name="OTHour">
<DataField>OTHour</DataField> <DataField>OTHour</DataField>
<rd:TypeName>System.Double</rd:TypeName> <rd:TypeName>System.String</rd:TypeName>
</Field> </Field>
<Field Name="ReferenceID"> <Field Name="ReferenceID">
<DataField>ReferenceID</DataField> <DataField>ReferenceID</DataField>
<rd:TypeName>System.Int32</rd:TypeName> <rd:TypeName>System.String</rd:TypeName>
</Field> </Field>
<Field Name="KPIStatus"> <Field Name="KPIStatus">
<DataField>KPIStatus</DataField> <DataField>KPIStatus</DataField>
@ -88,10 +88,30 @@
<DataField>Department</DataField> <DataField>Department</DataField>
<rd:TypeName>System.String</rd:TypeName> <rd:TypeName>System.String</rd:TypeName>
</Field> </Field>
<Field Name="Unit">
<DataField>Unit</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="FunctionalUnit">
<DataField>FunctionalUnit</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Shift">
<DataField>Shift</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Minutes">
<DataField>Minutes</DataField>
<rd:TypeName>System.Double</rd:TypeName>
</Field>
<Field Name="ExtraAllowance">
<DataField>ExtraAllowance</DataField>
<rd:TypeName>System.Int32</rd:TypeName>
</Field>
</Fields> </Fields>
<rd:DataSetInfo> <rd:DataSetInfo>
<rd:DataSetName>AttendenceDataSet</rd:DataSetName> <rd:DataSetName>AttendenceDataSet</rd:DataSetName>
<rd:SchemaPath>D:\Local\EchoTex\Echo_Desktop\Payroll.Report\Attendence\AttendenceDataSet\AttendenceDataSet.xsd</rd:SchemaPath> <rd:SchemaPath>D:\Git\EchoTex_Payroll\HRM.Report\Attendence\AttendenceDataSet\AttendenceDataSet.xsd</rd:SchemaPath>
<rd:TableName>MonthlyKPIDetail</rd:TableName> <rd:TableName>MonthlyKPIDetail</rd:TableName>
<rd:TableAdapterFillMethod /> <rd:TableAdapterFillMethod />
<rd:TableAdapterGetDataMethod /> <rd:TableAdapterGetDataMethod />
@ -131,7 +151,7 @@
</Fields> </Fields>
<rd:DataSetInfo> <rd:DataSetInfo>
<rd:DataSetName>AttendenceDataSet</rd:DataSetName> <rd:DataSetName>AttendenceDataSet</rd:DataSetName>
<rd:SchemaPath>D:\Local\EchoTextPR\Echo_Desktop.root\Echo_Desktop\Payroll.Report\Attendence\AttendenceDataSet\AttendenceDataSet.xsd</rd:SchemaPath> <rd:SchemaPath>D:\Git\EchoTex_Payroll\HRM.Report\Attendence\AttendenceDataSet\AttendenceDataSet.xsd</rd:SchemaPath>
<rd:TableName>MnthlyKPIDtlSummary</rd:TableName> <rd:TableName>MnthlyKPIDtlSummary</rd:TableName>
<rd:TableAdapterFillMethod /> <rd:TableAdapterFillMethod />
<rd:TableAdapterGetDataMethod /> <rd:TableAdapterGetDataMethod />
@ -837,6 +857,9 @@
<TablixColumn> <TablixColumn>
<Width>0.46875in</Width> <Width>0.46875in</Width>
</TablixColumn> </TablixColumn>
<TablixColumn>
<Width>0.39583in</Width>
</TablixColumn>
<TablixColumn> <TablixColumn>
<Width>0.35417in</Width> <Width>0.35417in</Width>
</TablixColumn> </TablixColumn>
@ -931,7 +954,7 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value /> <Value>=Math.Round(Sum(Fields!Minutes.Value)/60,2)</Value>
<Style> <Style>
<FontSize>8pt</FontSize> <FontSize>8pt</FontSize>
<Color>Green</Color> <Color>Green</Color>
@ -995,7 +1018,7 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>=IIF((Sum(iif(Fields!AttnType.Value = 1 or Fields!AttnType.Value = 3 or Fields!AttnType.Value = 7 or Fields!AttnType.Value = 11 or Fields!AttnType.Value = 12,1,0)))&gt;0,Sum(Fields!OTHour.Value)/(Sum(iif(Fields!AttnType.Value = 1 or Fields!AttnType.Value = 3 or Fields!AttnType.Value = 7 or Fields!AttnType.Value = 11 or Fields!AttnType.Value = 12,1,0))),0)</Value> <Value>=IIF((Sum(iif(Fields!AttenType.Value = 1 or Fields!AttenType.Value = 3 or Fields!AttenType.Value = 7 or Fields!AttenType.Value = 11 or Fields!AttenType.Value = 12,1,0)))&gt;0,Sum(Fields!OTHour.Value)/(Sum(iif(Fields!AttenType.Value = 1 or Fields!AttenType.Value = 3 or Fields!AttenType.Value = 7 or Fields!AttenType.Value = 11 or Fields!AttenType.Value = 12,1,0))),0)</Value>
<Style> <Style>
<FontSize>8pt</FontSize> <FontSize>8pt</FontSize>
<Format>0.00;(0.00)</Format> <Format>0.00;(0.00)</Format>
@ -1178,6 +1201,39 @@
</Textbox> </Textbox>
</CellContents> </CellContents>
</TablixCell> </TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox100">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Sum(iif(Fields!ExtraAllowance.Value = 1,1,0))</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox100</rd:DefaultName>
<Style>
<Border>
<Style>Solid</Style>
</Border>
<BackgroundColor>=iif(Sum(iif(Fields!AttenType.Value = 1 or Fields!AttenType.Value = 3 or Fields!AttenType.Value = 7 or Fields!AttenType.Value = 11 or Fields!AttenType.Value = 12,1,0))&gt;0,"Yellow","White")</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<rd:Selected>true</rd:Selected>
</CellContents>
</TablixCell>
<TablixCell> <TablixCell>
<CellContents> <CellContents>
<Textbox Name="Textbox8"> <Textbox Name="Textbox8">
@ -1187,7 +1243,7 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>=Sum(iif(Fields!AttnType.Value = 1 or Fields!AttnType.Value = 3 or Fields!AttnType.Value = 7 or Fields!AttnType.Value = 11 or Fields!AttnType.Value = 12,1,0))</Value> <Value>=Sum(iif(Fields!AttenType.Value = 1 or Fields!AttenType.Value = 3 or Fields!AttenType.Value = 7 or Fields!AttenType.Value = 11 or Fields!AttenType.Value = 12,1,0))</Value>
<Style> <Style>
<FontSize>8pt</FontSize> <FontSize>8pt</FontSize>
</Style> </Style>
@ -1201,7 +1257,7 @@
<Border> <Border>
<Style>Solid</Style> <Style>Solid</Style>
</Border> </Border>
<BackgroundColor>=iif(Sum(iif(Fields!AttnType.Value = 1 or Fields!AttnType.Value = 3 or Fields!AttnType.Value = 7 or Fields!AttnType.Value = 11 or Fields!AttnType.Value = 12,1,0))&gt;0,"Yellow","White")</BackgroundColor> <BackgroundColor>=iif(Sum(iif(Fields!AttenType.Value = 1 or Fields!AttenType.Value = 3 or Fields!AttenType.Value = 7 or Fields!AttenType.Value = 11 or Fields!AttenType.Value = 12,1,0))&gt;0,"Yellow","White")</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft> <PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight> <PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop> <PaddingTop>2pt</PaddingTop>
@ -1219,7 +1275,7 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>=Sum(iif(Fields!AttnType.Value = 5 or Fields!AttnType.Value = 8,1,0))</Value> <Value>=Sum(iif(Fields!AttenType.Value = 5 or Fields!AttenType.Value = 8,1,0))</Value>
<Style> <Style>
<FontSize>8pt</FontSize> <FontSize>8pt</FontSize>
</Style> </Style>
@ -1233,7 +1289,7 @@
<Border> <Border>
<Style>Solid</Style> <Style>Solid</Style>
</Border> </Border>
<BackgroundColor>=IIF(Sum(iif(Fields!AttnType.Value = 5 or Fields!AttnType.Value = 8,1,0))&gt;0,"Yellow","White")</BackgroundColor> <BackgroundColor>=IIF(Sum(iif(Fields!AttenType.Value = 5 or Fields!AttenType.Value = 8,1,0))&gt;0,"Yellow","White")</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft> <PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight> <PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop> <PaddingTop>2pt</PaddingTop>
@ -1251,7 +1307,7 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>=Sum(iif(Fields!AttnType.Value = 2,1,0))</Value> <Value>=Sum(iif(Fields!AttenType.Value = 2,1,0))</Value>
<Style> <Style>
<FontSize>8pt</FontSize> <FontSize>8pt</FontSize>
</Style> </Style>
@ -1265,7 +1321,7 @@
<Border> <Border>
<Style>Solid</Style> <Style>Solid</Style>
</Border> </Border>
<BackgroundColor>=IIF(Sum(iif(Fields!AttnType.Value = 2,1,0))&gt;0,"Yellow","White")</BackgroundColor> <BackgroundColor>=IIF(Sum(iif(Fields!AttenType.Value = 2,1,0))&gt;0,"Yellow","White")</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft> <PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight> <PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop> <PaddingTop>2pt</PaddingTop>
@ -2437,6 +2493,87 @@
</TablixMember> </TablixMember>
</TablixMembers> </TablixMembers>
</TablixMember> </TablixMember>
<TablixMember>
<TablixHeader>
<Size>0.25in</Size>
<CellContents>
<Textbox Name="Textbox98">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value />
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox98</rd:DefaultName>
<Style>
<Border>
<Style>None</Style>
</Border>
<VerticalAlign>Middle</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixHeader>
<TablixMembers>
<TablixMember>
<TablixHeader>
<Size>0.69792in</Size>
<CellContents>
<Textbox Name="Textbox99">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Extra Allowance</Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontSize>8pt</FontSize>
<FontWeight>Normal</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox99</rd:DefaultName>
<Style>
<Border>
<Style>Solid</Style>
</Border>
<BackgroundColor>Yellow</BackgroundColor>
<VerticalAlign>Middle</VerticalAlign>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</CellContents>
</TablixHeader>
</TablixMember>
</TablixMembers>
</TablixMember>
<TablixMember> <TablixMember>
<TablixHeader> <TablixHeader>
<Size>0.25in</Size> <Size>0.25in</Size>
@ -4063,7 +4200,7 @@
<DataSetName>MonthlyKPIDetail</DataSetName> <DataSetName>MonthlyKPIDetail</DataSetName>
<Top>0.16021in</Top> <Top>0.16021in</Top>
<Height>1.19792in</Height> <Height>1.19792in</Height>
<Width>13.95876in</Width> <Width>14.35459in</Width>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@ -4495,7 +4632,7 @@
<Height>2.20187in</Height> <Height>2.20187in</Height>
<Style /> <Style />
</Body> </Body>
<Width>23in</Width> <Width>25in</Width>
<Page> <Page>
<PageHeader> <PageHeader>
<Height>1.45313in</Height> <Height>1.45313in</Height>
@ -4722,7 +4859,7 @@
</Style> </Style>
</PageFooter> </PageFooter>
<PageHeight>8.5in</PageHeight> <PageHeight>8.5in</PageHeight>
<PageWidth>25in</PageWidth> <PageWidth>27in</PageWidth>
<LeftMargin>0.375in</LeftMargin> <LeftMargin>0.375in</LeftMargin>
<TopMargin>0.375in</TopMargin> <TopMargin>0.375in</TopMargin>
<Style /> <Style />

View File

@ -40,7 +40,7 @@ namespace HRM.Report
oDR["EmoNo"] = oDRow["EmployeeNo"]; oDR["EmoNo"] = oDRow["EmployeeNo"];
oDR["Name"] = oDRow["EmpName"]; oDR["Name"] = oDRow["EmpName"];
oDR["OTDescription"] = oDRow["TermName"]; oDR["OTDescription"] = oDRow["TermName"];
oDR["OTRate"] = oDRow["Hours"]; oDR["OTRate"] = GlobalFunctions.ConvertDoubleHourToHourMinute(Convert.ToDouble(oDRow["Hours"])); //oDRow["Hours"];
oDR["OTAmount"] = GlobalFunctions.Round(Convert.ToDouble(oDRow["Amount"])); // Math.Round(oDRow["Amount"]); oDR["OTAmount"] = GlobalFunctions.Round(Convert.ToDouble(oDRow["Amount"])); // Math.Round(oDRow["Amount"]);
//oDR["OTMonth"] = Convert.ToDateTime(oDRow["ProcessMonth"]).ToString("dd MMM yyyy"); //oDR["OTMonth"] = Convert.ToDateTime(oDRow["ProcessMonth"]).ToString("dd MMM yyyy");
oDR["OTMonth"] = Convert.ToDateTime(oDRow["OTMonth"]).ToString("dd MMM yyyy"); oDR["OTMonth"] = Convert.ToDateTime(oDRow["OTMonth"]).ToString("dd MMM yyyy");

View File

@ -276,7 +276,9 @@ namespace HRM.Report
dSet.Tables.Add(dTable); dSet.Tables.Add(dTable);
//string RDLC = "Payroll.Report.RDLC.rptEmpDesignWiseProdBonus.rdlc"; //string RDLC = "Payroll.Report.RDLC.rptEmpDesignWiseProdBonus.rdlc";
string RDLC = "rptEmpDesignWiseProdBonus.rdlc"; string RDLC = "rptEmpDesignWiseProdBonus.rdlc";
//string RDLC = "rptEmpDesignWiseProdBonusOld.rdlc";
List<ReportParameter> _reportParameters = new List<ReportParameter>(); List<ReportParameter> _reportParameters = new List<ReportParameter>();
ReportParameter rParam = new ReportParameter("Month", dBonusMonth.ToString("MMM yyyy")); ReportParameter rParam = new ReportParameter("Month", dBonusMonth.ToString("MMM yyyy"));
@ -337,6 +339,7 @@ namespace HRM.Report
DateTime? bonusIntime = DateTime.MinValue; DateTime? bonusIntime = DateTime.MinValue;
DateTime? bonusOuttime = DateTime.MinValue; DateTime? bonusOuttime = DateTime.MinValue;
List<ProdBonusAttn> prodAttn = new ProdBonusAttnService().GetBySetupID(designId); List<ProdBonusAttn> prodAttn = new ProdBonusAttnService().GetBySetupID(designId);
if (prodAttn.Count <= 0) return null;
string empIds = string.Empty; string empIds = string.Empty;
empIds = prodAttn.Select(x => x.EmployeeID).Distinct().Aggregate(new StringBuilder(), (sb, empid) => sb.Append(empid + ","), sb => sb.ToString().Trim(',')); empIds = prodAttn.Select(x => x.EmployeeID).Distinct().Aggregate(new StringBuilder(), (sb, empid) => sb.Append(empid + ","), sb => sb.ToString().Trim(','));
@ -408,11 +411,11 @@ namespace HRM.Report
if (ts.Minutes < 16 && ts.Hours < 5) if (ts.Minutes < 16 && ts.Hours < 5)
wh = ts.Hours; wh = ts.Hours;
else if (ts.Minutes < 16) else if (ts.Minutes < 16)
wh = ts.Hours - design.BreakHour; wh = ts.Hours - ((tAtt.InTime.Date >= new DateTime(2025, 3, 1) && tAtt.InTime.Date <= new DateTime(2025, 3, 28)) ? 0.5 : design.BreakHour);
else if (ts.TotalHours < 5) else if (ts.TotalHours < 5)
wh = ts.TotalHours; wh = ts.TotalHours;
else else
wh = ts.TotalHours - design.BreakHour; wh = ts.TotalHours - ((tAtt.InTime.Date >= new DateTime(2025, 3, 1) && tAtt.InTime.Date <= new DateTime(2025, 3, 28)) ? 0.5 : design.BreakHour);
// hour += ts.Hours < 0 ? 0 : ts.Hours; // hour += ts.Hours < 0 ? 0 : ts.Hours;
hour = wh < 0 ? 0 : wh; hour = wh < 0 ? 0 : wh;

View File

@ -57,7 +57,8 @@ namespace HRM.Report
dTable.Rows.Add(oDR); dTable.Rows.Add(oDR);
//count++; //count++;
} }
dTable.TableName = "DigitalServiceBookDataSet_EMPDigitalServiceBook"; //dTable.TableName = "DigitalServiceBookDataSet_EMPDigitalServiceBook";
dTable.TableName = "EMPDigitalServiceBook";
dSet.Tables.Add(dTable); dSet.Tables.Add(dTable);
#endregion #endregion
@ -71,13 +72,14 @@ namespace HRM.Report
foreach (DataRow oDRow in oSystemInfo.Tables[0].Rows) foreach (DataRow oDRow in oSystemInfo.Tables[0].Rows)
{ {
oDR = dTable.NewRow(); oDR = dTable.NewRow();
oDR["NAME"] = oDRow["NAME"]; oDR["NAME"] = "B‡Kv‡U· wjwg‡UW";
oDR["CORPORATEADDRESS"] = oDRow["CORPORATEADDRESS"]; oDR["CORPORATEADDRESS"] = "Pv`iv , cjøxwe`y¨r , Kvwjqv‰Ki , MvRxcyi | ";
dTable.Rows.Add(oDR); dTable.Rows.Add(oDR);
} }
dTable.TableName = "DigitalServiceBookDataSet_SystemInformation"; //dTable.TableName = "DigitalServiceBookDataSet_SystemInformation";
dTable.TableName = "SystemInformation";
dSet.Tables.Add(dTable); dSet.Tables.Add(dTable);
#endregion #endregion
@ -108,7 +110,8 @@ namespace HRM.Report
dTable.Rows.Add(oDR); dTable.Rows.Add(oDR);
} }
dTable.TableName = "DigitalServiceBookDataSet_EMPLifecycle"; //dTable.TableName = "DigitalServiceBookDataSet_EMPLifecycle";
dTable.TableName = "EMPLifecycle";
dSet.Tables.Add(dTable); dSet.Tables.Add(dTable);
#endregion #endregion
@ -128,7 +131,8 @@ namespace HRM.Report
dTable.Rows.Add(oDR); dTable.Rows.Add(oDR);
} }
dTable.TableName = "DigitalServiceBookDataSet_LeaveEntry"; //dTable.TableName = "DigitalServiceBookDataSet_LeaveEntry";
dTable.TableName = "LeaveEntry";
dSet.Tables.Add(dTable); dSet.Tables.Add(dTable);
#endregion #endregion
@ -151,7 +155,8 @@ namespace HRM.Report
dTable.Rows.Add(oDR); dTable.Rows.Add(oDR);
} }
dTable.TableName = "DigitalServiceBookDataSet_Complain"; //dTable.TableName = "DigitalServiceBookDataSet_Complain";
dTable.TableName = "Complain";
dSet.Tables.Add(dTable); dSet.Tables.Add(dTable);
#endregion #endregion

View File

@ -1,14 +1,17 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data; using System.Data;
using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Ease.Core.Model; using Ease.Core.Model;
using Ease.Core.Utility; using Ease.Core.Utility;
using HRM.BO; using HRM.BO;
using HRM.BO.Configuration;
using HRM.DA; using HRM.DA;
using HRM.Report.Attendence.AttendenceDataSet; using HRM.Report.Attendence.AttendenceDataSet;
using Microsoft.Extensions.Configuration;
using Microsoft.Reporting.NETCore; using Microsoft.Reporting.NETCore;
using NPOI.SS.Formula.Functions; using NPOI.SS.Formula.Functions;
using NPOI.XSSF.Streaming.Values; using NPOI.XSSF.Streaming.Values;
@ -2335,7 +2338,7 @@ namespace HRM.Report
continue; continue;
} }
var empDailyAttnProcess = dAttnProcessess.Where(x => x.EmployeeID == employee.ID && var empDailyAttnProcess = dAttnProcessess.Where(x => x.EmployeeID == employee.ID &&
x.AttnDate >= firstDateOfMonth && x.AttnDate <= lastDateOfMonth).ToList(); x.AttnDate >= firstDateOfMonth && x.AttnDate <= lastDateOfMonth).OrderBy(x => x.AttnDate).ToList();
if (empDailyAttnProcess.Count > 0) if (empDailyAttnProcess.Count > 0)
{ {
GetEmpDailyAttn(employee, empDailyAttnProcess, dTableChild, month, out totalOTHour, out totalLateHour, _adps, _Adparameters, oShiftIDs, oShiftIDsSpecial, oNationalHolidays, GetEmpDailyAttn(employee, empDailyAttnProcess, dTableChild, month, out totalOTHour, out totalLateHour, _adps, _Adparameters, oShiftIDs, oShiftIDsSpecial, oNationalHolidays,
@ -2625,6 +2628,7 @@ namespace HRM.Report
DataSet oDailyInOut = null; DataSet oDailyInOut = null;
DataSet oPreviousDayInOut = null; DataSet oPreviousDayInOut = null;
DataRow oDR = null; DataRow oDR = null;
List<Shift> oShifts = new ShiftService().Get(EnumStatus.Regardless, payrollTypeID);
oDailyInOut = new EchoTexExceptionReportService().GetDailyInOut(attnDate, sEmpID); oDailyInOut = new EchoTexExceptionReportService().GetDailyInOut(attnDate, sEmpID);
oPreviousDayInOut = new EchoTexExceptionReportService().GetDailyInOut(PreviousAttnDate, sEmpID); oPreviousDayInOut = new EchoTexExceptionReportService().GetDailyInOut(PreviousAttnDate, sEmpID);
position = 1; position = 1;
@ -2663,6 +2667,35 @@ namespace HRM.Report
oDR["Shift"] = Dr["Shift"].ToString(); oDR["Shift"] = Dr["Shift"].ToString();
oDR["CardNo"] = Dr["CardNo"].ToString(); oDR["CardNo"] = Dr["CardNo"].ToString();
Shift oSft = oShifts.Find(x => x.ShortName == Dr["Shift"].ToString());
DateTime? dtIn = null;
DateTime? dtOut = null;
if (Dr["InTime"] is DBNull)
{
dtIn = null;
}
else
{
dtIn = Convert.ToDateTime(Dr["InTime"].ToString());
}
if (Dr["OutTime"] is DBNull)
{
dtOut = null;
}
else
{
dtOut = Convert.ToDateTime(Dr["OutTime"].ToString());
}
if (oSft != null && dtIn != null && dtOut != null)
{
if (Convert.ToDateTime(dtIn).TimeOfDay > oSft.InTime.TimeOfDay &&
Convert.ToDateTime(dtOut).TimeOfDay < oSft.OutTime.TimeOfDay)
{
oDR["Status"] = "LE";
}
}
dTable.Rows.Add(oDR); dTable.Rows.Add(oDR);
} }
position = 6; position = 6;
@ -2844,6 +2877,38 @@ namespace HRM.Report
oMonthlyKPIDetail = new EchoTexExceptionReportService().GetMonthlyKPIDetail(dFromDate, dToDate, sEmpID); oMonthlyKPIDetail = new EchoTexExceptionReportService().GetMonthlyKPIDetail(dFromDate, dToDate, sEmpID);
#region Extra
oMonthlyKPIDetail.Tables[0].Columns.Add("ExtraAllowance", typeof(double));
if (oMonthlyKPIDetail != null && oMonthlyKPIDetail.Tables.Count > 0)
{
List<DailyAttnProcess> dAttnProcessess = dAttnProcessess = new DailyAttnProcessService().Get(sEmpID, dFromDate, dToDate);
//List<AttnNationalHoliday> oNationalHolidays = AttnNationalHoliday.GetByMonth(dFromDate.FirstDateOfYear(), dFromDate.LastDateOfYear());
List<Shift> oShifts = new ShiftService().Get(EnumStatus.Active, payrollTypeID);
List<Employee> oemps = new EmployeeService().GetByEmpIDs(sEmpID);
List<ADParameter> oAdparameters = new ADParameterService().Get(EnumStatus.Active, EnumAllowOrDeduct.Allowance, payrollTypeID).Where(x => x.AllowDeductID == 4).ToList(); // AllowDeductID = 4 is Extra Allowance in ALLOWANCEDEDUCTION table
List<Grade> ogrades = new GradeService().Get(EnumStatus.Regardless);
foreach (DataRow monthlyRow in oMonthlyKPIDetail.Tables[0].Rows)
{
Employee emp = oemps.Find(x => x.EmployeeNo.ToString() == monthlyRow["IDNo"].ToString());
if (emp == null) continue;
DateTime attnDate = Convert.ToDateTime(monthlyRow["AttnDate"]);
List<DailyAttnProcess> dEmpAttn = dAttnProcessess.FindAll(x => x.EmployeeID == emp.ID && x.AttnDate.Date == attnDate.Date).ToList();
DataTable oDataTable = new rptEcho().GetEmpDailyAttnNewKPI(emp.ID, dEmpAttn, emp, oShifts, oAdparameters, ogrades);
if (oDataTable != null && oDataTable.Rows.Count > 0)
{
monthlyRow["ExtraAllowance"] = oDataTable.Rows[0]["ExtraAllowance"];
}
else
{
monthlyRow["ExtraAllowance"] = 0;
}
}
}
#endregion
DataTable oMnthlyKPIDtlSummary = new AttendenceDataSet.MnthlyKPIDtlSummaryDataTable(); DataTable oMnthlyKPIDtlSummary = new AttendenceDataSet.MnthlyKPIDtlSummaryDataTable();
#region Summary Parts #region Summary Parts
@ -2883,8 +2948,278 @@ namespace HRM.Report
return reportProcessor.AttendanceReportsView(null, oMonthlyKPIDetail, null, RDLC, _parameters, true, payrollTypeID, reportType); return reportProcessor.AttendanceReportsView(null, oMonthlyKPIDetail, null, RDLC, _parameters, true, payrollTypeID, reportType);
} }
public DataTable GetEmpDailyAttnNewKPI(int EmpID, List<DailyAttnProcess> dAttnProcessess, Employee emp, List<Shift> oShifts, List<ADParameter> oADPrams, List<Grade> ogrades)
{
AttendenceDataSet.EmpDailyAttnDataTable dTable = new AttendenceDataSet.EmpDailyAttnDataTable();
var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json");
IConfiguration Configuration = builder.Build();
string sExtraAllowanceHour = Configuration.GetSection("Attendance")["ExtraAllowanceHour"];
double dExtraAllowanceHours = 0;
if (!double.TryParse(sExtraAllowanceHour, out dExtraAllowanceHours))
{
dExtraAllowanceHours = 13.5; // Default if Hour not given
}
DateTime startTime, endTime;
if (!(dAttnProcessess == null || dAttnProcessess.Count <= 0))
{
foreach (DailyAttnProcess dAttnProcess in dAttnProcessess)
{
DataRow Rowbody = dTable.NewRow();
Rowbody["ExtraAllowance"] = 0;
if (oADPrams != null && emp != null)
{
foreach (ADParameter adparam in oADPrams)
{
foreach (ADParameter.ADParameterGrade grn in adparam.ADParameterGrades)
{
//Grade gr = ogrades.GetItem(grn.GradeID);
Grade gr = ogrades.Find(delegate (Grade item) { return item.ID == grn.GradeID; });
if (gr != null && gr.ID == emp.GradeID)
{
if (dAttnProcess.InTime != null && dAttnProcess.InTime != DateTime.MinValue)
{
Shift sft = oShifts.FirstOrDefault(x => x.ID == dAttnProcess.ShiftID);
startTime = dAttnProcess.InTime.Value.Date.Add(sft.InTime.TimeOfDay);
startTime = (DateTime)startTime.AddMinutes(-15) > (DateTime)dAttnProcess.InTime ? (DateTime)startTime.AddMinutes(-15) : (DateTime)dAttnProcess.InTime;
endTime = dAttnProcess.OutTime != null ? (DateTime)dAttnProcess.OutTime : DateTime.MinValue;
if (endTime != DateTime.MinValue)
{
if (endTime.Subtract(startTime).Add(TimeSpan.FromMinutes(1)).TotalHours >= dExtraAllowanceHours)
{
Rowbody["ExtraAllowance"] = 1;// ncount++;
}
}
}
}
}
}
}
dTable.Rows.Add(Rowbody);
}
}
return dTable;
}
#endregion #endregion
#endregion #endregion
#region Employee Detail Info
public byte[] ShowEmployeeDetailInfo(string sEmpID, string reportType, int payrollTypeID)
{
try
{
ReportProcessor reportProcessor = new ReportProcessor();
//string sEmpID = _selectedParameter.ReportItem.INSQL;
DataRow dr = null;
List<Employee> oEmps = new EmployeeService().GetByEmpIDs(sEmpID);
List<HREmployee> hrEmployees = new HREmployeeService().GetEmployeeByIds(sEmpID);
List<EducationLevel> educationLevels = new EducationLevelService().Get();
List<EmpAcademic> empAcademics = new HREmployeeService().GetAllEmpAcademics();
Employee oEmployee = null;
List<int> validIds = sEmpID.Split(',')
.Select(s => int.Parse(s))
.ToList();
DataSet oEmpDetails = new EmployeeService().GetEmpDetailsEcho(sEmpID);
List<DataRow> rowsToDelete = new List<DataRow>();
foreach (DataRow row in oEmpDetails.Tables[0].Rows)
{
int empId = Convert.ToInt32(row["employeeID"]);
if (!validIds.Contains(empId))
{
rowsToDelete.Add(row);
}
}
// Now remove them
foreach (DataRow row in rowsToDelete)
{
oEmpDetails.Tables[0].Rows.Remove(row);
}
// Optional: accept changes if you want to commit removal
oEmpDetails.AcceptChanges();
DataTable dtDFSL = new EmployeeService().GetDFSL();
HRM.Report.PayrollDataSet.PayrollDataSet.EmployeeDetailEchoDataTable dTEmpDetail = new HRM.Report.PayrollDataSet.PayrollDataSet.EmployeeDetailEchoDataTable();
//bool isDesigFromEmp = ConfigurationManager.GetBoolValue("designation", "desigfromdescriptiontext", EnumConfigurationType.Logic_Old);
bool isDesigFromEmp = false;
foreach (DataRow oDRow in oEmpDetails.Tables[0].Rows)
{
string[] sDes = GlobalExtensions.GetDFSL(dtDFSL, oDRow["DepartmentID"].ToString());
oEmployee = oEmps.Where(o => o.EmployeeNo.ToUpper().Trim() == oDRow["EMPLOYEENO"].ToString().ToUpper().Trim())
.SingleOrDefault();
dr = dTEmpDetail.NewRow();
dr["EmpNo"] = oDRow["EMPLOYEENO"];
dr["Name"] = oDRow["NAME"];
if (isDesigFromEmp && oEmployee != null)
dr["Designation"] = oEmployee.DescriptionText;
else
dr["Designation"] = oDRow["DegName"];
if (sDes.Length == 5)
{
dr["Department"] = sDes[1];
dr["Floor"] = sDes[2];
dr["Section"] = sDes[3];
dr["Line"] = sDes[4];
}
else if (sDes.Length == 4)
{
dr["Department"] = sDes[1];
dr["Floor"] = sDes[2];
dr["Section"] = sDes[3];
}
else if (sDes.Length == 3)
{
dr["Department"] = sDes[1];
dr["Floor"] = sDes[2];
}
else if (sDes.Length == 2)
{
dr["Department"] = sDes[1];
}
dr["Category"] = oDRow["Category"];
dr["Grade"] = oDRow["GDDes"];
dr["BasicSalary"] = oDRow["BASICSALARY"];
dr["DOB"] = oDRow["BIRTHDATE"];
if (Convert.ToInt32(oDRow["GENDER"]) == 0)
{
dr["Gender"] = "None";
}
else if (Convert.ToInt32(oDRow["GENDER"]) == 1)
{
dr["Gender"] = "Male";
}
else if (Convert.ToInt32(oDRow["GENDER"]) == 2)
{
dr["Gender"] = "Female";
}
else if (Convert.ToInt32(oDRow["GENDER"]) == 3)
{
dr["Gender"] = "Both";
}
dr["Religion"] = oDRow["RegName"];
dr["Bank"] = oDRow["Bank"];
dr["Branch"] = oDRow["Branch"];
dr["AccountNo"] = oDRow["ACCOUNTNO"];
dr["BankOPI"] = oDRow["OUTPayBank"];
dr["BranchOPI"] = oDRow["OUTPayBranch"];
dr["AccountNoOPI"] = oDRow["OutPayAccountNo"];
dr["TempPost"] = oDRow["PresentPO"];
dr["PerPost"] = oDRow["PermanentPO"];
dr["DOJ"] = oDRow["JOININGDATE"];
dr["ConfirmDate"] = oDRow["DATEOFCONFIRMATION"];
dr["TaxAmount"] = oDRow["TAXAMOUNT"];
dr["LocDes"] = oDRow["LocDes"];
dr["GrossSalary"] = oDRow["GrossSalary"];
dr["VendorCode"] = oDRow["VendorCode"];
dr["BanglaName"] = oDRow["BanglaName"];
dr["BanglaDesignation"] = oDRow["BanglaDesignation"];
dr["DEPARTMENTBANGLA"] = oDRow["DEPARTMENTBANGLA"];
dr["SectionBangla"] = oDRow["SectionBangla"];
if (Convert.ToInt32(oDRow["MARITALSTATUSID"]) == 0)
{
dr["MarStatus"] = "None";
}
else if (Convert.ToInt32(oDRow["MARITALSTATUSID"]) == 1)
{
dr["MarStatus"] = "Married";
}
else if (Convert.ToInt32(oDRow["MARITALSTATUSID"]) == 2)
{
dr["MarStatus"] = "UnMarried";
}
dr["MobileNo"] = oDRow["MOBILENO"];
dr["MailAdd"] = oDRow["EMAILADDRESS"];
dr["RFID"] = oDRow["CardNo"];
dr["Nationality"] = oDRow["Nationality"];
dr["FathersName"] = oDRow["FATHERNAME"];
dr["MothersName"] = oDRow["MOTHERNAME"];
dr["Spouse"] = oDRow["Spouse"];
dr["OFFICEMOBILE"] = oDRow["OFFICEMOBILE"].ToString();
dr["LANDPHONE"] = oDRow["LANDPHONE"].ToString();
string sEducationLevel = string.Empty;
HREmployee ohrEmp = hrEmployees.Find(delegate (HREmployee hEmp) { return hEmp.EmployeeNo == oEmployee.EmployeeNo; });
if (ohrEmp != null)
{
ohrEmp.Academics = empAcademics.FindAll(ea => ea.EmployeeID == ohrEmp.ID);//new HREmployeeService().GetAllEmpAcademics(ohrEmp.ID);
if(ohrEmp.Academics?.Count > 0)
{
foreach (EmpAcademic eAcademic in ohrEmp.Academics)
{
eAcademic.EducationLevel = educationLevels.Find(el => el.ID == (int)eAcademic.EducationLevelID);
if (sEducationLevel == "")
{
sEducationLevel = sEducationLevel + eAcademic.EducationLevel?.Description;
}
else if (sEducationLevel != "")
{
sEducationLevel = sEducationLevel + "," + eAcademic.EducationLevel?.Description;
}
}
}
}
dr["Qualification"] = sEducationLevel;
dr["VotterID"] = oDRow["NationalID"];
dr["TempVill"] = oDRow["TempVillage"];
dr["TempPS"] = oDRow["TempThana"];
dr["TempDist"] = oDRow["TempDist"];
dr["PerVill"] = oDRow["PerVillage"];
dr["PerPS"] = oDRow["PerThana"];
dr["PerDist"] = oDRow["PerDist"];
dr["BloodGroup"] = ((EnumBloodGroup)Convert.ToInt32(oDRow["BLOODGROUP"])).BloodGroupToFriendlyName();
dTEmpDetail.Rows.Add(dr);
}
DataSet dSet = new DataSet();
dTEmpDetail.TableName = "PayrollDataSet_EmployeeDetail";
dSet.Tables.Add(dTEmpDetail);
//bool isOPISeparateAcountApplicable = ConfigurationManager.GetBoolValue("opi", "opiexist", EnumConfigurationType.Logic_Old);
bool isOPISeparateAcountApplicable = true;
List<ReportParameter> reportParameters = null;
if (isOPISeparateAcountApplicable)
{
//form.CommonReportView(_selectedParameter.ReportItem, dSet, "HRM.Report.RDLC.EmployeeDetailWithOPI.rdlc", null);
//return reportProcessor.AttendanceReportsView(null, dSet, null, "HRM.Report.RDLC.EmployeeDetailWithOPI.rdlc", _reportParameters, true, payrollTypeID, reportType);
return reportProcessor.CommonReportView(null, "HRM.Report.RDLC.EmployeeDetailWithOPIEcho.rdlc", dSet, null, reportParameters, true, payrollTypeID, reportType);
}
else
{
//form.CommonReportView(_selectedParameter.ReportItem, dSet, "HRM.Report.RDLC.EmployeeDetail.rdlc", null);
//return reportProcessor.AttendanceReportsView(null, dSet, null, "HRM.Report.RDLC.EmployeeDetail.rdlc",, _reportParameters, true, payrollTypeID, reportType);
return reportProcessor.CommonReportView(null, "HRM.Report.RDLC.EmployeeDetailEcho.rdlc", dSet, null, reportParameters, true, payrollTypeID, reportType);
}
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
}
#endregion
} }
} }

View File

@ -5,7 +5,6 @@ using System.Data;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using Payroll.BO;
using Ease.CoreV35; using Ease.CoreV35;
using Ease.Core.Model; using Ease.Core.Model;
using Ease.Core.Utility; using Ease.Core.Utility;
@ -16,6 +15,13 @@ using System.IO;
using Ease.Core; using Ease.Core;
using Microsoft.Reporting.NETCore; using Microsoft.Reporting.NETCore;
using Org.BouncyCastle.Ocsp; using Org.BouncyCastle.Ocsp;
using HRM.Service;
using HRM.BO.Configuration;
using Microsoft.Extensions.Configuration;
using NPOI.SS.Formula.Functions;
using System.Collections;
using Microsoft.AspNetCore.Http;
using NPOI.HPSF;
namespace HRM.Report namespace HRM.Report
{ {
@ -2914,5 +2920,773 @@ namespace HRM.Report
return reportProcessor.ShowDlgForEmployeeEvaluationSheet(null, dTEmpInfo, payrollTypeId, reportType); return reportProcessor.ShowDlgForEmployeeEvaluationSheet(null, dTEmpInfo, payrollTypeId, reportType);
} }
//Echotex Profile Reports
public byte[] GetEmployeeCV(int empid, int payrollTypeId, string reportType)
{
ReportProcessor reportProcessor = new ReportProcessor();
try
{
HREmployee employee = new HREmployeeService().Get(empid);
DataRow oRow = null;
//_rImageManager = new RemoteImageManager();
String RDLC = "HRM.Report.RDLC.EmployeeCV.rdlc";
PayrollDataSet.dsCompany.EmployeePersonalInfoDataTable dEmpInfo = new HRM.Report.PayrollDataSet.dsCompany.EmployeePersonalInfoDataTable();
PayrollDataSet.dsCompany.EmployeeQualificationDataTable dEmpQualification = new HRM.Report.PayrollDataSet.dsCompany.EmployeeQualificationDataTable();
string sempId = Convert.ToString(employee.ID);
PhotoPath pPath = new PhotoPathService().Get().FirstOrDefault();
DataTable dtEmpBasicInfo = new EmployeeService().GetAllEmpBasicInfo(sempId)
.Tables[0]
.AsEnumerable()
.OrderBy(x => Convert.ToInt32(x["EmployeeID"].ToString()))
.CopyToDataTable();
string photoPath = "";
string basePath = System.Environment.CurrentDirectory + "\\Documents\\EMPPHOTO\\";
string fileNamePattern = "Image-" + employee.EmployeeNo.Trim();
string[] imageExtensions = { ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff" };
string[] matchingFiles = Directory
.GetFiles(basePath, fileNamePattern + ".*") // Check all files matching the pattern
.Where(file => imageExtensions.Contains(Path.GetExtension(file), StringComparer.OrdinalIgnoreCase))
.ToArray();
if (matchingFiles.Length > 0)
{
photoPath = matchingFiles[0];
//Console.WriteLine("Matching image files found:");
//foreach (string file in matchingFiles)
//{
// photoPath = file;
//}
}
foreach (DataRow drBasic in dtEmpBasicInfo.Rows)
{
oRow = dEmpInfo.NewRow();
if (drBasic != null)
{
oRow["EmpName"] = drBasic["Name"];
oRow["EmpCode"] = drBasic["EmployeeNo"];
oRow["FatherName"] = drBasic["FATHERNAME"];
oRow["MotherName"] = drBasic["MOTHERNAME"];
oRow["VoterID"] = drBasic["NationalID"];
oRow["Nationality"] = drBasic["Nationality"];
oRow["DateofBirth"] = drBasic["BIRTHDATE"];
oRow["Gender"] = (EnumGender)Convert.ToInt16(drBasic["GenderID"]);
oRow["MartialStatus"] = (EnumMaritalStatus)Convert.ToInt16(drBasic["MARITALSTATUSID"]);
oRow["Religion"] = drBasic["Religion"];
oRow["Email"] = drBasic["PERSONALEMAIL"];
oRow["EmpPhotograph"] = photoPath;
//Commented for development
//oRow["EmpPhotograph"] = _rImageManager.GetImage(drBasic["PhotoPath"].ToString());
//Contact
oRow["Telephone1"] = drBasic["EMERGENCYTELEPHONE"];
oRow["Telephone2"] = drBasic["EMERGENCYMOBILE"];
oRow["PERSONALTELEPHONE"] = drBasic["PERSONALTELEPHONE"];
oRow["MobileNo"] = drBasic["MOBILENO"];
oRow["FaxNumber"] = drBasic["FAX"];
oRow["VillagePA"] = drBasic["PARMANENTADDRESS"];
oRow["PostOfficePA"] = drBasic["PermanentPO"];
oRow["ThanaPA"] = drBasic["ParmanentThana"];
oRow["DistrictPA"] = drBasic["ParmanentDistric"];
// oRow["Email"] = employee.Contacts[0].PersonalEMail;
oRow["OfficialEmail"] = drBasic["OFFICIALEMAIL"];
oRow["VillageTA"] = drBasic["PRESENTADDRESS"];
oRow["PostOfficeTA"] = drBasic["PresentPO"];
oRow["ThanaTA"] = drBasic["TempThana"];
oRow["DistrictTA"] = drBasic["TempDistric"];
oRow["Division"] = "";
oRow["Line"] = drBasic["Line"];
oRow["Department"] = drBasic["Department"];
oRow["Section"] = drBasic["Section"];
oRow["Designation"] = drBasic["Designation"];
oRow["Appointment"] = drBasic["JoiningDate"];
oRow["Status"] = (EnumStatus)Convert.ToInt16(drBasic["STATUS"]);
oRow["Grade"] = drBasic["GradeName"];
oRow["EducationLevel"] = drBasic["EducationLevel"];
oRow["CompletionDate"] = drBasic["PASSINGYEAR"];
}
dEmpInfo.Rows.Add(oRow);
}
DataSet dSet = new DataSet();
dEmpInfo.TableName = "dsCompany_EmployeePersonalInfo";
dSet.Tables.Add(dEmpInfo);
foreach (var empQualification in employee.Academics)
{
oRow = dEmpQualification.NewRow();
oRow["Qualification"] = empQualification.EducationLevel.Description;
oRow["CompletionDate"] = empQualification.PassingYear.ToString();
dEmpQualification.Rows.Add(oRow);
}
dEmpQualification.TableName = "dsCompany_EmployeeQualification";
dSet.Tables.Add(dEmpQualification);
//fReportViewer form = new fReportViewer();
//form.CommonReportView(null, dSet, RDLC, null);
return reportProcessor.CommonReportView(null, RDLC, dSet, null, null, true, payrollTypeId, reportType);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
//public byte[] GetServiceBook(HREmployee employee, int authPersonID, int payrollTypeId, string reportType)
//{
// ReportProcessor reportProcessor = new ReportProcessor();
// try
// {
// //_rImageManager = new RemoteImageManager();
// string signaturePath = string.Empty;
// AuthorizedPerson oAuthPerson = null;
// int empID = employee.ID;
// if (authPersonID != null)
// {
// oAuthPerson = new AuthorizedPersonService().Get(authPersonID);
// //signaturePath = _rImageManager.GetImage(oAuthPerson.GetImage(authPersonID.Integer), "AuthSign.jpg");
// }
// String RDLC = "Payroll.Report.RDLC.rptServiceBook.rdlc";
// DataSet dSet = new DataSet();
// DataTable dTable = CollectDataForBanglaAppointment(employee, true);
// DateTime dTimeTemp;
// foreach (DataRow item in dTable.Rows)
// {
// string[] strArrs = item["JoiningDate"].ToString().Split('/', '-');
// if (strArrs.Length > 2)
// {
// dTimeTemp = new DateTime(Convert.ToInt32(strArrs[2]), Convert.ToInt32(strArrs[1]), Convert.ToInt32(strArrs[0]));
// item["JoiningDate"] = string.Format("{0} {1} {2}", dTimeTemp.Day, dTimeTemp.BanglaMonth(), dTimeTemp.Year);
// }
// string[] strArrs2 = item["BirthDate"].ToString().Split('/', '-');
// if (strArrs2.Length > 2)
// {
// dTimeTemp = new DateTime(Convert.ToInt32(strArrs2[2]), Convert.ToInt32(strArrs2[1]), Convert.ToInt32(strArrs2[0]));
// item["BirthDate"] = string.Format("{0} {1} {2}", dTimeTemp.Day, dTimeTemp.BanglaMonth(), dTimeTemp.Year);
// }
// }
// dTable.TableName = "dsCompany_EmployeeAppointmentInfo";
// dSet.Tables.Add(dTable);
// //dTable = GetEmployeeExperiences(employee);
// dTable = GetServiceInfo(employee);
// dTable.TableName = "dsCompany_PastOwnerAndJobInfo";
// dSet.Tables.Add(dTable);
// dTable = GetEmpELDetails(employee, payrollTypeId);
// dTable.TableName = "dsCompany_LeaveRecord";
// dSet.Tables.Add(dTable);
// dTable = GetEmployeeBehaviourRecord(employee);
// dTable.TableName = "dsCompany_BehaviorRecord";
// dSet.Tables.Add(dTable);
// //dTable = CollectDataForServiceRecord(employee, true);
// foreach (DataRow item in dTable.Rows)
// {
// string[] strArrs = item["JoiningDate"].ToString().Split('/', '-');
// if (strArrs.Length > 2)
// {
// dTimeTemp = new DateTime(Convert.ToInt32(strArrs[2]), Convert.ToInt32(strArrs[1]), Convert.ToInt32(strArrs[0]));
// item["JoiningDate"] = string.Format("{0} {1} {2}", dTimeTemp.Day, dTimeTemp.BanglaMonth(), dTimeTemp.Year);
// }
// }
// dTable.TableName = "dsCompany_EmpSalaryInfo";
// dSet.Tables.Add(dTable);
// var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json");
// EmailSettings emailSettings = new EmailSettings();
// IConfiguration Configuration = builder.Build();
// Configuration.GetSection("CompanyInfo").Bind(emailSettings);
// string companyNameBangla = Configuration.GetSection("CompanyInfo")["CompanyNameBangla"];
// string companyAddressBangla = Configuration.GetSection("CompanyInfo")["CAddress"];
// ReportParameter rParam;
// List<ReportParameter> _reportParameters = new List<ReportParameter>();
// rParam = new ReportParameter("SignPath", signaturePath);
// _reportParameters.Add(rParam);
// rParam = new ReportParameter("AuthPersonName", oAuthPerson != null ? oAuthPerson.Name : "");
// _reportParameters.Add(rParam);
// rParam = new ReportParameter("companyNameBangla", companyNameBangla);
// _reportParameters.Add(rParam);
// rParam = new ReportParameter("CAddress", companyAddressBangla);
// _reportParameters.Add(rParam);
// //rParam = new ReportParameter("EmpSignature", _rImageManager.GetImage(employee.Signature));
// _reportParameters.Add(rParam);
// //fReportViewer rViewer = new fReportViewer();
// //rViewer.CommonReportViewer(null, RDLC, dSet, _reportParameters, true);
// return reportProcessor.CommonReportView(null, RDLC, dSet, null, null, true, payrollTypeId, reportType);
// }
// catch (Exception e)
// {
// throw new Exception(e.Message);
// }
// //finally
// //{
// // if (_rImageManager != null)
// // _rImageManager.Dispose();
// //}
//}
//private DataTable GetServiceInfo(HREmployee employee)
//{
// DataRow oRow = null;
// PayrollDataSet.dsCompany.PastOwnerAndJobInfoDataTable pastExpinfo = new PayrollDataSet.dsCompany.PastOwnerAndJobInfoDataTable();
// oRow = pastExpinfo.NewRow();
// //oRow["JoinDate"] = employee.JoiningDate.CommonDateFormat();
// //oRow["ResignationDate"] = employee.EndOfContractDate.HasValue ?
// // (employee.EndOfContractDate.Value == DateTime.MinValue ? "" : employee.EndOfContractDate.Value.CommonDateFormat())
// // : "";
// oRow["CauseOfResignation"] = string.Empty;
// pastExpinfo.Rows.Add(oRow);
// return pastExpinfo;
//}
//private DataTable GetEmployeeBehaviourRecord(HREmployee employee)
//{
// DataRow oRow = null;
// //PayrollDataSet.dsCompany.BehaviorRecordDataTable dempRecord = new HRM.Report.PayrollDataSet.dsCompany.BehaviorRecordDataTable();
// //DataSet ds = EmployeeBehaviourRecord.GetBrecordByEmpID(employee.ID);
// //if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
// //{
// // DataTable bhaviourRecords = ds.Tables[0].AsEnumerable().CopyToDataTable();
// // foreach (DataRow bRecord in bhaviourRecords.Rows)
// // {
// // oRow = dempRecord.NewRow();
// // oRow["BehaviorDesc"] = bRecord["Description"];
// // oRow["BehaviourDescInBangla"] = bRecord["DescriptionBangla"];
// // DateTime dtTemp = Convert.ToDateTime(bRecord["ConductDate"]);
// // oRow["ConductDate"] = dtTemp.Day + " " + dtTemp.BanglaMonth() + " " + dtTemp.Year;
// // dempRecord.Rows.Add(oRow);
// // }
// //}
// //return dempRecord;
// return null;
//}
//private DataTable GetEmpELDetails(HREmployee employee, int payrollTypeID)
//{
// DataRow oRow = null;
// PayrollDataSet.dsCompany.LeaveRecordDataTable leaveReocd = new PayrollDataSet.dsCompany.LeaveRecordDataTable();
// DataSet OLeaveRecords = new HREmployeeService().GetEmpELDetails(employee.ID);
// //GetNumberOfYears
// DataSet NumberOfYears = new HREmployeeService().GetNumberOfYears(employee.ID);
// // for tomorrow
// //List<LeaveEncashment> oLeaveEncashment = new LeaveEncashmentService().GetByEmpIDs(employee.ID.ToString());
// List<Leave> oLeaves = new LeaveService().Get();
// Leave oLeave = null;
// LeaveYear lyy = new LeaveYearService().GetCurrentYear(payrollTypeID);
// Employee oEmp = new EmployeeService().Get(employee.ID);
// double EL = 0;
// int OpeningEL = 0;
// // for tomorrow
// //List<EmpLeaveStatus> dcurrentStatus = new EmpLeaveStatusService().CurrentYearStatus(new List<Employee> { oEmp }, lyy, EnumLeaveStatus.Approved);
// //if (dcurrentStatus.Count > 0)
// //{
// // for (int i = 0; i < dcurrentStatus.Count; i++)
// // {
// // oLeave = oLeaves.FirstOrDefault(x => x.ID == dcurrentStatus[i].LeaveId);
// // if (oLeave != null)
// // switch (oLeave.Code)
// // {
// // case "EL":
// // EL = (int)dcurrentStatus[i].OpeningBalance;
// // OpeningEL = (int)dcurrentStatus[i].OpeningBalance;
// // break;
// // default:
// // break;
// // }
// // }
// //}
// List<int> encashYears = new List<int>();
// // List<int> years = new List<int>();
// //foreach (DataRow dr in OLeaveRecords.Tables[0].Rows)
// //{
// // int yy = Convert.ToInt32(dr["Year"]);
// // bool yr = years.Contains(yy);
// // if (!yr)
// // years.Add(yy);
// //}
// int flag = 0;
// foreach (DataRow dr in OLeaveRecords.Tables[0].Rows)
// {
// int year = Convert.ToInt32(dr["Year"]);
// bool bEncashFound = false;
// ++flag;
// var result = NumberOfYears.Tables[0]
// .AsEnumerable().Where(x => Convert.ToInt32(x["Number"]) == flag && Convert.ToInt32(x["Year"]) == year).FirstOrDefault();
// bool isFirstRow = false;
// //LeaveEncashment le = null;
// //if (oLeaveEncashment.Count > 0)
// //{
// // le = oLeaveEncashment.Where(x => x.EmployeeID.Integer == Convert.ToInt32(dr["EMPID"].ToString()) && Convert.ToDateTime(dr["ENDDATE"].ToString()) > x.EncashmentToDate).FirstOrDefault();
// // if (le != null && !encashYears.Any(x => x == le.EncashMonth.Year))
// // {
// // isFirstRow = true;
// // bEncashFound = true;
// // encashYears.Add(le.EncashMonth.Year);
// // }
// //}
// oRow = leaveReocd.NewRow();
// DateTime dtTemp = Convert.ToDateTime(dr["STARTDATE"]);
// oRow["FromDate"] = dtTemp.Day + " " + dtTemp.BanglaMonth() + " " + dtTemp.Year;
// dtTemp = Convert.ToDateTime(dr["ENDDATE"]);
// oRow["EndDate"] = dtTemp.Day + " " + dtTemp.BanglaMonth() + " " + dtTemp.Year;
// oRow["Total"] = dr["APRTOTALDAYS"];
// //oRow["TotalAmount"] = isFirstRow ? Math.Round(le.EncashmentDays, 2).ToString() : "0";//dr["APRTOTALDAYS"];
// oRow["TotalAmount"] = "0";//dr["APRTOTALDAYS"];
// //oRow["Date"] = isFirstRow ? le.EncashMonth.Day + " " + le.EncashMonth.BanglaMonth() + " " + le.EncashMonth.Year : "";
// oRow["Date"] = "";
// EL = EL - Convert.ToInt32(dr["APRTOTALDAYS"]);
// oRow["RemainingEL"] = EL;
// // oRow["RemainingELCash"] = isFirstRow ? le.AbsentDays.ToString() : "0"; ;// EL;
// oRow["RemainingELCash"] = "0";// EL;
// leaveReocd.Rows.Add(oRow);
// if (result != null)
// {
// //result = null;
// flag = 0;
// oRow = leaveReocd.NewRow();
// oRow["FromDate"] = "";
// oRow["EndDate"] = "";
// oRow["Total"] = "";
// // for tomorrow
// //LeaveEncashment le = oLeaveEncashment.Where(x => x.EmployeeID == Convert.ToInt32(dr["EMPID"].ToString()) && Convert.ToInt16(result[0].ToString()) == x.EncashmentFromDate.Year).FirstOrDefault();
// //if (le != null)
// //{
// // oRow["TotalAmount"] = Math.Round(le.EncashmentDays, 2).ToString();
// // oRow["Date"] = le.EncashMonth.Day + " " + le.EncashMonth.BanglaMonth() + " " + le.EncashMonth.Year;
// // oRow["RemainingEL"] = Math.Round((decimal)EL, 2);
// // oRow["RemainingELCash"] = Math.Round(EL - le.EncashmentDays, 2) > 0 ? (Math.Round(EL - le.EncashmentDays, 2)).ToString() : "0";
// // leaveReocd.Rows.Add(oRow);
// // EL -= Math.Round(le.EncashmentDays, 2);
// //}
// result = null;
// }
// }
// return leaveReocd;
//}
public byte[] GetAsstOfficeAndAbove(int empid, int payrollTypeID, string reportType)
{
try
{
Employee employee = new EmployeeService().Get(empid);
String RDLC = "HRM.Report.RDLC.ApLetterForAssistantOfficerToAbove.rdlc";
DataSet dSet = new DataSet();
DataTable dTable = CollectDataForEnglishAppointment(employee, payrollTypeID);
dTable.TableName = "dsCompany_EmployeeAppointmentInfo";
dSet.Tables.Add(dTable);
double total = 0;
if (dSet.Tables[0].Rows.Count > 0)
{
total = Convert.ToDouble(dSet.Tables[0].Rows[0]["Basic"]) +
Convert.ToDouble(dSet.Tables[0].Rows[0]["HouseRent"]) +
Convert.ToDouble(dSet.Tables[0].Rows[0]["Conveyence"]) +
Convert.ToDouble(dSet.Tables[0].Rows[0]["Medical"]);
// Convert.ToDouble(dSet.Tables[0].Rows[0]["Food"]);
}
SystemInformation systemInformation = new SystemInformationService().Get();
List<ReportParameter> _parameters = new List<ReportParameter>();
ReportParameter parameter = new ReportParameter("CompanyName", systemInformation.name);
_parameters.Add(parameter);
parameter = new ReportParameter("AmountInWord", Global.NumericFunctions.AmountInWords((decimal)total, "", " only"));
_parameters.Add(parameter);
ReportProcessor reportProcessor = new ReportProcessor();
return reportProcessor.CommonReportView(null, RDLC, dSet, null, _parameters, false, payrollTypeID, reportType);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
private DataTable CollectDataForEnglishAppointment(Employee employee, int payrollTypeID)
{
DataRow oRow = null;
PayrollDataSet.dsCompany.EmployeeAppointmentInfoDataTable dEmpInfo = new HRM.Report.PayrollDataSet.dsCompany.EmployeeAppointmentInfoDataTable();
string sempId = Convert.ToString(employee.ID);
PhotoPath pPath = new PhotoPathService().Get().FirstOrDefault();
DataSet ds = new EmployeeService().GetAllEmpBasicInfo(sempId);
DataTable dtEmpBasicInfo = new DataTable();
if (ds.Tables[0].Rows.Count > 0)
{
dtEmpBasicInfo = ds.Tables[0]
.AsEnumerable()
.CopyToDataTable();
}
foreach (DataRow drBasic in dtEmpBasicInfo.Rows)
{
oRow = dEmpInfo.NewRow();
oRow["EmpName"] = drBasic["Name"];
oRow["EmpCode"] = drBasic["EmployeeNo"];
oRow["FatherName"] = drBasic["FATHERNAME"];
oRow["MotherName"] = drBasic["MOTHERNAME"];
oRow["HusbandName"] = string.Empty;
oRow["JoiningDate"] = Convert.ToDateTime(drBasic["JoiningDate"].ToString()).ToString("dd'/'MM'/'yyyy");
oRow["ProbationEndDate"] = Convert.ToDateTime(drBasic["JoiningDate"].ToString()).AddDays(90).ToString("dd'/'MM'/'yyyy");
oRow["BirthDate"] = Convert.ToDateTime(drBasic["BIRTHDATE"]).ToString("dd'/'MM'/'yyyy");
oRow["BloodGroup"] = ((EnumBloodGroup)Convert.ToInt32(drBasic["BLOODGROUP"].ToString())).BloodGroupToFriendlyName();
oRow["Nationality"] = drBasic["Nationality"];
oRow["Gender"] = (EnumGender)Convert.ToInt16(drBasic["GenderID"]);
oRow["MartialStatus"] = (EnumMaritalStatus)Convert.ToInt16(drBasic["MARITALSTATUSID"]);
oRow["Religion"] = drBasic["Religion"];
oRow["VillagePA"] = drBasic["PARMANENTADDRESS"];
oRow["PostOfficePA"] = drBasic["PermanentPO"];
oRow["ThanaPA"] = drBasic["ParmanentThana"];
oRow["DistrictPA"] = drBasic["ParmanentDistric"];
oRow["VillageTA"] = drBasic["PRESENTADDRESS"];
oRow["PostOfficeTA"] = drBasic["PresentPO"];
oRow["ThanaTA"] = drBasic["TempThana"];
oRow["DistrictTA"] = drBasic["TempDistric"];
oRow["Department"] = drBasic["Department"];
oRow["Section"] = drBasic["Section"];
oRow["Floor"] = drBasic["Floor"];
oRow["Designation"] = drBasic["Designation"];
oRow["Basic"] = employee.BasicSalary;
List<ADParameter> adParams = new ADParameterService().Get(employee.GradeID, EnumEntitleType.Grade, EnumAllowOrDeduct.Allowance, payrollTypeID);
List<ADParameterEmployee> adParamEmps = null;
List<AllowanceDeduction> allowdeducitons = new AllowanceDeductionService().Get(EnumStatus.Regardless, payrollTypeID);
//EmployeeGradeSalary oEmpGradeSalary = new EmployeeGradeSalaryService().Get();
EmployeeGradeSalary oEmpGradeSalary = new EmployeeGradeSalaryService().GetBasicOnDateBAT(employee.ID, DateTime.Now);
if (adParams != null)
{
foreach (ADParameter adParam in adParams)
{
double amount = new ADParameterService().GetGradeDefinedAmount(employee, employee.BasicSalary, employee.GrossSalary, oEmpGradeSalary, adParam);
adParam.AllowanceDeduction = allowdeducitons.FirstOrDefault(x => x.ID == adParam.AllowDeductID);
switch (adParam.AllowanceDeduction.Code.Trim())
{
case "008":
oRow["HouseRent"] = amount;
break;
case "010":
oRow["Conveyence"] = amount;
break;
case "011":
oRow["Medical"] = amount;
break;
case "006":
oRow["Food"] = amount;
break;
default:
break;
}
}
}
adParamEmps = new ADParameterEmployeeService().GetByEmployee(employee.ID, EnumAllowOrDeduct.Allowance, EnumADEmpType.AppliedToIndividual);
if (adParamEmps != null)
{
foreach (ADParameterEmployee adEmp in adParamEmps)
{
switch (adEmp.AllowDeduct.Code.Trim())
{
case "008":
oRow["HouseRent"] = adEmp.MonthlyAmount;
break;
case "010":
oRow["Conveyence"] = adEmp.MonthlyAmount;
break;
case "011":
oRow["Medical"] = adEmp.MonthlyAmount;
break;
case "006":
oRow["Food"] = adEmp.MonthlyAmount;
break;
default:
break;
}
}
}
dEmpInfo.Rows.Add(oRow);
}
return dEmpInfo;
}
public string Generate(LetterTemplte letterTemplte/*LetterTemplte oLetterTemplate*/, int employeeID, int payrollTypeID, string sFPath, string lFileName)
{
try
{
string pdfFilePath = string.Empty;
PayrollType payrollType = new PayrollTypeService().Get(payrollTypeID);
string[] sBody = { };
string sFilePath = string.Empty;
Hashtable table = new Hashtable();
// Commented for testing in development phase
//LetterTemplte letterTemplte = new LetterTemplteService().Get(oLetterTemplate.ID);
//PhotoPath oPhotoPath = new PhotoPathService().Get(ID.FromInteger(1));
//PhotoPath oPhotoPath = new PhotoPathService().Get(1);
#region Expandable Objects
// These Objects are create as per demand of diferent letters
// These variables could grow depending on the type of ObjectID,suppordID etc
Employee oEmp = null;
HREmployee oHREmp = null;
Grade oGrade = null;
//For Recruitment
Candidate oCandidate = null;
CV oCV = null;
List<ADParameter> adParams;
//Letter Request Notification
HRRequest oHRRequest = new HRRequest();
#endregion
string sLetterName = string.Empty;
table = new Hashtable();
switch (letterTemplte.ID)
{
case FixedLetterTemplte.Officer_Appointment_Letter:
// Dont Know if it works or not
#region Management Appointment Letter
sLetterName = "Appointment Letter";
oEmp = new EmployeeService().Get(employeeID);
if (oEmp == null)
{
break;
}
//oHREmp = new HREmployeeService().Get(oEmp.EmployeeNo);
oHREmp = new HREmployeeService().Get(oEmp.ID);
table = new Hashtable();
table.Add(TagOutputConstant.CurrentDate, DateTime.Now.Date.ToString("dd MMMM, yyyy"));
table.Add(TagOutputConstant.FullName, oHREmp.Name);
if (oHREmp.Contacts.Any())
{
table.Add(TagOutputConstant.EmpPresentAddress, oHREmp.Contacts[0].PresentAddress);
table.Add(TagOutputConstant.EmpPresentThana, oHREmp.Contacts[0].PresentThana);
table.Add(TagOutputConstant.EmpPresentDistrict, oHREmp.Contacts[0].PresentDistrict);
table.Add(TagOutputConstant.EmpPresentCountry, "Bangladesh");
}
table.Add(TagOutputConstant.BirthDate, oHREmp.BirthDate != DateTime.MinValue ? oHREmp.BirthDate.ToString("dd MMMM, yyyy") : string.Empty);
table.Add(TagOutputConstant.EmpNationality, oHREmp.Nationality != null ? oHREmp.Nationality.Description : string.Empty);
table.Add(TagOutputConstant.EmpReligion, oHREmp.Religion != null ? oHREmp.Religion.Name : string.Empty);
table.Add(TagOutputConstant.EmpGender, oEmp.Gender.ToString());
table.Add(TagOutputConstant.EmpMaritalStatus, oEmp.MaritalStatus.ToString());
table.Add(TagOutputConstant.EmployeeDesig, oEmp.Designation != null ? oEmp.Designation.Name : string.Empty);
double TotalAllowance, Basic, HouseRent, Conveyence, Transport, Medical;
TotalAllowance = Basic = HouseRent = Conveyence = Transport = Medical = 0.0;
oGrade = new GradeService().Get((int)oEmp.GradeID);
adParams = new ADParameterService().Get((int)oEmp.GradeID, EnumEntitleType.Grade, EnumAllowOrDeduct.Allowance, payrollTypeID);
Func<ADParameter, double, double> calculateOther = (a, b) =>
a != null ? (a.PercentOfBasic == 0.0 ? a.FlatAmount : b * a.PercentOfBasic / 100) : 0.0;
Basic = oEmp.BasicSalary;
HouseRent = calculateOther(adParams.Where(obj => obj.AllowDeductID == 8).SingleOrDefault(), Basic);
Conveyence = calculateOther(adParams.Where(obj => obj.AllowDeductID == 9).SingleOrDefault(), Basic);
Medical = calculateOther(adParams.Where(obj => obj.AllowDeductID == 11).SingleOrDefault(), Basic);
TotalAllowance = Basic + HouseRent + Conveyence + Medical;
table.Add(TagOutputConstant.CandidateBasic, Basic.ToString("#,###.00"));
table.Add(TagOutputConstant.CandidateBasicPercent, TotalAllowance > 0 ? ((int)((Basic / TotalAllowance) * 100)).ToString() : "0");
table.Add(TagOutputConstant.AllowHR, HouseRent.ToString("#,###.00"));
table.Add(TagOutputConstant.AllowHRPercent, TotalAllowance > 0 ? (Math.Round((HouseRent / TotalAllowance) * 100)).ToString() : "0");
table.Add(TagOutputConstant.AllowMedical, Medical.ToString("#,###.00"));
table.Add(TagOutputConstant.AllowMedicalPercent, TotalAllowance > 0 ? (Math.Round((Medical / TotalAllowance) * 100)).ToString() : "0");
table.Add(TagOutputConstant.AllowConveyance, Conveyence.ToString("#,###.00"));
table.Add(TagOutputConstant.AllowConveyancePercent, TotalAllowance > 0 ? (Math.Round((Conveyence / TotalAllowance) * 100)).ToString() : "0");
table.Add(TagOutputConstant.AllowTotal, TotalAllowance.ToString("#,###.00"));
table.Add(TagOutputConstant.TakaInWord, HRM.BO.GlobalFunctions.MillionToInWords((int)TotalAllowance));
sFilePath = sFPath.TrimEnd('\\') + "\\" + oEmp.EmployeeNo + "-" + sLetterName + ".doc";
#endregion
break;
case FixedLetterTemplte.Staff_Appointment_Letter:
#region Staff Appointment Letter
sLetterName = "Appointment Letter Staff";
oEmp = new EmployeeService().Get(employeeID);
if (oEmp == null)
{
break;
}
//oHREmp = new HREmployeeService().Get(oEmp.EmployeeNo);
oHREmp = new HREmployeeService().Get(oEmp.ID);
table = new EmployeeService().CollectDataForBanglaAppointmentHash(oHREmp, payrollType);
sFilePath = sFPath.TrimEnd('\\') + "\\" + oEmp.EmployeeNo + "-" + sLetterName + ".doc";
#endregion
break;
case FixedLetterTemplte.Worker_Appointment_Letter:
#region Worker Appointment Letter
sLetterName = "Appointment Letter Worker";
oEmp = new EmployeeService().Get(employeeID);
if (oEmp == null)
{
break;
}
oHREmp = new HREmployeeService().Get(oEmp.ID);
table = new EmployeeService().CollectDataForBanglaAppointmentHash(oHREmp, payrollType);
sFilePath = sFPath.TrimEnd('\\') + "\\" + oEmp.EmployeeNo + "-" + sLetterName + ".doc";
#endregion
break;
default:
//letterTemplte = new LetterTemplteService().Get(oLetterTemplate.ID);
sLetterName = letterTemplte.Subject;
if (oCandidate.IsEmployee == false)
{
table.Add(TagOutputConstant.CandidateName, oCV.Name);
sFilePath = sFPath.TrimEnd('\\') + "\\" + oCV.TrackNo + "-" + sLetterName + ".doc";
}
else
{
sFilePath = sFPath.TrimEnd('\\') + "\\" + oEmp.EmployeeNo + "-" + sLetterName + ".doc";
}
break;
}
if (table != null)
{
MSWord file = new MSWord();
FileInfo ossInfo = null;
//file.OriginalFile = letterTemplte.FilePath.Trim();
file.OriginalFile = System.IO.Path.Combine(System.Environment.CurrentDirectory + "\\Documents\\LetterTempFolder\\" + lFileName);
ossInfo = new FileInfo(sFilePath);
if (ossInfo.Exists)
{
ossInfo.Delete();
}
File.Copy(file.OriginalFile, sFilePath, true);
file = new MSWord();
file.OpenWordApplication();
//file.OriginalFile = letterTemplte.FilePath.Trim();
file.OriginalFile = System.IO.Path.Combine(System.Environment.CurrentDirectory + "\\Documents\\LetterTempFolder\\" + lFileName);
file.ReplaceWords(sFilePath, table);
file.CloseWordApplication();
//pdfFilePath = System.IO.Path.ChangeExtension(sFilePath, ".pdf");
//ConvertDocToPdf(sFilePath, pdfFilePath);
pdfFilePath = sFilePath;
}
return pdfFilePath;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
public void ConvertDocToPdf(string wordFilePath, string pdfFilePath)
{
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document wordDocument = null;
try
{
// Open the Word document
wordDocument = wordApp.Documents.Open(wordFilePath);
// Save as PDF
wordDocument.SaveAs(pdfFilePath, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF);
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
finally
{
// Clean up
wordDocument?.Close();
System.Runtime.InteropServices.Marshal.ReleaseComObject(wordDocument);
wordApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(wordApp);
}
}
} }
} }

View File

@ -45,6 +45,7 @@
<None Remove="RDLC\AllDigitalServiceBook.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\ApLetterForAssistantOfficerToAbove.rdlc" />
<None Remove="RDLC\ApointmentLetterForStuff.rdlc" /> <None Remove="RDLC\ApointmentLetterForStuff.rdlc" />
<None Remove="RDLC\ApointmentLetterForWorker.rdlc" /> <None Remove="RDLC\ApointmentLetterForWorker.rdlc" />
<None Remove="RDLC\ArrearBankAdvice.rdlc" /> <None Remove="RDLC\ArrearBankAdvice.rdlc" />
@ -108,7 +109,9 @@
<None Remove="RDLC\EmployeeCV.rdlc" /> <None Remove="RDLC\EmployeeCV.rdlc" />
<None Remove="RDLC\EmployeeCVNew.rdlc" /> <None Remove="RDLC\EmployeeCVNew.rdlc" />
<None Remove="RDLC\EmployeeDetail.rdlc" /> <None Remove="RDLC\EmployeeDetail.rdlc" />
<None Remove="RDLC\EmployeeDetailEcho.rdlc" />
<None Remove="RDLC\EmployeeDetailWithOPI.rdlc" /> <None Remove="RDLC\EmployeeDetailWithOPI.rdlc" />
<None Remove="RDLC\EmployeeDetailWithOPIEcho.rdlc" />
<None Remove="RDLC\EmployeeInfo.rdlc" /> <None Remove="RDLC\EmployeeInfo.rdlc" />
<None Remove="RDLC\EmployeeInfoBasic.rdlc" /> <None Remove="RDLC\EmployeeInfoBasic.rdlc" />
<None Remove="RDLC\EmployeeInfoBasicForExcel.rdlc" /> <None Remove="RDLC\EmployeeInfoBasicForExcel.rdlc" />
@ -239,6 +242,7 @@
<None Remove="RDLC\rptDeletedLifeCycleForExcel.rdlc" /> <None Remove="RDLC\rptDeletedLifeCycleForExcel.rdlc" />
<None Remove="RDLC\rptEmpAcademicInfo.rdlc" /> <None Remove="RDLC\rptEmpAcademicInfo.rdlc" />
<None Remove="RDLC\rptEmpDesignWiseProdBonus.rdlc" /> <None Remove="RDLC\rptEmpDesignWiseProdBonus.rdlc" />
<None Remove="RDLC\rptEmpDesignWiseProdBonusOld.rdlc" />
<None Remove="RDLC\rptEmpGeneralInfo.rdlc" /> <None Remove="RDLC\rptEmpGeneralInfo.rdlc" />
<None Remove="RDLC\rptEmployeeChildInfo.rdlc" /> <None Remove="RDLC\rptEmployeeChildInfo.rdlc" />
<None Remove="RDLC\rptEmployeeContactInfo.rdlc" /> <None Remove="RDLC\rptEmployeeContactInfo.rdlc" />
@ -294,6 +298,18 @@
<None Remove="RDLC\UpCommingEmp.rdlc" /> <None Remove="RDLC\UpCommingEmp.rdlc" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Interop.Word">
<WrapperTool>tlbimp</WrapperTool>
<VersionMinor>7</VersionMinor>
<VersionMajor>8</VersionMajor>
<Guid>00020905-0000-0000-c000-000000000046</Guid>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
<EmbedInteropTypes>true</EmbedInteropTypes>
</COMReference>
</ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="Attendence\RDLC\DailyAbsent.rdlc" /> <EmbeddedResource Include="Attendence\RDLC\DailyAbsent.rdlc" />
<EmbeddedResource Include="Attendence\RDLC\DailyAbsentEcho.rdlc" /> <EmbeddedResource Include="Attendence\RDLC\DailyAbsentEcho.rdlc" />
@ -310,14 +326,23 @@
<EmbeddedResource Include="Attendence\RDLC\MonthlyAttendanceSummary.rdlc" /> <EmbeddedResource Include="Attendence\RDLC\MonthlyAttendanceSummary.rdlc" />
<EmbeddedResource Include="Attendence\RDLC\MonthlyAttendanceReportNew.rdlc" /> <EmbeddedResource Include="Attendence\RDLC\MonthlyAttendanceReportNew.rdlc" />
<EmbeddedResource Include="Attendence\RDLC\MonthlyAttnLiFung.rdlc" /> <EmbeddedResource Include="Attendence\RDLC\MonthlyAttnLiFung.rdlc" />
<EmbeddedResource Include="Attendence\RDLC\MonthlyDetailAttnEcho.rdlc" /> <EmbeddedResource Include="Attendence\RDLC\MonthlyDetailAttnEcho.rdlc">
<EmbeddedResource Include="Attendence\RDLC\MultipleJobCard.rdlc" /> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
<EmbeddedResource Include="Attendence\RDLC\MultipleJobCardSub.rdlc" /> </EmbeddedResource>
<EmbeddedResource Include="Attendence\RDLC\rptMonthlyKPI.rdlc" /> <EmbeddedResource Include="Attendence\RDLC\MultipleJobCard.rdlc">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="Attendence\RDLC\MultipleJobCardSub.rdlc">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="Attendence\RDLC\rptMonthlyKPI.rdlc">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="RDLC\ActiveEmployeeDetail.rdlc" /> <EmbeddedResource Include="RDLC\ActiveEmployeeDetail.rdlc" />
<EmbeddedResource Include="RDLC\AllDigitalServiceBook.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\ApLetterForAssistantOfficerToAbove.rdlc" />
<EmbeddedResource Include="RDLC\ApointmentLetterForStuff.rdlc" /> <EmbeddedResource Include="RDLC\ApointmentLetterForStuff.rdlc" />
<EmbeddedResource Include="RDLC\ApointmentLetterForWorker.rdlc" /> <EmbeddedResource Include="RDLC\ApointmentLetterForWorker.rdlc" />
<EmbeddedResource Include="RDLC\ArrearBankAdvice.rdlc" /> <EmbeddedResource Include="RDLC\ArrearBankAdvice.rdlc" />
@ -350,6 +375,8 @@
<EmbeddedResource Include="RDLC\BankAdviceSGS.rdlc" /> <EmbeddedResource Include="RDLC\BankAdviceSGS.rdlc" />
<EmbeddedResource Include="RDLC\CardInfo.rdlc" /> <EmbeddedResource Include="RDLC\CardInfo.rdlc" />
<EmbeddedResource Include="RDLC\CCWiseBonusSummary.rdlc" /> <EmbeddedResource Include="RDLC\CCWiseBonusSummary.rdlc" />
<EmbeddedResource Include="RDLC\EmployeeDetailEcho.rdlc" />
<EmbeddedResource Include="RDLC\EmployeeDetailWithOPIEcho.rdlc" />
<EmbeddedResource Include="RDLC\EmployeeInfoBasicForExcel.rdlc" /> <EmbeddedResource Include="RDLC\EmployeeInfoBasicForExcel.rdlc" />
<EmbeddedResource Include="RDLC\EmployeeInfoBasic.rdlc" /> <EmbeddedResource Include="RDLC\EmployeeInfoBasic.rdlc" />
<EmbeddedResource Include="RDLC\LeaveLedgerNmgtDetails.rdlc" /> <EmbeddedResource Include="RDLC\LeaveLedgerNmgtDetails.rdlc" />
@ -390,7 +417,9 @@
<EmbeddedResource Include="RDLC\DateRangeMultipleJobCardNew.rdlc" /> <EmbeddedResource Include="RDLC\DateRangeMultipleJobCardNew.rdlc" />
<EmbeddedResource Include="RDLC\DateRangeMultipleJobCardSubNew.rdlc" /> <EmbeddedResource Include="RDLC\DateRangeMultipleJobCardSubNew.rdlc" />
<EmbeddedResource Include="RDLC\DepartmentalLeaveReport.rdlc" /> <EmbeddedResource Include="RDLC\DepartmentalLeaveReport.rdlc" />
<EmbeddedResource Include="RDLC\DigitalServiceBook.rdlc" /> <EmbeddedResource Include="RDLC\DigitalServiceBook.rdlc">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="RDLC\DivisionWiseOT.rdlc" /> <EmbeddedResource Include="RDLC\DivisionWiseOT.rdlc" />
<EmbeddedResource Include="RDLC\EducationalInfo.rdlc" /> <EmbeddedResource Include="RDLC\EducationalInfo.rdlc" />
<EmbeddedResource Include="RDLC\EERS.rdlc" /> <EmbeddedResource Include="RDLC\EERS.rdlc" />
@ -527,7 +556,12 @@
<EmbeddedResource Include="RDLC\rptDeletedLifeCycle.rdlc" /> <EmbeddedResource Include="RDLC\rptDeletedLifeCycle.rdlc" />
<EmbeddedResource Include="RDLC\rptDeletedLifeCycleForExcel.rdlc" /> <EmbeddedResource Include="RDLC\rptDeletedLifeCycleForExcel.rdlc" />
<EmbeddedResource Include="RDLC\rptEmpAcademicInfo.rdlc" /> <EmbeddedResource Include="RDLC\rptEmpAcademicInfo.rdlc" />
<EmbeddedResource Include="RDLC\rptEmpDesignWiseProdBonus.rdlc" /> <EmbeddedResource Include="RDLC\rptEmpDesignWiseProdBonus.rdlc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="RDLC\rptEmpDesignWiseProdBonusOld.rdlc">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="RDLC\rptEmpGeneralInfo.rdlc" /> <EmbeddedResource Include="RDLC\rptEmpGeneralInfo.rdlc" />
<EmbeddedResource Include="RDLC\rptEmployeeChildInfo.rdlc" /> <EmbeddedResource Include="RDLC\rptEmployeeChildInfo.rdlc" />
<EmbeddedResource Include="RDLC\rptEmployeeContactInfo.rdlc" /> <EmbeddedResource Include="RDLC\rptEmployeeContactInfo.rdlc" />

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -3308,25 +3308,81 @@
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="DeletedLifeCycle" msprop:Generator_RowEvHandlerName="DeletedLifeCycleRowChangeEventHandler" msprop:Generator_RowDeletedName="DeletedLifeCycleRowDeleted" msprop:Generator_RowDeletingName="DeletedLifeCycleRowDeleting" msprop:Generator_RowEvArgName="DeletedLifeCycleRowChangeEvent" msprop:Generator_TablePropName="DeletedLifeCycle" msprop:Generator_RowChangedName="DeletedLifeCycleRowChanged" msprop:Generator_RowChangingName="DeletedLifeCycleRowChanging" msprop:Generator_TableClassName="DeletedLifeCycleDataTable" msprop:Generator_RowClassName="DeletedLifeCycleRow" msprop:Generator_TableVarName="tableDeletedLifeCycle" msprop:Generator_UserTableName="DeletedLifeCycle"> <xs:element name="DeletedLifeCycle" msprop:Generator_RowClassName="DeletedLifeCycleRow" msprop:Generator_RowEvHandlerName="DeletedLifeCycleRowChangeEventHandler" msprop:Generator_RowDeletedName="DeletedLifeCycleRowDeleted" msprop:Generator_RowDeletingName="DeletedLifeCycleRowDeleting" msprop:Generator_RowEvArgName="DeletedLifeCycleRowChangeEvent" msprop:Generator_TablePropName="DeletedLifeCycle" msprop:Generator_RowChangedName="DeletedLifeCycleRowChanged" msprop:Generator_UserTableName="DeletedLifeCycle" msprop:Generator_RowChangingName="DeletedLifeCycleRowChanging" msprop:Generator_TableClassName="DeletedLifeCycleDataTable" msprop:Generator_TableVarName="tableDeletedLifeCycle">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="EffectDate" msprop:Generator_ColumnPropNameInRow="EffectDate" msprop:Generator_ColumnPropNameInTable="EffectDateColumn" msprop:Generator_ColumnVarNameInTable="columnEffectDate" msprop:Generator_UserColumnName="EffectDate" type="xs:string" minOccurs="0" /> <xs:element name="EffectDate" msprop:Generator_UserColumnName="EffectDate" msprop:Generator_ColumnPropNameInTable="EffectDateColumn" msprop:Generator_ColumnPropNameInRow="EffectDate" msprop:Generator_ColumnVarNameInTable="columnEffectDate" type="xs:string" minOccurs="0" />
<xs:element name="GrossSalary" msprop:Generator_ColumnPropNameInRow="GrossSalary" msprop:Generator_ColumnPropNameInTable="GrossSalaryColumn" msprop:Generator_ColumnVarNameInTable="columnGrossSalary" msprop:Generator_UserColumnName="GrossSalary" type="xs:string" minOccurs="0" /> <xs:element name="GrossSalary" msprop:Generator_UserColumnName="GrossSalary" msprop:Generator_ColumnPropNameInTable="GrossSalaryColumn" msprop:Generator_ColumnPropNameInRow="GrossSalary" msprop:Generator_ColumnVarNameInTable="columnGrossSalary" type="xs:string" minOccurs="0" />
<xs:element name="BasicSalary" msprop:Generator_ColumnPropNameInRow="BasicSalary" msprop:Generator_ColumnPropNameInTable="BasicSalaryColumn" msprop:Generator_ColumnVarNameInTable="columnBasicSalary" msprop:Generator_UserColumnName="BasicSalary" type="xs:string" minOccurs="0" /> <xs:element name="BasicSalary" msprop:Generator_UserColumnName="BasicSalary" msprop:Generator_ColumnPropNameInTable="BasicSalaryColumn" msprop:Generator_ColumnPropNameInRow="BasicSalary" msprop:Generator_ColumnVarNameInTable="columnBasicSalary" type="xs:string" minOccurs="0" />
<xs:element name="Grade" msprop:Generator_ColumnPropNameInRow="Grade" msprop:Generator_ColumnPropNameInTable="GradeColumn" msprop:Generator_ColumnVarNameInTable="columnGrade" msprop:Generator_UserColumnName="Grade" type="xs:string" minOccurs="0" /> <xs:element name="Grade" msprop:Generator_UserColumnName="Grade" msprop:Generator_ColumnPropNameInTable="GradeColumn" msprop:Generator_ColumnPropNameInRow="Grade" msprop:Generator_ColumnVarNameInTable="columnGrade" type="xs:string" minOccurs="0" />
<xs:element name="Company" msprop:Generator_ColumnPropNameInRow="Company" msprop:Generator_ColumnPropNameInTable="CompanyColumn" msprop:Generator_ColumnVarNameInTable="columnCompany" msprop:Generator_UserColumnName="Company" type="xs:string" minOccurs="0" /> <xs:element name="Company" msprop:Generator_UserColumnName="Company" msprop:Generator_ColumnPropNameInTable="CompanyColumn" msprop:Generator_ColumnPropNameInRow="Company" msprop:Generator_ColumnVarNameInTable="columnCompany" type="xs:string" minOccurs="0" />
<xs:element name="Designation" msprop:Generator_UserColumnName="Designation" msprop:Generator_ColumnPropNameInTable="DesignationColumn" msprop:Generator_ColumnPropNameInRow="Designation" msprop:Generator_ColumnVarNameInTable="columnDesignation" type="xs:string" minOccurs="0" />
<xs:element name="Location" msprop:Generator_UserColumnName="Location" msprop:Generator_ColumnPropNameInTable="LocationColumn" msprop:Generator_ColumnPropNameInRow="Location" msprop:Generator_ColumnVarNameInTable="columnLocation" type="xs:string" minOccurs="0" />
<xs:element name="Department" msprop:Generator_UserColumnName="Department" msprop:Generator_ColumnPropNameInTable="DepartmentColumn" msprop:Generator_ColumnPropNameInRow="Department" msprop:Generator_ColumnVarNameInTable="columnDepartment" type="xs:string" minOccurs="0" />
<xs:element name="Confirmed" msprop:Generator_UserColumnName="Confirmed" msprop:Generator_ColumnPropNameInTable="ConfirmedColumn" msprop:Generator_ColumnPropNameInRow="Confirmed" msprop:Generator_ColumnVarNameInTable="columnConfirmed" type="xs:string" minOccurs="0" />
<xs:element name="EmployeeNo" msprop:Generator_UserColumnName="EmployeeNo" msprop:Generator_ColumnPropNameInTable="EmployeeNoColumn" msprop:Generator_ColumnPropNameInRow="EmployeeNo" msprop:Generator_ColumnVarNameInTable="columnEmployeeNo" type="xs:string" minOccurs="0" />
<xs:element name="EmployeeName" msprop:Generator_UserColumnName="EmployeeName" msprop:Generator_ColumnPropNameInTable="EmployeeNameColumn" msprop:Generator_ColumnPropNameInRow="EmployeeName" msprop:Generator_ColumnVarNameInTable="columnEmployeeName" type="xs:string" minOccurs="0" />
<xs:element name="Status" msprop:Generator_UserColumnName="Status" msprop:Generator_ColumnPropNameInTable="StatusColumn" msprop:Generator_ColumnPropNameInRow="Status" msprop:Generator_ColumnVarNameInTable="columnStatus" type="xs:string" minOccurs="0" />
<xs:element name="Remarks" msprop:Generator_UserColumnName="Remarks" msprop:Generator_ColumnPropNameInTable="RemarksColumn" msprop:Generator_ColumnPropNameInRow="Remarks" msprop:Generator_ColumnVarNameInTable="columnRemarks" type="xs:string" minOccurs="0" />
<xs:element name="Description" msprop:Generator_UserColumnName="Description" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnVarNameInTable="columnDescription" type="xs:string" minOccurs="0" />
<xs:element name="SalaryMonth" msprop:Generator_UserColumnName="SalaryMonth" msprop:Generator_ColumnPropNameInTable="SalaryMonthColumn" msprop:Generator_ColumnPropNameInRow="SalaryMonth" msprop:Generator_ColumnVarNameInTable="columnSalaryMonth" type="xs:string" minOccurs="0" />
<xs:element name="GradeSalaryAssesment" msprop:Generator_UserColumnName="GradeSalaryAssesment" msprop:Generator_ColumnPropNameInTable="GradeSalaryAssesmentColumn" msprop:Generator_ColumnPropNameInRow="GradeSalaryAssesment" msprop:Generator_ColumnVarNameInTable="columnGradeSalaryAssesment" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="EmployeeDetailEcho" msprop:Generator_RowEvHandlerName="EmployeeDetailEchoRowChangeEventHandler" msprop:Generator_RowDeletedName="EmployeeDetailEchoRowDeleted" msprop:Generator_RowDeletingName="EmployeeDetailEchoRowDeleting" msprop:Generator_RowEvArgName="EmployeeDetailEchoRowChangeEvent" msprop:Generator_TablePropName="EmployeeDetailEcho" msprop:Generator_RowChangedName="EmployeeDetailEchoRowChanged" msprop:Generator_RowChangingName="EmployeeDetailEchoRowChanging" msprop:Generator_TableClassName="EmployeeDetailEchoDataTable" msprop:Generator_RowClassName="EmployeeDetailEchoRow" msprop:Generator_TableVarName="tableEmployeeDetailEcho" msprop:Generator_UserTableName="EmployeeDetailEcho">
<xs:complexType>
<xs:sequence>
<xs:element name="EmpNo" msprop:Generator_ColumnPropNameInRow="EmpNo" msprop:Generator_ColumnPropNameInTable="EmpNoColumn" msprop:Generator_ColumnVarNameInTable="columnEmpNo" msprop:Generator_UserColumnName="EmpNo" type="xs:string" minOccurs="0" />
<xs:element name="Name" msprop:Generator_ColumnPropNameInRow="Name" msprop:Generator_ColumnPropNameInTable="NameColumn" msprop:Generator_ColumnVarNameInTable="columnName" msprop:Generator_UserColumnName="Name" type="xs:string" minOccurs="0" />
<xs:element name="Designation" msprop:Generator_ColumnPropNameInRow="Designation" msprop:Generator_ColumnPropNameInTable="DesignationColumn" msprop:Generator_ColumnVarNameInTable="columnDesignation" msprop:Generator_UserColumnName="Designation" type="xs:string" minOccurs="0" /> <xs:element name="Designation" msprop:Generator_ColumnPropNameInRow="Designation" msprop:Generator_ColumnPropNameInTable="DesignationColumn" msprop:Generator_ColumnVarNameInTable="columnDesignation" msprop:Generator_UserColumnName="Designation" type="xs:string" minOccurs="0" />
<xs:element name="Location" msprop:Generator_ColumnPropNameInRow="Location" msprop:Generator_ColumnPropNameInTable="LocationColumn" msprop:Generator_ColumnVarNameInTable="columnLocation" msprop:Generator_UserColumnName="Location" type="xs:string" minOccurs="0" />
<xs:element name="Department" msprop:Generator_ColumnPropNameInRow="Department" msprop:Generator_ColumnPropNameInTable="DepartmentColumn" msprop:Generator_ColumnVarNameInTable="columnDepartment" msprop:Generator_UserColumnName="Department" type="xs:string" minOccurs="0" /> <xs:element name="Department" msprop:Generator_ColumnPropNameInRow="Department" msprop:Generator_ColumnPropNameInTable="DepartmentColumn" msprop:Generator_ColumnVarNameInTable="columnDepartment" msprop:Generator_UserColumnName="Department" type="xs:string" minOccurs="0" />
<xs:element name="Confirmed" msprop:Generator_ColumnPropNameInRow="Confirmed" msprop:Generator_ColumnPropNameInTable="ConfirmedColumn" msprop:Generator_ColumnVarNameInTable="columnConfirmed" msprop:Generator_UserColumnName="Confirmed" type="xs:string" minOccurs="0" /> <xs:element name="Grade" msprop:Generator_ColumnPropNameInRow="Grade" msprop:Generator_ColumnPropNameInTable="GradeColumn" msprop:Generator_ColumnVarNameInTable="columnGrade" msprop:Generator_UserColumnName="Grade" type="xs:string" minOccurs="0" />
<xs:element name="EmployeeNo" msprop:Generator_ColumnPropNameInRow="EmployeeNo" msprop:Generator_ColumnPropNameInTable="EmployeeNoColumn" msprop:Generator_ColumnVarNameInTable="columnEmployeeNo" msprop:Generator_UserColumnName="EmployeeNo" type="xs:string" minOccurs="0" /> <xs:element name="BasicSalary" msprop:Generator_ColumnPropNameInRow="BasicSalary" msprop:Generator_ColumnPropNameInTable="BasicSalaryColumn" msprop:Generator_ColumnVarNameInTable="columnBasicSalary" msprop:Generator_UserColumnName="BasicSalary" type="xs:double" minOccurs="0" />
<xs:element name="EmployeeName" msprop:Generator_ColumnPropNameInRow="EmployeeName" msprop:Generator_ColumnPropNameInTable="EmployeeNameColumn" msprop:Generator_ColumnVarNameInTable="columnEmployeeName" msprop:Generator_UserColumnName="EmployeeName" type="xs:string" minOccurs="0" /> <xs:element name="DOB" msprop:Generator_ColumnPropNameInRow="DOB" msprop:Generator_ColumnPropNameInTable="DOBColumn" msprop:Generator_ColumnVarNameInTable="columnDOB" msprop:Generator_UserColumnName="DOB" type="xs:dateTime" minOccurs="0" />
<xs:element name="Status" msprop:Generator_ColumnPropNameInRow="Status" msprop:Generator_ColumnPropNameInTable="StatusColumn" msprop:Generator_ColumnVarNameInTable="columnStatus" msprop:Generator_UserColumnName="Status" type="xs:string" minOccurs="0" /> <xs:element name="Gender" msprop:Generator_ColumnPropNameInRow="Gender" msprop:Generator_ColumnPropNameInTable="GenderColumn" msprop:Generator_ColumnVarNameInTable="columnGender" msprop:Generator_UserColumnName="Gender" type="xs:string" minOccurs="0" />
<xs:element name="Remarks" msprop:Generator_ColumnPropNameInRow="Remarks" msprop:Generator_ColumnPropNameInTable="RemarksColumn" msprop:Generator_ColumnVarNameInTable="columnRemarks" msprop:Generator_UserColumnName="Remarks" type="xs:string" minOccurs="0" /> <xs:element name="Religion" msprop:Generator_ColumnPropNameInRow="Religion" msprop:Generator_ColumnPropNameInTable="ReligionColumn" msprop:Generator_ColumnVarNameInTable="columnReligion" msprop:Generator_UserColumnName="Religion" type="xs:string" minOccurs="0" />
<xs:element name="Description" msprop:Generator_ColumnPropNameInRow="Description" msprop:Generator_ColumnPropNameInTable="DescriptionColumn" msprop:Generator_ColumnVarNameInTable="columnDescription" msprop:Generator_UserColumnName="Description" type="xs:string" minOccurs="0" /> <xs:element name="Bank" msprop:Generator_ColumnPropNameInRow="Bank" msprop:Generator_ColumnPropNameInTable="BankColumn" msprop:Generator_ColumnVarNameInTable="columnBank" msprop:Generator_UserColumnName="Bank" type="xs:string" minOccurs="0" />
<xs:element name="SalaryMonth" msprop:Generator_ColumnPropNameInRow="SalaryMonth" msprop:Generator_ColumnPropNameInTable="SalaryMonthColumn" msprop:Generator_ColumnVarNameInTable="columnSalaryMonth" msprop:Generator_UserColumnName="SalaryMonth" type="xs:string" minOccurs="0" /> <xs:element name="Branch" msprop:Generator_ColumnPropNameInRow="Branch" msprop:Generator_ColumnPropNameInTable="BranchColumn" msprop:Generator_ColumnVarNameInTable="columnBranch" msprop:Generator_UserColumnName="Branch" type="xs:string" minOccurs="0" />
<xs:element name="GradeSalaryAssesment" msprop:Generator_ColumnPropNameInRow="GradeSalaryAssesment" msprop:Generator_ColumnPropNameInTable="GradeSalaryAssesmentColumn" msprop:Generator_ColumnVarNameInTable="columnGradeSalaryAssesment" msprop:Generator_UserColumnName="GradeSalaryAssesment" type="xs:string" minOccurs="0" /> <xs:element name="AccountNo" msprop:Generator_ColumnPropNameInRow="AccountNo" msprop:Generator_ColumnPropNameInTable="AccountNoColumn" msprop:Generator_ColumnVarNameInTable="columnAccountNo" msprop:Generator_UserColumnName="AccountNo" type="xs:string" minOccurs="0" />
<xs:element name="DOJ" msprop:Generator_ColumnPropNameInRow="DOJ" msprop:Generator_ColumnPropNameInTable="DOJColumn" msprop:Generator_ColumnVarNameInTable="columnDOJ" msprop:Generator_UserColumnName="DOJ" type="xs:dateTime" minOccurs="0" />
<xs:element name="ConfirmDate" msprop:Generator_ColumnPropNameInRow="ConfirmDate" msprop:Generator_ColumnPropNameInTable="ConfirmDateColumn" msprop:Generator_ColumnVarNameInTable="columnConfirmDate" msprop:Generator_UserColumnName="ConfirmDate" type="xs:dateTime" minOccurs="0" />
<xs:element name="TaxAmount" msprop:Generator_ColumnPropNameInRow="TaxAmount" msprop:Generator_ColumnPropNameInTable="TaxAmountColumn" msprop:Generator_ColumnVarNameInTable="columnTaxAmount" msprop:Generator_UserColumnName="TaxAmount" type="xs:string" minOccurs="0" />
<xs:element name="MarStatus" msprop:Generator_ColumnPropNameInRow="MarStatus" msprop:Generator_ColumnPropNameInTable="MarStatusColumn" msprop:Generator_ColumnVarNameInTable="columnMarStatus" msprop:Generator_UserColumnName="MarStatus" type="xs:string" minOccurs="0" />
<xs:element name="MobileNo" msprop:Generator_ColumnPropNameInRow="MobileNo" msprop:Generator_ColumnPropNameInTable="MobileNoColumn" msprop:Generator_ColumnVarNameInTable="columnMobileNo" msprop:Generator_UserColumnName="MobileNo" type="xs:string" minOccurs="0" />
<xs:element name="MailAdd" msprop:Generator_ColumnPropNameInRow="MailAdd" msprop:Generator_ColumnPropNameInTable="MailAddColumn" msprop:Generator_ColumnVarNameInTable="columnMailAdd" msprop:Generator_UserColumnName="MailAdd" type="xs:string" minOccurs="0" />
<xs:element name="LocDes" msprop:Generator_ColumnPropNameInRow="LocDes" msprop:Generator_ColumnPropNameInTable="LocDesColumn" msprop:Generator_ColumnVarNameInTable="columnLocDes" msprop:Generator_UserColumnName="LocDes" type="xs:string" minOccurs="0" />
<xs:element name="GrossSalary" msprop:Generator_ColumnPropNameInRow="GrossSalary" msprop:Generator_ColumnPropNameInTable="GrossSalaryColumn" msprop:Generator_ColumnVarNameInTable="columnGrossSalary" msprop:Generator_UserColumnName="GrossSalary" type="xs:double" minOccurs="0" />
<xs:element name="VendorCode" msprop:Generator_ColumnPropNameInRow="VendorCode" msprop:Generator_ColumnPropNameInTable="VendorCodeColumn" msprop:Generator_ColumnVarNameInTable="columnVendorCode" msprop:Generator_UserColumnName="VendorCode" type="xs:string" minOccurs="0" />
<xs:element name="BankOPI" msprop:Generator_ColumnPropNameInRow="BankOPI" msprop:Generator_ColumnPropNameInTable="BankOPIColumn" msprop:Generator_ColumnVarNameInTable="columnBankOPI" msprop:Generator_UserColumnName="BankOPI" type="xs:string" minOccurs="0" />
<xs:element name="BranchOPI" msprop:Generator_ColumnPropNameInRow="BranchOPI" msprop:Generator_ColumnPropNameInTable="BranchOPIColumn" msprop:Generator_ColumnVarNameInTable="columnBranchOPI" msprop:Generator_UserColumnName="BranchOPI" type="xs:string" minOccurs="0" />
<xs:element name="AccountNoOPI" msprop:Generator_ColumnPropNameInRow="AccountNoOPI" msprop:Generator_ColumnPropNameInTable="AccountNoOPIColumn" msprop:Generator_ColumnVarNameInTable="columnAccountNoOPI" msprop:Generator_UserColumnName="AccountNoOPI" type="xs:string" minOccurs="0" />
<xs:element name="Floor" msprop:Generator_ColumnPropNameInRow="Floor" msprop:Generator_ColumnPropNameInTable="FloorColumn" msprop:Generator_ColumnVarNameInTable="columnFloor" msprop:Generator_UserColumnName="Floor" type="xs:string" minOccurs="0" />
<xs:element name="Section" msprop:Generator_ColumnPropNameInRow="Section" msprop:Generator_ColumnPropNameInTable="SectionColumn" msprop:Generator_ColumnVarNameInTable="columnSection" msprop:Generator_UserColumnName="Section" type="xs:string" minOccurs="0" />
<xs:element name="Line" msprop:Generator_ColumnPropNameInRow="Line" msprop:Generator_ColumnPropNameInTable="LineColumn" msprop:Generator_ColumnVarNameInTable="columnLine" msprop:Generator_UserColumnName="Line" type="xs:string" minOccurs="0" />
<xs:element name="RFID" msprop:Generator_ColumnPropNameInRow="RFID" msprop:Generator_ColumnPropNameInTable="RFIDColumn" msprop:Generator_ColumnVarNameInTable="columnRFID" msprop:Generator_UserColumnName="RFID" type="xs:string" minOccurs="0" />
<xs:element name="BloodGroup" msprop:Generator_ColumnPropNameInRow="BloodGroup" msprop:Generator_ColumnPropNameInTable="BloodGroupColumn" msprop:Generator_ColumnVarNameInTable="columnBloodGroup" msprop:Generator_UserColumnName="BloodGroup" type="xs:string" minOccurs="0" />
<xs:element name="Qualification" msprop:Generator_ColumnPropNameInRow="Qualification" msprop:Generator_ColumnPropNameInTable="QualificationColumn" msprop:Generator_ColumnVarNameInTable="columnQualification" msprop:Generator_UserColumnName="Qualification" type="xs:string" minOccurs="0" />
<xs:element name="VotterID" msprop:Generator_ColumnPropNameInRow="VotterID" msprop:Generator_ColumnPropNameInTable="VotterIDColumn" msprop:Generator_ColumnVarNameInTable="columnVotterID" msprop:Generator_UserColumnName="VotterID" type="xs:string" minOccurs="0" />
<xs:element name="Nationality" msprop:Generator_ColumnPropNameInRow="Nationality" msprop:Generator_ColumnPropNameInTable="NationalityColumn" msprop:Generator_ColumnVarNameInTable="columnNationality" msprop:Generator_UserColumnName="Nationality" type="xs:string" minOccurs="0" />
<xs:element name="FathersName" msprop:Generator_ColumnPropNameInRow="FathersName" msprop:Generator_ColumnPropNameInTable="FathersNameColumn" msprop:Generator_ColumnVarNameInTable="columnFathersName" msprop:Generator_UserColumnName="FathersName" type="xs:string" minOccurs="0" />
<xs:element name="MothersName" msprop:Generator_ColumnPropNameInRow="MothersName" msprop:Generator_ColumnPropNameInTable="MothersNameColumn" msprop:Generator_ColumnVarNameInTable="columnMothersName" msprop:Generator_UserColumnName="MothersName" type="xs:string" minOccurs="0" />
<xs:element name="Spouse" msprop:Generator_ColumnPropNameInRow="Spouse" msprop:Generator_ColumnPropNameInTable="SpouseColumn" msprop:Generator_ColumnVarNameInTable="columnSpouse" msprop:Generator_UserColumnName="Spouse" type="xs:string" minOccurs="0" />
<xs:element name="TempVill" msprop:Generator_ColumnPropNameInRow="TempVill" msprop:Generator_ColumnPropNameInTable="TempVillColumn" msprop:Generator_ColumnVarNameInTable="columnTempVill" msprop:Generator_UserColumnName="TempVill" type="xs:string" minOccurs="0" />
<xs:element name="TempPost" msprop:Generator_ColumnPropNameInRow="TempPost" msprop:Generator_ColumnPropNameInTable="TempPostColumn" msprop:Generator_ColumnVarNameInTable="columnTempPost" msprop:Generator_UserColumnName="TempPost" type="xs:string" minOccurs="0" />
<xs:element name="TempPS" msprop:Generator_ColumnPropNameInRow="TempPS" msprop:Generator_ColumnPropNameInTable="TempPSColumn" msprop:Generator_ColumnVarNameInTable="columnTempPS" msprop:Generator_UserColumnName="TempPS" type="xs:string" minOccurs="0" />
<xs:element name="TempDist" msprop:Generator_ColumnPropNameInRow="TempDist" msprop:Generator_ColumnPropNameInTable="TempDistColumn" msprop:Generator_ColumnVarNameInTable="columnTempDist" msprop:Generator_UserColumnName="TempDist" type="xs:string" minOccurs="0" />
<xs:element name="PerVill" msprop:Generator_ColumnPropNameInRow="PerVill" msprop:Generator_ColumnPropNameInTable="PerVillColumn" msprop:Generator_ColumnVarNameInTable="columnPerVill" msprop:Generator_UserColumnName="PerVill" type="xs:string" minOccurs="0" />
<xs:element name="PerPost" msprop:Generator_ColumnPropNameInRow="PerPost" msprop:Generator_ColumnPropNameInTable="PerPostColumn" msprop:Generator_ColumnVarNameInTable="columnPerPost" msprop:Generator_UserColumnName="PerPost" type="xs:string" minOccurs="0" />
<xs:element name="PerPS" msprop:Generator_ColumnPropNameInRow="PerPS" msprop:Generator_ColumnPropNameInTable="PerPSColumn" msprop:Generator_ColumnVarNameInTable="columnPerPS" msprop:Generator_UserColumnName="PerPS" type="xs:string" minOccurs="0" />
<xs:element name="PerDist" msprop:Generator_ColumnPropNameInRow="PerDist" msprop:Generator_ColumnPropNameInTable="PerDistColumn" msprop:Generator_ColumnVarNameInTable="columnPerDist" msprop:Generator_UserColumnName="PerDist" type="xs:string" minOccurs="0" />
<xs:element name="Category" msprop:Generator_ColumnPropNameInRow="Category" msprop:Generator_ColumnPropNameInTable="CategoryColumn" msprop:Generator_ColumnVarNameInTable="columnCategory" msprop:Generator_UserColumnName="Category" type="xs:string" minOccurs="0" />
<xs:element name="BanglaName" msprop:Generator_ColumnPropNameInRow="BanglaName" msprop:Generator_ColumnPropNameInTable="BanglaNameColumn" msprop:Generator_ColumnVarNameInTable="columnBanglaName" msprop:Generator_UserColumnName="BanglaName" type="xs:string" minOccurs="0" />
<xs:element name="BanglaDesignation" msprop:Generator_ColumnPropNameInRow="BanglaDesignation" msprop:Generator_ColumnPropNameInTable="BanglaDesignationColumn" msprop:Generator_ColumnVarNameInTable="columnBanglaDesignation" msprop:Generator_UserColumnName="BanglaDesignation" type="xs:string" minOccurs="0" />
<xs:element name="DepartmentBangla" msprop:Generator_ColumnPropNameInRow="DepartmentBangla" msprop:Generator_ColumnPropNameInTable="DepartmentBanglaColumn" msprop:Generator_ColumnVarNameInTable="columnDepartmentBangla" msprop:Generator_UserColumnName="DepartmentBangla" type="xs:string" minOccurs="0" />
<xs:element name="SectionBangla" msprop:Generator_ColumnPropNameInRow="SectionBangla" msprop:Generator_ColumnPropNameInTable="SectionBanglaColumn" msprop:Generator_ColumnVarNameInTable="columnSectionBangla" msprop:Generator_UserColumnName="SectionBangla" type="xs:string" minOccurs="0" />
<xs:element name="LANDPHONE" msprop:Generator_ColumnPropNameInRow="LANDPHONE" msprop:Generator_ColumnPropNameInTable="LANDPHONEColumn" msprop:Generator_ColumnVarNameInTable="columnLANDPHONE" msprop:Generator_UserColumnName="LANDPHONE" type="xs:string" minOccurs="0" />
<xs:element name="OFFICEMOBILE" msprop:Generator_ColumnPropNameInRow="OFFICEMOBILE" msprop:Generator_ColumnPropNameInTable="OFFICEMOBILEColumn" msprop:Generator_ColumnVarNameInTable="columnOFFICEMOBILE" msprop:Generator_UserColumnName="OFFICEMOBILE" type="xs:string" minOccurs="0" />
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>

View File

@ -4,190 +4,191 @@
Changes to this file may cause incorrect behavior and will be lost if Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated. the code is regenerated.
</autogenerated>--> </autogenerated>-->
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-76" ViewPortY="-18" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout"> <DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-76" ViewPortY="1153" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes> <Shapes>
<Shape ID="DesignTable:Payslip" ZOrder="85" X="917" Y="260" Height="257" Width="157" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:Payslip" ZOrder="86" X="917" Y="260" Height="257" Width="157" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:EmployeeInfo" ZOrder="3" X="-66" Y="301" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:EmployeeInfo" ZOrder="4" X="-66" Y="301" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:EmployeePersonalInfo" ZOrder="33" X="0" Y="72" Height="239" Width="196" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" /> <Shape ID="DesignTable:EmployeePersonalInfo" ZOrder="34" X="0" Y="72" Height="239" Width="196" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:EmployeeEducation" ZOrder="32" X="0" Y="72" Height="125" Width="180" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" /> <Shape ID="DesignTable:EmployeeEducation" ZOrder="33" X="0" Y="72" Height="125" Width="180" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="121" />
<Shape ID="DesignTable:EmployeeChildren" ZOrder="31" X="0" Y="72" Height="201" Width="171" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" /> <Shape ID="DesignTable:EmployeeChildren" ZOrder="32" X="0" Y="72" Height="201" Width="171" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:EmployeeHobby" ZOrder="30" X="0" Y="72" Height="68" Width="161" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" /> <Shape ID="DesignTable:EmployeeHobby" ZOrder="31" X="0" Y="72" Height="68" Width="161" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:EmployeeExperience" ZOrder="29" X="0" Y="72" Height="163" Width="185" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" /> <Shape ID="DesignTable:EmployeeExperience" ZOrder="30" X="0" Y="72" Height="163" Width="185" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:EmployeeTraining" ZOrder="28" X="0" Y="72" Height="144" Width="171" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" /> <Shape ID="DesignTable:EmployeeTraining" ZOrder="29" X="0" Y="72" Height="144" Width="171" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:EmployeeReferenceInside" ZOrder="27" X="0" Y="72" Height="163" Width="215" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" /> <Shape ID="DesignTable:EmployeeReferenceInside" ZOrder="28" X="0" Y="72" Height="163" Width="215" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:EmployeeNominee" ZOrder="17" X="-1" Y="72" Height="28" Width="175" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="159" SplitterPosition="24" /> <Shape ID="DesignTable:EmployeeNominee" ZOrder="18" X="-1" Y="72" Height="28" Width="175" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="159" SplitterPosition="24" />
<Shape ID="DesignTable:EmployeeReferenceOutside" ZOrder="24" X="43" Y="181" Height="144" Width="225" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" /> <Shape ID="DesignTable:EmployeeReferenceOutside" ZOrder="25" X="43" Y="181" Height="144" Width="225" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:IncomeTax" ZOrder="169" X="616" Y="409" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:IncomeTax" ZOrder="170" X="616" Y="409" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:IncomeTaxSlab" ZOrder="182" X="612" Y="318" Height="143" Width="154" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="160" SplitterPosition="139" /> <Shape ID="DesignTable:IncomeTaxSlab" ZOrder="183" X="612" Y="318" Height="143" Width="154" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="160" SplitterPosition="139" />
<Shape ID="DesignTable:IncomeTaxOther" ZOrder="175" X="615" Y="380" Height="124" Width="162" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="120" /> <Shape ID="DesignTable:IncomeTaxOther" ZOrder="176" X="615" Y="380" Height="124" Width="162" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="120" />
<Shape ID="DesignTable:BankAdvice" ZOrder="149" X="1214" Y="421" Height="162" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="158" /> <Shape ID="DesignTable:BankAdvice" ZOrder="150" X="1214" Y="421" Height="162" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="158" />
<Shape ID="DesignTable:SalarySheet" ZOrder="90" X="1740" Y="101" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="313" SplitterPosition="253" /> <Shape ID="DesignTable:SalarySheet" ZOrder="91" X="1740" Y="101" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="313" SplitterPosition="253" />
<Shape ID="DesignTable:SettlementAdvice" ZOrder="25" X="47" Y="115" Height="257" Width="168" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" /> <Shape ID="DesignTable:SettlementAdvice" ZOrder="26" X="47" Y="115" Height="257" Width="168" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />
<Shape ID="DesignTable:SalaryReconsilation" ZOrder="91" X="1744" Y="199" Height="257" Width="179" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:SalaryReconsilation" ZOrder="92" X="1744" Y="199" Height="257" Width="179" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:CCWSalaryDetail" ZOrder="88" X="285" Y="303" Height="162" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="158" /> <Shape ID="DesignTable:CCWSalaryDetail" ZOrder="89" X="285" Y="303" Height="162" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="158" />
<Shape ID="DesignTable:CCWSaSummary" ZOrder="46" X="286" Y="242" Height="124" Width="162" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="120" /> <Shape ID="DesignTable:CCWSaSummary" ZOrder="47" X="286" Y="242" Height="124" Width="162" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="120" />
<Shape ID="DesignTable:CashDisbursement" ZOrder="47" X="286" Y="213" Height="124" Width="173" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="92" SplitterPosition="120" /> <Shape ID="DesignTable:CashDisbursement" ZOrder="48" X="286" Y="213" Height="124" Width="173" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="92" SplitterPosition="120" />
<Shape ID="DesignTable:PostingDetails" ZOrder="174" X="911" Y="107" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:PostingDetails" ZOrder="175" X="911" Y="107" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:EmployeeDetail" ZOrder="26" X="594" Y="62" Height="239" Width="156" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="235" /> <Shape ID="DesignTable:EmployeeDetail" ZOrder="27" X="594" Y="62" Height="239" Width="156" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="235" />
<Shape ID="DesignTable:EmployeeHistory" ZOrder="83" X="-66" Y="402" Height="257" Width="165" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:EmployeeHistory" ZOrder="84" X="-66" Y="402" Height="257" Width="165" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:EmpCostAllocation" ZOrder="63" X="-67" Y="534" Height="105" Width="176" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" /> <Shape ID="DesignTable:EmpCostAllocation" ZOrder="64" X="-67" Y="534" Height="105" Width="176" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" />
<Shape ID="DesignTable:UpcomEmployee" ZOrder="37" X="312" Y="965" Height="105" Width="164" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" /> <Shape ID="DesignTable:UpcomEmployee" ZOrder="38" X="312" Y="965" Height="105" Width="164" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" />
<Shape ID="DesignTable:OTMonthlySheet" ZOrder="4" X="361" Y="66" Height="200" Width="164" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="196" /> <Shape ID="DesignTable:OTMonthlySheet" ZOrder="5" X="361" Y="66" Height="200" Width="164" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="196" />
<Shape ID="DesignTable:BonusBankAdvice" ZOrder="173" X="1212" Y="333" Height="162" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="158" /> <Shape ID="DesignTable:BonusBankAdvice" ZOrder="174" X="1212" Y="333" Height="162" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="158" />
<Shape ID="DesignTable:BonusRegister" ZOrder="109" X="1212" Y="361" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="272" SplitterPosition="253" /> <Shape ID="DesignTable:BonusRegister" ZOrder="110" X="1212" Y="361" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="272" SplitterPosition="253" />
<Shape ID="DesignTable:AnnualIncomeTax" ZOrder="172" X="624" Y="607" Height="143" Width="170" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="109" SplitterPosition="139" /> <Shape ID="DesignTable:AnnualIncomeTax" ZOrder="173" X="624" Y="607" Height="143" Width="170" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="109" SplitterPosition="139" />
<Shape ID="DesignTable:LaonPaymentDue" ZOrder="39" X="308" Y="803" Height="257" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:LaonPaymentDue" ZOrder="40" X="308" Y="803" Height="257" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:LoanIssue" ZOrder="40" X="308" Y="771" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="227" SplitterPosition="253" /> <Shape ID="DesignTable:LoanIssue" ZOrder="41" X="308" Y="771" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="227" SplitterPosition="253" />
<Shape ID="DesignTable:OTHourlySheet" ZOrder="52" X="361" Y="-28" Height="143" Width="154" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="109" SplitterPosition="139" /> <Shape ID="DesignTable:OTHourlySheet" ZOrder="53" X="361" Y="-28" Height="143" Width="154" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="109" SplitterPosition="139" />
<Shape ID="DesignTable:BasicReport" ZOrder="35" X="1205" Y="322" Height="106" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="63" SplitterPosition="102" /> <Shape ID="DesignTable:BasicReport" ZOrder="36" X="1205" Y="322" Height="106" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="63" SplitterPosition="102" />
<Shape ID="DesignTable:ExtendedSalarySheet" ZOrder="69" X="-65" Y="236" Height="257" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:ExtendedSalarySheet" ZOrder="70" X="-65" Y="236" Height="257" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:OTMonthRange" ZOrder="49" X="361" Y="127" Height="143" Width="158" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="109" SplitterPosition="139" /> <Shape ID="DesignTable:OTMonthRange" ZOrder="50" X="361" Y="127" Height="143" Width="158" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="109" SplitterPosition="139" />
<Shape ID="DesignTable:BranchWiseOT" ZOrder="113" X="1217" Y="541" Height="105" Width="151" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" /> <Shape ID="DesignTable:BranchWiseOT" ZOrder="114" X="1217" Y="541" Height="105" Width="151" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" />
<Shape ID="DesignTable:DivisionWiseOT" ZOrder="179" X="1471" Y="161" Height="124" Width="157" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="92" SplitterPosition="120" /> <Shape ID="DesignTable:DivisionWiseOT" ZOrder="180" X="1471" Y="161" Height="124" Width="157" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="92" SplitterPosition="120" />
<Shape ID="DesignTable:OverAllSummary" ZOrder="50" X="360" Y="34" Height="257" Width="164" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:OverAllSummary" ZOrder="51" X="360" Y="34" Height="257" Width="164" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:EmpGradeBasic" ZOrder="76" X="-67" Y="72" Height="257" Width="155" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:EmpGradeBasic" ZOrder="77" X="-67" Y="72" Height="257" Width="155" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:EmpAllowDeduct" ZOrder="77" X="-68" Y="39" Height="257" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:EmpAllowDeduct" ZOrder="78" X="-68" Y="39" Height="257" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:EmpBankHistory" ZOrder="67" X="-66" Y="333" Height="257" Width="162" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:EmpBankHistory" ZOrder="68" X="-66" Y="333" Height="257" Width="162" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:EmpConfirmHis" ZOrder="70" X="-66" Y="202" Height="257" Width="157" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:EmpConfirmHis" ZOrder="71" X="-66" Y="202" Height="257" Width="157" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:EmpPFHis" ZOrder="168" X="-68" Y="1192" Height="181" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="143" SplitterPosition="177" /> <Shape ID="DesignTable:EmpPFHis" ZOrder="169" X="-68" Y="1192" Height="181" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="143" SplitterPosition="177" />
<Shape ID="DesignTable:JVReport" ZOrder="127" X="294" Y="536" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:JVReport" ZOrder="128" X="294" Y="536" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:UpCommingEmp" ZOrder="36" X="313" Y="997" Height="181" Width="164" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="143" SplitterPosition="177" /> <Shape ID="DesignTable:UpCommingEmp" ZOrder="37" X="313" Y="997" Height="181" Width="164" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="143" SplitterPosition="177" />
<Shape ID="DesignTable:PRBProcessDetail" ZOrder="167" X="914" Y="199" Height="238" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="194" SplitterPosition="234" /> <Shape ID="DesignTable:PRBProcessDetail" ZOrder="168" X="914" Y="199" Height="238" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="194" SplitterPosition="234" />
<Shape ID="DesignTable:Report108" ZOrder="89" X="949" Y="711" Height="257" Width="256" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="687" SplitterPosition="253" /> <Shape ID="DesignTable:Report108" ZOrder="90" X="949" Y="711" Height="257" Width="256" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="687" SplitterPosition="253" />
<Shape ID="DesignTable:CCWReport" ZOrder="44" X="286" Y="335" Height="162" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="158" /> <Shape ID="DesignTable:CCWReport" ZOrder="45" X="286" Y="335" Height="162" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="158" />
<Shape ID="DesignTable:CCDetailReport" ZOrder="45" X="286" Y="271" Height="257" Width="155" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:CCDetailReport" ZOrder="46" X="286" Y="271" Height="257" Width="155" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:JVSalaryDetail" ZOrder="41" X="295" Y="567" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="109" SplitterPosition="139" /> <Shape ID="DesignTable:JVSalaryDetail" ZOrder="42" X="295" Y="567" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="109" SplitterPosition="139" />
<Shape ID="DesignTable:JVLoactionWReport" ZOrder="166" X="296" Y="598" Height="162" Width="181" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="158" /> <Shape ID="DesignTable:JVLoactionWReport" ZOrder="167" X="296" Y="598" Height="162" Width="181" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="158" />
<Shape ID="DesignTable:JVSummaryReport" ZOrder="178" X="297" Y="629" Height="124" Width="174" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="92" SplitterPosition="120" /> <Shape ID="DesignTable:JVSummaryReport" ZOrder="179" X="297" Y="629" Height="124" Width="174" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="92" SplitterPosition="120" />
<Shape ID="DesignTable:OPIRegister" ZOrder="80" X="361" Y="96" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:OPIRegister" ZOrder="81" X="361" Y="96" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:AccountReportForSAP" ZOrder="125" X="622" Y="577" Height="162" Width="195" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="158" /> <Shape ID="DesignTable:AccountReportForSAP" ZOrder="126" X="622" Y="577" Height="162" Width="195" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="158" />
<Shape ID="DesignTable:LoanReportForSAP" ZOrder="38" X="311" Y="867" Height="257" Width="175" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:LoanReportForSAP" ZOrder="39" X="311" Y="867" Height="257" Width="175" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:ReportForSAP" ZOrder="126" X="948" Y="680" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:ReportForSAP" ZOrder="127" X="948" Y="680" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:BankAdviceOfPRB" ZOrder="112" X="1215" Y="482" Height="162" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="158" /> <Shape ID="DesignTable:BankAdviceOfPRB" ZOrder="113" X="1215" Y="482" Height="162" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="158" />
<Shape ID="DesignTable:OPITotalValueRegister" ZOrder="51" X="360" Y="3" Height="143" Width="196" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="109" SplitterPosition="139" /> <Shape ID="DesignTable:OPITotalValueRegister" ZOrder="52" X="360" Y="3" Height="143" Width="196" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="109" SplitterPosition="139" />
<Shape ID="DesignTable:WartsilaSalarySheetSummary" ZOrder="171" X="649" Y="769" Height="257" Width="237" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:WartsilaSalarySheetSummary" ZOrder="172" X="649" Y="769" Height="257" Width="237" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:WartsilaSalarySheet" ZOrder="128" X="650" Y="830" Height="257" Width="181" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:WartsilaSalarySheet" ZOrder="129" X="650" Y="830" Height="257" Width="181" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:EmployeeJoining" ZOrder="74" X="-67" Y="139" Height="238" Width="165" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="234" /> <Shape ID="DesignTable:EmployeeJoining" ZOrder="75" X="-67" Y="139" Height="238" Width="165" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="234" />
<Shape ID="DesignTable:WartsilaPaySlip" ZOrder="115" X="645" Y="935" Height="257" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:WartsilaPaySlip" ZOrder="116" X="645" Y="935" Height="257" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:WartsilaReconciliation" ZOrder="130" X="649" Y="799" Height="257" Width="196" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:WartsilaReconciliation" ZOrder="131" X="649" Y="799" Height="257" Width="196" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:EmpJoining4Novartis" ZOrder="75" X="-67" Y="105" Height="257" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:EmpJoining4Novartis" ZOrder="76" X="-67" Y="105" Height="257" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:WartSilaRSummary" ZOrder="170" X="648" Y="738" Height="257" Width="178" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:WartSilaRSummary" ZOrder="171" X="648" Y="738" Height="257" Width="178" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:EmpLifeCycle" ZOrder="62" X="-65" Y="596" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:EmpLifeCycle" ZOrder="63" X="-65" Y="596" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:IndividualLoanReport" ZOrder="6" X="613" Y="350" Height="257" Width="191" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:IndividualLoanReport" ZOrder="7" X="613" Y="350" Height="257" Width="191" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:BankAdviceLetter" ZOrder="110" X="1217" Y="513" Height="181" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="143" SplitterPosition="177" /> <Shape ID="DesignTable:BankAdviceLetter" ZOrder="111" X="1217" Y="513" Height="181" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="143" SplitterPosition="177" />
<Shape ID="DesignTable:EmployeeMonthlyExpense" ZOrder="59" X="-68" Y="753" Height="105" Width="219" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" /> <Shape ID="DesignTable:EmployeeMonthlyExpense" ZOrder="60" X="-68" Y="753" Height="105" Width="219" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" />
<Shape ID="DesignTable:EmployeeRetirement" ZOrder="58" X="-67" Y="976" Height="181" Width="187" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="143" SplitterPosition="177" /> <Shape ID="DesignTable:EmployeeRetirement" ZOrder="59" X="-67" Y="976" Height="181" Width="187" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="143" SplitterPosition="177" />
<Shape ID="DesignTable:EmpPersonalInformation" ZOrder="57" X="-67" Y="1006" Height="257" Width="211" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" /> <Shape ID="DesignTable:EmpPersonalInformation" ZOrder="58" X="-67" Y="1006" Height="257" Width="211" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="211" SplitterPosition="253" />
<Shape ID="DesignTable:EmpAcademicBackground" ZOrder="165" X="-69" Y="881" Height="124" Width="218" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="92" SplitterPosition="120" /> <Shape ID="DesignTable:EmpAcademicBackground" ZOrder="166" X="-69" Y="881" Height="124" Width="218" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="92" SplitterPosition="120" />
<Shape ID="DesignTable:EmpLanguageKnown" ZOrder="160" X="-67" Y="785" Height="86" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="58" SplitterPosition="82" /> <Shape ID="DesignTable:EmpLanguageKnown" ZOrder="161" X="-67" Y="785" Height="86" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="58" SplitterPosition="82" />
<Shape ID="DesignTable:EmpMembershipInSocietiesClubsAssociations" ZOrder="177" X="-69" Y="914" Height="86" Width="300" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="58" SplitterPosition="82" /> <Shape ID="DesignTable:EmpMembershipInSocietiesClubsAssociations" ZOrder="178" X="-69" Y="914" Height="86" Width="300" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="58" SplitterPosition="82" />
<Shape ID="DesignTable:EmpCloseRelations" ZOrder="54" X="-68" Y="1101" Height="86" Width="180" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="58" SplitterPosition="82" /> <Shape ID="DesignTable:EmpCloseRelations" ZOrder="55" X="-68" Y="1101" Height="86" Width="180" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="58" SplitterPosition="82" />
<Shape ID="DesignTable:EmpEmploymentHistory" ZOrder="55" X="-67" Y="1069" Height="105" Width="207" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" /> <Shape ID="DesignTable:EmpEmploymentHistory" ZOrder="56" X="-67" Y="1069" Height="105" Width="207" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" />
<Shape ID="DesignTable:EmpOtherProfessionalQualifications" ZOrder="61" X="-68" Y="659" Height="48" Width="276" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" /> <Shape ID="DesignTable:EmpOtherProfessionalQualifications" ZOrder="62" X="-68" Y="659" Height="48" Width="276" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" />
<Shape ID="DesignTable:EmpReferences" ZOrder="56" X="-67" Y="1037" Height="105" Width="154" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" /> <Shape ID="DesignTable:EmpReferences" ZOrder="57" X="-67" Y="1037" Height="105" Width="154" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" />
<Shape ID="DesignTable:EmpDescribeInDetailsPresentJobResponsibilities" ZOrder="60" X="-69" Y="722" Height="48" Width="300" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" /> <Shape ID="DesignTable:EmpDescribeInDetailsPresentJobResponsibilities" ZOrder="61" X="-69" Y="722" Height="48" Width="300" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" />
<Shape ID="DesignTable:EmpReasonForLeavingCurrentJob" ZOrder="162" X="-68" Y="690" Height="48" Width="262" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" /> <Shape ID="DesignTable:EmpReasonForLeavingCurrentJob" ZOrder="163" X="-68" Y="690" Height="48" Width="262" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" />
<Shape ID="DesignTable:EmpExtraCaricularActivities" ZOrder="163" X="-68" Y="816" Height="48" Width="226" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" /> <Shape ID="DesignTable:EmpExtraCaricularActivities" ZOrder="164" X="-68" Y="816" Height="48" Width="226" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" />
<Shape ID="DesignTable:EmpListOfRelativeWorkingInNovatis" ZOrder="161" X="-67" Y="626" Height="105" Width="278" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" /> <Shape ID="DesignTable:EmpListOfRelativeWorkingInNovatis" ZOrder="162" X="-67" Y="626" Height="105" Width="278" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" />
<Shape ID="DesignTable:EmpAdditionalInformation" ZOrder="148" X="-66" Y="564" Height="48" Width="222" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" /> <Shape ID="DesignTable:EmpAdditionalInformation" ZOrder="149" X="-66" Y="564" Height="48" Width="222" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" />
<Shape ID="DesignTable:EmpAns" ZOrder="53" X="-67" Y="1130" Height="67" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="63" /> <Shape ID="DesignTable:EmpAns" ZOrder="54" X="-67" Y="1130" Height="67" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="63" />
<Shape ID="DesignTable:EmpWorkingRelativesAns" ZOrder="71" X="-66" Y="172" Height="48" Width="215" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" /> <Shape ID="DesignTable:EmpWorkingRelativesAns" ZOrder="72" X="-66" Y="172" Height="48" Width="215" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" />
<Shape ID="DesignTable:EmpPermanentAndMailingAddress" ZOrder="164" X="-69" Y="848" Height="143" Width="269" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="109" SplitterPosition="139" /> <Shape ID="DesignTable:EmpPermanentAndMailingAddress" ZOrder="165" X="-69" Y="848" Height="143" Width="269" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="109" SplitterPosition="139" />
<Shape ID="DesignTable:EmployeePhotoPath" ZOrder="180" X="-68" Y="944" Height="48" Width="184" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" /> <Shape ID="DesignTable:EmployeePhotoPath" ZOrder="181" X="-68" Y="944" Height="48" Width="184" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="41" SplitterPosition="44" />
<Shape ID="DesignTable:EmpListOfRelativeWorkingInCompany" ZOrder="78" X="-69" Y="-25" Height="105" Width="289" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" /> <Shape ID="DesignTable:EmpListOfRelativeWorkingInCompany" ZOrder="79" X="-69" Y="-25" Height="105" Width="289" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="75" SplitterPosition="101" />
<Shape ID="DesignTable:ITPfAndOtherDetails" ZOrder="181" X="619" Y="470" Height="124" Width="186" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="92" SplitterPosition="120" /> <Shape ID="DesignTable:ITPfAndOtherDetails" ZOrder="182" X="619" Y="470" Height="124" Width="186" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="92" SplitterPosition="120" />
<Shape ID="DesignTable:MultipleEmpIT" ZOrder="119" X="1201" Y="866" Height="257" Width="155" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="364" SplitterPosition="253" /> <Shape ID="DesignTable:MultipleEmpIT" ZOrder="120" X="1201" Y="866" Height="257" Width="155" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="364" SplitterPosition="253" />
<Shape ID="DesignTable:ITHeader" ZOrder="176" X="617" Y="439" Height="124" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="120" /> <Shape ID="DesignTable:ITHeader" ZOrder="177" X="617" Y="439" Height="124" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="120" />
<Shape ID="DesignTable:EmployeeLFAData" ZOrder="68" X="-65" Y="269" Height="143" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="139" /> <Shape ID="DesignTable:EmployeeLFAData" ZOrder="69" X="-65" Y="269" Height="143" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="139" />
<Shape ID="DesignTable:TaxRebeatInvestment" ZOrder="153" X="907" Y="511" Height="105" Width="192" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="101" /> <Shape ID="DesignTable:TaxRebeatInvestment" ZOrder="154" X="907" Y="511" Height="105" Width="192" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="101" />
<Shape ID="DesignTable:TaxChallan" ZOrder="157" X="908" Y="542" Height="67" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="92" SplitterPosition="63" /> <Shape ID="DesignTable:TaxChallan" ZOrder="158" X="908" Y="542" Height="67" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="92" SplitterPosition="63" />
<Shape ID="DesignTable:Pmpbasic" ZOrder="159" X="906" Y="-14" Height="219" Width="183" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="176" SplitterPosition="215" /> <Shape ID="DesignTable:Pmpbasic" ZOrder="160" X="906" Y="-14" Height="219" Width="183" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="176" SplitterPosition="215" />
<Shape ID="DesignTable:Pmpobjectives" ZOrder="158" X="912" Y="169" Height="181" Width="151" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="159" SplitterPosition="177" /> <Shape ID="DesignTable:Pmpobjectives" ZOrder="159" X="912" Y="169" Height="181" Width="151" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="159" SplitterPosition="177" />
<Shape ID="DesignTable:PmpEmpValueBehaviorRatings" ZOrder="12" X="910" Y="79" Height="124" Width="245" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="120" /> <Shape ID="DesignTable:PmpEmpValueBehaviorRatings" ZOrder="13" X="910" Y="79" Height="124" Width="245" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="120" />
<Shape ID="DesignTable:FSSJVReport" ZOrder="156" X="646" Y="672" Height="200" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="262" SplitterPosition="196" /> <Shape ID="DesignTable:FSSJVReport" ZOrder="157" X="646" Y="672" Height="200" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="262" SplitterPosition="196" />
<Shape ID="DesignTable:dtTransferTPToPR" ZOrder="155" X="1472" Y="73" Height="143" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="125" SplitterPosition="139" /> <Shape ID="DesignTable:dtTransferTPToPR" ZOrder="156" X="1472" Y="73" Height="143" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="125" SplitterPosition="139" />
<Shape ID="DesignTable:EmpContinueFromDiscontinue" ZOrder="66" X="-66" Y="367" Height="181" Width="243" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="177" /> <Shape ID="DesignTable:EmpContinueFromDiscontinue" ZOrder="67" X="-66" Y="367" Height="181" Width="243" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="177" />
<Shape ID="DesignTable:EmpITInfoAndBasicInfo" ZOrder="65" X="-67" Y="438" Height="162" Width="203" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="142" SplitterPosition="158" /> <Shape ID="DesignTable:EmpITInfoAndBasicInfo" ZOrder="66" X="-67" Y="438" Height="162" Width="203" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="142" SplitterPosition="158" />
<Shape ID="DesignTable:SalaryStracture" ZOrder="154" X="1737" Y="40" Height="257" Width="193" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="585" SplitterPosition="253" /> <Shape ID="DesignTable:SalaryStracture" ZOrder="155" X="1737" Y="40" Height="257" Width="193" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="585" SplitterPosition="253" />
<Shape ID="DesignTable:DedtaxByMonth" ZOrder="152" X="1472" Y="132" Height="143" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="139" /> <Shape ID="DesignTable:DedtaxByMonth" ZOrder="153" X="1472" Y="132" Height="143" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="126" SplitterPosition="139" />
<Shape ID="DesignTable:SalarySheetByMonth" ZOrder="131" X="1735" Y="10" Height="257" Width="187" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="330" SplitterPosition="253" /> <Shape ID="DesignTable:SalarySheetByMonth" ZOrder="132" X="1735" Y="10" Height="257" Width="187" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="330" SplitterPosition="253" />
<Shape ID="DesignTable:EmployeeServiceLength" ZOrder="64" X="-67" Y="470" Height="143" Width="204" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="125" SplitterPosition="139" /> <Shape ID="DesignTable:EmployeeServiceLength" ZOrder="65" X="-67" Y="470" Height="143" Width="204" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="125" SplitterPosition="139" />
<Shape ID="DesignTable:PayRollRegisterForAll" ZOrder="150" X="909" Y="48" Height="124" Width="191" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="143" SplitterPosition="120" /> <Shape ID="DesignTable:PayRollRegisterForAll" ZOrder="151" X="909" Y="48" Height="124" Width="191" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="143" SplitterPosition="120" />
<Shape ID="DesignTable:ReckittTaxCard" ZOrder="151" X="950" Y="743" Height="105" Width="154" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="101" /> <Shape ID="DesignTable:ReckittTaxCard" ZOrder="152" X="950" Y="743" Height="105" Width="154" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="101" />
<Shape ID="DesignTable:DedtaxByMonthRange" ZOrder="140" X="1471" Y="42" Height="162" Width="197" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="142" SplitterPosition="158" /> <Shape ID="DesignTable:DedtaxByMonthRange" ZOrder="141" X="1471" Y="42" Height="162" Width="197" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="142" SplitterPosition="158" />
<Shape ID="DesignTable:dtRolePermission" ZOrder="145" X="1467" Y="-22" Height="105" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" /> <Shape ID="DesignTable:dtRolePermission" ZOrder="146" X="1467" Y="-22" Height="105" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" />
<Shape ID="DesignTable:dtRoleInfo" ZOrder="138" X="1469" Y="12" Height="105" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" /> <Shape ID="DesignTable:dtRoleInfo" ZOrder="139" X="1469" Y="12" Height="105" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" />
<Shape ID="DesignTable:dtUserRole" ZOrder="137" X="1471" Y="103" Height="200" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="196" /> <Shape ID="DesignTable:dtUserRole" ZOrder="138" X="1471" Y="103" Height="200" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="196" />
<Shape ID="DesignTable:EERSData" ZOrder="136" X="-68" Y="1161" Height="257" Width="187" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="227" SplitterPosition="253" /> <Shape ID="DesignTable:EERSData" ZOrder="137" X="-68" Y="1161" Height="257" Width="187" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="227" SplitterPosition="253" />
<Shape ID="DesignTable:SalaryReconDeduction" ZOrder="147" X="1740" Y="133" Height="124" Width="197" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="120" /> <Shape ID="DesignTable:SalaryReconDeduction" ZOrder="148" X="1740" Y="133" Height="124" Width="197" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="120" />
<Shape ID="DesignTable:SalaryReconciliationSummary" ZOrder="146" X="1739" Y="71" Height="86" Width="238" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" /> <Shape ID="DesignTable:SalaryReconciliationSummary" ZOrder="147" X="1739" Y="71" Height="86" Width="238" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" />
<Shape ID="DesignTable:MemoDebit" ZOrder="118" X="1198" Y="803" Height="124" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="83" SplitterPosition="120" /> <Shape ID="DesignTable:MemoDebit" ZOrder="119" X="1198" Y="803" Height="124" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="83" SplitterPosition="120" />
<Shape ID="DesignTable:MemoCredit" ZOrder="117" X="1203" Y="898" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" /> <Shape ID="DesignTable:MemoCredit" ZOrder="118" X="1203" Y="898" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" />
<Shape ID="DesignTable:SharedLoanIssue" ZOrder="144" X="1735" Y="-23" Height="257" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:SharedLoanIssue" ZOrder="145" X="1735" Y="-23" Height="257" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:GratuityProvision" ZOrder="143" X="1205" Y="8" Height="238" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="210" SplitterPosition="234" /> <Shape ID="DesignTable:GratuityProvision" ZOrder="144" X="1205" Y="8" Height="238" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="210" SplitterPosition="234" />
<Shape ID="DesignTable:GratuityRegister" ZOrder="142" X="1204" Y="-20" Height="143" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="125" SplitterPosition="139" /> <Shape ID="DesignTable:GratuityRegister" ZOrder="143" X="1204" Y="-20" Height="143" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="125" SplitterPosition="139" />
<Shape ID="DesignTable:GratuityLedger" ZOrder="141" X="1206" Y="38" Height="86" Width="153" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="74" SplitterPosition="82" /> <Shape ID="DesignTable:GratuityLedger" ZOrder="142" X="1206" Y="38" Height="86" Width="153" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="74" SplitterPosition="82" />
<Shape ID="DesignTable:LoanData" ZOrder="139" X="317" Y="834" Height="124" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="120" /> <Shape ID="DesignTable:LoanData" ZOrder="140" X="317" Y="834" Height="124" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="120" />
<Shape ID="DesignTable:dtUsers" ZOrder="101" X="1474" Y="258" Height="181" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="216" SplitterPosition="177" /> <Shape ID="DesignTable:dtUsers" ZOrder="102" X="1474" Y="258" Height="181" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="216" SplitterPosition="177" />
<Shape ID="DesignTable:dtUserLogin" ZOrder="102" X="1472" Y="227" Height="162" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="158" /> <Shape ID="DesignTable:dtUserLogin" ZOrder="103" X="1472" Y="227" Height="162" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="158" />
<Shape ID="DesignTable:dtBadUser" ZOrder="129" X="1470" Y="194" Height="124" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="120" /> <Shape ID="DesignTable:dtBadUser" ZOrder="130" X="1470" Y="194" Height="124" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="120" />
<Shape ID="DesignTable:EmpItemWiseSalary" ZOrder="135" X="-67" Y="500" Height="105" Width="181" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" /> <Shape ID="DesignTable:EmpItemWiseSalary" ZOrder="136" X="-67" Y="500" Height="105" Width="181" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" />
<Shape ID="DesignTable:PFLedger" ZOrder="134" X="912" Y="137" Height="124" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="120" /> <Shape ID="DesignTable:PFLedger" ZOrder="135" X="912" Y="137" Height="124" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="120" />
<Shape ID="DesignTable:Challan" ZOrder="43" X="287" Y="365" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" /> <Shape ID="DesignTable:Challan" ZOrder="44" X="287" Y="365" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" />
<Shape ID="DesignTable:UpcomingTraining" ZOrder="133" X="312" Y="1027" Height="181" Width="174" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="177" /> <Shape ID="DesignTable:UpcomingTraining" ZOrder="134" X="312" Y="1027" Height="181" Width="174" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="177" />
<Shape ID="DesignTable:SalaryCertificate" ZOrder="132" X="1742" Y="167" Height="257" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:SalaryCertificate" ZOrder="133" X="1742" Y="167" Height="257" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:ChallanNoWithMonth" ZOrder="42" X="286" Y="398" Height="86" Width="193" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" /> <Shape ID="DesignTable:ChallanNoWithMonth" ZOrder="43" X="286" Y="398" Height="86" Width="193" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" />
<Shape ID="DesignTable:MarketSurveyCom" ZOrder="116" X="1199" Y="834" Height="124" Width="173" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="120" /> <Shape ID="DesignTable:MarketSurveyCom" ZOrder="117" X="1199" Y="834" Height="124" Width="173" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="120" />
<Shape ID="DesignTable:activeInactiveUserList" ZOrder="97" X="918" Y="878" Height="105" Width="192" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" /> <Shape ID="DesignTable:activeInactiveUserList" ZOrder="98" X="918" Y="878" Height="105" Width="192" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" />
<Shape ID="DesignTable:dtCashAdvice" ZOrder="124" X="1474" Y="291" Height="162" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="158" /> <Shape ID="DesignTable:dtCashAdvice" ZOrder="125" X="1474" Y="291" Height="162" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="158" />
<Shape ID="DesignTable:BanglaPaySlip" ZOrder="114" X="1219" Y="604" Height="257" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:BanglaPaySlip" ZOrder="115" X="1219" Y="604" Height="257" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:dtProdBonusDetail" ZOrder="123" X="1475" Y="419" Height="200" Width="176" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="196" /> <Shape ID="DesignTable:dtProdBonusDetail" ZOrder="124" X="1475" Y="419" Height="200" Width="176" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="196" />
<Shape ID="DesignTable:dtEmpDesWiseProdBonus" ZOrder="11" X="1476" Y="451" Height="257" Width="216" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:dtEmpDesWiseProdBonus" ZOrder="12" X="1476" Y="451" Height="257" Width="216" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:dtMonthlyProdBonus" ZOrder="122" X="1477" Y="484" Height="143" Width="191" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="139" /> <Shape ID="DesignTable:dtMonthlyProdBonus" ZOrder="123" X="1477" Y="484" Height="143" Width="191" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="139" />
<Shape ID="DesignTable:SalarySheetStatic" ZOrder="121" X="1747" Y="264" Height="257" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="748" SplitterPosition="253" /> <Shape ID="DesignTable:SalarySheetStatic" ZOrder="122" X="1747" Y="264" Height="257" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="748" SplitterPosition="253" />
<Shape ID="DesignTable:dtRoleAudit" ZOrder="82" X="1474" Y="322" Height="181" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="177" /> <Shape ID="DesignTable:dtRoleAudit" ZOrder="83" X="1474" Y="322" Height="181" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="177" />
<Shape ID="DesignTable:dtRolePermission2" ZOrder="120" X="1474" Y="355" Height="143" Width="174" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="139" /> <Shape ID="DesignTable:dtRolePermission2" ZOrder="121" X="1474" Y="355" Height="143" Width="174" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="139" />
<Shape ID="DesignTable:CasualSalarySheet" ZOrder="48" X="289" Y="179" Height="257" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:CasualSalarySheet" ZOrder="49" X="289" Y="179" Height="257" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:BankAdviceHNM" ZOrder="111" X="1214" Y="451" Height="181" Width="165" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="177" /> <Shape ID="DesignTable:BankAdviceHNM" ZOrder="112" X="1214" Y="451" Height="181" Width="165" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="177" />
<Shape ID="DesignTable:EmpDesCatChange" ZOrder="73" X="127" Y="31" Height="257" Width="175" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:EmpDesCatChange" ZOrder="74" X="127" Y="31" Height="257" Width="175" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:EmployeeConfirmation" ZOrder="108" X="282" Y="436" Height="143" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="139" /> <Shape ID="DesignTable:EmployeeConfirmation" ZOrder="109" X="282" Y="436" Height="143" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="139" />
<Shape ID="DesignTable:MonthlySchedule" ZOrder="107" X="681" Y="1101" Height="257" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:MonthlySchedule" ZOrder="108" X="681" Y="1101" Height="257" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:AllMedicalClaim" ZOrder="104" X="927" Y="908" Height="143" Width="160" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="139" /> <Shape ID="DesignTable:AllMedicalClaim" ZOrder="105" X="927" Y="908" Height="143" Width="160" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="139" />
<Shape ID="DesignTable:AllEmpTaxInfo" ZOrder="106" X="864" Y="1031" Height="181" Width="151" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="177" /> <Shape ID="DesignTable:AllEmpTaxInfo" ZOrder="107" X="864" Y="1031" Height="181" Width="151" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="177" />
<Shape ID="DesignTable:dtAllActiveLaons" ZOrder="105" X="1475" Y="388" Height="257" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:dtAllActiveLaons" ZOrder="106" X="1475" Y="388" Height="257" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:ArrSheet" ZOrder="103" X="889" Y="597" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:ArrSheet" ZOrder="104" X="889" Y="597" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:EmpGroupInsurance" ZOrder="100" X="571" Y="297" Height="200" Width="183" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="196" /> <Shape ID="DesignTable:EmpGroupInsurance" ZOrder="101" X="571" Y="297" Height="200" Width="183" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="196" />
<Shape ID="DesignTable:EmpGroupInsuranceDiscon" ZOrder="72" X="114" Y="139" Height="200" Width="222" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="196" /> <Shape ID="DesignTable:EmpGroupInsuranceDiscon" ZOrder="73" X="114" Y="139" Height="200" Width="222" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="196" />
<Shape ID="DesignTable:SKFExpencesPaySlip" ZOrder="99" X="1747" Y="296" Height="257" Width="183" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:SKFExpencesPaySlip" ZOrder="100" X="1747" Y="296" Height="257" Width="183" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:RemainingLoanforPayslip" ZOrder="98" X="948" Y="769" Height="105" Width="214" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" /> <Shape ID="DesignTable:RemainingLoanforPayslip" ZOrder="99" X="948" Y="769" Height="105" Width="214" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" />
<Shape ID="DesignTable:PayslipBasicInfo" ZOrder="81" X="915" Y="302" Height="239" Width="160" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="235" /> <Shape ID="DesignTable:PayslipBasicInfo" ZOrder="82" X="915" Y="302" Height="239" Width="160" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="235" />
<Shape ID="DesignTable:EmpPromotion" ZOrder="79" X="118" Y="275" Height="200" Width="153" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="196" /> <Shape ID="DesignTable:EmpPromotion" ZOrder="80" X="118" Y="275" Height="200" Width="153" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="196" />
<Shape ID="DesignTable:NewlyIssuedLoan" ZOrder="96" X="650" Y="521" Height="238" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="234" /> <Shape ID="DesignTable:NewlyIssuedLoan" ZOrder="97" X="650" Y="521" Height="238" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="234" />
<Shape ID="DesignTable:CurrentMonthDueLoan" ZOrder="95" X="1093" Y="929" Height="257" Width="200" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="253" /> <Shape ID="DesignTable:CurrentMonthDueLoan" ZOrder="96" X="1093" Y="929" Height="257" Width="200" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="253" />
<Shape ID="DesignTable:CashRefund" ZOrder="94" X="875" Y="1079" Height="181" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="177" /> <Shape ID="DesignTable:CashRefund" ZOrder="95" X="875" Y="1079" Height="181" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="177" />
<Shape ID="DesignTable:PFRegister" ZOrder="93" X="907" Y="16" Height="257" Width="193" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="252" SplitterPosition="253" /> <Shape ID="DesignTable:PFRegister" ZOrder="94" X="907" Y="16" Height="257" Width="193" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="252" SplitterPosition="253" />
<Shape ID="DesignTable:BonusRegisterBAT" ZOrder="92" X="1217" Y="571" Height="238" Width="173" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="234" /> <Shape ID="DesignTable:BonusRegisterBAT" ZOrder="93" X="1217" Y="571" Height="238" Width="173" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="234" />
<Shape ID="DesignTable:NmgtSpringFestivalBonusRegister" ZOrder="87" X="1093" Y="962" Height="257" Width="265" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="292" SplitterPosition="253" /> <Shape ID="DesignTable:NmgtSpringFestivalBonusRegister" ZOrder="88" X="1093" Y="962" Height="257" Width="265" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="292" SplitterPosition="253" />
<Shape ID="DesignTable:NmgtBonusPaySlip" ZOrder="86" X="1104" Y="997" Height="257" Width="177" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:NmgtBonusPaySlip" ZOrder="87" X="1104" Y="997" Height="257" Width="177" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:SalaryRegister" ZOrder="84" X="1746" Y="305" Height="239" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="235" /> <Shape ID="DesignTable:SalaryRegister" ZOrder="85" X="1746" Y="305" Height="239" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="235" />
<Shape ID="DesignTable:CrewDeployment" ZOrder="34" X="471" Y="78" Height="257" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:CrewDeployment" ZOrder="35" X="471" Y="78" Height="257" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:ActiveEmployee" ZOrder="7" X="756" Y="101" Height="28" Width="158" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" /> <Shape ID="DesignTable:ActiveEmployee" ZOrder="8" X="756" Y="101" Height="28" Width="158" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" />
<Shape ID="DesignTable:BonusPaySlip" ZOrder="10" X="1214" Y="390" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" /> <Shape ID="DesignTable:BonusPaySlip" ZOrder="11" X="1214" Y="390" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<Shape ID="DesignTable:LoanDueWithCC" ZOrder="22" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" /> <Shape ID="DesignTable:LoanDueWithCC" ZOrder="23" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:dtBankAdvice" ZOrder="21" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" /> <Shape ID="DesignTable:dtBankAdvice" ZOrder="22" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:dtEncashmentReport" ZOrder="20" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" /> <Shape ID="DesignTable:dtEncashmentReport" ZOrder="21" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:SalaryReconNew" ZOrder="19" X="0" Y="0" Height="28" Width="158" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:SalaryReconNew" ZOrder="20" X="0" Y="0" Height="28" Width="158" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:AnnualIncomeCertificate" ZOrder="23" X="155" Y="190" Height="257" Width="247" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" /> <Shape ID="DesignTable:AnnualIncomeCertificate" ZOrder="24" X="155" Y="190" Height="257" Width="247" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" />
<Shape ID="DesignTable:AssetAcknowledgement" ZOrder="8" X="819" Y="0" Height="28" Width="205" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:AssetAcknowledgement" ZOrder="9" X="819" Y="0" Height="28" Width="205" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:AssetSerialInformation" ZOrder="18" X="580" Y="14" Height="162" Width="199" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="158" /> <Shape ID="DesignTable:AssetSerialInformation" ZOrder="19" X="580" Y="14" Height="162" Width="199" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="158" />
<Shape ID="DesignTable:BanglaPaySlipNew" ZOrder="16" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" /> <Shape ID="DesignTable:BanglaPaySlipNew" ZOrder="17" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:BanglaPaySlipNewProdBonus" ZOrder="15" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" /> <Shape ID="DesignTable:BanglaPaySlipNewProdBonus" ZOrder="16" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:Employee" ZOrder="14" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" /> <Shape ID="DesignTable:Employee" ZOrder="15" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:dtProdAttendance" ZOrder="13" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" /> <Shape ID="DesignTable:dtProdAttendance" ZOrder="14" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:CCWiseSalarySheetNew" ZOrder="9" X="533" Y="586" Height="28" Width="203" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:CCWiseSalarySheetNew" ZOrder="10" X="533" Y="586" Height="28" Width="203" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:CandidateInformation" ZOrder="5" X="767" Y="198" Height="28" Width="194" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="24" /> <Shape ID="DesignTable:CandidateInformation" ZOrder="6" X="767" Y="198" Height="28" Width="194" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="24" />
<Shape ID="DesignTable:EmployeeInfoBasic" ZOrder="2" X="0" Y="0" Height="256" Width="175" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" /> <Shape ID="DesignTable:EmployeeInfoBasic" ZOrder="3" X="0" Y="0" Height="256" Width="175" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />
<Shape ID="DesignTable:DeletedLifeCycle" ZOrder="1" X="0" Y="0" Height="257" Width="164" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" /> <Shape ID="DesignTable:DeletedLifeCycle" ZOrder="2" X="0" Y="0" Height="257" Width="164" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" />
<Shape ID="DesignTable:EmployeeDetailEcho" ZOrder="1" X="309" Y="1348" Height="257" Width="164" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />
</Shapes> </Shapes>
<Connectors /> <Connectors />
</DiagramLayout> </DiagramLayout>

File diff suppressed because it is too large Load Diff

View File

@ -524,6 +524,13 @@
<xs:element name="NumberOfPreviousJob" msprop:Generator_ColumnPropNameInTable="NumberOfPreviousJobColumn" msprop:Generator_ColumnPropNameInRow="NumberOfPreviousJob" msprop:Generator_UserColumnName="NumberOfPreviousJob" msprop:Generator_ColumnVarNameInTable="columnNumberOfPreviousJob" type="xs:string" minOccurs="0" /> <xs:element name="NumberOfPreviousJob" msprop:Generator_ColumnPropNameInTable="NumberOfPreviousJobColumn" msprop:Generator_ColumnPropNameInRow="NumberOfPreviousJob" msprop:Generator_UserColumnName="NumberOfPreviousJob" msprop:Generator_ColumnVarNameInTable="columnNumberOfPreviousJob" type="xs:string" minOccurs="0" />
<xs:element name="LastPromotionBefore" msprop:Generator_ColumnPropNameInTable="LastPromotionBeforeColumn" msprop:Generator_ColumnPropNameInRow="LastPromotionBefore" msprop:Generator_UserColumnName="LastPromotionBefore" msprop:Generator_ColumnVarNameInTable="columnLastPromotionBefore" type="xs:string" minOccurs="0" /> <xs:element name="LastPromotionBefore" msprop:Generator_ColumnPropNameInTable="LastPromotionBeforeColumn" msprop:Generator_ColumnPropNameInRow="LastPromotionBefore" msprop:Generator_UserColumnName="LastPromotionBefore" msprop:Generator_ColumnVarNameInTable="columnLastPromotionBefore" type="xs:string" minOccurs="0" />
<xs:element name="EmergencyTel" msprop:Generator_ColumnPropNameInTable="EmergencyTelColumn" msprop:Generator_ColumnPropNameInRow="EmergencyTel" msprop:Generator_UserColumnName="EmergencyTel" msprop:Generator_ColumnVarNameInTable="columnEmergencyTel" type="xs:string" minOccurs="0" /> <xs:element name="EmergencyTel" msprop:Generator_ColumnPropNameInTable="EmergencyTelColumn" msprop:Generator_ColumnPropNameInRow="EmergencyTel" msprop:Generator_UserColumnName="EmergencyTel" msprop:Generator_ColumnVarNameInTable="columnEmergencyTel" type="xs:string" minOccurs="0" />
<xs:element name="OfficialEmail" msprop:Generator_ColumnPropNameInRow="OfficialEmail" msprop:Generator_ColumnPropNameInTable="OfficialEmailColumn" msprop:Generator_ColumnVarNameInTable="columnOfficialEmail" msprop:Generator_UserColumnName="OfficialEmail" type="xs:string" minOccurs="0" />
<xs:element name="EducationLevel" msprop:Generator_ColumnPropNameInRow="EducationLevel" msprop:Generator_ColumnPropNameInTable="EducationLevelColumn" msprop:Generator_ColumnVarNameInTable="columnEducationLevel" msprop:Generator_UserColumnName="EducationLevel" type="xs:string" minOccurs="0" />
<xs:element name="EMERGENCYTELEPHONE" msprop:Generator_ColumnPropNameInRow="EMERGENCYTELEPHONE" msprop:Generator_ColumnPropNameInTable="EMERGENCYTELEPHONEColumn" msprop:Generator_ColumnVarNameInTable="columnEMERGENCYTELEPHONE" msprop:Generator_UserColumnName="EMERGENCYTELEPHONE" type="xs:string" minOccurs="0" />
<xs:element name="EMERGENCYMOBILE" msprop:Generator_ColumnPropNameInRow="EMERGENCYMOBILE" msprop:Generator_ColumnPropNameInTable="EMERGENCYMOBILEColumn" msprop:Generator_ColumnVarNameInTable="columnEMERGENCYMOBILE" msprop:Generator_UserColumnName="EMERGENCYMOBILE" type="xs:string" minOccurs="0" />
<xs:element name="CompletionDate" msprop:Generator_ColumnPropNameInRow="CompletionDate" msprop:Generator_ColumnPropNameInTable="CompletionDateColumn" msprop:Generator_ColumnVarNameInTable="columnCompletionDate" msprop:Generator_UserColumnName="CompletionDate" type="xs:short" minOccurs="0" />
<xs:element name="Line" msprop:Generator_ColumnPropNameInRow="Line" msprop:Generator_ColumnPropNameInTable="LineColumn" msprop:Generator_ColumnVarNameInTable="columnLine" msprop:Generator_UserColumnName="Line" type="xs:string" minOccurs="0" />
<xs:element name="PERSONALTELEPHONE" msprop:Generator_ColumnPropNameInRow="PERSONALTELEPHONE" msprop:Generator_ColumnPropNameInTable="PERSONALTELEPHONEColumn" msprop:Generator_ColumnVarNameInTable="columnPERSONALTELEPHONE" msprop:Generator_UserColumnName="PERSONALTELEPHONE" type="xs:string" minOccurs="0" />
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@ -912,47 +919,75 @@
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="dtPerquisite" msprop:Generator_RowClassName="dtPerquisiteRow" msprop:Generator_RowEvHandlerName="dtPerquisiteRowChangeEventHandler" msprop:Generator_RowDeletedName="dtPerquisiteRowDeleted" msprop:Generator_RowDeletingName="dtPerquisiteRowDeleting" msprop:Generator_RowEvArgName="dtPerquisiteRowChangeEvent" msprop:Generator_TablePropName="dtPerquisite" msprop:Generator_RowChangedName="dtPerquisiteRowChanged" msprop:Generator_UserTableName="dtPerquisite" msprop:Generator_RowChangingName="dtPerquisiteRowChanging" msprop:Generator_TableClassName="dtPerquisiteDataTable" msprop:Generator_TableVarName="tabledtPerquisite"> <xs:element name="dtPerquisite" msprop:Generator_RowEvHandlerName="dtPerquisiteRowChangeEventHandler" msprop:Generator_RowDeletedName="dtPerquisiteRowDeleted" msprop:Generator_RowDeletingName="dtPerquisiteRowDeleting" msprop:Generator_RowEvArgName="dtPerquisiteRowChangeEvent" msprop:Generator_TablePropName="dtPerquisite" msprop:Generator_RowChangedName="dtPerquisiteRowChanged" msprop:Generator_UserTableName="dtPerquisite" msprop:Generator_RowChangingName="dtPerquisiteRowChanging" msprop:Generator_RowClassName="dtPerquisiteRow" msprop:Generator_TableClassName="dtPerquisiteDataTable" msprop:Generator_TableVarName="tabledtPerquisite">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="Name" msdata:Caption="EmpName" msprop:Generator_UserColumnName="Name" msprop:Generator_ColumnPropNameInTable="NameColumn" msprop:Generator_ColumnPropNameInRow="Name" msprop:Generator_ColumnVarNameInTable="columnName" type="xs:string" minOccurs="0" /> <xs:element name="Name" msdata:Caption="EmpName" msprop:Generator_ColumnPropNameInTable="NameColumn" msprop:Generator_ColumnPropNameInRow="Name" msprop:Generator_UserColumnName="Name" msprop:Generator_ColumnVarNameInTable="columnName" type="xs:string" minOccurs="0" />
<xs:element name="Designation" msprop:Generator_UserColumnName="Designation" msprop:Generator_ColumnPropNameInTable="DesignationColumn" msprop:Generator_ColumnPropNameInRow="Designation" msprop:Generator_ColumnVarNameInTable="columnDesignation" type="xs:string" minOccurs="0" /> <xs:element name="Designation" msprop:Generator_ColumnPropNameInTable="DesignationColumn" msprop:Generator_ColumnPropNameInRow="Designation" msprop:Generator_UserColumnName="Designation" msprop:Generator_ColumnVarNameInTable="columnDesignation" type="xs:string" minOccurs="0" />
<xs:element name="EmpNo" msprop:Generator_UserColumnName="EmpNo" msprop:Generator_ColumnPropNameInTable="EmpNoColumn" msprop:Generator_ColumnPropNameInRow="EmpNo" msprop:Generator_ColumnVarNameInTable="columnEmpNo" type="xs:string" minOccurs="0" /> <xs:element name="EmpNo" msprop:Generator_ColumnPropNameInTable="EmpNoColumn" msprop:Generator_ColumnPropNameInRow="EmpNo" msprop:Generator_UserColumnName="EmpNo" msprop:Generator_ColumnVarNameInTable="columnEmpNo" type="xs:string" minOccurs="0" />
<xs:element name="AmountDescription" msprop:Generator_UserColumnName="AmountDescription" msprop:Generator_ColumnPropNameInTable="AmountDescriptionColumn" msprop:Generator_ColumnPropNameInRow="AmountDescription" msprop:Generator_ColumnVarNameInTable="columnAmountDescription" type="xs:string" minOccurs="0" /> <xs:element name="AmountDescription" msprop:Generator_ColumnPropNameInTable="AmountDescriptionColumn" msprop:Generator_ColumnPropNameInRow="AmountDescription" msprop:Generator_UserColumnName="AmountDescription" msprop:Generator_ColumnVarNameInTable="columnAmountDescription" type="xs:string" minOccurs="0" />
<xs:element name="Amount" msprop:Generator_UserColumnName="Amount" msprop:Generator_ColumnPropNameInTable="AmountColumn" msprop:Generator_ColumnPropNameInRow="Amount" msprop:Generator_ColumnVarNameInTable="columnAmount" type="xs:double" minOccurs="0" /> <xs:element name="Amount" msprop:Generator_ColumnPropNameInTable="AmountColumn" msprop:Generator_ColumnPropNameInRow="Amount" msprop:Generator_UserColumnName="Amount" msprop:Generator_ColumnVarNameInTable="columnAmount" type="xs:double" minOccurs="0" />
<xs:element name="Grade" msprop:Generator_UserColumnName="Grade" msprop:Generator_ColumnPropNameInTable="GradeColumn" msprop:Generator_ColumnPropNameInRow="Grade" msprop:Generator_ColumnVarNameInTable="columnGrade" type="xs:string" minOccurs="0" /> <xs:element name="Grade" msprop:Generator_ColumnPropNameInTable="GradeColumn" msprop:Generator_ColumnPropNameInRow="Grade" msprop:Generator_UserColumnName="Grade" msprop:Generator_ColumnVarNameInTable="columnGrade" type="xs:string" minOccurs="0" />
<xs:element name="Department" msprop:Generator_UserColumnName="Department" msprop:Generator_ColumnPropNameInTable="DepartmentColumn" msprop:Generator_ColumnPropNameInRow="Department" msprop:Generator_ColumnVarNameInTable="columnDepartment" type="xs:string" minOccurs="0" /> <xs:element name="Department" msprop:Generator_ColumnPropNameInTable="DepartmentColumn" msprop:Generator_ColumnPropNameInRow="Department" msprop:Generator_UserColumnName="Department" msprop:Generator_ColumnVarNameInTable="columnDepartment" type="xs:string" minOccurs="0" />
<xs:element name="CC" msprop:Generator_UserColumnName="CC" msprop:Generator_ColumnPropNameInTable="CCColumn" msprop:Generator_ColumnPropNameInRow="CC" msprop:Generator_ColumnVarNameInTable="columnCC" type="xs:string" minOccurs="0" /> <xs:element name="CC" msprop:Generator_ColumnPropNameInTable="CCColumn" msprop:Generator_ColumnPropNameInRow="CC" msprop:Generator_UserColumnName="CC" msprop:Generator_ColumnVarNameInTable="columnCC" type="xs:string" minOccurs="0" />
<xs:element name="DOJ" msprop:Generator_UserColumnName="DOJ" msprop:Generator_ColumnPropNameInTable="DOJColumn" msprop:Generator_ColumnPropNameInRow="DOJ" msprop:Generator_ColumnVarNameInTable="columnDOJ" type="xs:string" minOccurs="0" /> <xs:element name="DOJ" msprop:Generator_ColumnPropNameInTable="DOJColumn" msprop:Generator_ColumnPropNameInRow="DOJ" msprop:Generator_UserColumnName="DOJ" msprop:Generator_ColumnVarNameInTable="columnDOJ" type="xs:string" minOccurs="0" />
<xs:element name="DOB" msprop:Generator_UserColumnName="DOB" msprop:Generator_ColumnPropNameInTable="DOBColumn" msprop:Generator_ColumnPropNameInRow="DOB" msprop:Generator_ColumnVarNameInTable="columnDOB" type="xs:string" minOccurs="0" /> <xs:element name="DOB" msprop:Generator_ColumnPropNameInTable="DOBColumn" msprop:Generator_ColumnPropNameInRow="DOB" msprop:Generator_UserColumnName="DOB" msprop:Generator_ColumnVarNameInTable="columnDOB" type="xs:string" minOccurs="0" />
<xs:element name="GroupID" msprop:Generator_UserColumnName="GroupID" msprop:Generator_ColumnPropNameInTable="GroupIDColumn" msprop:Generator_ColumnPropNameInRow="GroupID" msprop:Generator_ColumnVarNameInTable="columnGroupID" type="xs:int" minOccurs="0" /> <xs:element name="GroupID" msprop:Generator_ColumnPropNameInTable="GroupIDColumn" msprop:Generator_ColumnPropNameInRow="GroupID" msprop:Generator_UserColumnName="GroupID" msprop:Generator_ColumnVarNameInTable="columnGroupID" type="xs:int" minOccurs="0" />
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="BankAdviceWithRoutingNo" msprop:Generator_RowEvHandlerName="BankAdviceWithRoutingNoRowChangeEventHandler" msprop:Generator_RowDeletedName="BankAdviceWithRoutingNoRowDeleted" msprop:Generator_RowDeletingName="BankAdviceWithRoutingNoRowDeleting" msprop:Generator_RowEvArgName="BankAdviceWithRoutingNoRowChangeEvent" msprop:Generator_TablePropName="BankAdviceWithRoutingNo" msprop:Generator_RowChangedName="BankAdviceWithRoutingNoRowChanged" msprop:Generator_RowChangingName="BankAdviceWithRoutingNoRowChanging" msprop:Generator_TableClassName="BankAdviceWithRoutingNoDataTable" msprop:Generator_RowClassName="BankAdviceWithRoutingNoRow" msprop:Generator_TableVarName="tableBankAdviceWithRoutingNo" msprop:Generator_UserTableName="BankAdviceWithRoutingNo"> <xs:element name="BankAdviceWithRoutingNo" msprop:Generator_RowClassName="BankAdviceWithRoutingNoRow" msprop:Generator_RowEvHandlerName="BankAdviceWithRoutingNoRowChangeEventHandler" msprop:Generator_RowDeletedName="BankAdviceWithRoutingNoRowDeleted" msprop:Generator_RowDeletingName="BankAdviceWithRoutingNoRowDeleting" msprop:Generator_RowEvArgName="BankAdviceWithRoutingNoRowChangeEvent" msprop:Generator_TablePropName="BankAdviceWithRoutingNo" msprop:Generator_RowChangedName="BankAdviceWithRoutingNoRowChanged" msprop:Generator_UserTableName="BankAdviceWithRoutingNo" msprop:Generator_RowChangingName="BankAdviceWithRoutingNoRowChanging" msprop:Generator_TableClassName="BankAdviceWithRoutingNoDataTable" msprop:Generator_TableVarName="tableBankAdviceWithRoutingNo">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
<xs:element name="EmpNo" msprop:Generator_ColumnPropNameInRow="EmpNo" msprop:Generator_ColumnPropNameInTable="EmpNoColumn" msprop:Generator_ColumnVarNameInTable="columnEmpNo" msprop:Generator_UserColumnName="EmpNo" type="xs:string" minOccurs="0" /> <xs:element name="EmpNo" msprop:Generator_UserColumnName="EmpNo" msprop:Generator_ColumnPropNameInTable="EmpNoColumn" msprop:Generator_ColumnPropNameInRow="EmpNo" msprop:Generator_ColumnVarNameInTable="columnEmpNo" type="xs:string" minOccurs="0" />
<xs:element name="EmpName" msprop:Generator_ColumnPropNameInRow="EmpName" msprop:Generator_ColumnPropNameInTable="EmpNameColumn" msprop:Generator_ColumnVarNameInTable="columnEmpName" msprop:Generator_UserColumnName="EmpName" type="xs:string" minOccurs="0" /> <xs:element name="EmpName" msprop:Generator_UserColumnName="EmpName" msprop:Generator_ColumnPropNameInTable="EmpNameColumn" msprop:Generator_ColumnPropNameInRow="EmpName" msprop:Generator_ColumnVarNameInTable="columnEmpName" type="xs:string" minOccurs="0" />
<xs:element name="AccountNo" msprop:Generator_ColumnPropNameInRow="AccountNo" msprop:Generator_ColumnPropNameInTable="AccountNoColumn" msprop:Generator_ColumnVarNameInTable="columnAccountNo" msprop:Generator_UserColumnName="AccountNo" type="xs:string" minOccurs="0" /> <xs:element name="AccountNo" msprop:Generator_UserColumnName="AccountNo" msprop:Generator_ColumnPropNameInTable="AccountNoColumn" msprop:Generator_ColumnPropNameInRow="AccountNo" msprop:Generator_ColumnVarNameInTable="columnAccountNo" type="xs:string" minOccurs="0" />
<xs:element name="Amount" msprop:Generator_ColumnPropNameInRow="Amount" msprop:Generator_ColumnPropNameInTable="AmountColumn" msprop:Generator_ColumnVarNameInTable="columnAmount" msprop:Generator_UserColumnName="Amount" type="xs:double" minOccurs="0" /> <xs:element name="Amount" msprop:Generator_UserColumnName="Amount" msprop:Generator_ColumnPropNameInTable="AmountColumn" msprop:Generator_ColumnPropNameInRow="Amount" msprop:Generator_ColumnVarNameInTable="columnAmount" type="xs:double" minOccurs="0" />
<xs:element name="SalaryMonth" msprop:Generator_ColumnPropNameInRow="SalaryMonth" msprop:Generator_ColumnPropNameInTable="SalaryMonthColumn" msprop:Generator_ColumnVarNameInTable="columnSalaryMonth" msprop:Generator_UserColumnName="SalaryMonth" type="xs:dateTime" minOccurs="0" /> <xs:element name="SalaryMonth" msprop:Generator_UserColumnName="SalaryMonth" msprop:Generator_ColumnPropNameInTable="SalaryMonthColumn" msprop:Generator_ColumnPropNameInRow="SalaryMonth" msprop:Generator_ColumnVarNameInTable="columnSalaryMonth" type="xs:dateTime" minOccurs="0" />
<xs:element name="Email" msprop:Generator_ColumnPropNameInRow="Email" msprop:Generator_ColumnPropNameInTable="EmailColumn" msprop:Generator_ColumnVarNameInTable="columnEmail" msprop:Generator_UserColumnName="Email" type="xs:string" minOccurs="0" /> <xs:element name="Email" msprop:Generator_UserColumnName="Email" msprop:Generator_ColumnPropNameInTable="EmailColumn" msprop:Generator_ColumnPropNameInRow="Email" msprop:Generator_ColumnVarNameInTable="columnEmail" type="xs:string" minOccurs="0" />
<xs:element name="SLNo" msprop:Generator_ColumnPropNameInRow="SLNo" msprop:Generator_ColumnPropNameInTable="SLNoColumn" msprop:Generator_ColumnVarNameInTable="columnSLNo" msprop:Generator_UserColumnName="SLNo" type="xs:string" minOccurs="0" /> <xs:element name="SLNo" msprop:Generator_UserColumnName="SLNo" msprop:Generator_ColumnPropNameInTable="SLNoColumn" msprop:Generator_ColumnPropNameInRow="SLNo" msprop:Generator_ColumnVarNameInTable="columnSLNo" type="xs:string" minOccurs="0" />
<xs:element name="Maintenance" msprop:Generator_ColumnPropNameInRow="Maintenance" msprop:Generator_ColumnPropNameInTable="MaintenanceColumn" msprop:Generator_ColumnVarNameInTable="columnMaintenance" msprop:Generator_UserColumnName="Maintenance" type="xs:string" minOccurs="0" /> <xs:element name="Maintenance" msprop:Generator_UserColumnName="Maintenance" msprop:Generator_ColumnPropNameInTable="MaintenanceColumn" msprop:Generator_ColumnPropNameInRow="Maintenance" msprop:Generator_ColumnVarNameInTable="columnMaintenance" type="xs:string" minOccurs="0" />
<xs:element name="Currency" msprop:Generator_ColumnPropNameInRow="Currency" msprop:Generator_ColumnPropNameInTable="CurrencyColumn" msprop:Generator_ColumnVarNameInTable="columnCurrency" msprop:Generator_UserColumnName="Currency" type="xs:string" minOccurs="0" /> <xs:element name="Currency" msprop:Generator_UserColumnName="Currency" msprop:Generator_ColumnPropNameInTable="CurrencyColumn" msprop:Generator_ColumnPropNameInRow="Currency" msprop:Generator_ColumnVarNameInTable="columnCurrency" type="xs:string" minOccurs="0" />
<xs:element name="Method" msprop:Generator_ColumnPropNameInRow="Method" msprop:Generator_ColumnPropNameInTable="MethodColumn" msprop:Generator_ColumnVarNameInTable="columnMethod" msprop:Generator_UserColumnName="Method" type="xs:string" minOccurs="0" /> <xs:element name="Method" msprop:Generator_UserColumnName="Method" msprop:Generator_ColumnPropNameInTable="MethodColumn" msprop:Generator_ColumnPropNameInRow="Method" msprop:Generator_ColumnVarNameInTable="columnMethod" type="xs:string" minOccurs="0" />
<xs:element name="Cheque" msprop:Generator_ColumnPropNameInRow="Cheque" msprop:Generator_ColumnPropNameInTable="ChequeColumn" msprop:Generator_ColumnVarNameInTable="columnCheque" msprop:Generator_UserColumnName="Cheque" type="xs:string" minOccurs="0" /> <xs:element name="Cheque" msprop:Generator_UserColumnName="Cheque" msprop:Generator_ColumnPropNameInTable="ChequeColumn" msprop:Generator_ColumnPropNameInRow="Cheque" msprop:Generator_ColumnVarNameInTable="columnCheque" type="xs:string" minOccurs="0" />
<xs:element name="DeNomination" msprop:Generator_ColumnPropNameInRow="DeNomination" msprop:Generator_ColumnPropNameInTable="DeNominationColumn" msprop:Generator_ColumnVarNameInTable="columnDeNomination" msprop:Generator_UserColumnName="DeNomination" type="xs:string" minOccurs="0" /> <xs:element name="DeNomination" msprop:Generator_UserColumnName="DeNomination" msprop:Generator_ColumnPropNameInTable="DeNominationColumn" msprop:Generator_ColumnPropNameInRow="DeNomination" msprop:Generator_ColumnVarNameInTable="columnDeNomination" type="xs:string" minOccurs="0" />
<xs:element name="Bank" msprop:Generator_ColumnPropNameInRow="Bank" msprop:Generator_ColumnPropNameInTable="BankColumn" msprop:Generator_ColumnVarNameInTable="columnBank" msprop:Generator_UserColumnName="Bank" type="xs:string" minOccurs="0" /> <xs:element name="Bank" msprop:Generator_UserColumnName="Bank" msprop:Generator_ColumnPropNameInTable="BankColumn" msprop:Generator_ColumnPropNameInRow="Bank" msprop:Generator_ColumnVarNameInTable="columnBank" type="xs:string" minOccurs="0" />
<xs:element name="Branch" msprop:Generator_ColumnPropNameInRow="Branch" msprop:Generator_ColumnPropNameInTable="BranchColumn" msprop:Generator_ColumnVarNameInTable="columnBranch" msprop:Generator_UserColumnName="Branch" type="xs:string" minOccurs="0" /> <xs:element name="Branch" msprop:Generator_UserColumnName="Branch" msprop:Generator_ColumnPropNameInTable="BranchColumn" msprop:Generator_ColumnPropNameInRow="Branch" msprop:Generator_ColumnVarNameInTable="columnBranch" type="xs:string" minOccurs="0" />
<xs:element name="Remarks" msprop:Generator_ColumnPropNameInRow="Remarks" msprop:Generator_ColumnPropNameInTable="RemarksColumn" msprop:Generator_ColumnVarNameInTable="columnRemarks" msprop:Generator_UserColumnName="Remarks" type="xs:string" minOccurs="0" /> <xs:element name="Remarks" msprop:Generator_UserColumnName="Remarks" msprop:Generator_ColumnPropNameInTable="RemarksColumn" msprop:Generator_ColumnPropNameInRow="Remarks" msprop:Generator_ColumnVarNameInTable="columnRemarks" type="xs:string" minOccurs="0" />
<xs:element name="SenderAccNo" msprop:Generator_ColumnPropNameInRow="SenderAccNo" msprop:Generator_ColumnPropNameInTable="SenderAccNoColumn" msprop:Generator_ColumnVarNameInTable="columnSenderAccNo" msprop:Generator_UserColumnName="SenderAccNo" type="xs:string" minOccurs="0" /> <xs:element name="SenderAccNo" msprop:Generator_UserColumnName="SenderAccNo" msprop:Generator_ColumnPropNameInTable="SenderAccNoColumn" msprop:Generator_ColumnPropNameInRow="SenderAccNo" msprop:Generator_ColumnVarNameInTable="columnSenderAccNo" type="xs:string" minOccurs="0" />
<xs:element name="BankRoutingNo" msdata:Caption="BankRouting" msprop:Generator_ColumnPropNameInRow="BankRoutingNo" msprop:Generator_ColumnPropNameInTable="BankRoutingNoColumn" msprop:Generator_ColumnVarNameInTable="columnBankRoutingNo" msprop:Generator_UserColumnName="BankRoutingNo" type="xs:string" minOccurs="0" /> <xs:element name="BankRoutingNo" msdata:Caption="BankRouting" msprop:Generator_UserColumnName="BankRoutingNo" msprop:Generator_ColumnPropNameInTable="BankRoutingNoColumn" msprop:Generator_ColumnPropNameInRow="BankRoutingNo" msprop:Generator_ColumnVarNameInTable="columnBankRoutingNo" type="xs:string" minOccurs="0" />
<xs:element name="AccType" msprop:Generator_ColumnPropNameInRow="AccType" msprop:Generator_ColumnPropNameInTable="AccTypeColumn" msprop:Generator_ColumnVarNameInTable="columnAccType" msprop:Generator_UserColumnName="AccType" type="xs:string" minOccurs="0" /> <xs:element name="AccType" msprop:Generator_UserColumnName="AccType" msprop:Generator_ColumnPropNameInTable="AccTypeColumn" msprop:Generator_ColumnPropNameInRow="AccType" msprop:Generator_ColumnVarNameInTable="columnAccType" type="xs:string" minOccurs="0" />
<xs:element name="CostCenter" msprop:Generator_ColumnPropNameInRow="CostCenter" msprop:Generator_ColumnPropNameInTable="CostCenterColumn" msprop:Generator_ColumnVarNameInTable="columnCostCenter" msprop:Generator_UserColumnName="CostCenter" type="xs:string" minOccurs="0" /> <xs:element name="CostCenter" msprop:Generator_UserColumnName="CostCenter" msprop:Generator_ColumnPropNameInTable="CostCenterColumn" msprop:Generator_ColumnPropNameInRow="CostCenter" msprop:Generator_ColumnVarNameInTable="columnCostCenter" type="xs:string" minOccurs="0" />
<xs:element name="ProcessDate" msprop:Generator_ColumnPropNameInRow="ProcessDate" msprop:Generator_ColumnPropNameInTable="ProcessDateColumn" msprop:Generator_ColumnVarNameInTable="columnProcessDate" msprop:Generator_UserColumnName="ProcessDate" type="xs:string" minOccurs="0" /> <xs:element name="ProcessDate" msprop:Generator_UserColumnName="ProcessDate" msprop:Generator_ColumnPropNameInTable="ProcessDateColumn" msprop:Generator_ColumnPropNameInRow="ProcessDate" msprop:Generator_ColumnVarNameInTable="columnProcessDate" type="xs:string" minOccurs="0" />
<xs:element name="PaymentDate" msprop:Generator_ColumnPropNameInRow="PaymentDate" msprop:Generator_ColumnPropNameInTable="PaymentDateColumn" msprop:Generator_ColumnVarNameInTable="columnPaymentDate" msprop:Generator_UserColumnName="PaymentDate" type="xs:string" minOccurs="0" /> <xs:element name="PaymentDate" msprop:Generator_UserColumnName="PaymentDate" msprop:Generator_ColumnPropNameInTable="PaymentDateColumn" msprop:Generator_ColumnPropNameInRow="PaymentDate" msprop:Generator_ColumnVarNameInTable="columnPaymentDate" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PastOwnerAndJobInfo" msprop:Generator_RowEvHandlerName="PastOwnerAndJobInfoRowChangeEventHandler" msprop:Generator_RowDeletedName="PastOwnerAndJobInfoRowDeleted" msprop:Generator_RowDeletingName="PastOwnerAndJobInfoRowDeleting" msprop:Generator_RowEvArgName="PastOwnerAndJobInfoRowChangeEvent" msprop:Generator_TablePropName="PastOwnerAndJobInfo" msprop:Generator_RowChangedName="PastOwnerAndJobInfoRowChanged" msprop:Generator_RowChangingName="PastOwnerAndJobInfoRowChanging" msprop:Generator_TableClassName="PastOwnerAndJobInfoDataTable" msprop:Generator_RowClassName="PastOwnerAndJobInfoRow" msprop:Generator_TableVarName="tablePastOwnerAndJobInfo" msprop:Generator_UserTableName="PastOwnerAndJobInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="InstituteNameAddress" msprop:Generator_ColumnPropNameInRow="InstituteNameAddress" msprop:Generator_ColumnPropNameInTable="InstituteNameAddressColumn" msprop:Generator_ColumnVarNameInTable="columnInstituteNameAddress" msprop:Generator_UserColumnName="InstituteNameAddress" type="xs:string" minOccurs="0" />
<xs:element name="OwnerManagementName" msprop:Generator_ColumnPropNameInRow="OwnerManagementName" msprop:Generator_ColumnPropNameInTable="OwnerManagementNameColumn" msprop:Generator_ColumnVarNameInTable="columnOwnerManagementName" msprop:Generator_UserColumnName="OwnerManagementName" type="xs:string" minOccurs="0" />
<xs:element name="JoinDate" msprop:Generator_ColumnPropNameInRow="JoinDate" msprop:Generator_ColumnPropNameInTable="JoinDateColumn" msprop:Generator_ColumnVarNameInTable="columnJoinDate" msprop:Generator_UserColumnName="JoinDate" type="xs:string" minOccurs="0" />
<xs:element name="ResignationDate" msprop:Generator_ColumnPropNameInRow="ResignationDate" msprop:Generator_ColumnPropNameInTable="ResignationDateColumn" msprop:Generator_ColumnVarNameInTable="columnResignationDate" msprop:Generator_UserColumnName="ResignationDate" type="xs:string" minOccurs="0" />
<xs:element name="CauseOfResignation" msprop:Generator_ColumnPropNameInRow="CauseOfResignation" msprop:Generator_ColumnPropNameInTable="CauseOfResignationColumn" msprop:Generator_ColumnVarNameInTable="columnCauseOfResignation" msprop:Generator_UserColumnName="CauseOfResignation" type="xs:string" minOccurs="0" />
<xs:element name="Signature" msprop:Generator_ColumnPropNameInRow="Signature" msprop:Generator_ColumnPropNameInTable="SignatureColumn" msprop:Generator_ColumnVarNameInTable="columnSignature" msprop:Generator_UserColumnName="Signature" type="xs:string" minOccurs="0" />
<xs:element name="PastOwnerSignature" msprop:Generator_ColumnPropNameInRow="PastOwnerSignature" msprop:Generator_ColumnPropNameInTable="PastOwnerSignatureColumn" msprop:Generator_ColumnVarNameInTable="columnPastOwnerSignature" msprop:Generator_UserColumnName="PastOwnerSignature" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="LeaveRecord" msprop:Generator_RowEvHandlerName="LeaveRecordRowChangeEventHandler" msprop:Generator_RowDeletedName="LeaveRecordRowDeleted" msprop:Generator_RowDeletingName="LeaveRecordRowDeleting" msprop:Generator_RowEvArgName="LeaveRecordRowChangeEvent" msprop:Generator_TablePropName="LeaveRecord" msprop:Generator_RowChangedName="LeaveRecordRowChanged" msprop:Generator_RowChangingName="LeaveRecordRowChanging" msprop:Generator_TableClassName="LeaveRecordDataTable" msprop:Generator_RowClassName="LeaveRecordRow" msprop:Generator_TableVarName="tableLeaveRecord" msprop:Generator_UserTableName="LeaveRecord">
<xs:complexType>
<xs:sequence>
<xs:element name="FromDate" msprop:Generator_ColumnPropNameInRow="FromDate" msprop:Generator_ColumnPropNameInTable="FromDateColumn" msprop:Generator_ColumnVarNameInTable="columnFromDate" msprop:Generator_UserColumnName="FromDate" type="xs:string" minOccurs="0" />
<xs:element name="EndDate" msprop:Generator_ColumnPropNameInRow="EndDate" msprop:Generator_ColumnPropNameInTable="EndDateColumn" msprop:Generator_ColumnVarNameInTable="columnEndDate" msprop:Generator_UserColumnName="EndDate" type="xs:string" minOccurs="0" />
<xs:element name="OwnerSignature" msprop:Generator_ColumnPropNameInRow="OwnerSignature" msprop:Generator_ColumnPropNameInTable="OwnerSignatureColumn" msprop:Generator_ColumnVarNameInTable="columnOwnerSignature" msprop:Generator_UserColumnName="OwnerSignature" type="xs:string" minOccurs="0" />
<xs:element name="EmpSiganture" msprop:Generator_ColumnPropNameInRow="EmpSiganture" msprop:Generator_ColumnPropNameInTable="EmpSigantureColumn" msprop:Generator_ColumnVarNameInTable="columnEmpSiganture" msprop:Generator_UserColumnName="EmpSiganture" type="xs:string" minOccurs="0" />
<xs:element name="Total" msprop:Generator_ColumnPropNameInRow="Total" msprop:Generator_ColumnPropNameInTable="TotalColumn" msprop:Generator_ColumnVarNameInTable="columnTotal" msprop:Generator_UserColumnName="Total" type="xs:string" minOccurs="0" />
<xs:element name="Date" msprop:Generator_ColumnPropNameInRow="Date" msprop:Generator_ColumnPropNameInTable="DateColumn" msprop:Generator_ColumnVarNameInTable="columnDate" msprop:Generator_UserColumnName="Date" type="xs:string" minOccurs="0" />
<xs:element name="RemainingEL" msprop:Generator_ColumnPropNameInRow="RemainingEL" msprop:Generator_ColumnPropNameInTable="RemainingELColumn" msprop:Generator_ColumnVarNameInTable="columnRemainingEL" msprop:Generator_UserColumnName="RemainingEL" type="xs:string" minOccurs="0" />
<xs:element name="TotalAmount" msprop:Generator_ColumnPropNameInRow="TotalAmount" msprop:Generator_ColumnPropNameInTable="TotalAmountColumn" msprop:Generator_ColumnVarNameInTable="columnTotalAmount" msprop:Generator_UserColumnName="TotalAmount" type="xs:string" minOccurs="0" />
<xs:element name="RemainingELCash" msprop:Generator_ColumnPropNameInRow="RemainingELCash" msprop:Generator_ColumnPropNameInTable="RemainingELCashColumn" msprop:Generator_ColumnVarNameInTable="columnRemainingELCash" msprop:Generator_UserColumnName="RemainingELCash" type="xs:string" minOccurs="0" />
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>

View File

@ -4,59 +4,61 @@
Changes to this file may cause incorrect behavior and will be lost if Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated. the code is regenerated.
</autogenerated>--> </autogenerated>-->
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-14" ViewPortY="55" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout"> <DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-8" ViewPortY="195" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes> <Shapes>
<Shape ID="DesignTable:ComapnyInformation" ZOrder="14" X="-4" Y="38" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="91" SplitterPosition="24" /> <Shape ID="DesignTable:ComapnyInformation" ZOrder="19" X="-4" Y="38" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="91" SplitterPosition="24" />
<Shape ID="DesignTable:DepartmentWiseManpower" ZOrder="11" X="260" Y="7" Height="28" Width="226" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="24" /> <Shape ID="DesignTable:DepartmentWiseManpower" ZOrder="16" X="260" Y="7" Height="28" Width="226" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="24" />
<Shape ID="DesignTable:BankAdvice" ZOrder="26" X="583" Y="51" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:BankAdvice" ZOrder="30" X="583" Y="51" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:BankAdviceLetter" ZOrder="22" X="580" Y="14" Height="28" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:BankAdviceLetter" ZOrder="26" X="580" Y="14" Height="28" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:BankAdviceParameters" ZOrder="4" X="582" Y="84" Height="28" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:BankAdviceParameters" ZOrder="9" X="582" Y="84" Height="28" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:DtAgeRange" ZOrder="10" X="261" Y="40" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="24" /> <Shape ID="DesignTable:DtAgeRange" ZOrder="15" X="261" Y="40" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="24" />
<Shape ID="DesignTable:dtQualificationWiseManpower" ZOrder="9" X="261" Y="72" Height="28" Width="243" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="24" /> <Shape ID="DesignTable:dtQualificationWiseManpower" ZOrder="14" X="261" Y="72" Height="28" Width="243" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="24" />
<Shape ID="DesignTable:EmployeeMasterData" ZOrder="30" X="906" Y="1" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:EmployeeMasterData" ZOrder="33" X="906" Y="1" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:DTProvidentFund" ZOrder="8" X="261" Y="104" Height="28" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" /> <Shape ID="DesignTable:DTProvidentFund" ZOrder="13" X="261" Y="104" Height="28" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
<Shape ID="DesignTable:SalarySheet" ZOrder="47" X="1255" Y="6" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:SalarySheet" ZOrder="49" X="1255" Y="6" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:SalarySummary" ZOrder="48" X="1255" Y="40" Height="28" Width="156" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="24" /> <Shape ID="DesignTable:SalarySummary" ZOrder="50" X="1255" Y="40" Height="28" Width="156" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="24" />
<Shape ID="DesignTable:dtCashAdvice" ZOrder="7" X="263" Y="138" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" /> <Shape ID="DesignTable:dtCashAdvice" ZOrder="12" X="263" Y="138" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" />
<Shape ID="DesignTable:StuffListWithoutSalary" ZOrder="46" X="1256" Y="75" Height="28" Width="198" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" /> <Shape ID="DesignTable:StuffListWithoutSalary" ZOrder="48" X="1256" Y="75" Height="28" Width="198" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
<Shape ID="DesignTable:DTOPI" ZOrder="6" X="262" Y="202" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" /> <Shape ID="DesignTable:DTOPI" ZOrder="11" X="262" Y="202" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
<Shape ID="DesignTable:SalaryComparison" ZOrder="49" X="1257" Y="109" Height="28" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" /> <Shape ID="DesignTable:SalaryComparison" ZOrder="51" X="1257" Y="109" Height="28" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
<Shape ID="DesignTable:ExperienceCertificate" ZOrder="29" X="907" Y="41" Height="28" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" /> <Shape ID="DesignTable:ExperienceCertificate" ZOrder="32" X="907" Y="41" Height="28" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" />
<Shape ID="DesignTable:BonusBankAdvice" ZOrder="24" X="581" Y="117" Height="28" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" /> <Shape ID="DesignTable:BonusBankAdvice" ZOrder="28" X="581" Y="117" Height="28" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
<Shape ID="DesignTable:ManagersPTT" ZOrder="13" X="-1" Y="79" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:ManagersPTT" ZOrder="18" X="-1" Y="79" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:DeptWiseCompany" ZOrder="5" X="262" Y="236" Height="28" Width="177" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:DeptWiseCompany" ZOrder="10" X="262" Y="236" Height="28" Width="177" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:SalaryCertificate" ZOrder="45" X="1258" Y="141" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="24" /> <Shape ID="DesignTable:SalaryCertificate" ZOrder="47" X="1258" Y="141" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="24" />
<Shape ID="DesignTable:LetterOfAccountIntro" ZOrder="44" X="1258" Y="173" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" /> <Shape ID="DesignTable:LetterOfAccountIntro" ZOrder="46" X="1258" Y="173" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
<Shape ID="DesignTable:DTFSS" ZOrder="16" X="263" Y="269" Height="28" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:DTFSS" ZOrder="21" X="263" Y="269" Height="28" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:DTFSSItems" ZOrder="51" X="265" Y="301" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:DTFSSItems" ZOrder="53" X="265" Y="301" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:PFException" ZOrder="23" X="907" Y="88" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" /> <Shape ID="DesignTable:PFException" ZOrder="27" X="907" Y="88" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
<Shape ID="DesignTable:NewPF" ZOrder="31" X="909" Y="141" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" /> <Shape ID="DesignTable:NewPF" ZOrder="34" X="909" Y="141" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
<Shape ID="DesignTable:MonthlySalaryRevision" ZOrder="12" X="-4" Y="123" Height="28" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" /> <Shape ID="DesignTable:MonthlySalaryRevision" ZOrder="17" X="-4" Y="123" Height="28" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
<Shape ID="DesignTable:EmployeePersonalInfo" ZOrder="28" X="570" Y="166" Height="28" Width="200" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:EmployeePersonalInfo" ZOrder="4" X="570" Y="166" Height="257" Width="200" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" />
<Shape ID="DesignTable:EmployeeQualification" ZOrder="32" X="-2" Y="167" Height="28" Width="197" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" /> <Shape ID="DesignTable:EmployeeQualification" ZOrder="3" X="-2" Y="167" Height="219" Width="197" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="215" />
<Shape ID="DesignTable:EmpGrandFatherInfo" ZOrder="2" X="567" Y="258" Height="28" Width="187" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:EmpGrandFatherInfo" ZOrder="7" X="567" Y="258" Height="28" Width="187" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:AllTaxInfo" ZOrder="50" X="582" Y="431" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" /> <Shape ID="DesignTable:AllTaxInfo" ZOrder="52" X="582" Y="431" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
<Shape ID="DesignTable:CostCenterInfo" ZOrder="15" X="-1" Y="0" Height="28" Width="153" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" /> <Shape ID="DesignTable:CostCenterInfo" ZOrder="20" X="-1" Y="0" Height="28" Width="153" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
<Shape ID="DesignTable:MoneyReceipt" ZOrder="3" X="572" Y="213" Height="28" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:MoneyReceipt" ZOrder="8" X="572" Y="213" Height="28" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:BankAdviceNmgt" ZOrder="43" X="1259" Y="216" Height="28" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:BankAdviceNmgt" ZOrder="45" X="1259" Y="216" Height="28" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:dtGeneral" ZOrder="38" X="1262" Y="250" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" /> <Shape ID="DesignTable:dtGeneral" ZOrder="40" X="1262" Y="250" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" />
<Shape ID="DesignTable:dtContacts" ZOrder="42" X="1242" Y="281" Height="28" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:dtContacts" ZOrder="44" X="1242" Y="281" Height="28" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:dtSpouse" ZOrder="39" X="1266" Y="311" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="24" /> <Shape ID="DesignTable:dtSpouse" ZOrder="41" X="1266" Y="311" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="24" />
<Shape ID="DesignTable:dtChildren" ZOrder="41" X="1267" Y="345" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" /> <Shape ID="DesignTable:dtChildren" ZOrder="43" X="1267" Y="345" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
<Shape ID="DesignTable:dtEmpExperience" ZOrder="40" X="1259" Y="378" Height="28" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" /> <Shape ID="DesignTable:dtEmpExperience" ZOrder="42" X="1259" Y="378" Height="28" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
<Shape ID="DesignTable:dtEmpTraining" ZOrder="37" X="1270" Y="411" Height="28" Width="152" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:dtEmpTraining" ZOrder="39" X="1270" Y="411" Height="28" Width="152" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:dtEmpAcademic" ZOrder="36" X="1268" Y="445" Height="28" Width="160" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" /> <Shape ID="DesignTable:dtEmpAcademic" ZOrder="38" X="1268" Y="445" Height="28" Width="160" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
<Shape ID="DesignTable:dtEmpReference" ZOrder="35" X="1265" Y="480" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="24" /> <Shape ID="DesignTable:dtEmpReference" ZOrder="37" X="1265" Y="480" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="24" />
<Shape ID="DesignTable:dtEmpPublication" ZOrder="33" X="1262" Y="517" Height="28" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" /> <Shape ID="DesignTable:dtEmpPublication" ZOrder="35" X="1262" Y="517" Height="28" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
<Shape ID="DesignTable:dtNominee" ZOrder="34" X="1280" Y="547" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="24" /> <Shape ID="DesignTable:dtNominee" ZOrder="36" X="1280" Y="547" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="24" />
<Shape ID="DesignTable:EducationalInfo" ZOrder="27" X="907" Y="227" Height="28" Width="157" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" /> <Shape ID="DesignTable:EducationalInfo" ZOrder="31" X="907" Y="227" Height="28" Width="157" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
<Shape ID="DesignTable:EmployeeAppointmentInfo" ZOrder="25" X="237" Y="397" Height="28" Width="224" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:EmployeeAppointmentInfo" ZOrder="29" X="237" Y="397" Height="28" Width="224" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:DtCostCenterTotal" ZOrder="21" X="899" Y="183" Height="28" Width="173" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="24" /> <Shape ID="DesignTable:DtCostCenterTotal" ZOrder="25" X="899" Y="183" Height="28" Width="173" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="24" />
<Shape ID="DesignTable:DTMonthlyPF" ZOrder="20" X="262" Y="340" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" /> <Shape ID="DesignTable:DTMonthlyPF" ZOrder="24" X="262" Y="340" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<Shape ID="DesignTable:CCWiseBonusSummary" ZOrder="19" X="579" Y="333" Height="28" Width="200" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="24" /> <Shape ID="DesignTable:CCWiseBonusSummary" ZOrder="23" X="579" Y="333" Height="28" Width="200" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="24" />
<Shape ID="DesignTable:CCWiseBonus" ZOrder="18" X="590" Y="385" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" /> <Shape ID="DesignTable:CCWiseBonus" ZOrder="5" X="590" Y="385" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
<Shape ID="DesignTable:dtPerquisite" ZOrder="17" X="1084" Y="257" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="24" /> <Shape ID="DesignTable:dtPerquisite" ZOrder="22" X="1084" Y="257" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="24" />
<Shape ID="DesignTable:BankAdviceWithRoutingNo" ZOrder="1" X="577" Y="492" Height="257" Width="210" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" /> <Shape ID="DesignTable:BankAdviceWithRoutingNo" ZOrder="6" X="577" Y="492" Height="257" Width="210" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" />
<Shape ID="DesignTable:PastOwnerAndJobInfo" ZOrder="2" X="862" Y="331" Height="28" Width="197" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
<Shape ID="DesignTable:LeaveRecord" ZOrder="1" X="1072" Y="334" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" />
</Shapes> </Shapes>
<Connectors /> <Connectors />
</DiagramLayout> </DiagramLayout>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -3911,21 +3911,25 @@
</ReportParameter> </ReportParameter>
<ReportParameter Name="CompanyInfo"> <ReportParameter Name="CompanyInfo">
<DataType>String</DataType> <DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank> <AllowBlank>true</AllowBlank>
<Prompt>Report_Parameter_1</Prompt> <Prompt>Report_Parameter_1</Prompt>
</ReportParameter> </ReportParameter>
<ReportParameter Name="Logo"> <ReportParameter Name="Logo">
<DataType>String</DataType> <DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank> <AllowBlank>true</AllowBlank>
<Prompt>Report_Parameter_2</Prompt> <Prompt>Report_Parameter_2</Prompt>
</ReportParameter> </ReportParameter>
<ReportParameter Name="Address"> <ReportParameter Name="Address">
<DataType>String</DataType> <DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank> <AllowBlank>true</AllowBlank>
<Prompt>Report_Parameter_3</Prompt> <Prompt>Report_Parameter_3</Prompt>
</ReportParameter> </ReportParameter>
<ReportParameter Name="Phone"> <ReportParameter Name="Phone">
<DataType>String</DataType> <DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank> <AllowBlank>true</AllowBlank>
<Prompt>Report_Parameter_4</Prompt> <Prompt>Report_Parameter_4</Prompt>
</ReportParameter> </ReportParameter>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -162,7 +162,7 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>="Department: " &amp;Fields!Department.Value</Value> <Value>="Design No: " &amp;Fields!DesignNo.Value</Value>
<Style /> <Style />
</TextRun> </TextRun>
</TextRuns> </TextRuns>
@ -1656,7 +1656,7 @@
<TablixMember> <TablixMember>
<Group Name="table1_Group1"> <Group Name="table1_Group1">
<GroupExpressions> <GroupExpressions>
<GroupExpression>=Fields!DepartmentID.Value</GroupExpression> <GroupExpression>=Fields!DesignNo.Value</GroupExpression>
</GroupExpressions> </GroupExpressions>
</Group> </Group>
<TablixMembers> <TablixMembers>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -838,7 +838,7 @@ namespace HRM.Report
reportParameters.Add(rParam); reportParameters.Add(rParam);
// rParam = new ReportParameter("CompanyInfo", oPT.Description.ToString()); // rParam = new ReportParameter("CompanyInfo", oPT.Description.ToString());
rParam = new ReportParameter("CompanyInfo", payrollType != null ? payrollType.CompanyName : string.Empty); rParam = new ReportParameter("CompanyInfo", payrollType != null ? (payrollType.CompanyName != null && payrollType.CompanyName.Trim() != "" ? payrollType.CompanyName : systemInformation?.name) : string.Empty);
reportParameters.Add(rParam); reportParameters.Add(rParam);
rParam = new ReportParameter("SearchCriteria", ""); rParam = new ReportParameter("SearchCriteria", "");
@ -3939,7 +3939,7 @@ namespace HRM.Report
{ {
byte[] bytes = null; byte[] bytes = null;
string RDLC = "HRM.Report.RDLC.AllDigitalServiceBook.rdlc"; string RDLC = "HRM.Report.RDLC.DigitalServiceBook.rdlc";//AllDigitalServiceBook.rdlc";
//string filePath = Path.Combine(folderPath, "../HRM.Report/RDLC/DigitalServiceBook.rdlc"); //string filePath = Path.Combine(folderPath, "../HRM.Report/RDLC/DigitalServiceBook.rdlc");
//string RDLC = filePath; //string RDLC = filePath;
//_PATH = Application.StartupPath + @"\Logo.jpg"; //_PATH = Application.StartupPath + @"\Logo.jpg";

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -48,6 +48,8 @@ export class DailyAttnProcess extends BaseObject {
this.actualOutTime = new Date(); this.actualOutTime = new Date();
this.actualShiftID = null; this.actualShiftID = null;
this.shift= null; this.shift= null;
this.onlyManualInTime = false;
this.onlyManualOutTime = false;
} }
attnDate: Date; attnDate: Date;
inTime: Date; inTime: Date;
@ -90,6 +92,9 @@ export class DailyAttnProcess extends BaseObject {
shift: Shift; shift: Shift;
remarksType: number; remarksType: number;
onlyManualInTime: boolean;
onlyManualOutTime: boolean;

View File

@ -138,7 +138,7 @@ export class Employee {
this.taxCircle = EnumTaxCircle.CityCorporation; this.taxCircle = EnumTaxCircle.CityCorporation;
this.isConfirmed = false; this.isConfirmed = false;
this.endOfContractDate = null; this.endOfContractDate = null;
this.status = EnumEmployeeStatus.Live; this.status = EnumEmployeeStatus.Waitingforjoin;
this.statusName = ''; this.statusName = '';
this.isShownInTaxSheet = false; this.isShownInTaxSheet = false;
this.pfMemberType = EnumPFMembershipType.NotYetLive; this.pfMemberType = EnumPFMembershipType.NotYetLive;
@ -219,6 +219,9 @@ export class Employee {
case EnumEmployeeStatus.Discontinued: case EnumEmployeeStatus.Discontinued:
str = "Discontinued"; str = "Discontinued";
break; break;
case EnumEmployeeStatus.Waitingforjoin:
str = "Waiting For Join";
break;
default: default:
} }

View File

@ -36,7 +36,9 @@ export class EmpContact extends BaseObject {
presentAddressInBangla: string; presentAddressInBangla: string;
permanentPostCodeNo: string; permanentPostCodeNo: string;
presentPostCodeNo: string; presentPostCodeNo: string;
presentPO: string;
presentPOInBangla: string; presentPOInBangla: string;
permanentPO: string;
parmanentPOInBangla: string; parmanentPOInBangla: string;
constructor() { constructor() {
super(); super();

View File

@ -1,7 +1,7 @@
import {NominationPurpose} from '../HRBasic/nomination-purpose'; import {NominationPurpose} from '../HRBasic/nomination-purpose';
import {Relation} from '../HRBasic/relation'; import {Relation} from '../HRBasic/relation';
import {Occupation} from '../HRBasic/occupation'; import {Occupation} from '../HRBasic/occupation';
import {EnumProfileStatus} from '../enums'; import {EnumProfileStatus, EnumGender} from '../enums';
import {BaseObject} from '../Basic/baseObject'; import {BaseObject} from '../Basic/baseObject';
import {empFileuploads} from './hrEmployee'; import {empFileuploads} from './hrEmployee';
@ -19,10 +19,19 @@ export class EmpNominee extends BaseObject {
occupation: Occupation; occupation: Occupation;
address: string; address: string;
telePhone: string; telePhone: string;
nomineeMobileNo: string;
photograph: empFileuploads; photograph: empFileuploads;
signature: empFileuploads; signature: empFileuploads;
emailAddress: string; emailAddress: string;
profileStatus: EnumProfileStatus; profileStatus: EnumProfileStatus;
fatherName: string;
motherName: string;
spouseName: string;
nationalID: string;
gender: EnumGender;
districtID?: number | null;
thanaID?: number | null;
postOffice: string;
hasPicture: boolean; hasPicture: boolean;
hasSignature: boolean; hasSignature: boolean;
constructor() { constructor() {
@ -40,6 +49,7 @@ export class EmpNominee extends BaseObject {
this.photograph = new empFileuploads(); this.photograph = new empFileuploads();
this.signature = new empFileuploads(); this.signature = new empFileuploads();
this.emailAddress = ''; this.emailAddress = '';
this.nomineeMobileNo = '';
this.hasSignature = false; this.hasSignature = false;
this.hasPicture = false; this.hasPicture = false;
} }

View File

@ -998,6 +998,7 @@ export enum EnumTrainingCompletedFrom {
} }
export enum EnumBloodGroup { export enum EnumBloodGroup {
NA,
None, None,
APos, APos,
ANeg, ANeg,
@ -1006,7 +1007,7 @@ export enum EnumBloodGroup {
OPos, OPos,
ONeg, ONeg,
ABPos, ABPos,
ABNeg, ABNeg
} }
export enum EnumOGPositionType { export enum EnumOGPositionType {
@ -3149,14 +3150,15 @@ export enum EnumSuccessorReadiness {
} }
export let BloodGroupList = [ export let BloodGroupList = [
{ name: "A+", value: 1 }, { name: "N/A", value: 1 },
{ name: "A-", value: 2 }, { name: "A+", value: 2 },
{ name: "B+", value: 3 }, { name: "A-", value: 3 },
{ name: "B-", value: 4 }, { name: "B+", value: 4 },
{ name: "O+", value: 5 }, { name: "B-", value: 5 },
{ name: "O-", value: 6 }, { name: "O+", value: 6 },
{ name: "AB+", value: 7 }, { name: "O-", value: 7 },
{ name: "AB-", value: 8 }, { name: "AB+", value: 8 },
{ name: "AB-", value: 9 },
]; ];
export class EnumExtension { export class EnumExtension {

View File

@ -209,6 +209,10 @@ export class AttendanceServices {
// return this.apiService.httpGet<EmployeeWorkPlanSetup[]>('/Attendance' + '/getNotYetAssiged'); // return this.apiService.httpGet<EmployeeWorkPlanSetup[]>('/Attendance' + '/getNotYetAssiged');
return this.apiService.httpGet<Employee[]>('/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) { getEmployeeWorkPlanSetupByWPGroupID(groupId: number) {
return this.apiService.httpGet<EmployeeWorkPlanSetup[]>('/Attendance' + '/getEmployeeWorkPlanSetupByWPGroupID' + '/' + groupId); return this.apiService.httpGet<EmployeeWorkPlanSetup[]>('/Attendance' + '/getEmployeeWorkPlanSetupByWPGroupID' + '/' + groupId);
} }
@ -272,6 +276,9 @@ export class AttendanceServices {
getDailyAttnProcessByEmp(empList: any) { getDailyAttnProcessByEmp(empList: any) {
return this.apiService.httpPost<DailyAttnProcess[]>('/Attendance' + '/getDailyAttnProcessByEmp', empList); return this.apiService.httpPost<DailyAttnProcess[]>('/Attendance' + '/getDailyAttnProcessByEmp', empList);
} }
getDailyAttnProcessByEmpForManualEntry(empList: any) {
return this.apiService.httpPost<DailyAttnProcess[]>('/Attendance' + '/getDailyAttnProcessByEmpForManualEntry', empList);
}
// DailyAttnProcess // DailyAttnProcess
getDailyAttnProcessByEmployeeId(employeeId: number) { getDailyAttnProcessByEmployeeId(employeeId: number) {

View File

@ -99,6 +99,19 @@ export class EmployeeServices {
return this.apiService.httpGet<SearchEmployee[]>('/Employee/getEmpCodeName' + '/' + ncode + '/' + nname); return this.apiService.httpGet<SearchEmployee[]>('/Employee/getEmpCodeName' + '/' + ncode + '/' + nname);
} }
getEmpCodeNameForEmployeePickerInput(code?: string, name?: string) {
let nname = this.apiService.getApiDefaultData(name);
let ncode = this.apiService.getApiDefaultData(code);
return this.apiService.httpGet<SearchEmployee[]>('/Employee/getEmpCodeNameForEmployeePickerInput' + '/' + ncode + '/' + nname);
}
getEmpCodeNameForEmployeePickerInputNew(code?: string, name?: string, isForLifeCycle? : boolean) {
let nname = this.apiService.getApiDefaultData(name);
let ncode = this.apiService.getApiDefaultData(code);
let nIsForLifeCycle = this.apiService.getApiDefaultBoolData(isForLifeCycle);
return this.apiService.httpGet<SearchEmployee[]>('/Employee/getEmpCodeNameForEmployeePickerInputNew' + '/' + ncode + '/' + nname + '/' + nIsForLifeCycle);
}
getEmployees() { getEmployees() {
return this.apiService.httpGet(this.apiService.base_url + 'getemployees'); return this.apiService.httpGet(this.apiService.base_url + 'getemployees');
} }
@ -360,6 +373,12 @@ export class EmployeeServices {
return this.apiService.httpGet<any>('/Employee/GetuploadEmpFile' + '/' + empid + '/' + referenceid + '/' + filetype); return this.apiService.httpGet<any>('/Employee/GetuploadEmpFile' + '/' + empid + '/' + referenceid + '/' + filetype);
} }
GetEmpImageSignFile(empid: number, referenceid: number, filetype: number):
Observable<HttpEvent<any>> {
return this.apiService.httpGet<any>('/Employee/GetEmpImageSignFile' + '/' + empid + '/' + referenceid + '/' + filetype);
}
GetCompanyImage(): Observable<HttpEvent<any>>{ GetCompanyImage(): Observable<HttpEvent<any>>{
return this.apiService.httpGet<any>('/Employee/GetCompanyImage'); return this.apiService.httpGet<any>('/Employee/GetCompanyImage');
} }

View File

@ -11,6 +11,7 @@ import { EnumLetterOrganizationType } from '../../_models/enums';
import { LetterRequest } from '../../_models/Letter-Request/Letter-Request'; import { LetterRequest } from '../../_models/Letter-Request/Letter-Request';
import { AuthorizedPerson } from '../../adhoc-feature/authorized-persons/authorizedPerson'; import { AuthorizedPerson } from '../../adhoc-feature/authorized-persons/authorizedPerson';
import { WFMovementTran } from '../../_models/Work-Flow/wFMovementTran'; import { WFMovementTran } from '../../_models/Work-Flow/wFMovementTran';
import { SearchEmployee } from 'src/app/_models/Employee/searchEmployee';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@ -233,6 +234,10 @@ export class LetterRequestService {
getImage(id: number) { getImage(id: number) {
return this.apiService.httpGet<any>('/LetterRequest/getImage' + '/' + id); return this.apiService.httpGet<any>('/LetterRequest/getImage' + '/' + id);
} }
generatedExceptiinLetter(type: number, param: SearchEmployee[]) {
return this.apiService.httpPost('/LetterRequest/generatedExceptiinLetter/' + type , param);
// return this.apiService.httpDownloadFile('/LetterRequest/generatedExceptiinLetter/' + type , param);
}
} }

View File

@ -238,5 +238,7 @@ export class SalaryService {
DownloadPayslipForMultiple(param: any): Observable<HttpEvent<any>> { DownloadPayslipForMultiple(param: any): Observable<HttpEvent<any>> {
return this.apiService.httpPost<any>('/salary/DownloadPayslipForMultiple', param); return this.apiService.httpPost<any>('/salary/DownloadPayslipForMultiple', param);
} }
IsSalaryProcessed(salaryMonth: Date) {
return this.apiService.httpGet<boolean>('/salary' + '/IsSalaryprocessedMonthly' + '/' + salaryMonth.toDateString());
}
} }

View File

@ -130,4 +130,13 @@ export class ReportServices {
getAttendanceReport(param: any, reportType: string) { getAttendanceReport(param: any, reportType: string) {
return this.apiService.httpPost<any>('/Report/getAttendanceReport/' + reportType, param); return this.apiService.httpPost<any>('/Report/getAttendanceReport/' + reportType, param);
} }
getProfileReportData(param: any): Observable<HttpEvent<any>> {
return this.apiService.httpPost<any>('/Report/getProfileReportData/', param);
}
getGeneratedProfileReportData(param: any) {
return this.apiService.httpDownloadFile('/Report/getGeneratedProfileReport/', param);
}
getEmpDetailInfoReport(param: any): Observable<HttpEvent<any>> {
return this.apiService.httpPost<any>('/Report/getEmpDetailInfoReport/', param);
}
} }

View File

@ -19,6 +19,7 @@ import {LetterRequestByAdminApprovalComponent} from './letter-request-by-admin-a
import {ApproveFinancialDataComponent} from './approve-financial-data/approve-financial-data.component'; import {ApproveFinancialDataComponent} from './approve-financial-data/approve-financial-data.component';
import {AuthorizedPersonsComponent} from './authorized-persons/authorized-persons.component'; import {AuthorizedPersonsComponent} from './authorized-persons/authorized-persons.component';
import { LetterGenerateComponent } from './letter-generate/letter-generate.component'; import { LetterGenerateComponent } from './letter-generate/letter-generate.component';
import { ExceptionLetterGenerateComponent } from './exception-letter-generate/exception-letter-generate.component';
const routes: Routes = [ const routes: Routes = [
@ -31,6 +32,7 @@ const routes: Routes = [
{path: 'letter-generate', component: LetterGenerateComponent, canActivate: [AuthGuard]}, {path: 'letter-generate', component: LetterGenerateComponent, canActivate: [AuthGuard]},
{path: 'workflow-delegation-by-employee', component: WorkflowDelegationByEmployeeComponent, canActivate: [AuthGuard]}, {path: 'workflow-delegation-by-employee', component: WorkflowDelegationByEmployeeComponent, canActivate: [AuthGuard]},
{path: 'delegation-from-admin-panel', component: DelegationFromAdminPanelComponent, canActivate: [AuthGuard]}, {path: 'delegation-from-admin-panel', component: DelegationFromAdminPanelComponent, canActivate: [AuthGuard]},
{path: 'exception-letter-generate', component: ExceptionLetterGenerateComponent, canActivate: [AuthGuard]},
//{path: 'letter-request-by-employee-and-approval', component: LetterRequestByEmployeeAndApprovalComponent, canActivate: [AuthGuard]}, //{path: 'letter-request-by-employee-and-approval', component: LetterRequestByEmployeeAndApprovalComponent, canActivate: [AuthGuard]},
//{path: 'letter-request-approval', component: LetterRequestApprovalComponent, canActivate: [AuthGuard]}, //{path: 'letter-request-approval', component: LetterRequestApprovalComponent, canActivate: [AuthGuard]},
//{path: 'letter-print-by-admin-panel', component: LetterPrintByAdminPanelComponent, canActivate: [AuthGuard]}, //{path: 'letter-print-by-admin-panel', component: LetterPrintByAdminPanelComponent, canActivate: [AuthGuard]},

View File

@ -49,13 +49,14 @@ import { ApproveFinancialDataComponent } from './approve-financial-data/approve-
import { AuthorizedPersonsComponent } from './authorized-persons/authorized-persons.component'; import { AuthorizedPersonsComponent } from './authorized-persons/authorized-persons.component';
import { AuthorizedPersonComponent } from './authorized-persons/authorized-person/authorized-person.component'; import { AuthorizedPersonComponent } from './authorized-persons/authorized-person/authorized-person.component';
import { LetterGenerateComponent } from './letter-generate/letter-generate.component'; import { LetterGenerateComponent } from './letter-generate/letter-generate.component';
import { ExceptionLetterGenerateComponent } from './exception-letter-generate/exception-letter-generate.component';
@NgModule({ @NgModule({
declarations: [workflowRuleComponent, WorkFlowSetupComponent, WorkFlowSetupNewComponent, WorkFlowAdministrativeStatusComponent, declarations: [workflowRuleComponent, WorkFlowSetupComponent, WorkFlowSetupNewComponent, WorkFlowAdministrativeStatusComponent,
WorkFlowAdminComponent, WorkflowDelegationByEmployeeComponent, DelegationFromAdminPanelComponent, WorkFlowAdminComponent, WorkflowDelegationByEmployeeComponent, DelegationFromAdminPanelComponent,
LetterRequestApprovalComponent, LetterPrintByAdminPanelComponent, LetterRequestApprovalComponent, LetterPrintByAdminPanelComponent,
LetterRequestByAdminApprovalComponent, ApproveFinancialDataComponent, AuthorizedPersonsComponent, AuthorizedPersonComponent, LetterGenerateComponent LetterRequestByAdminApprovalComponent, ApproveFinancialDataComponent, AuthorizedPersonsComponent, AuthorizedPersonComponent, LetterGenerateComponent, ExceptionLetterGenerateComponent
], ],
imports: [ imports: [

View File

@ -0,0 +1,58 @@
<app-loading-panel> </app-loading-panel>
<div class="card" style="padding:10px;">
<div class="p-grid">
<div class="p-col-12">
<div class="p-grid">
<div class="p-col-4 p-md-2">
<label>Employee(s)</label>
</div>
<div class="p-col-8 p-md-4">
<!-- <app-employee-picker (ItemSelected)="GetSelectedEmployee($event)" [setSelectedEmp]="selectedEmps"
[MultiSelect]="true"></app-employee-picker> -->
<app-employee-picker (ItemSelected)="GetSelectedEmployee($event)"
[MultiSelect]="true"></app-employee-picker>
</div>
<div class="p-col-4 p-md-2">
<label>Letter</label>
</div>
<div class="p-col-8 p-md-4">
<kendo-dropdownlist [(ngModel)]="selectedreportType" [data]="reportTypes" [textField]="'text'"
[valueField]="'value'" [defaultItem]="{ text: 'Select Letter..', value: null }"
(valueChange)="onSelectReport($event)">
</kendo-dropdownlist>
</div>
<div class="p-col-12">
<kendo-grid #grid [data]="selectedEmps" [kendoGridSelectBy]="'employeeID'" [selectedKeys]="mySelection" [pageable]="false" [sortable]="true" [reorderable]="true"
[resizable]="true">
<!-- <ng-template kendoGridToolbarTemplate>
<button type="button" kendoButton icon="delete" class="kt-delete" (click)="onClickRemoveAll()">
Remove All
</button>
<kendo-grid-spacer></kendo-grid-spacer>
<label>Attendance Count: {{employeeList.length}} </label>
</ng-template> -->
<kendo-grid-checkbox-column [resizable]="false" [width]="45" showSelectAll="true">
</kendo-grid-checkbox-column>
<kendo-grid-column field="employeeNo" title="Employee No" [width]="150">
</kendo-grid-column>
<kendo-grid-column field="name" title="Employee Name" [width]="220">
</kendo-grid-column>
<kendo-grid-column field="departmentName" title="Department" [width]="220">
</kendo-grid-column>
<kendo-grid-column field="gradeName" title="Grade" [width]="220">
</kendo-grid-column>
<!-- <kendo-grid-column title="Actions" width="25%" align="middle">
<ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
<button kendoButton class="kt-delete" icon="delete" style="width: fit-content;"
(click)="onClickRemove(dataItem)">Remove</button>
</ng-template>
</kendo-grid-column> -->
</kendo-grid>
<div class="p-col-12" align="right">
<button kendoButton icon="upload" type="button" (click)="generateLetter()" [primary] = true>Generate</button>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,162 @@
import { error } from 'console';
import { Component, OnInit } from '@angular/core';
import { DynamicPicker, EnumDynamicpickerType } from '../../picker/dynamic-picker/Dynamic-Picker';
import { SearchEmployee } from 'src/app/_models/Employee/searchEmployee';
import { Router } from '@angular/router';
import { ApiService } from 'src/app/app.api.service';
import { HRMNotificationService } from 'src/app/app.notification.service';
import { loadingPanelService } from 'src/app/hrm-loding panel/loding.panel.service';
import { BasicService } from 'src/app/_services/Basic/basic.service';
import { Department } from 'src/app/_models/Basic/department';
import { Grade } from 'src/app/_models/Basic/grade';
import { EnumStatus } from '../../_models/enums';
import { Employee } from 'src/app/_models/Employee/employee';
import { LetterRequestService } from 'src/app/_services/letter-request/letter-request.service';
import { saveAs } from 'file-saver';
@Component({
selector: 'app-exception-letter-generate',
templateUrl: './exception-letter-generate.component.html',
styleUrls: ['./exception-letter-generate.component.scss']
})
export class ExceptionLetterGenerateComponent implements OnInit {
public selectedEmps: SearchEmployee[] = [];
public mySelection: number[] = [];
public selectedreportType: EnumExceptionLetterTemplateType;
public reportTypes = Object.keys(EnumExceptionLetterTemplateType)
.filter(key => !isNaN(Number(EnumExceptionLetterTemplateType[key])))
.map(key => ({
text: key.replace(/_/g, ' '),
value: EnumExceptionLetterTemplateType[key]
}));
public allDepartments: Department[];
public allGrades: Grade[];
constructor(
public router: Router, public loadingPanel: loadingPanelService,
public notificationService: HRMNotificationService,
public apiService: ApiService,
public basicService: BasicService, public letterRequestService: LetterRequestService) {
this.apiService.selectedMenuName = 'Employee Letter Generation';
}
ngOnInit(): void {
// this.basicService.getAllDepartment(EnumStatus.Active).subscribe(
// (resp) => {
// this.allDepartments = resp;
// },
// (err: any) => {
// this.notificationService.showError(err.error);
// }
// );
// this.basicService.getAllGrade(EnumStatus.Active).subscribe(
// (resp) => {
// this.allGrades = resp;
// },
// (err: any) => {
// this.notificationService.showError(err.error);
// }
// );
}
public GetSelectedEmployee(childData) {
this.selectedEmps = childData;
// this.selectedEmps.forEach(element => {
// element.departmentName = this.allDepartments.find(d => d.id == element.departmentID).name;
// element.gradeName = this.allDepartments.find(g => g.id == element.gradeID).name;
// });
}
public onSelectReport(value: any) {
debugger;
}
generateLetter() {
let employeeDataToGenerate: SearchEmployee[] = [];
this.selectedEmps.forEach(element => {
this.mySelection.forEach(item => {
if (element.employeeID == item) employeeDataToGenerate.push(element);
});
});
this.selectedreportType;
if (this.selectedreportType == undefined || this.selectedreportType['value'] == null) {
this.notificationService.showWarning("Please select a Letter to Generate");
return;
}
if (employeeDataToGenerate.length <= 0) {
this.notificationService.showWarning("Please select Employee to Generate Letter");
return;
}
this.loadingPanel.ShowLoadingPanel = true;
this.letterRequestService.generatedExceptiinLetter(this.selectedreportType['value'], employeeDataToGenerate).subscribe(
(resp: any[]) => {
debugger
if (resp.length > 0) {
resp.forEach(fileData => {
// this.downloadBlob(new Blob([fileData.fileContents], { type: 'application/msword' }), 'application/msword', fileData.fileDownloadName);
this.downloadFileWord(fileData.fileContents, fileData.fileDownloadName);
});
}
this.loadingPanel.ShowLoadingPanel = false;
},
(err: any) => {
this.notificationService.showError(err.error);
this.loadingPanel.ShowLoadingPanel = false;
}
);
}
private downloadBlob(data: any, type: string, fileName: string): void {
const blob: Blob = new Blob([data], { type: type });
// const fileName: string = this.workOrderBillReceive.UploadAttachment[0].OriginalFileName;
// const fileName: string = fileName;
const objectUrl: string = URL.createObjectURL(blob);
const a: HTMLAnchorElement = document.createElement('a') as HTMLAnchorElement;
a.href = objectUrl;
a.download = fileName;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(objectUrl);
}
downloadFileWord(blobContent, fileName) {
// const blob = new Blob([this.b64toBlob(blobContent, 'application/data:application/vnd.openxmlformats-officedocument.wordprocessingml.document', 1024)], {});
// saveAs(blob, fileName + '.docx');
const blob = new Blob([this.b64toBlob(blobContent, 'application/msword', 1024)], {});
saveAs(blob, fileName);
}
b64toBlob(b64Data, contentType, sliceSize) {
const byteCharacters = atob(b64Data);
const byteArrays = [];
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
const slice = byteCharacters.slice(offset, offset + sliceSize);
const byteNumbers = new Array(slice.length);
for (let i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
const blob = new Blob(byteArrays, { type: contentType });
return blob;
}
}
export enum EnumExceptionLetterTemplateType {
Letter_Template_Staff = 1,
Letter_Template_Worker = 2
}

View File

@ -55,6 +55,7 @@
<div class="card" *ngIf="showPopUp" class="blur-background"> <div class="card" *ngIf="showPopUp" class="blur-background">
<kendo-window [height]="600" title="{{PDFTitle}}" *ngIf="showPopUp" (close)="closeForm()" [style]="{'min-width': '70%','max-width': '100%', 'max-height': '100%'}"> <kendo-window [height]="600" title="{{PDFTitle}}" *ngIf="showPopUp" (close)="closeForm()" [style]="{'min-width': '70%','max-width': '100%', 'max-height': '100%'}">
<app-loading-panel></app-loading-panel>
<div class='embed-responsive'> <div class='embed-responsive'>
<iframe class="pdf-viewer" id="pdf-viewer-ml" type='application/pdf' [zoom]="zoomLevel"></iframe> <iframe class="pdf-viewer" id="pdf-viewer-ml" type='application/pdf' [zoom]="zoomLevel"></iframe>
</div> </div>

View File

@ -60,6 +60,7 @@ export class LetterGenerateComponent implements OnInit {
}; };
} }
this.showPopUp = true; this.showPopUp = true;
this.loadingPanelService.ShowLoadingPanel = true;
this.reportService.getAppointmentLetter(data).subscribe( this.reportService.getAppointmentLetter(data).subscribe(
(resp: any) => { (resp: any) => {
if (this.reportType === 'PDF'){ if (this.reportType === 'PDF'){

View File

@ -13,7 +13,8 @@ export class ApiService {
public isSSO = false; public isSSO = false;
public versionDeployement = false; public versionDeployement = false;
public versionNumber = `V-${GlobalfunctionExtension.generateVersionNumber(new Date(2024, 10, 3))}-`+"01"; // public versionNumber = `V-${GlobalfunctionExtension.generateVersionNumber(new Date(2025, 1, 25))}-`+"01";
public versionNumber = `V-20250427-`+"01";
public static BASE_URL = ''; public static BASE_URL = '';
public base_url = ''; public base_url = '';
// public currentLink = ''; // public currentLink = '';
@ -167,6 +168,10 @@ export class ApiService {
return (str === undefined || str === null || str.trim() === '') ? undefined : str; return (str === undefined || str === null || str.trim() === '') ? undefined : str;
} }
getApiDefaultBoolData(value: boolean) {
return (value === undefined || value === null) ? false : value;
}
getApiDateString(dDate: Date) { getApiDateString(dDate: Date) {
if (dDate === undefined || dDate === null) { if (dDate === undefined || dDate === null) {
return dDate; return dDate;

View File

@ -282,6 +282,9 @@
set set
</button> </button>
<kendo-grid-spacer></kendo-grid-spacer> <kendo-grid-spacer></kendo-grid-spacer>
<label for="status" style="font-weight: bold;">Remarks</label>
<kendo-textbox placeholder="Remarks" [(ngModel)]="_remarks" style="width: 30%;"></kendo-textbox>
</ng-template> </ng-template>
<kendo-grid-column field="shiftID" title="Date" width="8%"> <kendo-grid-column field="shiftID" title="Date" width="8%">
<ng-template kendoGridCellTemplate let-dataItem> <ng-template kendoGridCellTemplate let-dataItem>

View File

@ -39,6 +39,7 @@ export class AttendanceManualEditForSingleEmployeeComponent implements OnInit {
selectedOutTime: Date; selectedOutTime: Date;
dailyAttenProcessList: DailyAttnProcess[]; dailyAttenProcessList: DailyAttnProcess[];
_overTime: number = 0; _overTime: number = 0;
_remarks: string = "";
statusList = [ statusList = [
{ value: 1, name: 'Present' }, { value: 1, name: 'Present' },
{ value: 2, name: 'Absent' }, { value: 2, name: 'Absent' },
@ -223,6 +224,9 @@ export class AttendanceManualEditForSingleEmployeeComponent implements OnInit {
} }
this.dailyAttenProcessList.forEach(x => { this.dailyAttenProcessList.forEach(x => {
if(this._remarks){
x.comments = this._remarks;
}
x.isManualEntry = true; x.isManualEntry = true;
if (x.wfStatus != EnumWFAttnStatus.None) { if (x.wfStatus != EnumWFAttnStatus.None) {
this.notificationService.showError(x.attnDate.toDateString() +" is in approval stage, so manual edit is not allowed"); this.notificationService.showError(x.attnDate.toDateString() +" is in approval stage, so manual edit is not allowed");

View File

@ -329,7 +329,7 @@
<div class="p-col-12" align="right"> <div class="p-col-12" align="right">
<button kendoButton icon="arrow-left" style="margin-right: 20px;" class="k-button k-primary" *ngIf="isVisibleCordinatorPicker" (click)="goBack()"> <button kendoButton icon="arrow-left" style="margin-right: 20px;" class="k-button k-primary" *ngIf="isVisibleCordinatorPicker" (click)="goBack()">
Back </button> Back </button>
<button icon="rotate" kendoButton class="k-button k-primary" (click)="update()"> <button icon="save" kendoButton class="k-button k-primary" (click)="update()">
Update Update
</button> </button>
</div> </div>

View File

@ -34,7 +34,7 @@ export class AttendanceManualEditForMultipleEmployeeComponent implements OnInit
approvalRole: string; approvalRole: string;
isVisibleEmpPicker: boolean = false; isVisibleEmpPicker: boolean = false;
isVisibleCordinatorPicker: boolean = false; isVisibleCordinatorPicker: boolean = false;
isVisiblelmPicker: boolean= false; isVisiblelmPicker: boolean = false;
selectedShiftID: number; selectedShiftID: number;
selectedStatus: EnumAttendanceType; selectedStatus: EnumAttendanceType;
selectedAttnDate: Date; selectedAttnDate: Date;
@ -85,7 +85,7 @@ export class AttendanceManualEditForMultipleEmployeeComponent implements OnInit
this.selectInTime = new Date(); this.selectInTime = new Date();
this.selectedOutTime = new Date(); this.selectedOutTime = new Date();
this.loadDropDownLists(); this.loadDropDownLists();
// this.selectedStatus = EnumAttendanceType.Present; // this.selectedStatus = EnumAttendanceType.Present;
this.getPendindBillings(); this.getPendindBillings();
} }
@ -143,7 +143,7 @@ export class AttendanceManualEditForMultipleEmployeeComponent implements OnInit
}, },
() => { () => {
if (this.shifts.length > 0) { if (this.shifts.length > 0) {
// this.selectedShiftID = this.shifts[0].id; // this.selectedShiftID = this.shifts[0].id;
this.shifts[0].inTime = new Date(this.shifts[0].inTime); this.shifts[0].inTime = new Date(this.shifts[0].inTime);
this.shifts[0].outTime = new Date(this.shifts[0].outTime); this.shifts[0].outTime = new Date(this.shifts[0].outTime);
this.dateChange(); this.dateChange();
@ -207,7 +207,6 @@ export class AttendanceManualEditForMultipleEmployeeComponent implements OnInit
} }
updateobject(type: number) { updateobject(type: number) {
debugger;
if (this.selectedRemarks != undefined) { if (this.selectedRemarks != undefined) {
if (this.remarksList.find(y => y.value == this.selectedRemarks).name == "Other") { if (this.remarksList.find(y => y.value == this.selectedRemarks).name == "Other") {
this.isOtherRemarks = true; this.isOtherRemarks = true;
@ -215,6 +214,13 @@ export class AttendanceManualEditForMultipleEmployeeComponent implements OnInit
this.isOtherRemarks = false; this.isOtherRemarks = false;
} }
} }
else if (type == 3){
let oShift : Shift = this.shifts.find(x => x.id === this.selectedShiftID);
if(oShift && oShift.id > 0){
this.selectInTime = new Date(oShift.inTime);
this.selectedOutTime = new Date(oShift.outTime);
}
}
this.dailyAttenProcessList.forEach(x => { this.dailyAttenProcessList.forEach(x => {
if (type == 1) { if (type == 1) {
x.actualInTime = x.inTime; x.actualInTime = x.inTime;
@ -274,7 +280,8 @@ export class AttendanceManualEditForMultipleEmployeeComponent implements OnInit
if (attnRequest.length == 0) return; if (attnRequest.length == 0) return;
this.attendanceServices.getDailyAttnProcessByEmp(attnRequest).subscribe( // this.attendanceServices.getDailyAttnProcessByEmp(attnRequest).subscribe(
this.attendanceServices.getDailyAttnProcessByEmpForManualEntry(attnRequest).subscribe(
(resp) => { (resp) => {
if (this.dailyAttenProcessList == undefined || this.dailyAttenProcessList.length == 0) { if (this.dailyAttenProcessList == undefined || this.dailyAttenProcessList.length == 0) {
@ -365,14 +372,29 @@ export class AttendanceManualEditForMultipleEmployeeComponent implements OnInit
} }
var msg: string = ""; var msg: string = "";
this.dailyAttenProcessList.forEach(x => { this.dailyAttenProcessList.forEach(x => {
if(this.selectedRemarks){
let remarks = this.remarksList.find(y => y.value == this.selectedRemarks);
if(remarks){
x.comments = remarks.name;
}
}
x.isManualEntry = true; x.isManualEntry = true;
if (x.wfStatus != EnumWFAttnStatus.None) { if (x.wfStatus != EnumWFAttnStatus.None) {
msg = msg + "Employee: " + x.employee.employeeNo + ". Datais in approval stage, so manual edit is not allowed; "; msg = msg + "Employee: " + x.employee.employeeNo + ". Datais in approval stage, so manual edit is not allowed; ";
} }
if ((x.inTime == null || x.outTime == null) && x.attenType == EnumAttendanceType.Present) { if ((x.inTime == null && x.outTime == null) && x.attenType == EnumAttendanceType.Present) {
msg = msg + "Employee: " + x.employee.employeeNo + ", Status present is not allowed while inTime and outTime is not entered.; "; msg = msg + "Employee: " + x.employee.employeeNo + ", Status present is not allowed while In Time and Out Time is not entered.; ";
}
else {
if (x.inTime != null && x.outTime == null) {
x.onlyManualInTime = true;
}
if (x.inTime == null && x.outTime != null) {
x.onlyManualOutTime = true;
}
} }
var bvalid = false; var bvalid = false;

View File

@ -2,7 +2,7 @@
<form> <form>
<div class="card card-w-title"> <div class="card card-w-title">
<div class="p-grid form-group"> <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"> <div class="p-col-12">
<label for="processFromDate">Process From</label> <label for="processFromDate">Process From</label>
</div> </div>
@ -17,7 +17,7 @@
</div> </div>
</div> </div>
<div class="p-col-12 p-md-5"> <div class="p-col-12 p-md-4">
<div class="p-col-12"> <div class="p-col-12">
<label for="processToDate">Process To</label> <label for="processToDate">Process To</label>
</div> </div>
@ -33,12 +33,23 @@
</div> </div>
<div class="p-col-12 p-md-2"> <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"> <div class="p-col-12">
<label for="employeePicker">Select Employee</label> <label for="employeePicker">Select Employee</label>
</div> </div>
<div class="p-col-12"> <div class="p-col-12">
<app-employee-picker <app-employee-picker
[MultiSelect]="true" [MultiSelect]="true"
[isActive]="withEmployee"
(ItemSelected)="GetSelectedEmployee($event)" (ItemSelected)="GetSelectedEmployee($event)"
></app-employee-picker> ></app-employee-picker>
</div> </div>
@ -47,10 +58,22 @@
<div class="p-grid form-group"> <div class="p-grid form-group">
<div class="p-col-12 p-md-5"> <div class="p-col-12 p-md-5">
<div class="p-col-12"> <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> -->
<button class="link-button"
icon="window"
kendoButton
(click)="onClickNotInWorkPlanEmployee()"
[disabled]="employees.length == 0"
style="text-decoration: none; font-weight: bold;">
Number of Employees not in Work Plan : {{ employees.length }}
</button>
</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>
<div class="p-col-12"> <div class="p-col-12">
<button icon="rotate" <button icon="cogs"
kendoButton kendoButton
class="k-button k-primary" class="k-button k-primary"
(click)="onSave($event)"> (click)="onSave($event)">
@ -64,3 +87,26 @@
</div> </div>
</div> </div>
</form> </form>
<p-dialog header="Not in Work Plan Employees" [(visible)]="showModal" modal="modal"
showEffect="fade" [style]="{width: '60%', maxHeight:'475px', position: 'absolute'}">
<p-scrollPanel mode="native">
<div class="p-grid">
<div class="p-col-12">
<fieldset>
<kendo-grid [data]="employees" [pageable]="false" [sortable]="true" [reorderable]="true" [resizable]="true">
<kendo-grid-column field="sortOrder" title="SL" width="15%">
</kendo-grid-column>
<kendo-grid-column field="employeeNo" title="Employee No" width="20%">
</kendo-grid-column>
<kendo-grid-column field="name" title="Employee Name" width="25%">
</kendo-grid-column>
<kendo-grid-column field="gradeName" title="Grade" width="30%">
</kendo-grid-column>
</kendo-grid>
</fieldset>
</div>
</div>
</p-scrollPanel>
</p-dialog>

View File

@ -23,7 +23,10 @@ export class AttendanceProcessComponent {
selectedEmployees: SearchEmployee[] = []; selectedEmployees: SearchEmployee[] = [];
notYetAssingedList: EmployeeWorkPlanSetup[]; notYetAssingedList: EmployeeWorkPlanSetup[];
employees: any[] = []; employees: any[] = [];
processStatus:string = ""; lastProcessDate: Date;
processStatus: string = "";
withEmployee: boolean = false;
showModal: boolean = false;
constructor(public attnService: AttendanceServices, public datatransferservice: DataTransferService, constructor(public attnService: AttendanceServices, public datatransferservice: DataTransferService,
public loadingPanel: loadingPanelService, public loadingPanel: loadingPanelService,
public notificationService: HRMNotificationService, public notificationService: HRMNotificationService,
@ -35,12 +38,24 @@ export class AttendanceProcessComponent {
} }
ngOnInit() { ngOnInit() {
this.notYetAssingedList =[] this.notYetAssingedList = []
this.fromDate = new Date(); this.fromDate = new Date();
this.toDate = new Date(); this.toDate = new Date();
this.attnService.getNotYetAssiged().subscribe( this.attnService.getNotYetAssiged().subscribe(
(x) => { (x) => {
this.employees = x; this.employees = x;
debugger
},
(x) => {
},
() => {
});
this.attnService.getLastAttnProcessDate().subscribe(
(resp) => {
if (resp != null) {
this.lastProcessDate = new Date(resp);
}
}, },
(x) => { (x) => {
}, },
@ -81,12 +96,19 @@ export class AttendanceProcessComponent {
attnRequest.push({ "fromDate": this.fromDate, "toDate": this.toDate, "isWithEmployee": true, "employeeID": 0 }); attnRequest.push({ "fromDate": this.fromDate, "toDate": this.toDate, "isWithEmployee": true, "employeeID": 0 });
if (this.selectedEmployees != undefined && this.selectedEmployees.length > 0) { if (this.withEmployee) {
attnRequest = []; if (this.selectedEmployees != undefined && this.selectedEmployees.length > 0) {
this.selectedEmployees.forEach(x => { attnRequest = [];
attnRequest.push({ "fromDate": this.fromDate, "toDate": this.toDate, "isWithEmployee": false, "employeeID": x.employeeID }); 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.loadingPanel.ShowLoadingPanel = true;
@ -106,4 +128,18 @@ export class AttendanceProcessComponent {
this.processStatus = "Attendance Process is completed successfully."; this.processStatus = "Attendance Process is completed successfully.";
}); });
} }
public checkBoxChange() {
debugger
if (this.withEmployee) {
this.withEmployee = false;
this.selectedEmployees = [];
}
else
this.withEmployee = true;
}
public onClickNotInWorkPlanEmployee() {
this.showModal = true;
}
} }

View File

@ -6,6 +6,8 @@ import { InputsModule, TextBoxModule } from '@progress/kendo-angular-inputs';
import { ChartsModule } from '@progress/kendo-angular-charts'; import { ChartsModule } from '@progress/kendo-angular-charts';
import { CardModule as kendoCardModule } from '@progress/kendo-angular-layout'; import { CardModule as kendoCardModule } from '@progress/kendo-angular-layout';
import { DialogsModule } from '@progress/kendo-angular-dialog'; import { DialogsModule } from '@progress/kendo-angular-dialog';
import { DialogModule } from 'primeng/dialog';
import { ScrollPanelModule } from 'primeng/scrollpanel';
import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { PanelModule } from 'primeng/panel'; import { PanelModule } from 'primeng/panel';
import { DropDownsModule } from '@progress/kendo-angular-dropdowns'; import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
@ -81,6 +83,8 @@ import { OrganizationManagementModule } from '../organization-management/organiz
FormsModule, FormsModule,
ReactiveFormsModule, ReactiveFormsModule,
DialogsModule, DialogsModule,
DialogModule,
ScrollPanelModule,
CommonModule, CommonModule,
GridModule, GridModule,
InputsModule, InputsModule,

View File

@ -11,13 +11,25 @@
<app-employee-picker [MultiSelect]="true" <app-employee-picker [MultiSelect]="true"
(ItemSelected)="GetSelectedEmployee($event)"></app-employee-picker> (ItemSelected)="GetSelectedEmployee($event)"></app-employee-picker>
</div> </div>
<div class="rosterAssignmentControls">
<strong>
<label>Roster Type: </label>
</strong>
</div>
<div class="rosterAssignmentControls">
<kendo-dropdownlist [(ngModel)]="selectedWorkPlanTypeIsFixed" [data]="workPlanTypes"
[defaultItem]="{ text: 'Select Roster Type..', value: null }" [textField]="'text'" [valueField]="'value'"
(valueChange)="onChangeWorkPlanType($event)" [valuePrimitive]="true"
class="form-control form-control-sm input-sm" formControlName="type">
</kendo-dropdownlist>
</div>
<div class="rosterAssignmentControls"> <div class="rosterAssignmentControls">
<strong> <strong>
<label>Roster: </label> <label>Roster: </label>
</strong> </strong>
</div> </div>
<div class="rosterAssignmentControls"> <div class="rosterAssignmentControls">
<kendo-dropdownlist [(ngModel)]="selectedWorkPlanID" [data]="workPlanGroupList" <kendo-dropdownlist [(ngModel)]="selectedWorkPlanID" [data]="workPlanGroupListByType"
[defaultItem]="{ name: 'Select..', value: null }" [textField]="'name'" [valueField]="'id'" [defaultItem]="{ name: 'Select..', value: null }" [textField]="'name'" [valueField]="'id'"
(valueChange)="populateEmpWorkPlanByWorkGroup($event)" [valuePrimitive]="true" (valueChange)="populateEmpWorkPlanByWorkGroup($event)" [valuePrimitive]="true"
class="form-control form-control-sm input-sm" formControlName="group"> class="form-control form-control-sm input-sm" formControlName="group">
@ -54,7 +66,7 @@
</div> </div>
</form> </form>
</div> </div>
<kendo-grid [data]="empWorkPlanSetupList" [height]="380" [filterable]="true" [kendoGridBinding]="empWorkPlanSetupList"> <kendo-grid [kendoGridBinding]="empWorkPlanSetupList" [height]="380" [filterable]="true">
<ng-template kendoGridToolbarTemplate> <ng-template kendoGridToolbarTemplate>
<label>Count: {{ this.empWorkPlanSetupList.length }}</label> <label>Count: {{ this.empWorkPlanSetupList.length }}</label>
<kendo-grid-spacer></kendo-grid-spacer> <kendo-grid-spacer></kendo-grid-spacer>

View File

@ -31,16 +31,23 @@ export class EchotexRosterAssignmentComponent implements OnInit {
workPlanGroupName = ''; workPlanGroupName = '';
workPlanGroupInitialShift = ''; workPlanGroupInitialShift = '';
workPlanGroupList: WorkPlanGroup[]; workPlanGroupList: WorkPlanGroup[];
workPlanGroupListByType: WorkPlanGroup[] = [];
selectedEmployees: SearchEmployee[]; selectedEmployees: SearchEmployee[];
employees: Employee[]; employees: Employee[];
empIds: number[] = []; empIds: number[] = [];
exportExcelFileName: string = ''; exportExcelFileName: string = '';
selectedWorkPlanTypeIsFixed: boolean;
selectedWorkPlanID: number; selectedWorkPlanID: number;
fixedWorkPlan: boolean = true; fixedWorkPlan: boolean = true;
startDate: Date; startDate: Date;
holidayDayOfWeekArray = Object.values(HolidayDayOfWeek); holidayDayOfWeekArray = Object.values(HolidayDayOfWeek);
workPlanTypes: { text: string, value: boolean| null }[] = [
{ text: 'Fixed', value: true },
{ text: 'Counter Clock', value: false }
]
constructor(public employeeService: EmployeeServices, constructor(public employeeService: EmployeeServices,
public attendanceServices: AttendanceServices, public attendanceServices: AttendanceServices,
public apiService: ApiService, public apiService: ApiService,
@ -85,6 +92,7 @@ export class EchotexRosterAssignmentComponent implements OnInit {
createForm() { createForm() {
this.rosterAssignmentForm = new FormBuilder().group({ this.rosterAssignmentForm = new FormBuilder().group({
type: ['', Validators.required],
group: ['', Validators.required], group: ['', Validators.required],
startDate: [''], startDate: [''],
}); });
@ -133,7 +141,7 @@ export class EchotexRosterAssignmentComponent implements OnInit {
ewpList.workPlanGroupID = this.selectedWorkPlanID; ewpList.workPlanGroupID = this.selectedWorkPlanID;
var wp = this.workPlanGroupList.find(w => w.id == this.selectedWorkPlanID); var wp = this.workPlanGroupList.find(w => w.id == this.selectedWorkPlanID);
ewpList.workPlanGroupNameView = wp.name; ewpList.workPlanGroupNameView = wp.name;
debugger; // debugger;
if (!this.fixedWorkPlan) { if (!this.fixedWorkPlan) {
ewpList.startDate = this.startDate; ewpList.startDate = this.startDate;
// ewpList.weekEndOn = this.getDayOfWeekEnum(ewpList.startDate); // ewpList.weekEndOn = this.getDayOfWeekEnum(ewpList.startDate);
@ -201,14 +209,14 @@ export class EchotexRosterAssignmentComponent implements OnInit {
loadGroupTypeAndInitialShift(workPlanGroup: WorkPlanGroup) { loadGroupTypeAndInitialShift(workPlanGroup: WorkPlanGroup) {
this.loadingPanel.ShowLoadingPanel = true; this.loadingPanel.ShowLoadingPanel = true;
this.empWorkPlanSetupList = []; this.empWorkPlanSetupList = [];
debugger; // debugger;
if (workPlanGroup.type != EnumWorkPlanGroup.Fixed && // if (workPlanGroup.type != EnumWorkPlanGroup.Fixed &&
(workPlanGroup.type != undefined || workPlanGroup.type != null)) { // (workPlanGroup.type != undefined || workPlanGroup.type != null)) {
this.fixedWorkPlan = false; // this.fixedWorkPlan = false;
this.startDate = new Date(); // this.startDate = new Date();
} else { // } else {
this.fixedWorkPlan = true; // this.fixedWorkPlan = true;
} // }
this.attendanceServices.getEmployeeWorkPlanSetupByWPGroupID(workPlanGroup.id).subscribe( this.attendanceServices.getEmployeeWorkPlanSetupByWPGroupID(workPlanGroup.id).subscribe(
(resp) => { (resp) => {
this.empWorkPlanSetupList = resp; this.empWorkPlanSetupList = resp;
@ -219,7 +227,7 @@ export class EchotexRosterAssignmentComponent implements OnInit {
}, },
() => { () => {
//console.log(this.empWorkPlanSetupList); //console.log(this.empWorkPlanSetupList);
debugger; // debugger;
// if (this.empWorkPlanSetupList.length > 0) { // if (this.empWorkPlanSetupList.length > 0) {
// if (this.empWorkPlanSetupList[0].workPlanGroupType != EnumWorkPlanGroup.Fixed && // if (this.empWorkPlanSetupList[0].workPlanGroupType != EnumWorkPlanGroup.Fixed &&
// (this.empWorkPlanSetupList[0].workPlanGroupType != undefined || this.empWorkPlanSetupList[0].workPlanGroupType != null)) { // (this.empWorkPlanSetupList[0].workPlanGroupType != undefined || this.empWorkPlanSetupList[0].workPlanGroupType != null)) {
@ -331,8 +339,8 @@ export class EchotexRosterAssignmentComponent implements OnInit {
); );
} }
public getHolidayDayOfWeek( day: number): string { public getHolidayDayOfWeek(day: number): string {
debugger; // debugger;
day = day + 1; day = day + 1;
switch (day) { switch (day) {
case HolidayDayOfWeek.Sunday: case HolidayDayOfWeek.Sunday:
@ -365,4 +373,23 @@ export class EchotexRosterAssignmentComponent implements OnInit {
// return dayIndex as EnumDayOfWeek; // return dayIndex as EnumDayOfWeek;
// } // }
onChangeWorkPlanType(type: any) {
this.empWorkPlanSetupList = [];
this.workPlanGroupListByType = [];
this.selectedWorkPlanID = null;
this.fixedWorkPlan = true;
if (type == undefined || type == null) {
return;
}
else if (type){
this.workPlanGroupListByType = this.workPlanGroupList.filter(y => y.type == EnumWorkPlanGroup.Fixed);
}
else {
this.workPlanGroupListByType = this.workPlanGroupList.filter(y => y.type != EnumWorkPlanGroup.Fixed);
this.fixedWorkPlan = false;
this.startDate = new Date();
}
}
} }

View File

@ -26,7 +26,7 @@ export class IdCardPrintComponent implements OnInit {
selectedAuthorizePersonid = undefined; selectedAuthorizePersonid = undefined;
selectedReportTypeid = undefined; selectedReportTypeid = undefined;
reportTypes: { id: number, name: string }[] = []; reportTypes: { id: number, name: string }[] = [];
constructor(public notificctionService : HRMNotificationService, constructor(public notificationService : HRMNotificationService,
public reportService: ReportServices, public reportService: ReportServices,
public basicService: BasicService, public basicService: BasicService,
public employeeService: EmployeeServices, public employeeService: EmployeeServices,
@ -59,7 +59,8 @@ export class IdCardPrintComponent implements OnInit {
this.authorizedPersons = resp; this.authorizedPersons = resp;
}, },
(x)=>{ (x)=>{
console.log(x); this.notificationService.showError(x.error);
// console.log(x);
}, },
()=>{ ()=>{
} }
@ -67,15 +68,15 @@ export class IdCardPrintComponent implements OnInit {
} }
preview(reportType: string) { preview(reportType: string) {
if(this.selectedAuthorizePersonid === undefined){ if(this.selectedAuthorizePersonid === undefined){
this.notificctionService.showWarning("Please select Authorized Person first!","Warning"); this.notificationService.showWarning("Please select Authorized Person first!","Warning");
return; return;
} }
if(this.selectedReportTypeid === undefined){ if(this.selectedReportTypeid === undefined){
this.notificctionService.showWarning("Please select Report Type first!","Warning"); this.notificationService.showWarning("Please select Report Type first!","Warning");
return; return;
} }
if(this.isThreeYear!= true && this.isFiveYear!=true){ if(this.isThreeYear!= true && this.isFiveYear!=true){
this.notificctionService.showWarning("Please select Expire Date first!","Warning"); this.notificationService.showWarning("Please select Expire Date first!","Warning");
return; return;
} }
let empIds = SearchEmployee.getEmpIds(this.selectedEmps); let empIds = SearchEmployee.getEmpIds(this.selectedEmps);
@ -102,7 +103,8 @@ export class IdCardPrintComponent implements OnInit {
} }
}, },
(err) => { (err) => {
console.log(err); // console.log(err);
this.notificationService.showError(err.error);
this.loadingPanel.ShowLoadingPanel = false; this.loadingPanel.ShowLoadingPanel = false;
this.closeForm(); this.closeForm();
}, },

View File

@ -26,11 +26,12 @@
<kendo-dropdownlist <kendo-dropdownlist
style="width:100%" style="width:100%"
[data]="users" [data]="users"
[defaultItem]="{ userName: 'Select User', userID: null }" [defaultItem]="{ userName: 'Select User', id: null }"
[textField]="'userName'" [textField]="'userName'"
[valueField]="'userID'" [valueField]="'id'"
[(ngModel)]="selectedUser" [(ngModel)]="selectedUser"
(valueChange)="onUserChange($event)" (valueChange)="onUserChange($event)"
[disabled]="!(_selectedPayroll != null && _selectedRoleType != null) "
> >
</kendo-dropdownlist> </kendo-dropdownlist>
</div> </div>
@ -48,6 +49,7 @@
[valueField]="'id'" [valueField]="'id'"
[valuePrimitive]="true" [valuePrimitive]="true"
(valueChange)="onPayrollChange($event)" (valueChange)="onPayrollChange($event)"
[disabled]="!_selectedRoleType"
> >
</kendo-dropdownlist> </kendo-dropdownlist>
</div> </div>
@ -59,10 +61,11 @@
<kendo-dropdownlist class="form-control form-control-sm input-sm" <kendo-dropdownlist class="form-control form-control-sm input-sm"
style="width:100%" style="width:100%"
[data]="permissionTypes" [data]="permissionTypes"
[defaultItem]="{ name: 'Select Permission Type', id: null }" [defaultItem]="{ name: 'Select Permission Type', value: null }"
[textField]="'name'" [textField]="'name'"
[valueField]="'id'" [valueField]="'value'"
(selectionChange)="EventPermissionType($event)" (selectionChange)="EventPermissionType($event)"
[disabled]="!_selectedPayroll"
> >
</kendo-dropdownlist> </kendo-dropdownlist>
</div> </div>

View File

@ -10,13 +10,13 @@ import { DataTransferService } from '../../data.transfer.service';
import { ApiService } from '../../app.api.service'; import { ApiService } from '../../app.api.service';
import { User } from '../../_models/Authentication/user'; import { User } from '../../_models/Authentication/user';
import { EnumAuthStatus, EnumExtension, TempEnumAuthStatus } from '../../_models/enums'; import { EnumAuthStatus, EnumExtension, TempEnumAuthStatus } from '../../_models/enums';
import {PayrollType} from '../../_models/Authentication/payrollType'; import { PayrollType } from '../../_models/Authentication/payrollType';
import {Employee} from '../../_models/Employee/employee'; import { Employee } from '../../_models/Employee/employee';
import {Grade} from '../../_models/Basic/grade'; import { Grade } from '../../_models/Basic/grade';
import {Department} from '../../_models/Basic/department'; import { Department } from '../../_models/Basic/department';
import {Designation} from '../../_models/HRBasic/designation'; import { Designation } from '../../_models/HRBasic/designation';
import {Location} from '../../_models/Basic/location'; import { Location } from '../../_models/Basic/location';
import {DynamicPicker, EnumDynamicpickerType} from '../../picker/dynamic-picker/Dynamic-Picker'; import { DynamicPicker, EnumDynamicpickerType } from '../../picker/dynamic-picker/Dynamic-Picker';
import { DataPermission } from 'src/app/_models/Basic/DataPermission'; import { DataPermission } from 'src/app/_models/Basic/DataPermission';
@ -52,19 +52,25 @@ export class DataPermssionComponent implements OnInit {
public isLocation: boolean = false; public isLocation: boolean = false;
onUserTypeChange(_selectedRoleType: any): void { onUserTypeChange(_selectedRoleType: any): void {
this.utilityHandlerService.ShowLoadingPanel = true; if (this._selectedRoleType.value != null) {
this.userService.GetUsers(this._selectedRoleType.value).subscribe( this.utilityHandlerService.ShowLoadingPanel = true;
(x) => { this.userService.GetUsers(this._selectedRoleType.value).subscribe(
this.users = x; (x) => {
this.utilityHandlerService.ShowLoadingPanel = false; this.users = x;
}, this.utilityHandlerService.ShowLoadingPanel = false;
(x) => { },
this.notificationService.showError(x); (x) => {
this.utilityHandlerService.ShowLoadingPanel = false; this.notificationService.showError(x);
}, this.utilityHandlerService.ShowLoadingPanel = false;
() => { },
this.utilityHandlerService.ShowLoadingPanel = false; () => {
}); this.utilityHandlerService.ShowLoadingPanel = false;
});
}
else {
this.users = [];
this.selectedUser = undefined;
}
} }
EventPermissionType(selectedPermissionType: any): void { EventPermissionType(selectedPermissionType: any): void {
@ -80,11 +86,13 @@ export class DataPermssionComponent implements OnInit {
} }
onUserChange(selectedUserID: any): void { onUserChange(selectedUserID: any): void {
this._selectedUser = selectedUserID; if(selectedUserID.id != null){
this._userID = this._selectedUser.id; this._selectedUser = selectedUserID;
this._userID = this._selectedUser.id;
if (this._userID != undefined && this._selectedPayroll != undefined) if (this._userID != undefined && this._selectedPayroll != undefined)
this.loadGridView() this.loadGridView()
}
} }
onPayrollChange(selectedPayrollID: any): void { onPayrollChange(selectedPayrollID: any): void {

View File

@ -184,8 +184,10 @@ export class UserRoleEntryComponent implements OnInit {
userRole.payrollTypeID = this._selectedPayrollTypeid; userRole.payrollTypeID = this._selectedPayrollTypeid;
userRole.employeeID = u.employeeID; userRole.employeeID = u.employeeID;
} }
if (this._selectedRoleType == EnumRoleType.Admin) if (this._selectedRoleType == EnumRoleType.Admin){
userRole.userID = u.id; userRole.userID = u.id;
userRole.userRoleStatus = EnumAuthStatus.Active;
}
userRole.loginIDView = u.loginID; userRole.loginIDView = u.loginID;
userRole.roleID = r; userRole.roleID = r;

View File

@ -10,9 +10,10 @@
<div class="p-col-12 p-md-6 p-lg-4" > <div class="p-col-12 p-md-6 p-lg-4" >
<kendo-dropdownlist [(ngModel)]="selectedEducationTypeID" [data]="educationTypes" <kendo-dropdownlist [(ngModel)]="selectedEducationTypeID" [data]="educationTypes"
[defaultItem]="{ description: 'Select a Level', id: null }" [textField]="'description'" [defaultItem]="{ description: 'Select a Level', id: null }" [textField]="'description'"
[valueField]="'id'" [valuePrimitive]="true" (valueChange)="selectEducationTypeEvent($event)" [valueField]="'id'" [valuePrimitive]="true"
class="form-control form-control-sm input-sm" formControlName="educationTypePicker" class="form-control form-control-sm input-sm" formControlName="educationTypePicker"
style="width:100%;"> style="width:100%;">
<!-- (valueChange)="selectEducationTypeEvent($event)" -->
</kendo-dropdownlist> </kendo-dropdownlist>
</div> </div>
@ -23,9 +24,10 @@
<kendo-dropdownlist [(ngModel)]="selectedEducationLevelID" [data]="educationLevels" <kendo-dropdownlist [(ngModel)]="selectedEducationLevelID" [data]="educationLevels"
[defaultItem]="{ description: 'Select Exam / Degree Title', id: null }" [textField]="'description'" [defaultItem]="{ description: 'Select Exam / Degree Title', id: null }" [textField]="'description'"
[valueField]="'id'" [valuePrimitive]="true" class="form-control form-control-sm input-sm" [valueField]="'id'" [valuePrimitive]="true" class="form-control form-control-sm input-sm"
formControlName="educationLevelPicker" (valueChange)="selectEducationLevelEvent($event)" formControlName="educationLevelPicker"
[disabled]="selectedEducationTypeID == undefined || selectedEducationTypeID == null"
style="width:100%;"> style="width:100%;">
<!-- (valueChange)="selectEducationLevelEvent($event)"
[disabled]="selectedEducationTypeID == undefined || selectedEducationTypeID == null" -->
</kendo-dropdownlist> </kendo-dropdownlist>
</div> </div>
@ -36,10 +38,10 @@
<kendo-dropdownlist [(ngModel)]="selectedInstitutionID" [data]="institutions" <kendo-dropdownlist [(ngModel)]="selectedInstitutionID" [data]="institutions"
[defaultItem]="{ name: 'Select institution/Board', id: null }" [textField]="'name'" [defaultItem]="{ name: 'Select institution/Board', id: null }" [textField]="'name'"
[valueField]="'id'" [valuePrimitive]="true" class="form-control form-control-sm input-sm" [valueField]="'id'" [valuePrimitive]="true" class="form-control form-control-sm input-sm"
[disabled]="(selectedEducationTypeID == undefined ||selectedEducationTypeID == null) || (selectedEducationLevelID == undefined || selectedEducationLevelID == null)"
[filterable]="true" (filterChange)="handleFilterInstitution($event)" [filterable]="true" (filterChange)="handleFilterInstitution($event)"
(valueChange)="selectInstitutionEvent($event)" formControlName="institutionPicker" (valueChange)="selectInstitutionEvent($event)" formControlName="institutionPicker"
style="width:100%;"> style="width:100%;">
<!-- [disabled]="(selectedEducationTypeID == undefined ||selectedEducationTypeID == null) || (selectedEducationLevelID == undefined || selectedEducationLevelID == null)" -->
</kendo-dropdownlist> </kendo-dropdownlist>
</div> </div>
@ -50,10 +52,10 @@
<kendo-dropdownlist class="form-control form-control-sm" id="subject" [data]="educationDiscipline" <kendo-dropdownlist class="form-control form-control-sm" id="subject" [data]="educationDiscipline"
[defaultItem]="{ description: 'Select a discipline', id: null }" [textField]="'description'" [defaultItem]="{ description: 'Select a discipline', id: null }" [textField]="'description'"
[valueField]="'id'" [valuePrimitive]="true" [(ngModel)]="selectedDisciplineID" [valueField]="'id'" [valuePrimitive]="true" [(ngModel)]="selectedDisciplineID"
[disabled]="isEditActive"
[disabled]="selectedEducationLevelID == undefined || selectedEducationLevelID == null"
[filterable]="true" (filterChange)="handleFilter($event)" formControlName="disciplinePicker" [filterable]="true" (filterChange)="handleFilter($event)" formControlName="disciplinePicker"
style="width:100%"> style="width:100%">
<!-- [disabled]="isEditActive"
[disabled]="selectedEducationLevelID == undefined || selectedEducationLevelID == null" -->
</kendo-dropdownlist> </kendo-dropdownlist>
</div> </div>
@ -94,19 +96,23 @@
</div> </div>
<div class="p-col-12 p-md-6 p-lg-2" *ngIf="isGrade" style="margin: auto;"> <div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
<!-- *ngIf="isGrade" -->
<label for="txtCgpaObtained">CGPA/Marks</label> <label for="txtCgpaObtained">CGPA/Marks</label>
</div> </div>
<div class="p-col-12 p-md-6 p-lg-4" *ngIf="isGrade" > <div class="p-col-12 p-md-6 p-lg-4">
<!-- *ngIf="isGrade" -->
<input id="txtCgpaObtained" formControlName="gpaOrMarks" [(ngModel)]="academic.gpaOrMarks" <input id="txtCgpaObtained" formControlName="gpaOrMarks" [(ngModel)]="academic.gpaOrMarks"
type="number" style="width: 100%;" pInputText /> type="number" style="width: 100%;" pInputText />
</div> </div>
<div class="p-col-12 p-md-6 p-lg-2" *ngIf="isGrade" > <div class="p-col-12 p-md-6 p-lg-2">
<!-- *ngIf="isGrade" -->
<label for="txtCgpaOutOf">Out of</label> <label for="txtCgpaOutOf">Out of</label>
</div> </div>
<div class="p-col-12 p-md-6 p-lg-4" *ngIf="isGrade" style="margin: auto;"> <div class="p-col-12 p-md-6 p-lg-4"style="margin: auto;">
<!-- *ngIf="isGrade" -->
<input id="txtCgpaOutOf" style="width: 100%;" formControlName="outOf" [(ngModel)]="academic.outOf" <input id="txtCgpaOutOf" style="width: 100%;" formControlName="outOf" [(ngModel)]="academic.outOf"
type="number" pInputText /> type="number" pInputText />
</div> </div>

View File

@ -17,6 +17,7 @@ import { BasicService } from '../../../../_services/Basic/basic.service';
import { enumEmpFileUploadType, EnumStatus } from '../../../../_models/enums'; import { enumEmpFileUploadType, EnumStatus } from '../../../../_models/enums';
import { loadingPanelService } from '../../../../hrm-loding panel/loding.panel.service'; import { loadingPanelService } from '../../../../hrm-loding panel/loding.panel.service';
import { empFileuploads } from '../../../../_models/HREmployee/hrEmployee'; import { empFileuploads } from '../../../../_models/HREmployee/hrEmployee';
import { forkJoin } from 'rxjs';
@Component({ @Component({
selector: 'app-academic-entry', selector: 'app-academic-entry',
@ -115,84 +116,139 @@ export class AcademicEntryComponent implements OnInit {
// } // }
// } // }
loadData() { loadData() {
this.basicService.getAllEducationLevel().subscribe( // this.basicService.getAllEducationLevel().subscribe(
(resp) => { // (resp) => {
this.alleducationLevels = resp; // this.alleducationLevels = resp;
// },
// (err: any) => {
// console.log(err);
// },
// () => {
// // if (this.academic.id > 0) {
// // this.educationLevels = this.alleducationLevels//.filter(x => x.educationTypeID == this.academic.educationTypeID);
// // }
// // else {
// this.educationLevels = this.alleducationLevels//.filter(x => x.educationTypeID == this.academic.educationTypeID);
// // }
// this.basicService.getAllDiscipline().subscribe(
// (resp) => {
// this.alleducationDiscipline = resp;
// },
// (err: any) => {
// console.log(err);
// },
// () => {
// // if (this.academic.id > 0) {
// // // this.educationDiscipline = this.alleducationDiscipline.filter(x => x.educationLevelID == this.academic.educationLevelID);
// // // this.educationDiscipline = this.alleducationDiscipline.filter(x => x.id == this.academic.disciplineID);
// // this.educationDiscipline = this.alleducationDiscipline;
// // }
// // else {
// // this.educationDiscipline = this.alleducationDiscipline.filter(x => x.educationLevelID == this.academic.educationLevelID);
// this.educationDiscipline = this.alleducationDiscipline;
// // }
// this.basicService.getAllInstitutions().subscribe(
// (resp) => {
// this.allinstitutions = resp;
// },
// (err: any) => {
// console.log(err);
// },
// () => {
// if (this.academic.id > 0) {
// // this.institutions = this.allinstitutions.filter(x => x.boardRequired == this.academic.educationType.boardRequired);
// if (this.academic.institution != undefined && this.academic.institution.boardRequired)
// // this.institutions = this.allinstitutions.filter(x => x.id == this.academic.institutionID || x.boardRequired == true);
// this.institutions = this.allinstitutions.filter(x => x.boardRequired == true);
// else
// // this.institutions = this.allinstitutions.filter(x => x.educationTypeID == this.academic.educationTypeID);
// this.institutions = this.allinstitutions.filter(x => x.boardRequired == false);
// }
// //console.log(this.institutions);
// this.basicService.getAllResultTypesByStatus(EnumStatus.Regardless).subscribe(
// (resp) => {
// this.allresultTypes = resp;
// },
// (err: any) => {
// console.log(err);
// },
// () => {
// if (this.academic.id > 0)
// //console.log(this.allresultTypes);
// if (this.academic.id > 0) {
// let selectedEducationType: EducationType[] = this.educationTypes//.filter(x => x.id == this.academic.educationTypeID)
// // this.resultTypes = this.allresultTypes.filter(x => x.type == selectedEducationType[0].resultType);
// // if (selectedEducationType[0].resultType === 2 || selectedEducationType[0].resultType === 4) {
// // this.isGrade = true;
// // }
// // else {
// // this.isGrade = false;
// // }
// }
// let educationType = this.educationTypes.find(x => x.description.toLowerCase() == "academic");
// if (this.academic.id == 0 && educationType != undefined) {
// this.academic.educationTypeID = educationType.id;
// this.selectedEducationTypeID = this.academic.educationTypeID;
// this.academic.examDate = new Date().getFullYear();
// this.academic.passingYear = new Date().getFullYear();
// this.selectEducationTypeEvent(educationType.id);
// let descp = this.alleducationDiscipline.find(d => d.description.toLowerCase() == 'nil');
// this.academic.disciplineID = descp != undefined ? descp.id : 0;
// let inst = this.allinstitutions.find(d => d.name.toLowerCase() == 'Institute of Chartered Secretary of Bangladesh'.toLowerCase());
// this.academic.institutionID = inst != undefined ? inst.id : 0;
// }
// }
// );
// }
// );
// }
// );
// }
// );
const educationlevelService = this.basicService.getAllEducationLevel();
const disciplineService = this.basicService.getAllDiscipline();
const institutionService = this.basicService.getAllInstitutions();
const resultTyoeService = this.basicService.getAllResultTypesByStatus(EnumStatus.Regardless);
this.loadingPanelService.ShowLoadingPanel = true;
forkJoin(educationlevelService, disciplineService, institutionService, resultTyoeService).subscribe(
([res1, res2, res3, res4]) => {
this.alleducationLevels = res1;
this.alleducationDiscipline = res2;
this.allinstitutions = res3;
this.allresultTypes = res4;
}, },
(err: any) => { (x) => {
console.log(err); this.loadingPanelService.ShowLoadingPanel = false;
console.log(x);
this.notificationService.showError(x.error);
}, },
() => { () => {
if (this.academic.id > 0) { this.educationLevels = this.alleducationLevels;
this.educationLevels = this.alleducationLevels.filter(x => x.educationTypeID == this.academic.educationTypeID); this.educationDiscipline = this.alleducationDiscipline;
this.institutions = this.allinstitutions;
this.resultTypes = this.allresultTypes;
this.loadingPanelService.ShowLoadingPanel = false;
let educationType = this.educationTypes.find(x => x.description.toLowerCase() == "academic");
if (this.academic.id == 0 && educationType != undefined) {
this.academic.educationTypeID = educationType.id;
this.selectedEducationTypeID = this.academic.educationTypeID;
let descp = this.alleducationDiscipline.find(d => d.description.toLowerCase() == 'nil');
this.academic.disciplineID = descp != undefined ? descp.id : 0;
this.selectedDisciplineID = this.academic.disciplineID;
let inst = this.allinstitutions.find(d => d.name.toLowerCase() == 'Institute of Chartered Secretary of Bangladesh'.toLowerCase());
this.academic.institutionID = inst != undefined ? inst.id : 0;
this. selectedInstitutionID = this.academic.institutionID;
this.academic.examDate = new Date().getFullYear();
this.academic.passingYear = new Date().getFullYear();
// this.selectEducationTypeEvent(educationType.id);
} }
else {
this.educationLevels = this.alleducationLevels.filter(x => x.educationTypeID == this.academic.educationTypeID);
}
this.basicService.getAllDiscipline().subscribe(
(resp) => {
this.alleducationDiscipline = resp;
},
(err: any) => {
console.log(err);
},
() => {
if (this.academic.id > 0) {
// this.educationDiscipline = this.alleducationDiscipline.filter(x => x.educationLevelID == this.academic.educationLevelID);
// this.educationDiscipline = this.alleducationDiscipline.filter(x => x.id == this.academic.disciplineID);
this.educationDiscipline = this.alleducationDiscipline;
}
else {
// this.educationDiscipline = this.alleducationDiscipline.filter(x => x.educationLevelID == this.academic.educationLevelID);
this.educationDiscipline = this.alleducationDiscipline;
}
this.basicService.getAllInstitutions().subscribe(
(resp) => {
this.allinstitutions = resp;
},
(err: any) => {
console.log(err);
},
() => {
if (this.academic.id > 0) {
// this.institutions = this.allinstitutions.filter(x => x.boardRequired == this.academic.educationType.boardRequired);
if (this.academic.institution.boardRequired)
// this.institutions = this.allinstitutions.filter(x => x.id == this.academic.institutionID || x.boardRequired == true);
this.institutions = this.allinstitutions.filter(x => x.boardRequired == true);
else
// this.institutions = this.allinstitutions.filter(x => x.educationTypeID == this.academic.educationTypeID);
this.institutions = this.allinstitutions.filter(x => x.boardRequired == false);
}
//console.log(this.institutions);
this.basicService.getAllResultTypesByStatus(EnumStatus.Regardless).subscribe(
(resp) => {
this.allresultTypes = resp;
},
(err: any) => {
console.log(err);
},
() => {
if (this.academic.id > 0)
//console.log(this.allresultTypes);
if (this.academic.id > 0) {
let selectedEducationType: EducationType[] = this.educationTypes.filter(x => x.id == this.academic.educationTypeID)
// this.resultTypes = this.allresultTypes.filter(x => x.type == selectedEducationType[0].resultType);
// if (selectedEducationType[0].resultType === 2 || selectedEducationType[0].resultType === 4) {
// this.isGrade = true;
// }
// else {
// this.isGrade = false;
// }
}
}
);
}
);
}
);
} }
); );
} }
@ -210,8 +266,8 @@ export class AcademicEntryComponent implements OnInit {
} }
selectEducationTypeEvent(typeid: number) { selectEducationTypeEvent(typeid: number) {
if (typeid !== null) { if (typeid !== null) {
this.educationLevels = this.alleducationLevels.filter(x => x.educationTypeID == typeid); this.educationLevels = this.alleducationLevels//.filter(x => x.educationTypeID == typeid);
let selectedEducationType: EducationType[] = this.educationTypes.filter(x => x.id == this.academic.educationTypeID) let selectedEducationType: EducationType[] = this.educationTypes//.filter(x => x.id == this.academic.educationTypeID)
// this.institutions = this.allinstitutions.filter(x => x.boardRequired == selectedEducationType[0].boardRequired); // this.institutions = this.allinstitutions.filter(x => x.boardRequired == selectedEducationType[0].boardRequired);
// this.institutions = this.allinstitutions.filter(x => x.educationTypeID == typeid); // this.institutions = this.allinstitutions.filter(x => x.educationTypeID == typeid);
this.institutions = this.allinstitutions; this.institutions = this.allinstitutions;
@ -250,7 +306,7 @@ export class AcademicEntryComponent implements OnInit {
if (seletedInstitution.boardRequired == true) resultType = 1; if (seletedInstitution.boardRequired == true) resultType = 1;
else resultType = 2; else resultType = 2;
if (institutionid !== null) if (institutionid !== null)
this.resultTypes = this.allresultTypes.filter(x => x.type == resultType); this.resultTypes = this.allresultTypes//.filter(x => x.type == resultType);
this.selectedResultTypeID = null; this.selectedResultTypeID = null;
this.isGrade = false; this.isGrade = false;
@ -285,7 +341,7 @@ export class AcademicEntryComponent implements OnInit {
educationLevelPicker: ['', Validators.required], educationLevelPicker: ['', Validators.required],
disciplinePicker: ['', Validators.required], disciplinePicker: ['', Validators.required],
institutionPicker: ['', Validators.required], institutionPicker: ['', Validators.required],
resultTypePicker: ['', Validators.required], resultTypePicker: [''],
examHeldOn: ['', Validators.required], examHeldOn: ['', Validators.required],
passingYear: ['', Validators.required], passingYear: ['', Validators.required],
gpaOrMarks: [''], gpaOrMarks: [''],
@ -304,11 +360,12 @@ export class AcademicEntryComponent implements OnInit {
this.selectedResultTypeID = this.academic.resultTypeID; this.selectedResultTypeID = this.academic.resultTypeID;
} }
public onSave(e): void { public onSave(e): void {
debugger;
this.academic.educationTypeID = this.selectedEducationTypeID; this.academic.educationTypeID = this.selectedEducationTypeID;
this.academic.educationLevelID = this.selectedEducationLevelID; this.academic.educationLevelID = this.selectedEducationLevelID;
this.academic.institutionID = this.selectedInstitutionID; this.academic.institutionID = this.selectedInstitutionID;
this.academic.disciplineID = this.selectedDisciplineID; this.academic.disciplineID = this.selectedDisciplineID;
this.academic.resultTypeID = this.selectedResultTypeID; this.academic.resultTypeID = this.selectedResultTypeID != null ? this.selectedResultTypeID : 0;
if (this.employeeService.hrEmployee.id === undefined || this.employeeService.hrEmployee.id === 0) { if (this.employeeService.hrEmployee.id === undefined || this.employeeService.hrEmployee.id === 0) {
this.notificationService.showWarning('please select an employee'); this.notificationService.showWarning('please select an employee');
this.onCancel(null); this.onCancel(null);
@ -320,10 +377,9 @@ export class AcademicEntryComponent implements OnInit {
return; return;
} }
this.academic.createdBy = 0;
this.academic.employeeID = this.employeeService.hrEmployee.id; this.academic.employeeID = this.employeeService.hrEmployee.id;
this.academic.createdDate = new Date(this.academic.createdBy);
this.academic.createdBy = 0; this.academic.createdBy = 0;
this.academic.createdDate = new Date();
this.loadingPanelService.ShowLoadingPanel = true; this.loadingPanelService.ShowLoadingPanel = true;
this.employeeService.saveEmployeeAcademic(this.academic).subscribe( this.employeeService.saveEmployeeAcademic(this.academic).subscribe(
(resp) => { (resp) => {

View File

@ -57,6 +57,21 @@
[(ngModel)]="contact.permanentTelephone" type="text" pInputText style="width:100%"> [(ngModel)]="contact.permanentTelephone" type="text" pInputText style="width:100%">
</div> </div>
<div class="p-col-12 p-md-12 p-lg-3" style="margin: auto;">
<label for="txtPermanentMobilePhone">Mobile Phone</label>
</div>
<div class="p-col-12 p-md-12 p-lg-3">
<input id="txtPermanentMobilePhone" formControlName="permanentMobilePhone"
[(ngModel)]="contact.permanentMobile" type="text" pInputText style="width:100%">
</div>
<div class="p-col-12 p-md-12 p-lg-3">
<label for="txtParmanentPOInBangla">Post Office Name</label>
</div>
<div class="p-col-12 p-md-12 p-lg-3">
<input id="txtParmanentPO" formControlName="parmanentPO"
[(ngModel)]="contact.permanentPO" type="text" pInputText style="width:100%">
</div>
<div class="p-col-12 p-md-12 p-lg-3"> <div class="p-col-12 p-md-12 p-lg-3">
<label for="txtParmanentPOInBangla">Post Office Name (Bn)</label> <label for="txtParmanentPOInBangla">Post Office Name (Bn)</label>
</div> </div>
@ -65,21 +80,15 @@
[(ngModel)]="contact.parmanentPOInBangla" type="text" pInputText style="width:100%"> [(ngModel)]="contact.parmanentPOInBangla" type="text" pInputText style="width:100%">
</div> </div>
<!-- <div class="p-col-12 p-md-12 p-lg-1"></div> -->
<div class="p-col-12 p-md-12 p-lg-3" style="margin: auto;"> <div class="p-col-12 p-md-12 p-lg-3" style="margin: auto;">
<label for="txtPermanentMobilePhone">Mobile Phone</label>
</div>
<div class="p-col-12 p-md-12 p-lg-3">
<input id="txtPermanentMobilePhone" formControlName="permanentMobilePhone"
[(ngModel)]="contact.permanentMobile" type="text" pInputText style="width:100%">
</div>
<div class="p-col-12 p-md-12 p-lg-1"></div>
<div class="p-col-12 p-md-12 p-lg-2" style="margin: auto;">
<label for="txtPermanentPostalCode">Postal Code</label> <label for="txtPermanentPostalCode">Postal Code</label>
</div> </div>
<div class="p-col-12 p-md-12 p-lg-3"> <div class="p-col-12 p-md-12 p-lg-3">
<input id="txtPermanentPostalCode" formControlName="permanentPostalCode" <input id="txtPermanentPostalCode" formControlName="permanentPostalCode"
[(ngModel)]="contact.permanentPostCodeNo" type="text" pInputText style="width:100%"> [(ngModel)]="contact.permanentPostCodeNo" type="text" pInputText style="width:100%">
</div> </div>
<div class="p-lg-6"></div>
<div class="p-col-12 p-md-12 p-lg-12"> <div class="p-col-12 p-md-12 p-lg-12">
<label class="k-form-field right"> <label class="k-form-field right">
<!-- <input type="checkbox" [(ngModel)]="isSameAddress" (change)="checkAddress()" id="isSameAddress" <!-- <input type="checkbox" [(ngModel)]="isSameAddress" (change)="checkAddress()" id="isSameAddress"
@ -155,15 +164,6 @@
[readonly]="this.isSameAddress"> [readonly]="this.isSameAddress">
</div> </div>
<div class="p-col-12 p-md-12 p-lg-3">
<label for="txtPresentPOInBangla">Post Office Name(Bn)</label>
</div>
<div class="p-col-12 p-md-12 p-lg-3">
<input class="bangla-font" id="txtPresentPOInBangla" formControlName="presentPOInBangla"
[(ngModel)]="contact.presentPOInBangla" type="text" pInputText style="width:100%"
[readonly]="this.isSameAddress">
</div>
<div class="p-col-12 p-md-12 p-lg-3" style="margin: auto;"> <div class="p-col-12 p-md-12 p-lg-3" style="margin: auto;">
<label for="txtPresentMobilePhone">Mobile Phone</label> <label for="txtPresentMobilePhone">Mobile Phone</label>
</div> </div>
@ -173,8 +173,27 @@
[readonly]="this.isSameAddress"> [readonly]="this.isSameAddress">
</div> </div>
<div class="p-col-12 p-md-12 p-lg-1"></div> <div class="p-col-12 p-md-12 p-lg-3">
<div class="p-col-12 p-md-12 p-lg-2" style="margin: auto;"> <label for="txtPresentPOInBangla">Post Office Name</label>
</div>
<div class="p-col-12 p-md-12 p-lg-3">
<input id="txtPresentPO" formControlName="presentPO"
[(ngModel)]="contact.presentPO" type="text" pInputText style="width:100%"
[readonly]="this.isSameAddress">
</div>
<div class="p-col-12 p-md-12 p-lg-3">
<label for="txtPresentPOInBangla">Post Office Name (Bn)</label>
</div>
<div class="p-col-12 p-md-12 p-lg-3">
<input class="bangla-font" id="txtPresentPOInBangla" formControlName="presentPOInBangla"
[(ngModel)]="contact.presentPOInBangla" type="text" pInputText style="width:100%"
[readonly]="this.isSameAddress">
</div>
<!-- <div class="p-col-12 p-md-12 p-lg-1"></div> -->
<div class="p-col-12 p-md-12 p-lg-3" style="margin: auto;">
<label for="txtPresentPostalCode">Postal Code</label> <label for="txtPresentPostalCode">Postal Code</label>
</div> </div>
<div class="p-col-12 p-md-12 p-lg-3"> <div class="p-col-12 p-md-12 p-lg-3">
@ -182,6 +201,7 @@
[(ngModel)]="contact.presentPostCodeNo" type="text" pInputText style="width:100%" [(ngModel)]="contact.presentPostCodeNo" type="text" pInputText style="width:100%"
[readonly]="this.isSameAddress"> [readonly]="this.isSameAddress">
</div> </div>
<div class="p-lg-6"></div>
<div class="p-col-12 p-md-12 p-lg-12" style="height: 34px;"> <div class="p-col-12 p-md-12 p-lg-12" style="height: 34px;">
<label class="k-form-field right"> <label class="k-form-field right">
<!-- <input type="checkbox" [(ngModel)]="isSameAddress" (change)="checkAddress()" id="isSameAddress" <!-- <input type="checkbox" [(ngModel)]="isSameAddress" (change)="checkAddress()" id="isSameAddress"

View File

@ -89,6 +89,8 @@ export class ContactComponent implements OnInit {
permanentDistrictDropdown: new FormControl('', Validators.required), permanentDistrictDropdown: new FormControl('', Validators.required),
permanentThanaDropdown: new FormControl('', Validators.required), permanentThanaDropdown: new FormControl('', Validators.required),
permanentPostalCode: new FormControl(''), permanentPostalCode: new FormControl(''),
parmanentPO: new FormControl(''),
parmanentPOInBangla: new FormControl(''),
presentAddress: new FormControl('', Validators.required), presentAddress: new FormControl('', Validators.required),
presentAddressInBangla: new FormControl(''), presentAddressInBangla: new FormControl(''),
@ -97,6 +99,8 @@ export class ContactComponent implements OnInit {
presentDistrictDropdown: new FormControl('', Validators.required), presentDistrictDropdown: new FormControl('', Validators.required),
presentThanaDropdown: new FormControl('', Validators.required), presentThanaDropdown: new FormControl('', Validators.required),
presentPostCode: new FormControl(''), presentPostCode: new FormControl(''),
presentPO: new FormControl(''),
presentPOInBangla: new FormControl(''),
contactLandPhone: new FormControl(''), contactLandPhone: new FormControl(''),
contactMobileNo: new FormControl(''), contactMobileNo: new FormControl(''),
@ -104,14 +108,12 @@ export class ContactComponent implements OnInit {
contactOfficialEmail: new FormControl(''), contactOfficialEmail: new FormControl(''),
contactFax: new FormControl(''), contactFax: new FormControl(''),
emergencyContactPerson: new FormControl('', Validators.required), emergencyContactPerson: new FormControl(''),
emergencyAddress: new FormControl('', Validators.required), emergencyAddress: new FormControl(''),
emergencyLandPhone: new FormControl(''), emergencyLandPhone: new FormControl(''),
emergencyMobileNo: new FormControl('', Validators.required), emergencyMobileNo: new FormControl(''),
relation: new FormControl(''), relation: new FormControl(''),
presentPOInBangla: new FormControl(''),
parmanentPOInBangla: new FormControl(''),
}); });
/* if (this.employeeService.hrEmployee !== undefined && this.employeeService.hrEmployee.contacts.length > 0) { /* if (this.employeeService.hrEmployee !== undefined && this.employeeService.hrEmployee.contacts.length > 0) {
this.contact = this.employeeService.hrEmployee.contacts[0]; this.contact = this.employeeService.hrEmployee.contacts[0];
@ -212,6 +214,7 @@ export class ContactComponent implements OnInit {
this.contact.presentDistrictID = this.contact.permanentDistrictID; this.contact.presentDistrictID = this.contact.permanentDistrictID;
this.contact.presentThanaID = this.contact.permanentThanaID; this.contact.presentThanaID = this.contact.permanentThanaID;
this.contact.presentTelephone = this.contact.permanentTelephone; this.contact.presentTelephone = this.contact.permanentTelephone;
this.contact.presentPO = this.contact.permanentPO;
this.contact.presentPOInBangla = this.contact.parmanentPOInBangla; this.contact.presentPOInBangla = this.contact.parmanentPOInBangla;
this.contact.presentMobile = this.contact.permanentMobile; this.contact.presentMobile = this.contact.permanentMobile;
this.contact.presentPostCodeNo = this.contact.permanentPostCodeNo; this.contact.presentPostCodeNo = this.contact.permanentPostCodeNo;

View File

@ -11,12 +11,12 @@
</label> </label>
</div> </div>
<div *ngIf="!newEmployee" class="p-col-12 p-lg-4"> <div *ngIf="!newEmployee" class="p-col-12 p-lg-4">
<app-employee-picker [isActive]="!newEmployee" <app-employee-picker [isActive]="!newEmployee" [ForLifeCycleSearch]="true"
(ItemSelected)="GetSelectedEmployee($event)"></app-employee-picker> (ItemSelected)="GetSelectedEmployee($event)"></app-employee-picker>
</div> </div>
<div *ngIf="newEmployee" class="p-col-12 p-lg-4"> <div *ngIf="newEmployee" class="p-col-12 p-lg-4">
<input [(ngModel)]="this.employeeService.hrEmployee.employeeNo" <input [(ngModel)]="this.employeeService.hrEmployee.employeeNo"
placeholder="Input Employee Id for new Employee.." id="txtempno" pInputText style="width:100%" type="text"> placeholder="Input Employee Id for new Employee.." id="txtempno" pInputText style="width:100%" type="text" [readOnly]="true">
</div> </div>
<div class="p-col-12 p-lg-6" style="margin: auto;" align="middle"> <div class="p-col-12 p-lg-6" style="margin: auto;" align="middle">
<span class="k-icon k-i-warning k-i-exception"></span> <span class="k-icon k-i-warning k-i-exception"></span>
@ -27,7 +27,9 @@
<p-tabView [scrollable]="true"> <p-tabView [scrollable]="true">
<p-tabPanel header="General" leftIcon="pi pi-user"> <p-tabPanel header="General" leftIcon="pi pi-user">
<app-general [isActive]="!newEmployee" [employeeNo]="this.employeeService.hrEmployee.employeeNo"></app-general> <app-general [isActive]="!newEmployee" [employeeNo]="this.employeeService.hrEmployee.employeeNo"
(defaultNationalityHandler)="defaultNationalityHandler($event)"
(defaultEmployeeTypeHandler)="defaultEmployeeTypeHandler($event)"></app-general>
</p-tabPanel> </p-tabPanel>
<p-tabPanel header="Contacts" leftIcon="pi pi-phone"> <p-tabPanel header="Contacts" leftIcon="pi pi-phone">
<app-contact (saveContact)="saveContact($event)"></app-contact> <app-contact (saveContact)="saveContact($event)"></app-contact>

View File

@ -1,16 +1,18 @@
import {Component, OnInit} from '@angular/core'; import { Component, OnInit } from '@angular/core';
import {FormBuilder, FormGroup, Validators} from '@angular/forms'; import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import {EmployeeServices} from '../../_services/employee/employee.service'; import { EmployeeServices } from '../../_services/employee/employee.service';
import {empFileuploads, HrEmployee} from '../../_models/HREmployee/hrEmployee'; import { empFileuploads, HrEmployee } from '../../_models/HREmployee/hrEmployee';
import {SearchEmployee} from '../../_models/Employee/searchEmployee'; import { SearchEmployee } from '../../_models/Employee/searchEmployee';
import {DataTransferService} from '../../data.transfer.service'; import { DataTransferService } from '../../data.transfer.service';
import {BasicService} from '../../_services/Basic/basic.service'; import { BasicService } from '../../_services/Basic/basic.service';
import {enumEmpFileUploadType, EnumExtension, EnumGender, EnumStatus} from '../../_models/enums'; import { enumEmpFileUploadType, EnumExtension, EnumGender, EnumStatus } from '../../_models/enums';
import {EmpContact} from '../../_models/HREmployee/empContact'; import { EmpContact } from '../../_models/HREmployee/empContact';
import {ApiService} from '../../app.api.service'; import { ApiService } from '../../app.api.service';
import {loadingPanelService} from '../../hrm-loding panel/loding.panel.service'; import { loadingPanelService } from '../../hrm-loding panel/loding.panel.service';
import {HRMNotificationService} from '../../app.notification.service'; import { HRMNotificationService } from '../../app.notification.service';
import {DomSanitizer} from '@angular/platform-browser'; import { DomSanitizer } from '@angular/platform-browser';
import { Nationality } from '../nationality/nationality';
import { Category } from 'src/app/_models/Basic/category';
@Component({ @Component({
selector: 'app-employee-profile', selector: 'app-employee-profile',
@ -30,12 +32,14 @@ export class EmployeeProfileComponent implements OnInit {
attachment: any; attachment: any;
fileType = ''; fileType = '';
isDisplay = false; isDisplay = false;
defaultNationality: Nationality;
defaultEmployeeType: Category;
constructor(private fb: FormBuilder, constructor(private fb: FormBuilder,
public employeeService: EmployeeServices, public employeeService: EmployeeServices,
public basicService: BasicService, public basicService: BasicService,
public dataTransferService: DataTransferService, public apiService: ApiService, public dataTransferService: DataTransferService, public apiService: ApiService,
public loadingPanel: loadingPanelService, public notificationService: HRMNotificationService, public loadingPanel: loadingPanelService, public notificationService: HRMNotificationService,
private sanitizer: DomSanitizer) { private sanitizer: DomSanitizer) {
this.employeeService.hrEmployee = new HrEmployee(); this.employeeService.hrEmployee = new HrEmployee();
this.hrEmployeeProfile = new HrEmployee(); this.hrEmployeeProfile = new HrEmployee();
this.contact = new EmpContact(); this.contact = new EmpContact();
@ -189,19 +193,19 @@ export class EmployeeProfileComponent implements OnInit {
this.refreshEmployee(new HrEmployee()); this.refreshEmployee(new HrEmployee());
this.loadingPanel.ShowLoadingPanel = true; // this.loadingPanel.ShowLoadingPanel = true;
this.employeeService.generateEmployeeNo().subscribe( // this.employeeService.generateEmployeeNo().subscribe(
(resp) => { // (resp) => {
this.employeeService.hrEmployee.employeeNo = resp as string; // this.employeeService.hrEmployee.employeeNo = resp as string;
}, // },
(err) => { // (err) => {
this.notificationService.showError(err); // this.notificationService.showError(err);
this.loadingPanel.ShowLoadingPanel = false; // this.loadingPanel.ShowLoadingPanel = false;
}, // },
() => { // () => {
this.loadingPanel.ShowLoadingPanel = false; // this.loadingPanel.ShowLoadingPanel = false;
} // }
); // );
} }
else { else {
this.employeeService.hrEmployee.employeeNo = undefined; this.employeeService.hrEmployee.employeeNo = undefined;
@ -261,6 +265,12 @@ export class EmployeeProfileComponent implements OnInit {
this.employeeService.hrEmployee.passportExpDate = new Date(this.employeeService.hrEmployee.passportExpDate); this.employeeService.hrEmployee.passportExpDate = new Date(this.employeeService.hrEmployee.passportExpDate);
this.employeeService.hrEmployee.passportIssueDate = new Date(this.employeeService.hrEmployee.passportIssueDate); this.employeeService.hrEmployee.passportIssueDate = new Date(this.employeeService.hrEmployee.passportIssueDate);
} }
else {
this.hrEmployeeProfile.birthDate = new Date();
this.hrEmployeeProfile.joiningDate = new Date();
this.hrEmployeeProfile.nationalityID = this.defaultNationality != null ? this.defaultNationality.id : null;
this.hrEmployeeProfile.categoryID = this.defaultEmployeeType != null ? this.defaultEmployeeType.id : null;
}
this.employeeService.Employee_Get_Completed.next(this.hrEmployeeProfile); this.employeeService.Employee_Get_Completed.next(this.hrEmployeeProfile);
} }
@ -292,12 +302,12 @@ export class EmployeeProfileComponent implements OnInit {
this.contact = item; this.contact = item;
} }
editHandler({dataItem}) { editHandler({ dataItem }) {
this.isDisplay = true; this.isDisplay = true;
const item = dataItem as empFileuploads; const item = dataItem as empFileuploads;
this.attachment = item.fileData; this.attachment = item.fileData;
const type = item.fileName.split('.').pop(); const type = item.fileName.split('.').pop();
if ( type === 'png' || type === 'jpg' || type === 'jpeg') { if (type === 'png' || type === 'jpg' || type === 'jpeg') {
this.fileType = 'image'; this.fileType = 'image';
} }
else if (type === 'pdf') { else if (type === 'pdf') {
@ -308,5 +318,12 @@ export class EmployeeProfileComponent implements OnInit {
onPopUpClose() { onPopUpClose() {
this.isDisplay = false; this.isDisplay = false;
} }
defaultNationalityHandler(dataItem: Nationality) {
this.defaultNationality = dataItem;
}
defaultEmployeeTypeHandler(dataItem: Category) {
this.defaultEmployeeType = dataItem;
}
} }

View File

@ -67,6 +67,12 @@ export class ChildrenListComponent implements OnInit {
addNew() { addNew() {
this.editIndex = -1; this.editIndex = -1;
this.empChildren = new EmpChildren(); this.empChildren = new EmpChildren();
this.empChildren.birthDate = new Date();
let notApli = null;
if(this.occupations != null)
notApli = this.occupations.find(o => o.description.toUpperCase() == 'N/A');
if (notApli != null)
this.empChildren.occupationID = notApli.id;
this.isDisplay = true; this.isDisplay = true;
} }

View File

@ -1,14 +1,14 @@
import {Component, OnInit, ViewEncapsulation} from '@angular/core'; import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import {EmpSpouse} from '../../../../../_models/HREmployee/empSpouse'; import { EmpSpouse } from '../../../../../_models/HREmployee/empSpouse';
import {EmployeeServices} from '../../../../../_services/employee/employee.service'; import { EmployeeServices } from '../../../../../_services/employee/employee.service';
import {UntilityHandlerService} from '../../../../../utility.hanldler.service'; import { UntilityHandlerService } from '../../../../../utility.hanldler.service';
import {DataTransferService} from '../../../../../data.transfer.service'; import { DataTransferService } from '../../../../../data.transfer.service';
import {ApiService} from '../../../../../app.api.service'; import { ApiService } from '../../../../../app.api.service';
import {AppWindowPopUp} from '../../../../../app.windowPopup.service'; import { AppWindowPopUp } from '../../../../../app.windowPopup.service';
import {HRMNotificationService} from '../../../../../app.notification.service'; import { HRMNotificationService } from '../../../../../app.notification.service';
import {Occupation} from '../../../../../_models/HRBasic/occupation'; import { Occupation } from '../../../../../_models/HRBasic/occupation';
import {BasicService} from '../../../../../_services/Basic/basic.service'; import { BasicService } from '../../../../../_services/Basic/basic.service';
import {EducationLevel} from '../../../../../_models/HRBasic/education-level'; import { EducationLevel } from '../../../../../_models/HRBasic/education-level';
@Component({ @Component({
selector: 'app-spouse-list', selector: 'app-spouse-list',
@ -27,12 +27,12 @@ export class SpouseListComponent implements OnInit {
editIndex: number; editIndex: number;
constructor(public employeeService: EmployeeServices, constructor(public employeeService: EmployeeServices,
public basicService: BasicService, public basicService: BasicService,
public apiService: ApiService, public apiService: ApiService,
public notificationService: HRMNotificationService, public notificationService: HRMNotificationService,
public dataTransferService: DataTransferService, public dataTransferService: DataTransferService,
public WindowPopUp: AppWindowPopUp, public WindowPopUp: AppWindowPopUp,
public utilityHandlerService: UntilityHandlerService) { public utilityHandlerService: UntilityHandlerService) {
this.empSpouse = new EmpSpouse(); this.empSpouse = new EmpSpouse();
} }
@ -68,6 +68,13 @@ export class SpouseListComponent implements OnInit {
addNew() { addNew() {
this.editIndex = -1; this.editIndex = -1;
this.empSpouse = new EmpSpouse(); this.empSpouse = new EmpSpouse();
this.empSpouse.dateOfBirth = new Date();
this.empSpouse.marriageDate = new Date();
let notApli = null;
if(this.occupations != null)
notApli = this.occupations.find(o => o.description.toUpperCase() == 'N/A');
if (notApli != null)
this.empSpouse.occupationID = notApli.id;
this.isDisplay = true; this.isDisplay = true;
} }
@ -85,7 +92,7 @@ export class SpouseListComponent implements OnInit {
id: item.id id: item.id
}; };
this.employeeService.deleteChildData(data).subscribe( this.employeeService.deleteChildData(data).subscribe(
() => {}, () => { },
(err) => { (err) => {
console.log(err); console.log(err);
}, },
@ -120,7 +127,7 @@ export class SpouseListComponent implements OnInit {
this.empSpouse = new EmpSpouse(); this.empSpouse = new EmpSpouse();
this.isDisplay = false; this.isDisplay = false;
} }
addHandler() {} addHandler() { }
onPopUpClose() { onPopUpClose() {
this.isDisplay = false; this.isDisplay = false;

View File

@ -10,19 +10,27 @@
<div class="p-col-12"> <div class="p-col-12">
<div style="position: relative; display: inline-block;"> <div style="position: relative; display: inline-block;">
<img id="imgProfilePicture" [src]="employeePhoto" <img id="imgProfilePicture" [src]="employeePhoto"
style="height: 180px; width: 180px; border-radius: 50%; border: 1px solid #52527A;" /> style="height: 180px; width: 180px; border-radius: 50%; border: 1px solid #52527A;" />
<button class="editImage" (click)="fileInput.click()" <button class="editImage" (click)="fileInput.click()"
style="position: absolute; bottom: 18px; right: 18px;"> style="position: absolute; bottom: 18px; right: 18px;">
<span class="editIcon">&#9998;</span> <span class="editIcon">&#9998;</span>
</button> </button>
</div> </div>
<div style="position: relative; display: inline-block;">
<img id="imgEmpSigneture" [src]="empSigneture"
style="height: 60px; width: 180px; border-radius: 10px; border: 1px solid #52527A;" />
</div>
</div> </div>
</div> </div>
<div class="p-col-12 p-md-12 p-lg-12" align="center"> <div class="p-col-12 p-md-12 p-lg-12" align="center">
<input formControlName="empPhoto" id="fupEmpPhoto" #fileInput <input formControlName="empPhoto" id="fupEmpPhoto" #fileInput
(change)="selectFile($event)" type="file" style="display: none;"> (change)="selectFile($event)" type="file" style="display: none;">
</div> </div>
<div class="p-col-12 p-md-12 p-lg-12" style="height: 76px;"></div> <div class="p-col-12 p-md-12 p-lg-12" style="height: 76px;">
</div>
</div> </div>
</div> </div>
</div> </div>
@ -173,6 +181,7 @@
<button class="k-button k-primary" kendoButton icon="save" <button class="k-button k-primary" kendoButton icon="save"
(click)="SavePersonalInfo()"> (click)="SavePersonalInfo()">
<!-- (click)="SavePersonalInfo()"> -->
Save Save
</button> </button>
</div> </div>
@ -359,7 +368,9 @@
</button> </button>
</div> </div>
<div class="p-col-12 p-md-12 p-lg-4" style="margin-top: 11px;" align="right"> <div class="p-col-12 p-md-12 p-lg-4" style="margin-top: 11px;" align="right">
<button class="k-button k-primary" kendoButton icon="save" (click)="SavePersonalInfo()"> <button class="k-button k-primary" kendoButton icon="save"
(click)="SavePersonalInfo()">
<!-- (click)="SavePersonalInfo()"> -->
Save Save
</button> </button>
</div> </div>
@ -523,12 +534,12 @@
class="bangla-font" pInputText style="width:100%" type="text"> class="bangla-font" pInputText style="width:100%" type="text">
</div> </div>
<div class="p-col-12 p-md-12 p-lg-12" style="margin: auto;" align="right"> <!-- <div class="p-col-12 p-md-12 p-lg-12" style="margin: auto;" align="right">
<button class="k-button k-primary" kendoButton icon="save" <button class="k-button k-primary" kendoButton icon="save"
(click)="saveBanglaPersonalInformation()"> (click)="saveBanglaPersonalInformation()">
Save Save
</button> </button>
</div> </div> -->
</div> </div>
</form> </form>
<form [formGroup]="contactForm"> <form [formGroup]="contactForm">

Some files were not shown because too many files have changed in this diff Show More