Compare commits
27 Commits
dev_chapal
...
devqc
Author | SHA1 | Date | |
---|---|---|---|
89f428bd2f | |||
a3c8a22703 | |||
2547d6209e | |||
efbd3ca782 | |||
751ae428bb | |||
e9b6337030 | |||
057e27c226 | |||
083ae15e1e | |||
6e8a28a477 | |||
f418e7ab3d | |||
1558e175e8 | |||
38e1917a33 | |||
491b56cc0f | |||
ccabffeeec | |||
634c30f368 | |||
116f8171ef | |||
558c53d4d3 | |||
2d28fb9ac5 | |||
accd302ef4 | |||
e6cafe58f8 | |||
dc29f2f17c | |||
7b8473faef | |||
327d9843d7 | |||
e77dbeaf9f | |||
4f7337c5b7 | |||
89f9dddd85 | |||
d78c5879ac |
|
@ -1377,11 +1377,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 +1398,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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3991,4 +4044,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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
@ -1138,6 +1141,14 @@ namespace HRM.BO
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#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; }
|
||||||
|
@ -1309,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; }
|
||||||
|
@ -1319,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; }
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
@ -41,7 +39,7 @@ namespace Payroll.BO
|
||||||
_OriginalFile = value;
|
_OriginalFile = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string PreparedFile
|
public string PreparedFile
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -99,24 +97,24 @@ namespace Payroll.BO
|
||||||
throw new Exception("File Not Found : " + "File Path : " + _OriginalFile);
|
throw new Exception("File Not Found : " + "File Path : " + _OriginalFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
{
|
{
|
||||||
object Missing = System.Reflection.Missing.Value;
|
object Missing = System.Reflection.Missing.Value;
|
||||||
|
|
||||||
object wb = _wordapp.WordBasic;
|
object wb = _wordapp.WordBasic;
|
||||||
|
|
||||||
//first arg is a printer name
|
//first arg is a printer name
|
||||||
|
@ -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;
|
||||||
|
@ -157,9 +155,9 @@ namespace Payroll.BO
|
||||||
object IsVisible = true;
|
object IsVisible = true;
|
||||||
object FindText = "";
|
object FindText = "";
|
||||||
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,9 +169,9 @@ 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,4 +227,4 @@ namespace Payroll.BO
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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)
|
||||||
|
|
|
@ -3628,7 +3628,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)
|
||||||
|
|
|
@ -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, NomineeMobileNo)" +
|
" 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, %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.NomineeMobileNo);
|
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)
|
||||||
|
@ -701,8 +702,16 @@ namespace HRM.DA
|
||||||
,[TELEPHONE] = %s
|
,[TELEPHONE] = %s
|
||||||
,[EMAILADDRESS] = %s
|
,[EMAILADDRESS] = %s
|
||||||
,[NomineeMobileNo] = %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.NomineeMobileNo,
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -960,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
|
||||||
|
@ -1467,5 +1483,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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -120,7 +120,7 @@ namespace HRM.DA
|
||||||
object obj =
|
object obj =
|
||||||
tc.ExecuteScalar("Select SALARYPROCESSID from SALARYPROCESS where SALARYMONTH=%d AND PAYROLLTYPEID=%n",
|
tc.ExecuteScalar("Select SALARYPROCESSID from SALARYPROCESS where SALARYMONTH=%d AND PAYROLLTYPEID=%n",
|
||||||
dSMonth, payrollTypeID);
|
dSMonth, payrollTypeID);
|
||||||
if (obj == DBNull.Value) return false;
|
if (obj == DBNull.Value || obj == null) return false;
|
||||||
else bShowInDesktop=true;
|
else bShowInDesktop=true;
|
||||||
return bShowInDesktop;
|
return bShowInDesktop;
|
||||||
}
|
}
|
||||||
|
|
|
@ -376,7 +376,7 @@ END;";
|
||||||
//Using TOP
|
//Using TOP
|
||||||
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo LIKE %s", ( code + "%"));
|
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo LIKE %s", ( code + "%"));
|
||||||
orderby = "EmployeeNo";
|
orderby = "EmployeeNo";
|
||||||
top = "TOP 50";
|
top = "TOP 15";
|
||||||
|
|
||||||
//Without suggestion
|
//Without suggestion
|
||||||
//sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo = %s", code );
|
//sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo = %s", code );
|
||||||
|
@ -385,9 +385,16 @@ END;";
|
||||||
|
|
||||||
if (name != string.Empty)
|
if (name != string.Empty)
|
||||||
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("Name LIKE %s", ("%" + name + "%"));
|
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(
|
string finalSQl = SQLParser.MakeSQL(
|
||||||
"%q Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q %q Order by %s",
|
"%q Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q %q " +
|
||||||
recurSqlClause, top, sqlClause, recurWhereClause, orderby);
|
" 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);
|
return tc.ExecuteReader(finalSQl);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
@ -5673,5 +5674,177 @@ 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -556,6 +558,16 @@ namespace HRM.DA
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -596,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");
|
||||||
|
@ -5052,6 +5064,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)
|
||||||
|
|
|
@ -857,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>
|
||||||
|
@ -1198,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))>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">
|
||||||
|
@ -2457,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>
|
||||||
|
@ -4083,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>
|
||||||
|
|
|
@ -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;
|
||||||
|
@ -2844,6 +2847,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,6 +2918,64 @@ 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
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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" />
|
||||||
|
@ -295,6 +296,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" />
|
||||||
|
@ -321,6 +334,7 @@
|
||||||
<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" />
|
||||||
|
|
1618
HRM.Report/PayrollDataSet/dsCompany.Designer.cs
generated
1618
HRM.Report/PayrollDataSet/dsCompany.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
|
@ -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>
|
||||||
|
|
|
@ -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>
|
3015
HRM.Report/RDLC/ApLetterForAssistantOfficerToAbove.rdlc
Normal file
3015
HRM.Report/RDLC/ApLetterForAssistantOfficerToAbove.rdlc
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -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>
|
||||||
|
|
11738
HRM.Report/RDLC/rptServiceBook.rdlc
Normal file
11738
HRM.Report/RDLC/rptServiceBook.rdlc
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -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", "");
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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';
|
||||||
|
|
||||||
|
@ -24,6 +24,14 @@ export class EmpNominee extends BaseObject {
|
||||||
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() {
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -130,4 +130,10 @@ 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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]},
|
||||||
|
|
|
@ -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: [
|
||||||
|
|
|
@ -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>
|
|
@ -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
|
||||||
|
}
|
|
@ -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>
|
||||||
|
|
|
@ -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'){
|
||||||
|
|
|
@ -13,7 +13,7 @@ export class ApiService {
|
||||||
|
|
||||||
public isSSO = false;
|
public isSSO = false;
|
||||||
public versionDeployement = false;
|
public versionDeployement = false;
|
||||||
public versionNumber = `V-${GlobalfunctionExtension.generateVersionNumber(new Date(2025, 0, 7))}-`+"01";
|
public versionNumber = `V-${GlobalfunctionExtension.generateVersionNumber(new Date(2025, 1, 25))}-`+"01";
|
||||||
public static BASE_URL = '';
|
public static BASE_URL = '';
|
||||||
public base_url = '';
|
public base_url = '';
|
||||||
// public currentLink = '';
|
// public currentLink = '';
|
||||||
|
|
|
@ -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">
|
||||||
|
|
|
@ -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: [''],
|
||||||
});
|
});
|
||||||
|
@ -202,13 +210,13 @@ export class EchotexRosterAssignmentComponent implements OnInit {
|
||||||
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;
|
||||||
|
@ -331,7 +339,7 @@ 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) {
|
||||||
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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) => {
|
||||||
|
|
|
@ -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>
|
||||||
|
@ -172,9 +172,28 @@
|
||||||
[(ngModel)]="contact.presentMobile" type="text" pInputText style="width:100%"
|
[(ngModel)]="contact.presentMobile" type="text" pInputText style="width:100%"
|
||||||
[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</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-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 (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"
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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();
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Component, Input, OnInit } from '@angular/core';
|
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
||||||
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
||||||
import { DataTransferService } from '../../../data.transfer.service';
|
import { DataTransferService } from '../../../data.transfer.service';
|
||||||
import { EmployeeServices } from '../../../_services/employee/employee.service';
|
import { EmployeeServices } from '../../../_services/employee/employee.service';
|
||||||
|
@ -115,6 +115,7 @@ export class GeneralComponent implements OnInit {
|
||||||
pickerEmployee: SearchEmployee;
|
pickerEmployee: SearchEmployee;
|
||||||
nationalities: Nationality[];
|
nationalities: Nationality[];
|
||||||
defaultNationality: Nationality;
|
defaultNationality: Nationality;
|
||||||
|
defaultEmployeeType: Category;
|
||||||
nameBangla: string = 'asasas';
|
nameBangla: string = 'asasas';
|
||||||
defaultPhoto = "assets/photos/profile-default.jpg";
|
defaultPhoto = "assets/photos/profile-default.jpg";
|
||||||
photoPath = "Documents/EMPPHOTO";
|
photoPath = "Documents/EMPPHOTO";
|
||||||
|
@ -126,6 +127,8 @@ export class GeneralComponent implements OnInit {
|
||||||
permanentThanas: Thana[];
|
permanentThanas: Thana[];
|
||||||
|
|
||||||
isAccessCard: boolean = false;
|
isAccessCard: boolean = false;
|
||||||
|
@Output() defaultNationalityHandler = new EventEmitter<Nationality>();
|
||||||
|
@Output() defaultEmployeeTypeHandler = new EventEmitter<Category>();
|
||||||
|
|
||||||
constructor(public employeeService: EmployeeServices, public basicService: BasicService,
|
constructor(public employeeService: EmployeeServices, public basicService: BasicService,
|
||||||
public notificationService: HRMNotificationService,
|
public notificationService: HRMNotificationService,
|
||||||
|
@ -156,6 +159,11 @@ export class GeneralComponent implements OnInit {
|
||||||
|
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
|
this.defaultEmployeeType = this.employeeTypes.find(x => x.name.toLowerCase() == "worker");
|
||||||
|
if (this.defaultEmployeeType != undefined) {
|
||||||
|
// this.hrEmployee.categoryID = this.defaultEmployeeType.id;
|
||||||
|
this.defaultEmployeeTypeHandler.emit(this.defaultEmployeeType);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -178,7 +186,8 @@ export class GeneralComponent implements OnInit {
|
||||||
() => {
|
() => {
|
||||||
this.defaultNationality = this.nationalities.find(x => x.description.toLowerCase() == "bangladeshi");
|
this.defaultNationality = this.nationalities.find(x => x.description.toLowerCase() == "bangladeshi");
|
||||||
if (this.defaultNationality) {
|
if (this.defaultNationality) {
|
||||||
this.hrEmployee.nationalityID = this.defaultNationality.id;
|
// this.hrEmployee.nationalityID = this.defaultNationality.id;
|
||||||
|
this.defaultNationalityHandler.emit(this.defaultNationality);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -460,7 +469,7 @@ export class GeneralComponent implements OnInit {
|
||||||
// }
|
// }
|
||||||
this.employeeService.saveHrPersonalInfo(this.hrEmployee).subscribe(
|
this.employeeService.saveHrPersonalInfo(this.hrEmployee).subscribe(
|
||||||
(resp: HrEmployee) => {
|
(resp: HrEmployee) => {
|
||||||
if(resp != undefined){
|
if (resp != undefined) {
|
||||||
this.hrEmployee.id = resp.id;
|
this.hrEmployee.id = resp.id;
|
||||||
if (this.active == false) {
|
if (this.active == false) {
|
||||||
this.hrEmployee.employeeNo = resp.employeeNo;
|
this.hrEmployee.employeeNo = resp.employeeNo;
|
||||||
|
|
|
@ -71,11 +71,14 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
||||||
<label for="txtAddress">Address</label>
|
<label for="txtAddress">Gender</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-col-12 p-md-6 p-lg-4">
|
<div class="p-col-12 p-md-6 p-lg-4">
|
||||||
<input id="txtAddress" formControlName="address" [(ngModel)]="nominee.address" type="text"
|
<kendo-dropdownlist [(ngModel)]="nominee.gender" [data]="genderType"
|
||||||
pInputText style="width:100%" />
|
[defaultItem]="{ name: 'Select Gender..', value: null }" [textField]="'name'" [valueField]="'value'"
|
||||||
|
[valuePrimitive]="true" class="form-control form-control-sm input-sm" formControlName="gender"
|
||||||
|
id="gender" style="width:100%">
|
||||||
|
</kendo-dropdownlist>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
||||||
|
@ -102,6 +105,83 @@
|
||||||
pInputText style="width:100%" />
|
pInputText style="width:100%" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
||||||
|
<label for="txtAddress">Address</label>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-4">
|
||||||
|
<input id="txtAddress" formControlName="address" [(ngModel)]="nominee.address" type="text"
|
||||||
|
pInputText style="width:100%" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
||||||
|
<label for="txtFatherName">Father Name</label>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-4">
|
||||||
|
<input id="txtFatherName" formControlName="fatherName" [(ngModel)]="nominee.fatherName" type="text"
|
||||||
|
pInputText style="width:100%" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
||||||
|
<label for="txtMotherName">Mother Name</label>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-4">
|
||||||
|
<input id="txtMotherName" formControlName="motherName" [(ngModel)]="nominee.motherName" type="text"
|
||||||
|
pInputText style="width:100%" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
||||||
|
<label for="txtSpouseName">Spouse Name</label>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-4">
|
||||||
|
<input id="txtSpouseName" formControlName="spouseName" [(ngModel)]="nominee.spouseName" type="text"
|
||||||
|
pInputText style="width:100%" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
||||||
|
<label for="txtNationalID">NationalID</label>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-4">
|
||||||
|
<input id="txtNationalID" formControlName="nID" [(ngModel)]="nominee.nationalID" type="text"
|
||||||
|
pInputText style="width:100%" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
||||||
|
<label for="txtDistrict">District</label>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-4">
|
||||||
|
<!-- <input id="txtDistrict" formControlName="district" [(ngModel)]="nominee.districtID" type="text"
|
||||||
|
pInputText style="width:100%" /> -->
|
||||||
|
<kendo-dropdownlist [(ngModel)]="nominee.districtID" [data]="districts"
|
||||||
|
[defaultItem]="{ name: 'Select District..', value: null }" [textField]="'name'"
|
||||||
|
[valueField]="'id'" style="width: 100%" (valueChange)="loadThana($event)"
|
||||||
|
[valuePrimitive]="true" class="form-control form-control-sm input-sm"
|
||||||
|
formControlName="district">
|
||||||
|
</kendo-dropdownlist>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
||||||
|
<label for="txtThana">Thana</label>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-4">
|
||||||
|
<!-- <input id="txtThana" formControlName="thana" [(ngModel)]="nominee.thanaID" type="text"
|
||||||
|
pInputText style="width:100%" /> -->
|
||||||
|
<kendo-dropdownlist [(ngModel)]="nominee.thanaID" [data]="thanas"
|
||||||
|
[defaultItem]="{ name: 'Select Thana..', value: null }" [textField]="'name'" [valueField]="'id'"
|
||||||
|
style="width: 100%" [valuePrimitive]="true" class="form-control form-control-sm input-sm"
|
||||||
|
formControlName="thana">
|
||||||
|
</kendo-dropdownlist>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
||||||
|
<label for="txtPostOffice">Post Office</label>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-12 p-md-6 p-lg-4">
|
||||||
|
<input id="txtPostOffice" formControlName="postOffice" [(ngModel)]="nominee.postOffice" type="text"
|
||||||
|
pInputText style="width:100%" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
|
||||||
<label for="fupPicture">Picture</label>
|
<label for="fupPicture">Picture</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,10 +11,12 @@ import { HrEmployee } from '../../../../_models/HREmployee/hrEmployee';
|
||||||
import { BasicService } from '../../../../_services/Basic/basic.service';
|
import { BasicService } from '../../../../_services/Basic/basic.service';
|
||||||
import { forkJoin } from 'rxjs';
|
import { forkJoin } from 'rxjs';
|
||||||
import { Relation } from '../../../../_models/HRBasic/relation';
|
import { Relation } from '../../../../_models/HRBasic/relation';
|
||||||
|
import { District } from '../../../../_models/HRBasic/district';
|
||||||
|
import { Thana } from '../../../../_models/HRBasic/thana';
|
||||||
import { Occupation } from '../../../../_models/HRBasic/occupation';
|
import { Occupation } from '../../../../_models/HRBasic/occupation';
|
||||||
import { NominationPurpose } from '../../../../_models/HRBasic/nomination-purpose';
|
import { NominationPurpose } from '../../../../_models/HRBasic/nomination-purpose';
|
||||||
import { loadingPanelService } from '../../../../hrm-loding panel/loding.panel.service';
|
import { loadingPanelService } from '../../../../hrm-loding panel/loding.panel.service';
|
||||||
import { enumEmpFileUploadType } from '../../../../_models/enums';
|
import { enumEmpFileUploadType, EnumExtension, EnumGender, EnumMaritalStatus } from '../../../../_models/enums';
|
||||||
import { debug } from 'console';
|
import { debug } from 'console';
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,6 +32,9 @@ export class NomineeEntryComponent implements OnInit {
|
||||||
nomineeForm: FormGroup;
|
nomineeForm: FormGroup;
|
||||||
public active = false;
|
public active = false;
|
||||||
nominee: EmpNominee;
|
nominee: EmpNominee;
|
||||||
|
genderType: any = EnumExtension.getNamesAndValues(EnumGender);
|
||||||
|
districts: District[];
|
||||||
|
thanas: Thana[];
|
||||||
selectedPicture?: FileList;
|
selectedPicture?: FileList;
|
||||||
selectedSignature?: FileList;
|
selectedSignature?: FileList;
|
||||||
currentFile?: File;
|
currentFile?: File;
|
||||||
|
@ -38,6 +43,8 @@ export class NomineeEntryComponent implements OnInit {
|
||||||
@Input()
|
@Input()
|
||||||
public set InputObject(InputObject: EmpNominee) {
|
public set InputObject(InputObject: EmpNominee) {
|
||||||
this.nominee = InputObject;
|
this.nominee = InputObject;
|
||||||
|
if(this.nominee != undefined && this.nominee.districtID != null && this.nominee.districtID != 0)
|
||||||
|
this.loadThana(this.nominee.districtID);
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(public employeeService: EmployeeServices,
|
constructor(public employeeService: EmployeeServices,
|
||||||
|
@ -60,12 +67,14 @@ export class NomineeEntryComponent implements OnInit {
|
||||||
const getRelations = this.basicService.getAllRelations();
|
const getRelations = this.basicService.getAllRelations();
|
||||||
const getOccupations = this.basicService.getAllOccupation();
|
const getOccupations = this.basicService.getAllOccupation();
|
||||||
const getNominationPurpose = this.basicService.getAllNominationPurpose();
|
const getNominationPurpose = this.basicService.getAllNominationPurpose();
|
||||||
|
const getDistricts = this.basicService.getAllDistricts();
|
||||||
|
|
||||||
forkJoin([getRelations, getOccupations, getNominationPurpose]).subscribe(
|
forkJoin([getRelations, getOccupations, getNominationPurpose, getDistricts]).subscribe(
|
||||||
([resp1, resp2, resp3]) => {
|
([resp1, resp2, resp3, resp4]) => {
|
||||||
this.relations = resp1;
|
this.relations = resp1;
|
||||||
this.occupations = resp2;
|
this.occupations = resp2;
|
||||||
this.nominationPurposes = resp3;
|
this.nominationPurposes = resp3;
|
||||||
|
this.districts = resp4;
|
||||||
},
|
},
|
||||||
(x) => {
|
(x) => {
|
||||||
console.log(x);
|
console.log(x);
|
||||||
|
@ -76,6 +85,19 @@ export class NomineeEntryComponent implements OnInit {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
loadThana(value: any) {
|
||||||
|
this.basicService.getAllThanas(value).subscribe((resp) => {
|
||||||
|
this.thanas = resp;
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
createForm() {
|
createForm() {
|
||||||
this.nomineeForm = new FormBuilder().group({
|
this.nomineeForm = new FormBuilder().group({
|
||||||
nominationDate: ['', Validators.required],
|
nominationDate: ['', Validators.required],
|
||||||
|
@ -91,6 +113,14 @@ export class NomineeEntryComponent implements OnInit {
|
||||||
picturePath: [''],
|
picturePath: [''],
|
||||||
signaturePath: [''],
|
signaturePath: [''],
|
||||||
mobile: [''],
|
mobile: [''],
|
||||||
|
gender: ['', Validators.required],
|
||||||
|
fatherName: [''],
|
||||||
|
motherName: [''],
|
||||||
|
spouseName: [''],
|
||||||
|
nID: [''],
|
||||||
|
district: [''],
|
||||||
|
thana: [''],
|
||||||
|
postOffice: [''],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,4 +187,5 @@ export class NomineeEntryComponent implements OnInit {
|
||||||
selectedFiles = undefined;
|
selectedFiles = undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,6 +86,15 @@ export class NomineeListComponent implements OnInit {
|
||||||
this.editIndex = -1;
|
this.editIndex = -1;
|
||||||
this.nominee = new EmpNominee();
|
this.nominee = new EmpNominee();
|
||||||
this.nominee.employeeID = this.employeeService.hrEmployee.id;
|
this.nominee.employeeID = this.employeeService.hrEmployee.id;
|
||||||
|
this.nominee.percentage = 100;
|
||||||
|
let notApli = null;
|
||||||
|
if(this.occupations != null)
|
||||||
|
notApli = this.occupations.find(o => o.description.toUpperCase() == 'N/A');
|
||||||
|
if (notApli != null)
|
||||||
|
this.nominee.occupationID = notApli.id;
|
||||||
|
let np = this.nominationPurposes.find(n => n.id == 8);
|
||||||
|
if(this.nominationPurposes != null && np != null)
|
||||||
|
this.nominee.nominationPurposeID = np.id;
|
||||||
this.isDisplay = true;
|
this.isDisplay = true;
|
||||||
}
|
}
|
||||||
public editHandler(rowIndex: any) {
|
public editHandler(rowIndex: any) {
|
||||||
|
|
|
@ -232,7 +232,7 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-col-12 p-lg-5 label-ailgn">
|
<div class="p-col-12 p-lg-5 label-ailgn">
|
||||||
this will take around 30 Second or more.
|
This will take around 30 Second or more.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -546,11 +546,24 @@ export class ProductionBonusSetupComponent implements OnInit {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
debugger;
|
debugger;
|
||||||
|
|
||||||
|
let supervisorIDs: number[] = [];
|
||||||
|
this.prodBonusLine.prodBonusSupervisors.forEach(item => {
|
||||||
|
supervisorIDs.push(item.employeeID);
|
||||||
|
});
|
||||||
newlineSupervisor.prodBonusLineID = this.selectedRow.id;
|
newlineSupervisor.prodBonusLineID = this.selectedRow.id;
|
||||||
this.prodBonusLine.id = this.selectedRow.id;
|
this.prodBonusLine.id = this.selectedRow.id;
|
||||||
this.prodBonusLine.lineName = this.selectedRow.lineName;
|
this.prodBonusLine.lineName = this.selectedRow.lineName;
|
||||||
this.prodBonusLine.scheduledHour = this.selectedRow.scheduledHours;
|
this.prodBonusLine.scheduledHour = this.selectedRow.scheduledHours;
|
||||||
this.prodBonusLine.prodBonusSupervisors.push(newlineSupervisor);
|
|
||||||
|
if (!supervisorIDs.includes(newlineSupervisor.employeeID))
|
||||||
|
this.prodBonusLine.prodBonusSupervisors.push(newlineSupervisor);
|
||||||
|
else{
|
||||||
|
this.prodBonusLine.prodBonusSupervisors.forEach(element => {
|
||||||
|
if(element.employeeID == newlineSupervisor.employeeID)
|
||||||
|
element.bonusPercent = newlineSupervisor.bonusPercent;
|
||||||
|
});
|
||||||
|
}
|
||||||
// this.prodBonusLine.prodBonusParameters.push(newlineParameter);
|
// this.prodBonusLine.prodBonusParameters.push(newlineParameter);
|
||||||
|
|
||||||
|
|
||||||
|
@ -583,7 +596,26 @@ export class ProductionBonusSetupComponent implements OnInit {
|
||||||
}
|
}
|
||||||
// console.log(this.prodBonusLine);
|
// console.log(this.prodBonusLine);
|
||||||
// console.log(this.productionBonusSetup);
|
// console.log(this.productionBonusSetup);
|
||||||
|
else {
|
||||||
|
let supervisorIDs: number[] = [];
|
||||||
|
this.productionBonusSetup.productionBonusLines.forEach(element => {
|
||||||
|
if(element.id == this.prodBonusLine.id){
|
||||||
|
element.prodBonusSupervisors.forEach(item => {
|
||||||
|
supervisorIDs.push(item.employeeID);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.productionBonusSetup.productionBonusLines.forEach(element => {
|
||||||
|
if(element.id == this.prodBonusLine.id){
|
||||||
|
this.prodBonusLine.prodBonusSupervisors.forEach(item => {
|
||||||
|
if (!supervisorIDs.includes(item.employeeID)) {
|
||||||
|
element.prodBonusSupervisors.push(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
this.close();
|
this.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="p-col-12 p-md-6 p-lg-8 form-control-lg form-control">
|
<div class="p-col-12 p-md-6 p-lg-8 form-control-lg form-control">
|
||||||
<input id="txtMailAddress" type="text" style="width:100%"
|
<input id="txtMailAddress" type="text" style="width:100%"
|
||||||
[(ngModel)]="employee.emailAddress" formControlName="emailAddress" pInputText required>
|
[(ngModel)]="employee.emailAddress" formControlName="emailAddress" pInputText>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="p-col-12 p-md-6 p-lg-4" style="margin:auto">
|
<div class="p-col-12 p-md-6 p-lg-4" style="margin:auto">
|
||||||
|
|
|
@ -137,6 +137,8 @@ export class EmployeePayrollProfileComponent implements OnInit {
|
||||||
|
|
||||||
this.lastSalaryProcessDate();
|
this.lastSalaryProcessDate();
|
||||||
|
|
||||||
|
this.selectedCategoryid = this.ddlcategories.find(x => x.name.toLowerCase() == "worker").id;
|
||||||
|
|
||||||
// this.loadingPanelService.ShowLoadingPanel = true;
|
// this.loadingPanelService.ShowLoadingPanel = true;
|
||||||
// this.employeeService.generateEmployeeNo().subscribe(
|
// this.employeeService.generateEmployeeNo().subscribe(
|
||||||
// (resp) => {
|
// (resp) => {
|
||||||
|
@ -153,6 +155,7 @@ export class EmployeePayrollProfileComponent implements OnInit {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.employee.employeeNo = undefined;
|
this.employee.employeeNo = undefined;
|
||||||
|
this.selectedCategoryid = undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -416,7 +419,7 @@ export class EmployeePayrollProfileComponent implements OnInit {
|
||||||
this.selectedEmployee.categoryID = this.employee.categoryID;
|
this.selectedEmployee.categoryID = this.employee.categoryID;
|
||||||
this.selectedEmployee.name = this.employee.name;
|
this.selectedEmployee.name = this.employee.name;
|
||||||
this.selectedEmployee.employeeNo = this.employee.employeeNo;
|
this.selectedEmployee.employeeNo = this.employee.employeeNo;
|
||||||
this.showBankAccount = true;
|
// this.showBankAccount = true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.employee = new Employee();
|
this.employee = new Employee();
|
||||||
|
|
|
@ -30,6 +30,7 @@ import { PayrollType } from '../../../_models/Authentication/payrollType';
|
||||||
import { GrievanceManagementService } from '../../../_services/grievance-management/grievanceManagement.service';
|
import { GrievanceManagementService } from '../../../_services/grievance-management/grievanceManagement.service';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { WorkflowService } from '../../../_services/workflow/workflow.service';
|
import { WorkflowService } from '../../../_services/workflow/workflow.service';
|
||||||
|
import { AuthService } from '../../../_services/auth/auth.service';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -77,6 +78,8 @@ export class LifeCycleEntryComponent implements OnInit {
|
||||||
this.empPickerActive = false;
|
this.empPickerActive = false;
|
||||||
}
|
}
|
||||||
_effectDate: Date = undefined;
|
_effectDate: Date = undefined;
|
||||||
|
public payrollType: PayrollType = undefined;
|
||||||
|
public salaryMonth: Date = new Date();
|
||||||
public empPickerActive: boolean = true;
|
public empPickerActive: boolean = true;
|
||||||
public isDesingation: boolean = false;
|
public isDesingation: boolean = false;
|
||||||
public isDepartment: boolean = false;
|
public isDepartment: boolean = false;
|
||||||
|
@ -104,6 +107,7 @@ export class LifeCycleEntryComponent implements OnInit {
|
||||||
public utilityHandlerService: UntilityHandlerService, public organogramService: OrganogramService,
|
public utilityHandlerService: UntilityHandlerService, public organogramService: OrganogramService,
|
||||||
public loadingPanelService: loadingPanelService,
|
public loadingPanelService: loadingPanelService,
|
||||||
public router: Router, public workflowService: WorkflowService,
|
public router: Router, public workflowService: WorkflowService,
|
||||||
|
public authservice: AuthService,
|
||||||
public acrouter: ActivatedRoute,) {
|
public acrouter: ActivatedRoute,) {
|
||||||
if (this.router.url === '/payroll/career-and-profile/life-cycle-entry')
|
if (this.router.url === '/payroll/career-and-profile/life-cycle-entry')
|
||||||
this.apiservice.selectedMenuName = 'Employee Life Cycle';
|
this.apiservice.selectedMenuName = 'Employee Life Cycle';
|
||||||
|
@ -135,7 +139,16 @@ export class LifeCycleEntryComponent implements OnInit {
|
||||||
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
this.authservice.GetPayrollTypeByLoginID().subscribe(
|
||||||
|
(resp: any) => {
|
||||||
|
this.payrollType = resp;
|
||||||
|
},
|
||||||
|
(err: any) => {
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
this.salaryMonth = new Date(this.payrollType.nextPayProcessDate);
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private refreshGradeSalaries() {
|
private refreshGradeSalaries() {
|
||||||
|
@ -173,7 +186,7 @@ export class LifeCycleEntryComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
EventselectionChange(value: any) {
|
EventselectionChange(value: any) {
|
||||||
|
debugger;
|
||||||
this.isDesingation = false;
|
this.isDesingation = false;
|
||||||
this.isDepartment = false;
|
this.isDepartment = false;
|
||||||
this.isCategory = false;
|
this.isCategory = false;
|
||||||
|
@ -292,6 +305,16 @@ export class LifeCycleEntryComponent implements OnInit {
|
||||||
|
|
||||||
});
|
});
|
||||||
this._sDescription = item.description;
|
this._sDescription = item.description;
|
||||||
|
if(this._employeeStatus != undefined && this._employeeStatus.length > 0)
|
||||||
|
if(item == this._employeeStatus.find(x => x.description.toLowerCase() == 'joining') ){
|
||||||
|
this._effectDate = new Date(this._employee.joiningDate);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
debugger;
|
||||||
|
// let currentDate: Date = new Date();
|
||||||
|
let currentDate: Date = this.salaryMonth;
|
||||||
|
this._effectDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
<app-loading-panel> </app-loading-panel>
|
||||||
|
<div class="card" style="padding:10px;">
|
||||||
|
<div class="p-grid" style="justify-content: center">
|
||||||
|
<div class="p-col-12">
|
||||||
|
<fieldset style="border-radius: 5px;">
|
||||||
|
<div class="p-grid" style="margin-top: auto; margin-bottom: auto;">
|
||||||
|
<div class="p-col-4">
|
||||||
|
<app-employee-picker
|
||||||
|
[setSelectedEmp]="selectedEmployee"
|
||||||
|
(ItemSelected)="GetSelectedEmployee($event)"></app-employee-picker>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-1">
|
||||||
|
<label>Authorized Person</label>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-3">
|
||||||
|
<kendo-dropdownlist [(ngModel)]="authorizedPerson" [data]="authorizedPersons" [textField]="'name'"
|
||||||
|
[valueField]="'id'" [defaultItem]="{ name: 'Select Authorized Person..', id: null }"
|
||||||
|
style="width:100%;">
|
||||||
|
</kendo-dropdownlist>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-1">
|
||||||
|
<label>Report</label>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-3">
|
||||||
|
<kendo-dropdownlist [(ngModel)]="selectedreportType" [data]="reportTypes" [textField]="'text'"
|
||||||
|
[valueField]="'value'" [defaultItem]="{ text: 'Select Report Type..', value: null }"
|
||||||
|
style="width:100%;" (valueChange)="onSelectReport($event)">
|
||||||
|
</kendo-dropdownlist>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="p-col-3" align="middle">
|
||||||
|
<label>Salary Allocation Date</label>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-3">
|
||||||
|
<kendo-datepicker [(ngModel)]="salaryAllocationDate" [format]="salaryAllocationDateFormat"
|
||||||
|
[bottomView]="bottomView" [topView]="topview" style="width:100%"></kendo-datepicker>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-3" align="middle" *ngIf="showLocation">
|
||||||
|
<label>Location</label>
|
||||||
|
</div>
|
||||||
|
<div class="p-col-3" *ngIf="showLocation">
|
||||||
|
<kendo-dropdownlist [(ngModel)]="selectedLocation" [data]="locations"
|
||||||
|
[defaultItem]="{ name: 'Select Location..', id: 0 }" [textField]="'name'" [valueField]="'id'"
|
||||||
|
(valueChange)="locationChange($event)"
|
||||||
|
style="width:100%;">
|
||||||
|
</kendo-dropdownlist>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
<div class="p-col-12" align="right">
|
||||||
|
<button kendoButton icon="file-pdf" [primary]="true" (click)="preview('PDF')" *ngIf="isViewable">Preview</button>
|
||||||
|
<button kendoButton icon="download" [primary]="true" style="margin-left:5px;"
|
||||||
|
(click)="preview('Download')">Download</button>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<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%'}">
|
||||||
|
<app-loading-panel> </app-loading-panel>
|
||||||
|
<div class='embed-responsive'>
|
||||||
|
<iframe class="pdf-viewer" id="pdf-viewer-report" type='application/pdf' [zoom]="zoomLevel"></iframe>
|
||||||
|
</div>
|
||||||
|
</kendo-window>
|
||||||
|
</div>
|
|
@ -0,0 +1,273 @@
|
||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
|
import { DynamicPicker, EnumDynamicpickerType } from '../../picker/dynamic-picker/Dynamic-Picker';
|
||||||
|
import {
|
||||||
|
EnumBloodGroup,
|
||||||
|
EnumExtension,
|
||||||
|
EnumGender,
|
||||||
|
EnumMaritalStatus,
|
||||||
|
EnumSearchFrom,
|
||||||
|
EnumSearchObjDataType,
|
||||||
|
EnumSearchParameter,
|
||||||
|
EnumSQLOperator,
|
||||||
|
EnumStatus
|
||||||
|
} from '../../_models/enums';
|
||||||
|
import { SearchEmployee, SearchManager } from '../../_models/Employee/searchEmployee';
|
||||||
|
import { EmployeeServices } from '../../_services/employee/employee.service';
|
||||||
|
import { EmployeeBasicInfo } from '../../_models/report/employee-basic-info';
|
||||||
|
import { Router } from '@angular/router';
|
||||||
|
import { EmployeeDetailInfo } from '../../_models/report/employeeDetailInfo';
|
||||||
|
import { loadingPanelService } from '../../hrm-loding panel/loding.panel.service';
|
||||||
|
import { ColumnDefinition, Columns, ReportViewerListColumn } from '../report-viewer/repor-viewer-object';
|
||||||
|
import { AttendanceServices } from '../../_services/attendance/attendance.service';
|
||||||
|
import { DailyAttnByStatusReport } from '../../_models/Attendance/dailyAttnByStatusReport';
|
||||||
|
import { HRMNotificationService } from '../../app.notification.service';
|
||||||
|
import { DataStateChangeEvent, GridDataResult, PageChangeEvent, SelectableSettings, SelectableMode } from '@progress/kendo-angular-grid';
|
||||||
|
import { ExcelExportData } from '@progress/kendo-angular-excel-export';
|
||||||
|
import { DataResult, GroupDescriptor, process, State } from '@progress/kendo-data-query';
|
||||||
|
import { ReportServices } from '../../_services/reports/report.service';
|
||||||
|
import { DomSanitizer } from '@angular/platform-browser';
|
||||||
|
import { BasicService } from '../../_services/Basic/basic.service';
|
||||||
|
import { LoanService } from 'src/app/_services/payroll/loan.service';
|
||||||
|
import { ApiService } from '../../app.api.service';
|
||||||
|
import { TaxParameter } from '../../_models/Payroll/Tax/taxParameter';
|
||||||
|
import { TaxService } from '../../_services/payroll/tax.service';
|
||||||
|
import { LeaveService } from '../../_services/leave/leave.service';
|
||||||
|
import { PayrollType } from '../../_models/Authentication/payrollType';
|
||||||
|
import { User } from '../../_models/Authentication/user';
|
||||||
|
import { AuthService } from '../../_services/auth/auth.service';
|
||||||
|
import { saveAs } from 'file-saver';
|
||||||
|
import { SalaryService } from '../../_services/payroll/salary.service';
|
||||||
|
import { LoanIssue } from 'src/app/_models/Payroll/Loan/loanIssue';
|
||||||
|
import { Bank } from 'src/app/_models/Basic/bank';
|
||||||
|
import { formatDate } from '@progress/kendo-angular-intl';
|
||||||
|
import { encodeBase64 } from '@progress/kendo-file-saver';
|
||||||
|
import { AuthorizedPerson } from 'src/app/adhoc-feature/authorized-persons/authorizedPerson';
|
||||||
|
import { Employee } from 'src/app/_models/Employee/employee';
|
||||||
|
import { HrEmployee } from 'src/app/_models/HREmployee/hrEmployee';
|
||||||
|
import { HttpClient } from '@angular/common/http';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-employee-profile-reports',
|
||||||
|
templateUrl: './employee-profile-reports.component.html',
|
||||||
|
styleUrls: ['./employee-profile-reports.component.scss']
|
||||||
|
})
|
||||||
|
export class EmployeeProfileReportsComponent implements OnInit {
|
||||||
|
|
||||||
|
public showPopUp: boolean = false;
|
||||||
|
public src: any;
|
||||||
|
public PDFTitle = '';
|
||||||
|
public isViewable: boolean = true;
|
||||||
|
|
||||||
|
public selectedreportType: EnumProfileReportType;
|
||||||
|
public reportTypes = Object.keys(EnumProfileReportType)
|
||||||
|
.filter(key => !isNaN(Number(EnumProfileReportType[key])))
|
||||||
|
.map(key => ({
|
||||||
|
text: key.replace(/_/g, ' '),
|
||||||
|
value: EnumProfileReportType[key]
|
||||||
|
}));
|
||||||
|
public authorizedPersons: AuthorizedPerson[] = [];
|
||||||
|
public authorizedPerson: AuthorizedPerson;
|
||||||
|
|
||||||
|
public selectedEmployee: SearchEmployee;
|
||||||
|
public employee: HrEmployee;
|
||||||
|
|
||||||
|
constructor(public employeeService: EmployeeServices,
|
||||||
|
public attendanceService: AttendanceServices,
|
||||||
|
public reportService: ReportServices,
|
||||||
|
private sanitizer: DomSanitizer,
|
||||||
|
public basicService: BasicService,
|
||||||
|
public loanService: LoanService,
|
||||||
|
public taxService: TaxService,
|
||||||
|
public salaryService: SalaryService,
|
||||||
|
public leaveYearService: LeaveService,
|
||||||
|
public router: Router, public loadingPanel: loadingPanelService,
|
||||||
|
public notificationService: HRMNotificationService,
|
||||||
|
public apiService: ApiService, public authService: AuthService) {
|
||||||
|
this.apiService.selectedMenuName = 'Profile Reports';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
this.loadAuthorizedPerson();
|
||||||
|
}
|
||||||
|
|
||||||
|
closeForm(): void {
|
||||||
|
this.showPopUp = false;
|
||||||
|
this.loadingPanel.ShowLoadingPanel = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
preview(reportType: string) {
|
||||||
|
debugger;
|
||||||
|
if (this.selectedEmployee == undefined || this.selectedEmployee == null) {
|
||||||
|
this.notificationService.showWarning('Please Select and employee!!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.selectedreportType == undefined || this.selectedreportType['value'] == null) {
|
||||||
|
this.notificationService.showWarning('Please select a report!!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const data = {
|
||||||
|
reportID: this.selectedreportType['value'],
|
||||||
|
personID: this.authorizedPerson != null ? this.authorizedPerson.id : 0,
|
||||||
|
employeeID: this.selectedEmployee.employeeID,
|
||||||
|
reportType: reportType == 'Download' ? 'PDF' : reportType
|
||||||
|
};
|
||||||
|
switch (this.selectedreportType['value']) {
|
||||||
|
case EnumProfileReportType.Print_CV:
|
||||||
|
this.PDFTitle = this.selectedEmployee.employeeNo + '-' + EnumExtension.getName(EnumProfileReportType, EnumProfileReportType.Print_CV);
|
||||||
|
break;
|
||||||
|
case EnumProfileReportType.Appointment_Letter_Officer:
|
||||||
|
this.PDFTitle = this.selectedEmployee.employeeNo + '-' + EnumExtension.getName(EnumProfileReportType, EnumProfileReportType.Appointment_Letter_Officer);
|
||||||
|
break;
|
||||||
|
case EnumProfileReportType.Appointment_Letter_Staff:
|
||||||
|
this.PDFTitle = this.selectedEmployee.employeeNo + '-' + EnumExtension.getName(EnumProfileReportType, EnumProfileReportType.Appointment_Letter_Staff);
|
||||||
|
break;
|
||||||
|
case EnumProfileReportType.Appointment_Letter_Worker:
|
||||||
|
this.PDFTitle = this.selectedEmployee.employeeNo + '-' + EnumExtension.getName(EnumProfileReportType, EnumProfileReportType.Appointment_Letter_Worker);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.loadingPanel.ShowLoadingPanel = true;
|
||||||
|
if (reportType === 'PDF')
|
||||||
|
this.showPopUp = true;
|
||||||
|
if (this.selectedreportType['value'] == EnumProfileReportType.Print_CV || this.selectedreportType['value'] == EnumProfileReportType.Appointment_Letter_Officer) {
|
||||||
|
this.reportService.getProfileReportData(data).subscribe(
|
||||||
|
(resp: any) => {
|
||||||
|
if (reportType === 'PDF') {
|
||||||
|
|
||||||
|
this.src = URL.createObjectURL(this.b64toBlob(resp, 'application/pdf', 1024));
|
||||||
|
var element = <HTMLIFrameElement>(document.getElementById("pdf-viewer-report"));
|
||||||
|
element.src = this.src;
|
||||||
|
} else if (reportType === 'Download') {
|
||||||
|
this.downloadFile(resp);
|
||||||
|
}
|
||||||
|
this.loadingPanel.ShowLoadingPanel = false;
|
||||||
|
},
|
||||||
|
(err: any) => {
|
||||||
|
this.closeForm();
|
||||||
|
// console.log(err);
|
||||||
|
this.notificationService.showError(err.error);
|
||||||
|
this.loadingPanel.ShowLoadingPanel = false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.reportService.getGeneratedProfileReportData(data).subscribe(fileData => {
|
||||||
|
|
||||||
|
this.loadingPanel.ShowLoadingPanel = false;
|
||||||
|
if (reportType == 'PDF') {
|
||||||
|
var element = <HTMLIFrameElement>(document.getElementById("pdf-viewer-report"));
|
||||||
|
element.src = URL.createObjectURL(new Blob([fileData], { type: 'application/pdf' }));
|
||||||
|
|
||||||
|
// Doc
|
||||||
|
// var element = <HTMLIFrameElement>document.getElementById("pdf-viewer-report");
|
||||||
|
// const fileUrl = URL.createObjectURL(new Blob([fileData], { type: 'application/msword' }));
|
||||||
|
|
||||||
|
// // Using Google Docs Viewer
|
||||||
|
// element.src = `https://docs.google.com/gview?url=${encodeURIComponent(fileUrl)}&embedded=true`;
|
||||||
|
}
|
||||||
|
if (reportType == 'Download')
|
||||||
|
this.downloadBlob(new Blob([fileData], { type: 'application/msword' }), 'application/msword', this.PDFTitle);
|
||||||
|
// this.downloadBlob(new Blob([fileData], { type: 'application/pdf' }), 'application/pdf', this.PDFTitle);
|
||||||
|
|
||||||
|
},
|
||||||
|
(error) => {
|
||||||
|
this.closeForm();
|
||||||
|
console.log(error);
|
||||||
|
this.notificationService.showError(error.error);
|
||||||
|
this.loadingPanel.ShowLoadingPanel = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
downloadFile(blobContent) {
|
||||||
|
//EXCEL
|
||||||
|
// let blob = new Blob([this.b64toBlob(blobContent, 'application/data:application/vnd.ms-excel', 1024)], {});
|
||||||
|
// saveAs(blob, this.PDFTitle + '.xls');
|
||||||
|
//PDF
|
||||||
|
let blob = new Blob([this.b64toBlob(blobContent, 'application/pdf', 1024)], {});
|
||||||
|
saveAs(blob, this.PDFTitle + '.pdf');
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
public loadAuthorizedPerson() {
|
||||||
|
this.employeeService.getAuthorizedPerson().subscribe(
|
||||||
|
(resp) => {
|
||||||
|
this.authorizedPersons = resp as AuthorizedPerson[];
|
||||||
|
},
|
||||||
|
(err: any) => {
|
||||||
|
this.notificationService.showError(err.error);
|
||||||
|
this.loadingPanel.ShowLoadingPanel = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public GetSelectedEmployee(childData: any) {
|
||||||
|
if (childData === undefined) {
|
||||||
|
this.employee = new HrEmployee();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.selectedEmployee = childData;
|
||||||
|
// this.employeeService.getHREmployeeID(this.selectedEmployee.employeeID).subscribe(
|
||||||
|
// (resp: any) => {
|
||||||
|
// this.employee = resp;
|
||||||
|
// },
|
||||||
|
// (err: any) => {
|
||||||
|
// this.notificationService.showError(err.error);
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
onSelectReport(value: any) {
|
||||||
|
debugger;
|
||||||
|
if (this.selectedreportType['value'] != EnumProfileReportType.Appointment_Letter_Staff && this.selectedreportType['value'] != EnumProfileReportType.Appointment_Letter_Worker) {
|
||||||
|
this.isViewable = true;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.isViewable = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum EnumProfileReportType {
|
||||||
|
Print_CV = 1,
|
||||||
|
// Employee_Service_Book = 2,
|
||||||
|
Appointment_Letter_Worker = 3,
|
||||||
|
Appointment_Letter_Staff = 4,
|
||||||
|
Appointment_Letter_Officer = 5
|
||||||
|
}
|
|
@ -786,8 +786,8 @@ export class ReportViewerComponent implements OnInit {
|
||||||
this.multiselect = true;
|
this.multiselect = true;
|
||||||
this.hiddenFromDate = true;
|
this.hiddenFromDate = true;
|
||||||
this.hiddenToDate = true;
|
this.hiddenToDate = true;
|
||||||
this.fromDate = new Date();
|
this.fromDate = GlobalfunctionExtension.getFirstDateofMonth(new Date());
|
||||||
this.toDate = new Date();
|
this.toDate = GlobalfunctionExtension.getLastDateOfMonth(new Date());
|
||||||
this.hiddenAllSearch = false;
|
this.hiddenAllSearch = false;
|
||||||
this.hiddenExport = true;
|
this.hiddenExport = true;
|
||||||
this.loadCurrentFiscalYear();
|
this.loadCurrentFiscalYear();
|
||||||
|
|
|
@ -30,6 +30,7 @@ import { PfLedgerComponent } from './pf-ledger/pf-ledger.component';
|
||||||
import { CcWiseBonusSummaryComponent } from './cc-wise-bonus-summary/cc-wise-bonus-summary.component';
|
import { CcWiseBonusSummaryComponent } from './cc-wise-bonus-summary/cc-wise-bonus-summary.component';
|
||||||
import { CcwiseSalarySummaryComponent } from './ccwise-salary-summary/ccwise-salary-summary.component';
|
import { CcwiseSalarySummaryComponent } from './ccwise-salary-summary/ccwise-salary-summary.component';
|
||||||
import { CcwiseNewPfMemberWithAmountComponent } from './ccwise-new-pf-member-with-amount/ccwise-new-pf-member-with-amount.component';
|
import { CcwiseNewPfMemberWithAmountComponent } from './ccwise-new-pf-member-with-amount/ccwise-new-pf-member-with-amount.component';
|
||||||
|
import { EmployeeProfileReportsComponent } from './employee-profile-reports/employee-profile-reports.component';
|
||||||
|
|
||||||
|
|
||||||
const routes: Routes = [
|
const routes: Routes = [
|
||||||
|
@ -160,6 +161,7 @@ const routes: Routes = [
|
||||||
{ path: 'report-viewer/721', component: ReportViewerComponent, canActivate: [AuthGuard] },
|
{ path: 'report-viewer/721', component: ReportViewerComponent, canActivate: [AuthGuard] },
|
||||||
{ path: 'report-viewer/722', component: ReportViewerComponent, canActivate: [AuthGuard] },
|
{ path: 'report-viewer/722', component: ReportViewerComponent, canActivate: [AuthGuard] },
|
||||||
{ path: 'report-viewer/723', component: ReportViewerComponent, canActivate: [AuthGuard] },
|
{ path: 'report-viewer/723', component: ReportViewerComponent, canActivate: [AuthGuard] },
|
||||||
|
{ path: 'report-viewer/profile-reports', component: EmployeeProfileReportsComponent, canActivate: [AuthGuard] },
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,7 @@ import { PfLedgerComponent } from './pf-ledger/pf-ledger.component';
|
||||||
import { CcWiseBonusSummaryComponent } from './cc-wise-bonus-summary/cc-wise-bonus-summary.component';
|
import { CcWiseBonusSummaryComponent } from './cc-wise-bonus-summary/cc-wise-bonus-summary.component';
|
||||||
import { CcwiseSalarySummaryComponent } from './ccwise-salary-summary/ccwise-salary-summary.component';
|
import { CcwiseSalarySummaryComponent } from './ccwise-salary-summary/ccwise-salary-summary.component';
|
||||||
import { CcwiseNewPfMemberWithAmountComponent } from './ccwise-new-pf-member-with-amount/ccwise-new-pf-member-with-amount.component';
|
import { CcwiseNewPfMemberWithAmountComponent } from './ccwise-new-pf-member-with-amount/ccwise-new-pf-member-with-amount.component';
|
||||||
|
import { EmployeeProfileReportsComponent } from './employee-profile-reports/employee-profile-reports.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [
|
||||||
|
@ -74,7 +75,8 @@ import { CcwiseNewPfMemberWithAmountComponent } from './ccwise-new-pf-member-wit
|
||||||
PfLedgerComponent,
|
PfLedgerComponent,
|
||||||
CcWiseBonusSummaryComponent,
|
CcWiseBonusSummaryComponent,
|
||||||
CcwiseSalarySummaryComponent,
|
CcwiseSalarySummaryComponent,
|
||||||
CcwiseNewPfMemberWithAmountComponent
|
CcwiseNewPfMemberWithAmountComponent,
|
||||||
|
EmployeeProfileReportsComponent
|
||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
|
|
|
@ -11,11 +11,13 @@ using AutoMapper.Configuration;
|
||||||
using Google.Protobuf.WellKnownTypes;
|
using Google.Protobuf.WellKnownTypes;
|
||||||
using HRM.BO;
|
using HRM.BO;
|
||||||
using HRM.DA;
|
using HRM.DA;
|
||||||
|
using HRM.Report;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.StaticFiles;
|
using Microsoft.AspNetCore.StaticFiles;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using NPOI.HPSF;
|
||||||
using NPOI.SS.Formula.Functions;
|
using NPOI.SS.Formula.Functions;
|
||||||
using Org.BouncyCastle.Ocsp;
|
using Org.BouncyCastle.Ocsp;
|
||||||
using static HRM.Report.PayrollDataSet.PayrollDataSet;
|
using static HRM.Report.PayrollDataSet.PayrollDataSet;
|
||||||
|
@ -783,6 +785,88 @@ namespace HRM.UI.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[HttpPost("generatedExceptiinLetter/{letterType}")]
|
||||||
|
public ActionResult generatedExceptiinLetter(int letterType, List<SearchEmployee> employees)
|
||||||
|
{
|
||||||
|
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
|
||||||
|
int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault();
|
||||||
|
//string downloadPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\Downloads";
|
||||||
|
string downloadPath = System.Environment.CurrentDirectory + "\\Documents\\LetterTempFolder\\";
|
||||||
|
string lFileName = string.Empty;
|
||||||
|
|
||||||
|
|
||||||
|
//List<string> sFilePaths = new List<string>();
|
||||||
|
List<Tuple<byte[], string, string>> filesWithContents = new List<Tuple<byte[], string, string>>();
|
||||||
|
List<FileContentResult> files = new List<FileContentResult>();
|
||||||
|
|
||||||
|
LetterTemplte ltemplate = new LetterTemplte();
|
||||||
|
|
||||||
|
byte[] bytes = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
if (letterType == 1)
|
||||||
|
{
|
||||||
|
ltemplate.SetObjectID(FixedLetterTemplte.Staff_Appointment_Letter);
|
||||||
|
|
||||||
|
ltemplate.ID = 2;
|
||||||
|
ltemplate.Description = "Letter Template Staff";
|
||||||
|
ltemplate.Subject = "Letter Template Staff";
|
||||||
|
ltemplate.Type = EnumDocType.Desktop_Letter;
|
||||||
|
ltemplate.TypeID = (int)EnumDocType.Desktop_Letter;
|
||||||
|
|
||||||
|
lFileName = "Staff.doc";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ltemplate.SetObjectID(FixedLetterTemplte.Worker_Appointment_Letter);
|
||||||
|
|
||||||
|
ltemplate.ID = 3;
|
||||||
|
ltemplate.Description = "Letter Template Worker";
|
||||||
|
ltemplate.Subject = "Letter Template Worker";
|
||||||
|
ltemplate.Type = EnumDocType.Desktop_Letter;
|
||||||
|
ltemplate.TypeID = (int)EnumDocType.Desktop_Letter;
|
||||||
|
|
||||||
|
lFileName = "Worker.doc";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (employees != null && employees.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var emp in employees)
|
||||||
|
{
|
||||||
|
string sFilePath = new rptEmployee().Generate(ltemplate, emp.EmployeeID, payrollTypeId, downloadPath, lFileName);
|
||||||
|
byte[] buffer = new byte[16 * 1024];
|
||||||
|
buffer = System.IO.File.ReadAllBytes(sFilePath);
|
||||||
|
string contentType = GetFileType(sFilePath);
|
||||||
|
var name = lFileName;
|
||||||
|
if (System.IO.File.Exists(sFilePath))
|
||||||
|
{
|
||||||
|
System.IO.File.Delete(sFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
//sFilePaths.Add(sFilePath);
|
||||||
|
filesWithContents.Add(new Tuple<byte[], string, string>(buffer, emp.EmployeeNo + "_" + name, contentType));
|
||||||
|
|
||||||
|
var file = File(buffer, contentType, emp.EmployeeNo + "_" + name);
|
||||||
|
//return file;
|
||||||
|
files.Add(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//return Ok(filesWithContents);
|
||||||
|
return Ok(files);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -20,6 +20,7 @@ using NPOI.SS.Formula.Functions;
|
||||||
using HRM.BO.Report;
|
using HRM.BO.Report;
|
||||||
using HRM.Report.PayrollDataSet;
|
using HRM.Report.PayrollDataSet;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
using Microsoft.AspNetCore.StaticFiles;
|
||||||
|
|
||||||
namespace HRM.UI.Controllers.Report
|
namespace HRM.UI.Controllers.Report
|
||||||
{
|
{
|
||||||
|
@ -1697,5 +1698,153 @@ namespace HRM.UI.Controllers.Report
|
||||||
|
|
||||||
return Ok(bytes);
|
return Ok(bytes);
|
||||||
}
|
}
|
||||||
|
[HttpPost("getProfileReportData")]
|
||||||
|
public ActionResult getProfileReportData(dynamic data)
|
||||||
|
{
|
||||||
|
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
|
||||||
|
var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data));
|
||||||
|
EnumProfileReportType reportid = (EnumProfileReportType)items["reportID"].ToObject<int>();
|
||||||
|
int personID = 0;
|
||||||
|
int employeeID = 0;
|
||||||
|
|
||||||
|
if (items["personID"] != null)
|
||||||
|
personID = (int)items["personID"].ToObject<int>();
|
||||||
|
if (items["employeeID"] != null)
|
||||||
|
employeeID = (int)items["employeeID"].ToObject<int>();
|
||||||
|
|
||||||
|
string reportType = (string)items["reportType"].ToObject<string>();
|
||||||
|
|
||||||
|
int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault();
|
||||||
|
byte[] bytes = null;
|
||||||
|
|
||||||
|
LetterTemplte ltemplate = new LetterTemplte();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
switch (reportid)
|
||||||
|
{
|
||||||
|
case EnumProfileReportType.Print_CV:
|
||||||
|
bytes = new rptEmployee().GetEmployeeCV(employeeID, payrollTypeId, reportType);
|
||||||
|
break;
|
||||||
|
case EnumProfileReportType.Employee_Service_Book:
|
||||||
|
break;
|
||||||
|
case EnumProfileReportType.Appointment_Letter_Officer:
|
||||||
|
bytes = new rptEmployee().GetAsstOfficeAndAbove(employeeID, payrollTypeId, reportType);
|
||||||
|
break;
|
||||||
|
case EnumProfileReportType.Appointment_Letter_Worker:
|
||||||
|
break;
|
||||||
|
case EnumProfileReportType.Appointment_Letter_Staff:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Ok(bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost("getGeneratedProfileReport")]
|
||||||
|
public ActionResult getGeneratedProfileReportData(dynamic data)
|
||||||
|
{
|
||||||
|
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
|
||||||
|
var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data));
|
||||||
|
EnumProfileReportType reportid = (EnumProfileReportType)items["reportID"].ToObject<int>();
|
||||||
|
int personID = 0;
|
||||||
|
int employeeID = 0;
|
||||||
|
|
||||||
|
if (items["personID"] != null)
|
||||||
|
personID = (int)items["personID"].ToObject<int>();
|
||||||
|
if (items["employeeID"] != null)
|
||||||
|
employeeID = (int)items["employeeID"].ToObject<int>();
|
||||||
|
|
||||||
|
string reportType = (string)items["reportType"].ToObject<string>();
|
||||||
|
|
||||||
|
int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault();
|
||||||
|
byte[] bytes = null;
|
||||||
|
|
||||||
|
LetterTemplte ltemplate = new LetterTemplte();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//string downloadPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\Downloads";
|
||||||
|
string downloadPath = System.Environment.CurrentDirectory + "\\Documents\\LetterTempFolder\\";
|
||||||
|
string sFilePath = string.Empty, lFileName = string.Empty;
|
||||||
|
|
||||||
|
switch (reportid)
|
||||||
|
{
|
||||||
|
case EnumProfileReportType.Appointment_Letter_Worker:
|
||||||
|
ltemplate.SetObjectID(FixedLetterTemplte.Worker_Appointment_Letter);
|
||||||
|
|
||||||
|
ltemplate.ID = 3;
|
||||||
|
ltemplate.Description = "Letter Template Worker";
|
||||||
|
ltemplate.Subject = "Letter Template Worker";
|
||||||
|
ltemplate.Type = EnumDocType.Desktop_Letter;
|
||||||
|
ltemplate.TypeID = (int)EnumDocType.Desktop_Letter;
|
||||||
|
|
||||||
|
lFileName = "Worker.doc";
|
||||||
|
|
||||||
|
sFilePath = new rptEmployee().Generate(ltemplate, employeeID, payrollTypeId, downloadPath, lFileName);
|
||||||
|
break;
|
||||||
|
case EnumProfileReportType.Appointment_Letter_Staff:
|
||||||
|
ltemplate.SetObjectID(FixedLetterTemplte.Staff_Appointment_Letter);
|
||||||
|
|
||||||
|
ltemplate.ID = 2;
|
||||||
|
ltemplate.Description = "Letter Template Staff";
|
||||||
|
ltemplate.Subject = "Letter Template Staff";
|
||||||
|
ltemplate.Type = EnumDocType.Desktop_Letter;
|
||||||
|
ltemplate.TypeID = (int)EnumDocType.Desktop_Letter;
|
||||||
|
|
||||||
|
lFileName = "Staff.doc";
|
||||||
|
|
||||||
|
sFilePath = new rptEmployee().Generate(ltemplate, employeeID, payrollTypeId, downloadPath, lFileName);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
byte[] buffer = new byte[16 * 1024];
|
||||||
|
buffer = System.IO.File.ReadAllBytes(sFilePath);
|
||||||
|
string contentType = GetFileType(sFilePath);
|
||||||
|
//var name = System.IO.Path.ChangeExtension(lFileName, ".pdf");
|
||||||
|
var name = lFileName;
|
||||||
|
if (System.IO.File.Exists(sFilePath))
|
||||||
|
{
|
||||||
|
System.IO.File.Delete(sFilePath);
|
||||||
|
}
|
||||||
|
//if (System.IO.File.Exists(System.IO.Path.ChangeExtension(sFilePath, ".doc")))
|
||||||
|
//{
|
||||||
|
// System.IO.File.Delete(System.IO.Path.ChangeExtension(sFilePath, ".doc"));
|
||||||
|
//}
|
||||||
|
return File(buffer, contentType, name);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Ok(bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Route("get-file-type")]
|
||||||
|
[AllowAnonymous]
|
||||||
|
[IgnoreAntiforgeryToken]
|
||||||
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||||
|
public string GetFileType(string originalFileName)
|
||||||
|
{
|
||||||
|
//var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data));
|
||||||
|
//string fileName = (string)item["fileName"].ToObject<string>();
|
||||||
|
string fileName = originalFileName;
|
||||||
|
string contentType;
|
||||||
|
new FileExtensionContentTypeProvider().TryGetContentType(fileName, out contentType);
|
||||||
|
return contentType ?? "application/octet-stream";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
2952
HRM.UI/Documents/LetterTempFolder/Staff.doc
Normal file
2952
HRM.UI/Documents/LetterTempFolder/Staff.doc
Normal file
File diff suppressed because it is too large
Load Diff
2967
HRM.UI/Documents/LetterTempFolder/Worker.doc
Normal file
2967
HRM.UI/Documents/LetterTempFolder/Worker.doc
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -1172,6 +1172,18 @@
|
||||||
<TypeScriptCompile Remove="ClientApp\src\app\_models\Recruitement\InterviewAssessmentKpi.ts" />
|
<TypeScriptCompile Remove="ClientApp\src\app\_models\Recruitement\InterviewAssessmentKpi.ts" />
|
||||||
</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="appsettings.json" />
|
<EmbeddedResource Include="appsettings.json" />
|
||||||
<EmbeddedResource Include="RDLC\CandidateAssesmentDetails.rdlc" />
|
<EmbeddedResource Include="RDLC\CandidateAssesmentDetails.rdlc" />
|
||||||
|
@ -1232,6 +1244,9 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<None Update="RDLC\IDCardPrint.rdlc">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
<None Update="RDLC\Report177.rdlc">
|
<None Update="RDLC\Report177.rdlc">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4,53 +4,55 @@
|
||||||
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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-11" ViewPortY="-10" 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="51" ViewPortY="362" 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="28" X="14" Y="12" Height="105" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="91" SplitterPosition="101" />
|
<Shape ID="DesignTable:ComapnyInformation" ZOrder="30" X="14" Y="12" Height="105" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="91" SplitterPosition="101" />
|
||||||
<Shape ID="DesignTable:DepartmentWiseManpower" ZOrder="45" X="260" Y="7" Height="105" Width="226" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" />
|
<Shape ID="DesignTable:DepartmentWiseManpower" ZOrder="47" X="260" Y="7" Height="105" Width="226" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" />
|
||||||
<Shape ID="DesignTable:BankAdvice" ZOrder="29" X="582" Y="51" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
<Shape ID="DesignTable:BankAdvice" ZOrder="31" X="582" Y="51" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
||||||
<Shape ID="DesignTable:BankAdviceLetter" ZOrder="44" X="580" Y="14" Height="181" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="177" />
|
<Shape ID="DesignTable:BankAdviceLetter" ZOrder="46" X="580" Y="14" Height="181" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="177" />
|
||||||
<Shape ID="DesignTable:BankAdviceParameters" ZOrder="43" X="582" Y="84" Height="257" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
<Shape ID="DesignTable:BankAdviceParameters" ZOrder="45" X="582" Y="84" Height="257" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
||||||
<Shape ID="DesignTable:DtAgeRange" ZOrder="42" X="261" Y="40" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" />
|
<Shape ID="DesignTable:DtAgeRange" ZOrder="44" X="261" Y="40" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" />
|
||||||
<Shape ID="DesignTable:dtQualificationWiseManpower" ZOrder="41" X="261" Y="72" Height="86" Width="243" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" />
|
<Shape ID="DesignTable:dtQualificationWiseManpower" ZOrder="43" X="261" Y="72" Height="86" Width="243" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" />
|
||||||
<Shape ID="DesignTable:EmployeeMasterData" ZOrder="5" X="906" Y="1" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
|
<Shape ID="DesignTable:EmployeeMasterData" ZOrder="7" X="906" Y="1" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:DTProvidentFund" ZOrder="40" X="261" Y="104" Height="143" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="139" />
|
<Shape ID="DesignTable:DTProvidentFund" ZOrder="42" X="261" Y="104" Height="143" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="139" />
|
||||||
<Shape ID="DesignTable:SalarySheet" ZOrder="23" X="1255" Y="6" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
|
<Shape ID="DesignTable:SalarySheet" ZOrder="25" X="1255" Y="6" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:SalarySummary" ZOrder="24" X="1255" Y="40" Height="28" Width="156" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="24" />
|
<Shape ID="DesignTable:SalarySummary" ZOrder="26" X="1255" Y="40" Height="28" Width="156" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:dtCashAdvice" ZOrder="38" X="263" Y="138" Height="200" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="196" />
|
<Shape ID="DesignTable:dtCashAdvice" ZOrder="40" X="263" Y="138" Height="200" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="196" />
|
||||||
<Shape ID="DesignTable:StuffListWithoutSalary" ZOrder="22" X="1256" Y="75" Height="28" Width="198" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
|
<Shape ID="DesignTable:StuffListWithoutSalary" ZOrder="24" X="1256" Y="75" Height="28" Width="198" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:DTMonthlyPF" ZOrder="34" X="262" Y="170" Height="200" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="196" />
|
<Shape ID="DesignTable:DTMonthlyPF" ZOrder="36" X="262" Y="170" Height="200" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="196" />
|
||||||
<Shape ID="DesignTable:DTOPI" ZOrder="39" X="262" Y="202" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="139" />
|
<Shape ID="DesignTable:DTOPI" ZOrder="41" X="262" Y="202" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="139" />
|
||||||
<Shape ID="DesignTable:SalaryComparison" ZOrder="25" X="1257" Y="109" Height="28" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
|
<Shape ID="DesignTable:SalaryComparison" ZOrder="27" X="1257" Y="109" Height="28" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:ExperienceCertificate" ZOrder="4" X="907" Y="41" Height="28" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" />
|
<Shape ID="DesignTable:ExperienceCertificate" ZOrder="6" X="907" Y="41" Height="28" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:BonusBankAdvice" ZOrder="30" X="581" Y="117" Height="219" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="215" />
|
<Shape ID="DesignTable:BonusBankAdvice" ZOrder="32" X="581" Y="117" Height="219" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="215" />
|
||||||
<Shape ID="DesignTable:ManagersPTT" ZOrder="27" X="22" Y="195" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
<Shape ID="DesignTable:ManagersPTT" ZOrder="29" X="22" Y="195" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
||||||
<Shape ID="DesignTable:DeptWiseCompany" ZOrder="37" X="262" Y="236" Height="257" Width="177" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
<Shape ID="DesignTable:DeptWiseCompany" ZOrder="39" X="262" Y="236" Height="257" Width="177" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
||||||
<Shape ID="DesignTable:SalaryCertificate" ZOrder="21" X="1258" Y="141" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="24" />
|
<Shape ID="DesignTable:SalaryCertificate" ZOrder="23" X="1258" Y="141" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:LetterOfAccountIntro" ZOrder="20" X="1258" Y="173" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
|
<Shape ID="DesignTable:LetterOfAccountIntro" ZOrder="22" X="1258" Y="173" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:DTFSS" ZOrder="35" X="263" Y="269" Height="257" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
<Shape ID="DesignTable:DTFSS" ZOrder="37" X="263" Y="269" Height="257" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
||||||
<Shape ID="DesignTable:DTFSSItems" ZOrder="36" X="265" Y="301" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="139" />
|
<Shape ID="DesignTable:DTFSSItems" ZOrder="38" X="265" Y="301" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="139" />
|
||||||
<Shape ID="DesignTable:PFException" ZOrder="3" X="912" Y="92" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
|
<Shape ID="DesignTable:PFException" ZOrder="5" X="912" Y="92" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:NewPF" ZOrder="6" X="919" Y="193" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
|
<Shape ID="DesignTable:NewPF" ZOrder="8" X="919" Y="193" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:MonthlySalaryRevision" ZOrder="26" X="22" Y="230" Height="162" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="158" />
|
<Shape ID="DesignTable:MonthlySalaryRevision" ZOrder="28" X="22" Y="230" Height="162" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="158" />
|
||||||
<Shape ID="DesignTable:EmployeePersonalInfo" ZOrder="2" X="591" Y="198" Height="28" Width="200" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
|
<Shape ID="DesignTable:EmployeePersonalInfo" ZOrder="3" X="12" Y="475" Height="28" Width="200" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:EmployeeQualification" ZOrder="7" X="113" Y="369" Height="28" Width="197" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
|
<Shape ID="DesignTable:EmployeeQualification" ZOrder="9" X="14" Y="508" Height="28" Width="197" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:EmpGrandFatherInfo" ZOrder="8" X="427" Y="471" Height="257" Width="187" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
<Shape ID="DesignTable:EmpGrandFatherInfo" ZOrder="10" X="427" Y="471" Height="257" Width="187" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
||||||
<Shape ID="DesignTable:AllTaxInfo" ZOrder="33" X="740" Y="538" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
|
<Shape ID="DesignTable:AllTaxInfo" ZOrder="35" X="740" Y="538" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:CostCenterInfo" ZOrder="32" X="-1" Y="0" Height="86" Width="153" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="82" />
|
<Shape ID="DesignTable:CostCenterInfo" ZOrder="34" X="-1" Y="0" Height="86" Width="153" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="82" />
|
||||||
<Shape ID="DesignTable:MoneyReceipt" ZOrder="31" X="494" Y="273" Height="257" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
<Shape ID="DesignTable:MoneyReceipt" ZOrder="33" X="494" Y="273" Height="257" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
|
||||||
<Shape ID="DesignTable:BankAdviceNmgt" ZOrder="19" X="1259" Y="216" Height="28" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
|
<Shape ID="DesignTable:BankAdviceNmgt" ZOrder="21" X="1259" Y="216" Height="28" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:dtGeneral" ZOrder="14" X="1262" Y="250" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" />
|
<Shape ID="DesignTable:dtGeneral" ZOrder="16" X="1262" Y="250" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:dtContacts" ZOrder="18" X="1242" Y="281" Height="28" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
|
<Shape ID="DesignTable:dtContacts" ZOrder="20" X="1242" Y="281" Height="28" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:dtSpouse" ZOrder="15" X="1266" Y="311" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="24" />
|
<Shape ID="DesignTable:dtSpouse" ZOrder="17" X="1266" Y="311" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:dtChildren" ZOrder="17" X="1267" Y="345" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
|
<Shape ID="DesignTable:dtChildren" ZOrder="19" X="1267" Y="345" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:dtEmpExperience" ZOrder="16" X="1259" Y="378" Height="28" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
|
<Shape ID="DesignTable:dtEmpExperience" ZOrder="18" X="1259" Y="378" Height="28" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:dtEmpTraining" ZOrder="13" X="1270" Y="411" Height="28" Width="152" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
|
<Shape ID="DesignTable:dtEmpTraining" ZOrder="15" X="1270" Y="411" Height="28" Width="152" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:dtEmpAcademic" ZOrder="12" X="1268" Y="445" Height="28" Width="160" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
|
<Shape ID="DesignTable:dtEmpAcademic" ZOrder="14" X="1268" Y="445" Height="28" Width="160" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:dtEmpReference" ZOrder="11" X="1265" Y="480" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="24" />
|
<Shape ID="DesignTable:dtEmpReference" ZOrder="13" X="1265" Y="480" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:dtEmpPublication" ZOrder="9" X="1262" Y="517" Height="28" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
|
<Shape ID="DesignTable:dtEmpPublication" ZOrder="11" X="1262" Y="517" Height="28" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:dtNominee" ZOrder="10" X="1280" Y="547" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="24" />
|
<Shape ID="DesignTable:dtNominee" ZOrder="12" X="1280" Y="547" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="24" />
|
||||||
<Shape ID="DesignTable:EducationalInfo" ZOrder="1" X="894" Y="425" Height="162" Width="157" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="158" />
|
<Shape ID="DesignTable:EducationalInfo" ZOrder="4" X="894" Y="425" Height="162" Width="157" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="158" />
|
||||||
|
<Shape ID="DesignTable:PastOwnerAndJobInfo" ZOrder="2" X="836" Y="248" Height="28" Width="197" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
|
||||||
|
<Shape ID="DesignTable:LeaveRecord" ZOrder="1" X="1063" Y="425" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" />
|
||||||
</Shapes>
|
</Shapes>
|
||||||
<Connectors />
|
<Connectors />
|
||||||
</DiagramLayout>
|
</DiagramLayout>
|
|
@ -1023,7 +1023,7 @@
|
||||||
<TextRun>
|
<TextRun>
|
||||||
<Value>="‡dvb: "&Parameters!CPhone.Value</Value>
|
<Value>="‡dvb: "&Parameters!CPhone.Value</Value>
|
||||||
<Style>
|
<Style>
|
||||||
<FontFamily>KarnaphuliMJ</FontFamily>
|
<FontFamily>sutonnyMJ</FontFamily>
|
||||||
<FontSize>7pt</FontSize>
|
<FontSize>7pt</FontSize>
|
||||||
</Style>
|
</Style>
|
||||||
</TextRun>
|
</TextRun>
|
||||||
|
@ -1506,7 +1506,7 @@
|
||||||
<TextRun>
|
<TextRun>
|
||||||
<Value> kZ©vejx</Value>
|
<Value> kZ©vejx</Value>
|
||||||
<Style>
|
<Style>
|
||||||
<FontFamily>KarnaphuliMJ</FontFamily>
|
<FontFamily>sutonnyMJ</FontFamily>
|
||||||
<FontSize>8pt</FontSize>
|
<FontSize>8pt</FontSize>
|
||||||
<FontWeight>Bold</FontWeight>
|
<FontWeight>Bold</FontWeight>
|
||||||
</Style>
|
</Style>
|
||||||
|
@ -1597,7 +1597,7 @@
|
||||||
<TextRun>
|
<TextRun>
|
||||||
<Value>1. GB KvW© n¯ÍvšÍi †hvM¨ b‡n |</Value>
|
<Value>1. GB KvW© n¯ÍvšÍi †hvM¨ b‡n |</Value>
|
||||||
<Style>
|
<Style>
|
||||||
<FontFamily>KarnaphuliMJ</FontFamily>
|
<FontFamily>sutonnyMJ</FontFamily>
|
||||||
<FontSize>7pt</FontSize>
|
<FontSize>7pt</FontSize>
|
||||||
</Style>
|
</Style>
|
||||||
</TextRun>
|
</TextRun>
|
||||||
|
@ -1626,7 +1626,7 @@
|
||||||
<TextRun>
|
<TextRun>
|
||||||
<Value>2. GB KvW© nviv‡bv ‡M‡j ev bó n‡j mv‡_</Value>
|
<Value>2. GB KvW© nviv‡bv ‡M‡j ev bó n‡j mv‡_</Value>
|
||||||
<Style>
|
<Style>
|
||||||
<FontFamily>KarnaphuliMJ</FontFamily>
|
<FontFamily>sutonnyMJ</FontFamily>
|
||||||
<FontSize>7pt</FontSize>
|
<FontSize>7pt</FontSize>
|
||||||
</Style>
|
</Style>
|
||||||
</TextRun>
|
</TextRun>
|
||||||
|
@ -1655,7 +1655,7 @@
|
||||||
<TextRun>
|
<TextRun>
|
||||||
<Value> mv‡_ KZ©„cÿ‡K AewnZ Ki‡Z n‡e|</Value>
|
<Value> mv‡_ KZ©„cÿ‡K AewnZ Ki‡Z n‡e|</Value>
|
||||||
<Style>
|
<Style>
|
||||||
<FontFamily>KarnaphuliMJ</FontFamily>
|
<FontFamily>sutonnyMJ</FontFamily>
|
||||||
<FontSize>7pt</FontSize>
|
<FontSize>7pt</FontSize>
|
||||||
</Style>
|
</Style>
|
||||||
</TextRun>
|
</TextRun>
|
||||||
|
@ -1684,7 +1684,7 @@
|
||||||
<TextRun>
|
<TextRun>
|
||||||
<Value>=" kÖwgK AvBb Gi "+Parameters!Dhara.Value+" aviv ‡gvZv‡eK"</Value>
|
<Value>=" kÖwgK AvBb Gi "+Parameters!Dhara.Value+" aviv ‡gvZv‡eK"</Value>
|
||||||
<Style>
|
<Style>
|
||||||
<FontFamily>KarnaphuliMJ</FontFamily>
|
<FontFamily>sutonnyMJ</FontFamily>
|
||||||
<FontSize>7pt</FontSize>
|
<FontSize>7pt</FontSize>
|
||||||
</Style>
|
</Style>
|
||||||
</TextRun>
|
</TextRun>
|
||||||
|
@ -1713,7 +1713,7 @@
|
||||||
<TextRun>
|
<TextRun>
|
||||||
<Value> bZzb KvW© cÖ`vb Kiv nB‡e| </Value>
|
<Value> bZzb KvW© cÖ`vb Kiv nB‡e| </Value>
|
||||||
<Style>
|
<Style>
|
||||||
<FontFamily>KarnaphuliMJ</FontFamily>
|
<FontFamily>sutonnyMJ</FontFamily>
|
||||||
<FontSize>7pt</FontSize>
|
<FontSize>7pt</FontSize>
|
||||||
</Style>
|
</Style>
|
||||||
</TextRun>
|
</TextRun>
|
||||||
|
@ -1742,7 +1742,7 @@
|
||||||
<TextRun>
|
<TextRun>
|
||||||
<Value> 3. PvKzix Z¨vM Kivi mgq KvW©wU ‡diZ</Value>
|
<Value> 3. PvKzix Z¨vM Kivi mgq KvW©wU ‡diZ</Value>
|
||||||
<Style>
|
<Style>
|
||||||
<FontFamily>KarnaphuliMJ</FontFamily>
|
<FontFamily>sutonnyMJ</FontFamily>
|
||||||
<FontSize>7pt</FontSize>
|
<FontSize>7pt</FontSize>
|
||||||
</Style>
|
</Style>
|
||||||
</TextRun>
|
</TextRun>
|
||||||
|
@ -2002,7 +2002,7 @@
|
||||||
<TextRun>
|
<TextRun>
|
||||||
<Value> w`‡Z n‡e|</Value>
|
<Value> w`‡Z n‡e|</Value>
|
||||||
<Style>
|
<Style>
|
||||||
<FontFamily>KarnaphuliMJ</FontFamily>
|
<FontFamily>sutonnyMJ</FontFamily>
|
||||||
<FontSize>7pt</FontSize>
|
<FontSize>7pt</FontSize>
|
||||||
</Style>
|
</Style>
|
||||||
</TextRun>
|
</TextRun>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user