Compare commits

..

No commits in common. "d0c80f9276160b24c5a9acd8b4031b72aa0d2ead" and "0831f3df6a4a0b6252edfe98516ea5048ec0d413" have entirely different histories.

74 changed files with 1018 additions and 26022 deletions

View File

@ -1398,54 +1398,6 @@ namespace HRM.BO
return InWords;
}
public static string MillionToInWords(int no)
{
if (no == 0)
return "zero";
if (no < 0)
return "minus " + MillionToInWords(Math.Abs(no));
string stringValue = "";
if ((no / 1000000) > 0)
{
stringValue += MillionToInWords(no / 1000000) + " million ";
no %= 1000000;
}
if ((no / 1000) > 0)
{
stringValue += MillionToInWords(no / 1000) + " thousand ";
no %= 1000;
}
if ((no / 100) > 0)
{
stringValue += MillionToInWords(no / 100) + " hundred ";
no %= 100;
}
if (no > 0)
{
if (stringValue != "")
stringValue += "and ";
var units = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
var tens = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
if (no < 20)
stringValue += units[no];
else
{
stringValue += tens[no / 10];
if ((no % 10) > 0)
stringValue += "-" + units[no % 10];
}
}
return stringValue;
}
}

View File

@ -417,8 +417,7 @@ namespace HRM.BO
{
Email = 1,
Event = 2,
Letter = 3,
Desktop_Letter = 4
Letter = 3
}
public enum EnumLeaveDayPeriod
@ -556,14 +555,9 @@ namespace HRM.BO
public const string CandidateDesig = "<<CANDIDATEDESIGNATION>>";
public const string CandidateGrade = "<<CANDIDATEGRADE>>";
public const string CandidateBasic = "<<CANDIDATEBASIC>>";
public const string CandidateBasicPercent = "<<CANDIDATEBASICPERCENT>>";
public const string AllowHR = "<<ALLOWHR>>";
public const string AllowHRPercent = "<<ALLOWHRPERCENT>>";
public const string AllowLTA = "<<ALLOWLTA>>";
public const string AllowMedical = "<<ALLOWMEDICAL>>";
public const string AllowMedicalPercent = "<<ALLOWMEDICALPERCENT>>";
public const string AllowConveyance = "<<ALLOWCONVEYANCE>>";
public const string AllowConveyancePercent = "<<ALLOWCONVEYANCEPERCENT>>";
public const string AllowTotal = "<<TOTAL>>";
public const string AcceptWithIN = "<<ACCEPTWITHIN>>";
public const string JoiningBefore = "<<JOINBEFORE>>";
@ -581,53 +575,6 @@ namespace HRM.BO
public const string LineManagerDesignation = "<<SUPERVISORDESIGNATION>>";
public const string FathersName = "<<FATHERSNAME>>";
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
@ -1477,16 +1424,16 @@ namespace HRM.BO
public enum EnumBloodGroup
{
NA = 0,
None = 1,
APos = 2,
ANeg = 3,
BPos = 4,
BNeg = 5,
OPos = 6,
ONeg = 7,
ABPos = 8,
ABNeg = 9
None = 0,
APos = 1,
ANeg = 2,
BPos = 3,
BNeg = 4,
OPos = 5,
ONeg = 6,
ABPos = 7,
ABNeg = 8,
NA = 9
}
@ -4044,13 +3991,4 @@ namespace HRM.BO
ReadyInOneYear = 2,
ReadyInTwoYears = 3
}
public enum EnumProfileReportType : short
{
Print_CV = 1,
Employee_Service_Book = 2,
Appointment_Letter_Worker = 3,
Appointment_Letter_Staff = 4,
Appointment_Letter_Officer = 5
}
}

View File

@ -259,9 +259,7 @@ namespace HRM.BO
public Relation ContactPersonRelation { get; set; }
public string PermanentAddressInBangla { get; set; }
public string PresentAddressInBangla { get; set; }
public string PresentPO { get; set; }
public string PresentPOInBangla { get; set; }
public string PermanentPO { get; set; }
public string ParmanentPOInBangla { get; set; }
//#region Property PermanentDistrict : District
@ -991,7 +989,6 @@ namespace HRM.BO
_telePhone = string.Empty;
_emailAddress = string.Empty;
Gender = EnumGender.None;
}
#endregion
@ -1141,14 +1138,6 @@ namespace HRM.BO
}
#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 string NomineeStatus { get; set; }
public bool HasPicture { get; set; }
@ -1320,8 +1309,8 @@ namespace HRM.BO
#endregion
//CGPA or Marks
#region GPAOrMarks
private double? _gpa;
public double? GPAOrMarks
private double _gpa;
public double GPAOrMarks
{
get { return _gpa; }
set { _gpa = value; }
@ -1330,8 +1319,8 @@ namespace HRM.BO
//OutOf
#region Property OutOf : double
private double? _outOf;
public double? OutOf
private double _outOf;
public double OutOf
{
get { return _outOf; }
set { _outOf = value; }

View File

@ -26,18 +26,7 @@
<Compile Remove="Attendance\BuyerSetup.cs" />
<Compile Remove="Organogram\OrganisationChart.cs" />
<Compile Remove="Process\NotificationProcess.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>
<Compile Remove="TagOutput\MSWord.cs" />
</ItemGroup>
<ItemGroup>

View File

@ -110,28 +110,6 @@ namespace HRM.BO
get { return _basicSalary; }
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>
private List<IncomeTax> _incomeTax = null;

View File

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

View File

@ -14,60 +14,29 @@ namespace HRM.BO
public class FixedLetterTemplte
{
////BAT Letter Template
//public const int Visa_Letter_Business_Trip_With_Family = 1;
//public const int Salary_Certificate = 2;
//public const int Visa_Letter_Business_Trip = 3;
//public const int Visa_Letter_Personal_Trip = 4;
//public const int Visa_Letter_With_Family = 5;
//public const int Loan_Letter_Bank = 6;
//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_Company_Business = 9;
//public const int Loan_Certificate_Letter_for_Authorization = 10;
//public const int Loan_Certificate_Take_Home_Salary = 11;
//public const int Intvw_BrdMember_Notify_Mail = 12;
//public const int Employee_Intvw_Notify_Mail = 13;
//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
//BAT Letter Template
public const int Visa_Letter_Business_Trip_With_Family = 1;
public const int Salary_Certificate = 2;
public const int Visa_Letter_Business_Trip = 3;
public const int Visa_Letter_Personal_Trip = 4;
public const int Visa_Letter_With_Family = 5;
public const int Loan_Letter_Bank = 6;
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_Company_Business = 9;
public const int Loan_Certificate_Letter_for_Authorization = 10;
public const int Loan_Certificate_Take_Home_Salary = 11;
public const int Intvw_BrdMember_Notify_Mail = 12;
public const int Employee_Intvw_Notify_Mail = 13;
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 Notify_Candidate_for_Interview = 21;
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 const int Candidate_Offer_Letter = 21;
public const int Candidate_Appointment_Letter = 22;
public static bool IsValidForDelete(int templateID)
{
if (templateID <= 17)

View File

@ -1,24 +1,26 @@
using Common.BO;
using Ease.Core.Model;
using Payroll.BO;
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
//using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Word;
using System.Reflection;
namespace HRM.BO
namespace Payroll.BO
{
public class MSWord
{
private Hashtable _Pair;
private string _OriginalFile;
private string _PreparedFile;
private Application _wordapp;
private Microsoft.Office.Interop.Word.Application _wordapp;
public MSWord()
{
//_wordapp = null;
_wordapp = null;
}
public Hashtable Pair
{
@ -107,7 +109,7 @@ namespace HRM.BO
object SaveChanges = true;
object Missing = System.Reflection.Missing.Value;
if (_wordapp != null)
if (_wordapp!=null)
_wordapp.Quit(ref SaveChanges, ref Missing, ref Missing);
}
@ -145,7 +147,7 @@ namespace HRM.BO
object Missing = System.Reflection.Missing.Value;
CreateCopy(destFileName);
Microsoft.Office.Interop.Word.Document oDoc = null;
Microsoft.Office.Interop.Word.Document oDoc=null;
try
{
object FileName = _PreparedFile;

View File

@ -85,9 +85,6 @@ namespace HRM.DA
}
internal static IDataReader Get(TransactionContext tc, EnumStatus 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,

View File

@ -3628,8 +3628,7 @@ AND ea.EMPLOYEEID=emp.EMPLOYEEID AND ea.LASTLEVEL=1),'') LastAcademic ,
SqlHelperExtension.CreateInParam("@ModAttendance", SqlDbType.Int, isAttendance),
SqlHelperExtension.CreateInParam("@PayrollTypeID", SqlDbType.Int, payrollTypeId)
};
//return tc.ExecuteDataSet(CommandType.StoredProcedure, "sp_DashboardInformation", p.ToArray());
return tc.ExecuteDataSet("SELECT * FROM DashboardInformation");
return tc.ExecuteDataSet(CommandType.StoredProcedure, "sp_DashboardInformation", p.ToArray());
}
//Mobile Profile
internal static DataSet GetMobileProfile(TransactionContext tc, int employeeID)

View File

@ -4,7 +4,6 @@ using Ease.Core.DataAccess;
using HRM.BO;
using Microsoft.AspNetCore.Routing.Template;
using Microsoft.Data.SqlClient;
using Org.BouncyCastle.Asn1.X509;
namespace HRM.DA
{
@ -435,12 +434,12 @@ namespace HRM.DA
"EmployeeID, ContactID, PARMANENTADDRESS, PARMANENTDISTRICTID, PARMANENTTHANAID, PARMANENTTELEPHONE," +
" PresentAddress, PresentDistrictID, PresentThanaID, PresentTelephone, Mobile, PersonalEmail," +
" OfficialEMail, Fax, EmergencyContactAddress, EmergencyContactPerson, EmergencyTelephone, PARMANENTMOBILE, " +
" PRESENTMOBILE, PERSONALTELEPHONE, EMERGENCYMOBILE, CPRELATIONID,ProfileStatus,PermanentAddressInBangla,PresentAddressInBangla,PermanentPostCodeNo,PresentPostCodeNo, PresentPOInBangla, ParmanentPOInBangla, PresentPO, PermanentPO)" +
" PRESENTMOBILE, PERSONALTELEPHONE, EMERGENCYMOBILE, CPRELATIONID,ProfileStatus,PermanentAddressInBangla,PresentAddressInBangla,PermanentPostCodeNo,PresentPostCodeNo, PresentPOInBangla, ParmanentPOInBangla)" +
" VALUES(" +
" %n, %n, %s, %n, %n, %s, " +
" %s, %n, %n, %s, %s, %s," +
" %s, %s, %s, %s, %s, %s," +
" %s, %s, %s, %n,%n, %u, %u, %s, %s, %u, %u, %s, %s)",
" %s, %s, %s, %n,%n, %u, %u, %s, %s, %u, %u)",
item.EmployeeID, item.ID, item.PermanentAddress, DataReader.GetNullValue(item.PermanentDistrictID, 0),
DataReader.GetNullValue(item.PermanentThanaID, 0), item.PermanentTelephone,
item.PresentAddress, DataReader.GetNullValue(item.PresentDistrictID, 0),
@ -449,7 +448,7 @@ namespace HRM.DA
item.EmergencyTelephone, DataReader.GetNullValue(item.PermanentMobile),
DataReader.GetNullValue(item.PresentMobile), DataReader.GetNullValue(item.PersonalTelephone),
DataReader.GetNullValue(item.EmergencyMobile),
DataReader.GetNullValue(item.ContactPersonRelationId, 0), item.ProfileStatus, item.PermanentAddressInBangla, item.PresentAddressInBangla, item.PermanentPostCodeNo, item.PresentPostCodeNo, item.PresentPOInBangla, item.ParmanentPOInBangla, item.PresentPO, item.PermanentPO);
DataReader.GetNullValue(item.ContactPersonRelationId, 0), item.ProfileStatus, item.PermanentAddressInBangla, item.PresentAddressInBangla, item.PermanentPostCodeNo, item.PresentPostCodeNo, item.PresentPOInBangla, item.ParmanentPOInBangla);
tc.ExecuteNonQuery(sql);
}
@ -460,7 +459,7 @@ namespace HRM.DA
"PARMANENTADDRESS =%s , PARMANENTDISTRICTID =%n, PARMANENTTHANAID =%n, PARMANENTTELEPHONE=%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, " +
" 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" +
" PRESENTMOBILE=%s, PERSONALTELEPHONE=%s, EMERGENCYMOBILE=%s, CPRELATIONID=%n,ProfileStatus=%n,PermanentAddressInBangla=%u,PresentAddressInBangla=%u,PermanentPostCodeNo=%s,PresentPostCodeNo=%s, PresentPOInBangla = %u, ParmanentPOInBangla = %u" +
" where EmployeeID =%n and ContactID =%n ",
item.PermanentAddress, DataReader.GetNullValue(item.PermanentDistrictID, 0),
DataReader.GetNullValue(item.PermanentThanaID, 0), item.PermanentTelephone,
@ -470,7 +469,7 @@ namespace HRM.DA
item.EmergencyTelephone, DataReader.GetNullValue(item.PermanentMobile),
DataReader.GetNullValue(item.PresentMobile), DataReader.GetNullValue(item.PersonalTelephone),
DataReader.GetNullValue(item.EmergencyMobile),
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);
DataReader.GetNullValue(item.ContactPersonRelationId, 0), item.ProfileStatus, item.PermanentAddressInBangla, item.PresentAddressInBangla, item.PermanentPostCodeNo, item.PresentPostCodeNo, item.PresentPOInBangla, item.ParmanentPOInBangla, item.EmployeeID, item.ID);
tc.ExecuteNonQuery(sql);
}
@ -589,8 +588,8 @@ namespace HRM.DA
academic.ID, academic.EmployeeID, academic.EducationLevelID,
DataReader.GetNullValue(academic.DisciplineID, 0), DataReader.GetNullValue(academic.InstitutionID, 0),
DataReader.GetNullValue(academic.PassingYear),
DataReader.GetNullValue(academic.ClassOrDivision), DataReader.GetNullValue(academic.GPAOrMarks), academic.LastLevel,
DataReader.GetNullValue(academic.OutOf), DataReader.GetNullValue(academic.ResultTypeID),
DataReader.GetNullValue(academic.ClassOrDivision), academic.GPAOrMarks, academic.LastLevel,
academic.OutOf, DataReader.GetNullValue(academic.ResultTypeID, 0),
DataReader.GetNullValue(academic.InstituteName), DataReader.GetNullValue(academic.EducationTypeID, 0),
academic.PhotoPath, academic.DocSubmissionDate, academic.ProfileStatus);
}
@ -603,8 +602,8 @@ namespace HRM.DA
" where AcademicID =%n and EmployeeID =%n ", academic.EducationLevelID,
DataReader.GetNullValue(academic.DisciplineID, 0), DataReader.GetNullValue(academic.InstitutionID, 0),
DataReader.GetNullValue(academic.PassingYear),
DataReader.GetNullValue(academic.ClassOrDivision), DataReader.GetNullValue(academic.GPAOrMarks), academic.LastLevel,
DataReader.GetNullValue(academic.OutOf), DataReader.GetNullValue(academic.ResultTypeID),
DataReader.GetNullValue(academic.ClassOrDivision), academic.GPAOrMarks, academic.LastLevel,
academic.OutOf, DataReader.GetNullValue(academic.ResultTypeID, 0),
DataReader.GetNullValue(academic.InstituteName), DataReader.GetNullValue(academic.EducationTypeID, 0),
academic.PhotoPath, academic.DocSubmissionDate, academic.ProfileStatus,
academic.ID, academic.EmployeeID);
@ -677,16 +676,16 @@ namespace HRM.DA
tc.ExecuteNonQuery("INSERT INTO EmpNominee(" +
"EmployeeID, NomineeID, NominationPurposeID, NominationDate, Name, RelationID, " +
" Percentage, BirthDate, OccupationID, Address, TelePhone," +
" EmailAddress, NomineeMobileNo, FatherName , MotherName , SpouseName , GENDER , DistrictID , ThanaID , PostOffice)" +
" EmailAddress, NomineeMobileNo)" +
" VALUES(" +
" %n, %n, %n, %d, %s, %n," +
" %n, %d, %n, %s, %s, %s, %s, %s, %s, %s, %n, %n, %n, %s)",
" %n, %d, %n, %s, %s, %s, %s)",
nominee.EmployeeID, nominee.ID, nominee.NominationPurposeID,
DataReader.GetNullValue(nominee.NominationDate), nominee.Name,
DataReader.GetNullValue(nominee.RelationID, 0),
nominee.Percentage, DataReader.GetNullValue(nominee.BirthDate),
DataReader.GetNullValue(nominee.OccupationID, 0), nominee.Address, nominee.TelePhone,
nominee.EmailAddress, nominee.NomineeMobileNo, nominee.FatherName, nominee.MotherName, nominee.SpouseName, nominee.Gender, nominee.DistrictID, nominee.ThanaID, nominee.PostOffice);
nominee.EmailAddress, nominee.NomineeMobileNo);
}
public static void Update(TransactionContext tc, EmpNominee nominee)
@ -702,16 +701,8 @@ namespace HRM.DA
,[TELEPHONE] = %s
,[EMAILADDRESS] = %s
,[NomineeMobileNo] = %s
,[FatherName] = %s
,[MotherName] = %s
,[SpouseName] = %s
,[Gender] = %n
,[DistrictID] = %n
,[ThanaID] = %n
,[PostOffice] = %s
WHERE NOMINEEID = %n", nominee.ID, nominee.NominationPurposeID, nominee.Name, nominee.RelationID,
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);
}
@ -969,13 +960,6 @@ namespace HRM.DA
,[IsMinor]
,[NID]
,[NIDPath]
,[FatherName]
,[MotherName]
,[SpouseName]
,[Gender]
,[DistrictID]
,[ThanaID]
,[PostOffice]
,iif(isnull(eu.empfileuploadid, 0) > 0, 1, 0) HasPicture
,iif(isnull(eu2.empfileuploadid, 0) > 0, 1, 0) HasSignature
from [EMPNOMINEE] en
@ -1483,35 +1467,5 @@ namespace HRM.DA
return tc.ExecuteReader(sSQL);
}
public static DataSet GetEmpELDetails(TransactionContext tc, int empID)
{
string sql = SQLParser.MakeSQL(@"SELECT le.EMPID,le.APRFROMDATE STARTDATE,le.APRTODATE ENDDATE,le.APRTOTALDAYS,Year(le.APRFROMDATE) AS Year
FROM
LEAVEENTRY le,
LEAVE lv
WHERE le.EMPID = %n
AND lv.LEAVEID = le.LEAVEID
AND lv.CODE = 'EL' AND le.APRFROMDATE > '31 Dec 2018' order by le.APRFROMDATE", empID);
return tc.ExecuteDataSet(sql);
}
public static DataSet GetNumberOfYears(TransactionContext tc, int empID)
{
string sql = SQLParser.MakeSQL(@"SELECT tab.Year,count(tab.Year) Number FROM
(
SELECT Year(le.APRFROMDATE) AS Year
FROM
LEAVEENTRY le,
LEAVE lv
WHERE le.EMPID = %n
AND lv.LEAVEID = le.LEAVEID
AND lv.CODE = 'EL' AND le.APRFROMDATE > '31 Dec 2018'
) tab
GROUP BY tab.Year
order by tab.Year", empID);
return tc.ExecuteDataSet(sql);
}
}
}

View File

@ -120,7 +120,7 @@ namespace HRM.DA
object obj =
tc.ExecuteScalar("Select SALARYPROCESSID from SALARYPROCESS where SALARYMONTH=%d AND PAYROLLTYPEID=%n",
dSMonth, payrollTypeID);
if (obj == DBNull.Value || obj == null) return false;
if (obj == DBNull.Value) return false;
else bShowInDesktop=true;
return bShowInDesktop;
}

View File

@ -376,7 +376,7 @@ END;";
//Using TOP
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo LIKE %s", ( code + "%"));
orderby = "EmployeeNo";
top = "TOP 15";
top = "TOP 50";
//Without suggestion
//sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("EmployeeNo = %s", code );
@ -385,16 +385,9 @@ END;";
if (name != string.Empty)
sqlClause = SQLParser.TagSQL(sqlClause) + SQLParser.MakeSQL("Name LIKE %s", ("%" + name + "%"));
//string finalSQl = SQLParser.MakeSQL(
// "%q Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q %q Order by %s",
// recurSqlClause, top, sqlClause, recurWhereClause, orderby);
string finalSQl = SQLParser.MakeSQL(
"%q Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q %q " +
" UNION Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q " +
" Order by %s",
recurSqlClause, top, sqlClause, recurWhereClause, top, sqlClause, orderby);
"%q Select %q EmployeeID, EmployeeNo, Name, categoryID, GradeID, LocationID, designationid, DepartmentID From Employee %q %q Order by %s",
recurSqlClause, top, sqlClause, recurWhereClause, orderby);
return tc.ExecuteReader(finalSQl);
}

View File

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

View File

@ -9,7 +9,6 @@ using System.Linq.Expressions;
using HRM.BO;
using System.ComponentModel.DataAnnotations;
using static iTextSharp.text.pdf.AcroFields;
using System.Collections;
namespace HRM.DA
{
@ -5674,177 +5673,5 @@ namespace HRM.DA
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;
}
}
}

View File

@ -254,8 +254,6 @@ namespace HRM.DA
oEmpContact.ProfileStatus = (EnumProfileStatus)oReader.GetInt32("ProfileStatus").GetValueOrDefault();
oEmpContact.PresentPOInBangla = oReader.GetString("PresentPOInBangla", 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);
}
@ -558,16 +556,6 @@ namespace HRM.DA
oEmpNominee.HasPicture = oReader.GetBoolean("HasPicture", 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);
}
@ -608,8 +596,8 @@ namespace HRM.DA
oEmpAcademic.ProfileStatus = (EnumProfileStatus)oReader.GetInt32("ProfileStatus", 0);
oEmpAcademic.ResultTypeID = oReader.GetInt32("ResultTypeID", 0);
oEmpAcademic.GPAOrMarks = oReader.GetDouble("OutOf").HasValue ? oReader.GetDouble("GPAOrMarks") : null;
oEmpAcademic.OutOf = oReader.GetDouble("OutOf").HasValue ? oReader.GetDouble("OutOf") : null;
oEmpAcademic.GPAOrMarks = oReader.GetDouble("GPAOrMarks", 0);
oEmpAcademic.OutOf = oReader.GetDouble("OutOf", 0);
oEmpAcademic.LastLevel = oReader.GetBoolean("LastLevel", false);
oEmpAcademic.InstituteName = oReader.GetString("InstituteName");
oEmpAcademic.PhotoPath = oReader.GetString("PhotoPath");
@ -5064,40 +5052,6 @@ namespace HRM.DA
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
public List<EmpHRQuestionAnswer> GetEmpHRQuestionAnswers(TransactionContext tc, int id)

View File

@ -857,9 +857,6 @@
<TablixColumn>
<Width>0.46875in</Width>
</TablixColumn>
<TablixColumn>
<Width>0.39583in</Width>
</TablixColumn>
<TablixColumn>
<Width>0.35417in</Width>
</TablixColumn>
@ -1201,39 +1198,6 @@
</Textbox>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox100">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Sum(iif(Fields!ExtraAllowance.Value = 1,1,0))</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox100</rd:DefaultName>
<Style>
<Border>
<Style>Solid</Style>
</Border>
<BackgroundColor>=iif(Sum(iif(Fields!AttenType.Value = 1 or Fields!AttenType.Value = 3 or Fields!AttenType.Value = 7 or Fields!AttenType.Value = 11 or Fields!AttenType.Value = 12,1,0))&gt;0,"Yellow","White")</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<rd:Selected>true</rd:Selected>
</CellContents>
</TablixCell>
<TablixCell>
<CellContents>
<Textbox Name="Textbox8">
@ -2493,87 +2457,6 @@
</TablixMember>
</TablixMembers>
</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>
<TablixHeader>
<Size>0.25in</Size>
@ -4200,7 +4083,7 @@
<DataSetName>MonthlyKPIDetail</DataSetName>
<Top>0.16021in</Top>
<Height>1.19792in</Height>
<Width>14.35459in</Width>
<Width>13.95876in</Width>
<Style>
<Border>
<Style>None</Style>

View File

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

View File

@ -1,17 +1,14 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Ease.Core.Model;
using Ease.Core.Utility;
using HRM.BO;
using HRM.BO.Configuration;
using HRM.DA;
using HRM.Report.Attendence.AttendenceDataSet;
using Microsoft.Extensions.Configuration;
using Microsoft.Reporting.NETCore;
using NPOI.SS.Formula.Functions;
using NPOI.XSSF.Streaming.Values;
@ -2847,38 +2844,6 @@ namespace HRM.Report
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();
#region Summary Parts
@ -2918,64 +2883,6 @@ namespace HRM.Report
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

View File

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

View File

@ -45,7 +45,6 @@
<None Remove="RDLC\AllDigitalServiceBook.rdlc" />
<None Remove="RDLC\AllEmpTaxInfo.rdlc" />
<None Remove="RDLC\AllMedicalClaim.rdlc" />
<None Remove="RDLC\ApLetterForAssistantOfficerToAbove.rdlc" />
<None Remove="RDLC\ApointmentLetterForStuff.rdlc" />
<None Remove="RDLC\ApointmentLetterForWorker.rdlc" />
<None Remove="RDLC\ArrearBankAdvice.rdlc" />
@ -296,18 +295,6 @@
<None Remove="RDLC\UpCommingEmp.rdlc" />
</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>
<EmbeddedResource Include="Attendence\RDLC\DailyAbsent.rdlc" />
<EmbeddedResource Include="Attendence\RDLC\DailyAbsentEcho.rdlc" />
@ -334,7 +321,6 @@
<EmbeddedResource Include="RDLC\AllDigitalServiceBook.rdlc" />
<EmbeddedResource Include="RDLC\AllEmpTaxInfo.rdlc" />
<EmbeddedResource Include="RDLC\AllMedicalClaim.rdlc" />
<EmbeddedResource Include="RDLC\ApLetterForAssistantOfficerToAbove.rdlc" />
<EmbeddedResource Include="RDLC\ApointmentLetterForStuff.rdlc" />
<EmbeddedResource Include="RDLC\ApointmentLetterForWorker.rdlc" />
<EmbeddedResource Include="RDLC\ArrearBankAdvice.rdlc" />

File diff suppressed because it is too large Load Diff

View File

@ -524,13 +524,6 @@
<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="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:complexType>
</xs:element>
@ -919,75 +912,47 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<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:sequence>
<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_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_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_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_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_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_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_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_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_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_ColumnPropNameInTable="GroupIDColumn" msprop:Generator_ColumnPropNameInRow="GroupID" msprop:Generator_UserColumnName="GroupID" msprop:Generator_ColumnVarNameInTable="columnGroupID" type="xs:int" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<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: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:complexType>
<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="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="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_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_UserColumnName="AccountNo" msprop:Generator_ColumnPropNameInTable="AccountNoColumn" msprop:Generator_ColumnPropNameInRow="AccountNo" msprop:Generator_ColumnVarNameInTable="columnAccountNo" 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="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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_UserColumnName="PaymentDate" msprop:Generator_ColumnPropNameInTable="PaymentDateColumn" msprop:Generator_ColumnPropNameInRow="PaymentDate" msprop:Generator_ColumnVarNameInTable="columnPaymentDate" type="xs:string" minOccurs="0" />
<xs:element name="Grade" msprop:Generator_UserColumnName="Grade" msprop:Generator_ColumnPropNameInTable="GradeColumn" msprop:Generator_ColumnPropNameInRow="Grade" msprop:Generator_ColumnVarNameInTable="columnGrade" type="xs:string" minOccurs="0" />
<xs:element name="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="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="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="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="GroupID" msprop:Generator_UserColumnName="GroupID" msprop:Generator_ColumnPropNameInTable="GroupIDColumn" msprop:Generator_ColumnPropNameInRow="GroupID" msprop:Generator_ColumnVarNameInTable="columnGroupID" type="xs:int" 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: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: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: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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="PaymentDate" msprop:Generator_ColumnPropNameInRow="PaymentDate" msprop:Generator_ColumnPropNameInTable="PaymentDateColumn" msprop:Generator_ColumnVarNameInTable="columnPaymentDate" msprop:Generator_UserColumnName="PaymentDate" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>

View File

@ -4,61 +4,59 @@
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<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">
<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">
<Shapes>
<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="16" X="260" Y="7" Height="28" Width="226" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" 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="26" X="580" Y="14" Height="28" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" 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="15" X="261" Y="40" Height="28" Width="150" 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="33" X="906" Y="1" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" 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="49" X="1255" Y="6" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" 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="12" X="263" Y="138" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" 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="11" X="262" Y="202" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" 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="32" X="907" Y="41" Height="28" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" 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="18" X="-1" Y="79" Height="28" Width="150" 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="47" X="1258" Y="141" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" 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="21" X="263" Y="269" Height="28" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" 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="27" X="907" Y="88" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" 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="17" X="-4" Y="123" Height="28" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" 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="3" X="-2" Y="167" Height="219" Width="197" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="215" />
<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="52" X="582" Y="431" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" 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="8" X="572" Y="213" 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="40" X="1262" Y="250" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" 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="41" X="1266" Y="311" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" 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="42" X="1259" Y="378" Height="28" Width="166" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" 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="38" X="1268" Y="445" Height="28" Width="160" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" 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="35" X="1262" Y="517" Height="28" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" 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="31" X="907" Y="227" Height="28" Width="157" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" 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="25" X="899" Y="183" Height="28" Width="173" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" 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="23" X="579" Y="333" Height="28" Width="200" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" 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="22" X="1084" Y="257" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="24" />
<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" />
<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:DepartmentWiseManpower" ZOrder="11" 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:BankAdviceLetter" ZOrder="22" 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:DtAgeRange" ZOrder="10" 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:EmployeeMasterData" ZOrder="30" 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:SalarySheet" ZOrder="47" 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:dtCashAdvice" ZOrder="7" 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:DTOPI" ZOrder="6" 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:ExperienceCertificate" ZOrder="29" 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:ManagersPTT" ZOrder="13" 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:SalaryCertificate" ZOrder="45" 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:DTFSS" ZOrder="16" 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:PFException" ZOrder="23" 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:MonthlySalaryRevision" ZOrder="12" 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:EmployeeQualification" ZOrder="32" X="-2" Y="167" Height="28" Width="197" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
<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:AllTaxInfo" ZOrder="50" 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:MoneyReceipt" ZOrder="3" 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:dtGeneral" ZOrder="38" 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:dtSpouse" ZOrder="39" 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:dtEmpExperience" ZOrder="40" 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:dtEmpAcademic" ZOrder="36" 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:dtEmpPublication" ZOrder="33" 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:EducationalInfo" ZOrder="27" 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:DtCostCenterTotal" ZOrder="21" 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:CCWiseBonusSummary" ZOrder="19" 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:dtPerquisite" ZOrder="17" 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" />
</Shapes>
<Connectors />
</DiagramLayout>

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -838,7 +838,7 @@ namespace HRM.Report
reportParameters.Add(rParam);
// rParam = new ReportParameter("CompanyInfo", oPT.Description.ToString());
rParam = new ReportParameter("CompanyInfo", payrollType != null ? (payrollType.CompanyName != null && payrollType.CompanyName.Trim() != "" ? payrollType.CompanyName : systemInformation?.name) : string.Empty);
rParam = new ReportParameter("CompanyInfo", payrollType != null ? payrollType.CompanyName : string.Empty);
reportParameters.Add(rParam);
rParam = new ReportParameter("SearchCriteria", "");

View File

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

View File

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

View File

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

View File

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

View File

@ -130,10 +130,4 @@ export class ReportServices {
getAttendanceReport(param: any, reportType: string) {
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);
}
}

View File

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

View File

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

View File

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

View File

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

View File

@ -55,7 +55,6 @@
<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-ml" type='application/pdf' [zoom]="zoomLevel"></iframe>
</div>

View File

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

View File

@ -13,7 +13,7 @@ export class ApiService {
public isSSO = false;
public versionDeployement = false;
public versionNumber = `V-${GlobalfunctionExtension.generateVersionNumber(new Date(2025, 1, 25))}-`+"01";
public versionNumber = `V-${GlobalfunctionExtension.generateVersionNumber(new Date(2025, 0, 7))}-`+"01";
public static BASE_URL = '';
public base_url = '';
// public currentLink = '';

View File

@ -11,25 +11,13 @@
<app-employee-picker [MultiSelect]="true"
(ItemSelected)="GetSelectedEmployee($event)"></app-employee-picker>
</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">
<strong>
<label>Roster: </label>
</strong>
</div>
<div class="rosterAssignmentControls">
<kendo-dropdownlist [(ngModel)]="selectedWorkPlanID" [data]="workPlanGroupListByType"
<kendo-dropdownlist [(ngModel)]="selectedWorkPlanID" [data]="workPlanGroupList"
[defaultItem]="{ name: 'Select..', value: null }" [textField]="'name'" [valueField]="'id'"
(valueChange)="populateEmpWorkPlanByWorkGroup($event)" [valuePrimitive]="true"
class="form-control form-control-sm input-sm" formControlName="group">

View File

@ -31,23 +31,16 @@ export class EchotexRosterAssignmentComponent implements OnInit {
workPlanGroupName = '';
workPlanGroupInitialShift = '';
workPlanGroupList: WorkPlanGroup[];
workPlanGroupListByType: WorkPlanGroup[] = [];
selectedEmployees: SearchEmployee[];
employees: Employee[];
empIds: number[] = [];
exportExcelFileName: string = '';
selectedWorkPlanTypeIsFixed: boolean;
selectedWorkPlanID: number;
fixedWorkPlan: boolean = true;
startDate: Date;
holidayDayOfWeekArray = Object.values(HolidayDayOfWeek);
workPlanTypes: { text: string, value: boolean| null }[] = [
{ text: 'Fixed', value: true },
{ text: 'Counter Clock', value: false }
]
constructor(public employeeService: EmployeeServices,
public attendanceServices: AttendanceServices,
public apiService: ApiService,
@ -92,7 +85,6 @@ export class EchotexRosterAssignmentComponent implements OnInit {
createForm() {
this.rosterAssignmentForm = new FormBuilder().group({
type: ['', Validators.required],
group: ['', Validators.required],
startDate: [''],
});
@ -210,13 +202,13 @@ export class EchotexRosterAssignmentComponent implements OnInit {
this.loadingPanel.ShowLoadingPanel = true;
this.empWorkPlanSetupList = [];
debugger;
// if (workPlanGroup.type != EnumWorkPlanGroup.Fixed &&
// (workPlanGroup.type != undefined || workPlanGroup.type != null)) {
// this.fixedWorkPlan = false;
// this.startDate = new Date();
// } else {
// this.fixedWorkPlan = true;
// }
if (workPlanGroup.type != EnumWorkPlanGroup.Fixed &&
(workPlanGroup.type != undefined || workPlanGroup.type != null)) {
this.fixedWorkPlan = false;
this.startDate = new Date();
} else {
this.fixedWorkPlan = true;
}
this.attendanceServices.getEmployeeWorkPlanSetupByWPGroupID(workPlanGroup.id).subscribe(
(resp) => {
this.empWorkPlanSetupList = resp;
@ -339,7 +331,7 @@ export class EchotexRosterAssignmentComponent implements OnInit {
);
}
public getHolidayDayOfWeek(day: number): string {
public getHolidayDayOfWeek( day: number): string {
debugger;
day = day + 1;
switch (day) {
@ -373,23 +365,4 @@ export class EchotexRosterAssignmentComponent implements OnInit {
// return dayIndex as EnumDayOfWeek;
// }
onChangeWorkPlanType(type: any) {
this.empWorkPlanSetupList = [];
this.workPlanGroupListByType = [];
this.selectedWorkPlanID = null;
this.fixedWorkPlan = true;
if (type == undefined || type == null) {
return;
}
else if (type){
this.workPlanGroupListByType = this.workPlanGroupList.filter(y => y.type == EnumWorkPlanGroup.Fixed);
}
else {
this.workPlanGroupListByType = this.workPlanGroupList.filter(y => y.type != EnumWorkPlanGroup.Fixed);
this.fixedWorkPlan = false;
this.startDate = new Date();
}
}
}

View File

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

View File

@ -17,7 +17,6 @@ import { BasicService } from '../../../../_services/Basic/basic.service';
import { enumEmpFileUploadType, EnumStatus } from '../../../../_models/enums';
import { loadingPanelService } from '../../../../hrm-loding panel/loding.panel.service';
import { empFileuploads } from '../../../../_models/HREmployee/hrEmployee';
import { forkJoin } from 'rxjs';
@Component({
selector: 'app-academic-entry',
@ -116,139 +115,84 @@ export class AcademicEntryComponent implements OnInit {
// }
// }
loadData() {
// this.basicService.getAllEducationLevel().subscribe(
// (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;
this.basicService.getAllEducationLevel().subscribe(
(resp) => {
this.alleducationLevels = resp;
},
(x) => {
this.loadingPanelService.ShowLoadingPanel = false;
console.log(x);
this.notificationService.showError(x.error);
(err: any) => {
console.log(err);
},
() => {
this.educationLevels = this.alleducationLevels;
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);
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.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;
// }
}
}
);
}
);
}
);
}
);
}
@ -266,8 +210,8 @@ export class AcademicEntryComponent implements OnInit {
}
selectEducationTypeEvent(typeid: number) {
if (typeid !== null) {
this.educationLevels = this.alleducationLevels//.filter(x => x.educationTypeID == typeid);
let selectedEducationType: EducationType[] = this.educationTypes//.filter(x => x.id == this.academic.educationTypeID)
this.educationLevels = this.alleducationLevels.filter(x => x.educationTypeID == typeid);
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.educationTypeID == typeid);
this.institutions = this.allinstitutions;
@ -306,7 +250,7 @@ export class AcademicEntryComponent implements OnInit {
if (seletedInstitution.boardRequired == true) resultType = 1;
else resultType = 2;
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.isGrade = false;
@ -341,7 +285,7 @@ export class AcademicEntryComponent implements OnInit {
educationLevelPicker: ['', Validators.required],
disciplinePicker: ['', Validators.required],
institutionPicker: ['', Validators.required],
resultTypePicker: [''],
resultTypePicker: ['', Validators.required],
examHeldOn: ['', Validators.required],
passingYear: ['', Validators.required],
gpaOrMarks: [''],
@ -360,12 +304,11 @@ export class AcademicEntryComponent implements OnInit {
this.selectedResultTypeID = this.academic.resultTypeID;
}
public onSave(e): void {
debugger;
this.academic.educationTypeID = this.selectedEducationTypeID;
this.academic.educationLevelID = this.selectedEducationLevelID;
this.academic.institutionID = this.selectedInstitutionID;
this.academic.disciplineID = this.selectedDisciplineID;
this.academic.resultTypeID = this.selectedResultTypeID != null ? this.selectedResultTypeID : 0;
this.academic.resultTypeID = this.selectedResultTypeID;
if (this.employeeService.hrEmployee.id === undefined || this.employeeService.hrEmployee.id === 0) {
this.notificationService.showWarning('please select an employee');
this.onCancel(null);
@ -377,9 +320,10 @@ export class AcademicEntryComponent implements OnInit {
return;
}
this.academic.employeeID = this.employeeService.hrEmployee.id;
this.academic.createdBy = 0;
this.academic.createdDate = new Date();
this.academic.employeeID = this.employeeService.hrEmployee.id;
this.academic.createdDate = new Date(this.academic.createdBy);
this.academic.createdBy = 0;
this.loadingPanelService.ShowLoadingPanel = true;
this.employeeService.saveEmployeeAcademic(this.academic).subscribe(
(resp) => {

View File

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

View File

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

View File

@ -27,9 +27,7 @@
<p-tabView [scrollable]="true">
<p-tabPanel header="General" leftIcon="pi pi-user">
<app-general [isActive]="!newEmployee" [employeeNo]="this.employeeService.hrEmployee.employeeNo"
(defaultNationalityHandler)="defaultNationalityHandler($event)"
(defaultEmployeeTypeHandler)="defaultEmployeeTypeHandler($event)"></app-general>
<app-general [isActive]="!newEmployee" [employeeNo]="this.employeeService.hrEmployee.employeeNo"></app-general>
</p-tabPanel>
<p-tabPanel header="Contacts" leftIcon="pi pi-phone">
<app-contact (saveContact)="saveContact($event)"></app-contact>

View File

@ -1,18 +1,16 @@
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { EmployeeServices } from '../../_services/employee/employee.service';
import { empFileuploads, HrEmployee } from '../../_models/HREmployee/hrEmployee';
import { SearchEmployee } from '../../_models/Employee/searchEmployee';
import { DataTransferService } from '../../data.transfer.service';
import { BasicService } from '../../_services/Basic/basic.service';
import { enumEmpFileUploadType, EnumExtension, EnumGender, EnumStatus } from '../../_models/enums';
import { EmpContact } from '../../_models/HREmployee/empContact';
import { ApiService } from '../../app.api.service';
import { loadingPanelService } from '../../hrm-loding panel/loding.panel.service';
import { HRMNotificationService } from '../../app.notification.service';
import { DomSanitizer } from '@angular/platform-browser';
import { Nationality } from '../nationality/nationality';
import { Category } from 'src/app/_models/Basic/category';
import {Component, OnInit} from '@angular/core';
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
import {EmployeeServices} from '../../_services/employee/employee.service';
import {empFileuploads, HrEmployee} from '../../_models/HREmployee/hrEmployee';
import {SearchEmployee} from '../../_models/Employee/searchEmployee';
import {DataTransferService} from '../../data.transfer.service';
import {BasicService} from '../../_services/Basic/basic.service';
import {enumEmpFileUploadType, EnumExtension, EnumGender, EnumStatus} from '../../_models/enums';
import {EmpContact} from '../../_models/HREmployee/empContact';
import {ApiService} from '../../app.api.service';
import {loadingPanelService} from '../../hrm-loding panel/loding.panel.service';
import {HRMNotificationService} from '../../app.notification.service';
import {DomSanitizer} from '@angular/platform-browser';
@Component({
selector: 'app-employee-profile',
@ -32,8 +30,6 @@ export class EmployeeProfileComponent implements OnInit {
attachment: any;
fileType = '';
isDisplay = false;
defaultNationality: Nationality;
defaultEmployeeType: Category;
constructor(private fb: FormBuilder,
public employeeService: EmployeeServices,
public basicService: BasicService,
@ -265,12 +261,6 @@ export class EmployeeProfileComponent implements OnInit {
this.employeeService.hrEmployee.passportExpDate = new Date(this.employeeService.hrEmployee.passportExpDate);
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);
}
@ -302,12 +292,12 @@ export class EmployeeProfileComponent implements OnInit {
this.contact = item;
}
editHandler({ dataItem }) {
editHandler({dataItem}) {
this.isDisplay = true;
const item = dataItem as empFileuploads;
this.attachment = item.fileData;
const type = item.fileName.split('.').pop();
if (type === 'png' || type === 'jpg' || type === 'jpeg') {
if ( type === 'png' || type === 'jpg' || type === 'jpeg') {
this.fileType = 'image';
}
else if (type === 'pdf') {
@ -318,12 +308,5 @@ export class EmployeeProfileComponent implements OnInit {
onPopUpClose() {
this.isDisplay = false;
}
defaultNationalityHandler(dataItem: Nationality) {
this.defaultNationality = dataItem;
}
defaultEmployeeTypeHandler(dataItem: Category) {
this.defaultEmployeeType = dataItem;
}
}

View File

@ -67,12 +67,6 @@ export class ChildrenListComponent implements OnInit {
addNew() {
this.editIndex = -1;
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;
}

View File

@ -1,14 +1,14 @@
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { EmpSpouse } from '../../../../../_models/HREmployee/empSpouse';
import { EmployeeServices } from '../../../../../_services/employee/employee.service';
import { UntilityHandlerService } from '../../../../../utility.hanldler.service';
import { DataTransferService } from '../../../../../data.transfer.service';
import { ApiService } from '../../../../../app.api.service';
import { AppWindowPopUp } from '../../../../../app.windowPopup.service';
import { HRMNotificationService } from '../../../../../app.notification.service';
import { Occupation } from '../../../../../_models/HRBasic/occupation';
import { BasicService } from '../../../../../_services/Basic/basic.service';
import { EducationLevel } from '../../../../../_models/HRBasic/education-level';
import {Component, OnInit, ViewEncapsulation} from '@angular/core';
import {EmpSpouse} from '../../../../../_models/HREmployee/empSpouse';
import {EmployeeServices} from '../../../../../_services/employee/employee.service';
import {UntilityHandlerService} from '../../../../../utility.hanldler.service';
import {DataTransferService} from '../../../../../data.transfer.service';
import {ApiService} from '../../../../../app.api.service';
import {AppWindowPopUp} from '../../../../../app.windowPopup.service';
import {HRMNotificationService} from '../../../../../app.notification.service';
import {Occupation} from '../../../../../_models/HRBasic/occupation';
import {BasicService} from '../../../../../_services/Basic/basic.service';
import {EducationLevel} from '../../../../../_models/HRBasic/education-level';
@Component({
selector: 'app-spouse-list',
@ -68,13 +68,6 @@ export class SpouseListComponent implements OnInit {
addNew() {
this.editIndex = -1;
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;
}
@ -92,7 +85,7 @@ export class SpouseListComponent implements OnInit {
id: item.id
};
this.employeeService.deleteChildData(data).subscribe(
() => { },
() => {},
(err) => {
console.log(err);
},
@ -127,7 +120,7 @@ export class SpouseListComponent implements OnInit {
this.empSpouse = new EmpSpouse();
this.isDisplay = false;
}
addHandler() { }
addHandler() {}
onPopUpClose() {
this.isDisplay = false;

View File

@ -1,4 +1,4 @@
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { Component, Input, OnInit } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { DataTransferService } from '../../../data.transfer.service';
import { EmployeeServices } from '../../../_services/employee/employee.service';
@ -115,7 +115,6 @@ export class GeneralComponent implements OnInit {
pickerEmployee: SearchEmployee;
nationalities: Nationality[];
defaultNationality: Nationality;
defaultEmployeeType: Category;
nameBangla: string = 'asasas';
defaultPhoto = "assets/photos/profile-default.jpg";
photoPath = "Documents/EMPPHOTO";
@ -127,8 +126,6 @@ export class GeneralComponent implements OnInit {
permanentThanas: Thana[];
isAccessCard: boolean = false;
@Output() defaultNationalityHandler = new EventEmitter<Nationality>();
@Output() defaultEmployeeTypeHandler = new EventEmitter<Category>();
constructor(public employeeService: EmployeeServices, public basicService: BasicService,
public notificationService: HRMNotificationService,
@ -159,11 +156,6 @@ 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);
}
}
);
@ -186,8 +178,7 @@ export class GeneralComponent implements OnInit {
() => {
this.defaultNationality = this.nationalities.find(x => x.description.toLowerCase() == "bangladeshi");
if (this.defaultNationality) {
// this.hrEmployee.nationalityID = this.defaultNationality.id;
this.defaultNationalityHandler.emit(this.defaultNationality);
this.hrEmployee.nationalityID = this.defaultNationality.id;
}
}
);
@ -469,7 +460,7 @@ export class GeneralComponent implements OnInit {
// }
this.employeeService.saveHrPersonalInfo(this.hrEmployee).subscribe(
(resp: HrEmployee) => {
if (resp != undefined) {
if(resp != undefined){
this.hrEmployee.id = resp.id;
if (this.active == false) {
this.hrEmployee.employeeNo = resp.employeeNo;

View File

@ -71,14 +71,11 @@
</div>
<div class="p-col-12 p-md-6 p-lg-2" style="margin: auto;">
<label for="txtAddress">Gender</label>
<label for="txtAddress">Address</label>
</div>
<div class="p-col-12 p-md-6 p-lg-4">
<kendo-dropdownlist [(ngModel)]="nominee.gender" [data]="genderType"
[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>
<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;">
@ -105,83 +102,6 @@
pInputText style="width:100%" />
</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;">
<label for="fupPicture">Picture</label>
</div>

View File

@ -11,12 +11,10 @@ import { HrEmployee } from '../../../../_models/HREmployee/hrEmployee';
import { BasicService } from '../../../../_services/Basic/basic.service';
import { forkJoin } from 'rxjs';
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 { NominationPurpose } from '../../../../_models/HRBasic/nomination-purpose';
import { loadingPanelService } from '../../../../hrm-loding panel/loding.panel.service';
import { enumEmpFileUploadType, EnumExtension, EnumGender, EnumMaritalStatus } from '../../../../_models/enums';
import { enumEmpFileUploadType } from '../../../../_models/enums';
import { debug } from 'console';
@ -32,9 +30,6 @@ export class NomineeEntryComponent implements OnInit {
nomineeForm: FormGroup;
public active = false;
nominee: EmpNominee;
genderType: any = EnumExtension.getNamesAndValues(EnumGender);
districts: District[];
thanas: Thana[];
selectedPicture?: FileList;
selectedSignature?: FileList;
currentFile?: File;
@ -43,8 +38,6 @@ export class NomineeEntryComponent implements OnInit {
@Input()
public set InputObject(InputObject: EmpNominee) {
this.nominee = InputObject;
if(this.nominee != undefined && this.nominee.districtID != null && this.nominee.districtID != 0)
this.loadThana(this.nominee.districtID);
}
constructor(public employeeService: EmployeeServices,
@ -67,14 +60,12 @@ export class NomineeEntryComponent implements OnInit {
const getRelations = this.basicService.getAllRelations();
const getOccupations = this.basicService.getAllOccupation();
const getNominationPurpose = this.basicService.getAllNominationPurpose();
const getDistricts = this.basicService.getAllDistricts();
forkJoin([getRelations, getOccupations, getNominationPurpose, getDistricts]).subscribe(
([resp1, resp2, resp3, resp4]) => {
forkJoin([getRelations, getOccupations, getNominationPurpose]).subscribe(
([resp1, resp2, resp3]) => {
this.relations = resp1;
this.occupations = resp2;
this.nominationPurposes = resp3;
this.districts = resp4;
},
(x) => {
console.log(x);
@ -85,19 +76,6 @@ export class NomineeEntryComponent implements OnInit {
);
}
loadThana(value: any) {
this.basicService.getAllThanas(value).subscribe((resp) => {
this.thanas = resp;
},
() => {
},
() => {
}
);
}
createForm() {
this.nomineeForm = new FormBuilder().group({
nominationDate: ['', Validators.required],
@ -113,14 +91,6 @@ export class NomineeEntryComponent implements OnInit {
picturePath: [''],
signaturePath: [''],
mobile: [''],
gender: ['', Validators.required],
fatherName: [''],
motherName: [''],
spouseName: [''],
nID: [''],
district: [''],
thana: [''],
postOffice: [''],
});
}
@ -187,5 +157,4 @@ export class NomineeEntryComponent implements OnInit {
selectedFiles = undefined;
}
}
}

View File

@ -86,15 +86,6 @@ export class NomineeListComponent implements OnInit {
this.editIndex = -1;
this.nominee = new EmpNominee();
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;
}
public editHandler(rowIndex: any) {

View File

@ -232,7 +232,7 @@
</button>
</div>
<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>

View File

@ -546,24 +546,11 @@ export class ProductionBonusSetupComponent implements OnInit {
}
else {
debugger;
let supervisorIDs: number[] = [];
this.prodBonusLine.prodBonusSupervisors.forEach(item => {
supervisorIDs.push(item.employeeID);
});
newlineSupervisor.prodBonusLineID = this.selectedRow.id;
this.prodBonusLine.id = this.selectedRow.id;
this.prodBonusLine.lineName = this.selectedRow.lineName;
this.prodBonusLine.scheduledHour = this.selectedRow.scheduledHours;
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);
@ -596,26 +583,7 @@ export class ProductionBonusSetupComponent implements OnInit {
}
// console.log(this.prodBonusLine);
// 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();
}

View File

@ -53,7 +53,7 @@
</div>
<div class="p-col-12 p-md-6 p-lg-8 form-control-lg form-control">
<input id="txtMailAddress" type="text" style="width:100%"
[(ngModel)]="employee.emailAddress" formControlName="emailAddress" pInputText>
[(ngModel)]="employee.emailAddress" formControlName="emailAddress" pInputText required>
</div>
<div class="p-col-12 p-md-6 p-lg-4" style="margin:auto">

View File

@ -137,8 +137,6 @@ export class EmployeePayrollProfileComponent implements OnInit {
this.lastSalaryProcessDate();
this.selectedCategoryid = this.ddlcategories.find(x => x.name.toLowerCase() == "worker").id;
// this.loadingPanelService.ShowLoadingPanel = true;
// this.employeeService.generateEmployeeNo().subscribe(
// (resp) => {
@ -155,7 +153,6 @@ export class EmployeePayrollProfileComponent implements OnInit {
}
else {
this.employee.employeeNo = undefined;
this.selectedCategoryid = undefined;
}
}
@ -419,7 +416,7 @@ export class EmployeePayrollProfileComponent implements OnInit {
this.selectedEmployee.categoryID = this.employee.categoryID;
this.selectedEmployee.name = this.employee.name;
this.selectedEmployee.employeeNo = this.employee.employeeNo;
// this.showBankAccount = true;
this.showBankAccount = true;
} else {
this.employee = new Employee();

View File

@ -30,7 +30,6 @@ import { PayrollType } from '../../../_models/Authentication/payrollType';
import { GrievanceManagementService } from '../../../_services/grievance-management/grievanceManagement.service';
import { ActivatedRoute, Router } from '@angular/router';
import { WorkflowService } from '../../../_services/workflow/workflow.service';
import { AuthService } from '../../../_services/auth/auth.service';
@Component({
@ -78,8 +77,6 @@ export class LifeCycleEntryComponent implements OnInit {
this.empPickerActive = false;
}
_effectDate: Date = undefined;
public payrollType: PayrollType = undefined;
public salaryMonth: Date = new Date();
public empPickerActive: boolean = true;
public isDesingation: boolean = false;
public isDepartment: boolean = false;
@ -107,7 +104,6 @@ export class LifeCycleEntryComponent implements OnInit {
public utilityHandlerService: UntilityHandlerService, public organogramService: OrganogramService,
public loadingPanelService: loadingPanelService,
public router: Router, public workflowService: WorkflowService,
public authservice: AuthService,
public acrouter: ActivatedRoute,) {
if (this.router.url === '/payroll/career-and-profile/life-cycle-entry')
this.apiservice.selectedMenuName = 'Employee Life Cycle';
@ -139,16 +135,7 @@ 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() {
@ -186,7 +173,7 @@ export class LifeCycleEntryComponent implements OnInit {
}
EventselectionChange(value: any) {
debugger;
this.isDesingation = false;
this.isDepartment = false;
this.isCategory = false;
@ -305,16 +292,6 @@ export class LifeCycleEntryComponent implements OnInit {
});
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);
}
}
}

View File

@ -1,66 +0,0 @@
<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>

View File

@ -1,273 +0,0 @@
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
}

View File

@ -786,8 +786,8 @@ export class ReportViewerComponent implements OnInit {
this.multiselect = true;
this.hiddenFromDate = true;
this.hiddenToDate = true;
this.fromDate = GlobalfunctionExtension.getFirstDateofMonth(new Date());
this.toDate = GlobalfunctionExtension.getLastDateOfMonth(new Date());
this.fromDate = new Date();
this.toDate = new Date();
this.hiddenAllSearch = false;
this.hiddenExport = true;
this.loadCurrentFiscalYear();

View File

@ -30,7 +30,6 @@ import { PfLedgerComponent } from './pf-ledger/pf-ledger.component';
import { CcWiseBonusSummaryComponent } from './cc-wise-bonus-summary/cc-wise-bonus-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 { EmployeeProfileReportsComponent } from './employee-profile-reports/employee-profile-reports.component';
const routes: Routes = [
@ -161,7 +160,6 @@ const routes: Routes = [
{ path: 'report-viewer/721', component: ReportViewerComponent, canActivate: [AuthGuard] },
{ path: 'report-viewer/722', component: ReportViewerComponent, canActivate: [AuthGuard] },
{ path: 'report-viewer/723', component: ReportViewerComponent, canActivate: [AuthGuard] },
{ path: 'report-viewer/profile-reports', component: EmployeeProfileReportsComponent, canActivate: [AuthGuard] },
];

View File

@ -48,7 +48,6 @@ import { PfLedgerComponent } from './pf-ledger/pf-ledger.component';
import { CcWiseBonusSummaryComponent } from './cc-wise-bonus-summary/cc-wise-bonus-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 { EmployeeProfileReportsComponent } from './employee-profile-reports/employee-profile-reports.component';
@NgModule({
declarations: [
@ -75,8 +74,7 @@ import { EmployeeProfileReportsComponent } from './employee-profile-reports/empl
PfLedgerComponent,
CcWiseBonusSummaryComponent,
CcwiseSalarySummaryComponent,
CcwiseNewPfMemberWithAmountComponent,
EmployeeProfileReportsComponent
CcwiseNewPfMemberWithAmountComponent
],
imports: [
CommonModule,

View File

@ -11,13 +11,11 @@ using AutoMapper.Configuration;
using Google.Protobuf.WellKnownTypes;
using HRM.BO;
using HRM.DA;
using HRM.Report;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.StaticFiles;
using Microsoft.Extensions.Configuration;
using NPOI.HPSF;
using NPOI.SS.Formula.Functions;
using Org.BouncyCastle.Ocsp;
using static HRM.Report.PayrollDataSet.PayrollDataSet;
@ -785,88 +783,6 @@ 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();
}
}
}

View File

@ -20,7 +20,6 @@ using NPOI.SS.Formula.Functions;
using HRM.BO.Report;
using HRM.Report.PayrollDataSet;
using Newtonsoft.Json;
using Microsoft.AspNetCore.StaticFiles;
namespace HRM.UI.Controllers.Report
{
@ -1698,153 +1697,5 @@ namespace HRM.UI.Controllers.Report
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";
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1172,18 +1172,6 @@
<TypeScriptCompile Remove="ClientApp\src\app\_models\Recruitement\InterviewAssessmentKpi.ts" />
</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>
<EmbeddedResource Include="appsettings.json" />
<EmbeddedResource Include="RDLC\CandidateAssesmentDetails.rdlc" />
@ -1244,9 +1232,6 @@
</ItemGroup>
<ItemGroup>
<None Update="RDLC\IDCardPrint.rdlc">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="RDLC\Report177.rdlc">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>

File diff suppressed because it is too large Load Diff

View File

@ -4,55 +4,53 @@
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<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">
<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">
<Shapes>
<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="47" X="260" Y="7" Height="105" Width="226" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="101" SplitterPosition="101" />
<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="46" X="580" Y="14" Height="181" Width="168" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="177" />
<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="44" X="261" Y="40" Height="86" Width="150" 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="7" X="906" Y="1" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
<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="25" X="1255" Y="6" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" 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="40" X="263" Y="138" Height="200" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="196" />
<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="36" X="262" Y="170" Height="200" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="196" />
<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="27" X="1257" Y="109" Height="28" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" 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="32" X="581" Y="117" Height="219" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="215" />
<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="39" X="262" Y="236" Height="257" Width="177" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<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="22" X="1258" Y="173" Height="28" Width="190" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
<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="38" X="265" Y="301" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="139" />
<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="8" X="919" Y="193" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="215" SplitterPosition="24" />
<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="3" X="12" Y="475" Height="28" Width="200" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" 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="10" X="427" Y="471" Height="257" Width="187" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
<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="34" X="-1" Y="0" Height="86" Width="153" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="82" />
<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="21" X="1259" Y="216" Height="28" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" 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="20" X="1242" Y="281" Height="28" Width="188" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" 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="19" X="1267" Y="345" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" 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="15" X="1270" Y="411" Height="28" Width="152" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" 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="13" X="1265" Y="480" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" 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="12" X="1280" Y="547" Height="28" Width="161" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="234" SplitterPosition="24" />
<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" />
<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:DepartmentWiseManpower" ZOrder="45" 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:BankAdviceLetter" ZOrder="44" 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:DtAgeRange" ZOrder="42" 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:EmployeeMasterData" ZOrder="5" 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:SalarySheet" ZOrder="23" 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:dtCashAdvice" ZOrder="38" 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:DTMonthlyPF" ZOrder="34" 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:SalaryComparison" ZOrder="25" 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:BonusBankAdvice" ZOrder="30" 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:DeptWiseCompany" ZOrder="37" 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:LetterOfAccountIntro" ZOrder="20" 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:DTFSSItems" ZOrder="36" 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:NewPF" ZOrder="6" 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:EmployeePersonalInfo" ZOrder="2" X="591" Y="198" 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:EmpGrandFatherInfo" ZOrder="8" 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:CostCenterInfo" ZOrder="32" 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:BankAdviceNmgt" ZOrder="19" 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:dtContacts" ZOrder="18" 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:dtChildren" ZOrder="17" 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:dtEmpTraining" ZOrder="13" 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:dtEmpReference" ZOrder="11" 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:dtNominee" ZOrder="10" 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" />
</Shapes>
<Connectors />
</DiagramLayout>

View File

@ -1023,7 +1023,7 @@
<TextRun>
<Value>="‡dvb: "&amp;Parameters!CPhone.Value</Value>
<Style>
<FontFamily>sutonnyMJ</FontFamily>
<FontFamily>KarnaphuliMJ</FontFamily>
<FontSize>7pt</FontSize>
</Style>
</TextRun>
@ -1506,7 +1506,7 @@
<TextRun>
<Value> kZ©vejx</Value>
<Style>
<FontFamily>sutonnyMJ</FontFamily>
<FontFamily>KarnaphuliMJ</FontFamily>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
@ -1597,7 +1597,7 @@
<TextRun>
<Value>1. GB KvW© n¯ÍvšÍi †hvM¨ b‡n |</Value>
<Style>
<FontFamily>sutonnyMJ</FontFamily>
<FontFamily>KarnaphuliMJ</FontFamily>
<FontSize>7pt</FontSize>
</Style>
</TextRun>
@ -1626,7 +1626,7 @@
<TextRun>
<Value>2. GB KvW© nviv‡bv ‡M‡j ev bó n‡j mv‡_</Value>
<Style>
<FontFamily>sutonnyMJ</FontFamily>
<FontFamily>KarnaphuliMJ</FontFamily>
<FontSize>7pt</FontSize>
</Style>
</TextRun>
@ -1655,7 +1655,7 @@
<TextRun>
<Value> mv‡_ KZ©„cÿ‡K AewnZ Ki‡Z n‡e|</Value>
<Style>
<FontFamily>sutonnyMJ</FontFamily>
<FontFamily>KarnaphuliMJ</FontFamily>
<FontSize>7pt</FontSize>
</Style>
</TextRun>
@ -1684,7 +1684,7 @@
<TextRun>
<Value>=" kÖwgK AvBb Gi "+Parameters!Dhara.Value+" aviv ‡gvZv‡eK"</Value>
<Style>
<FontFamily>sutonnyMJ</FontFamily>
<FontFamily>KarnaphuliMJ</FontFamily>
<FontSize>7pt</FontSize>
</Style>
</TextRun>
@ -1713,7 +1713,7 @@
<TextRun>
<Value> bZzb KvW© cÖ`vb Kiv nB‡e| </Value>
<Style>
<FontFamily>sutonnyMJ</FontFamily>
<FontFamily>KarnaphuliMJ</FontFamily>
<FontSize>7pt</FontSize>
</Style>
</TextRun>
@ -1742,7 +1742,7 @@
<TextRun>
<Value> 3. PvKzix Z¨vM Kivi mgq KvW©wU ‡diZ</Value>
<Style>
<FontFamily>sutonnyMJ</FontFamily>
<FontFamily>KarnaphuliMJ</FontFamily>
<FontSize>7pt</FontSize>
</Style>
</TextRun>
@ -2002,7 +2002,7 @@
<TextRun>
<Value> w`‡Z n‡e|</Value>
<Style>
<FontFamily>sutonnyMJ</FontFamily>
<FontFamily>KarnaphuliMJ</FontFamily>
<FontSize>7pt</FontSize>
</Style>
</TextRun>