Merge pull request 'dev_mashfiq' (#26) from dev_mashfiq into devqc
Reviewed-on: http://103.197.204.162:3025/CelHRTeam/EchoTex_Payroll/pulls/26
This commit is contained in:
		
						commit
						8ebc08eb60
					
				| 
						 | 
				
			
			@ -542,6 +542,7 @@ namespace HRM.BO
 | 
			
		|||
        void UpdatePayrollType(int empID, int payrollTypeID, DateTime dEffectDate);
 | 
			
		||||
        //void SaveIntegration(List<HREmployee> oEmps);
 | 
			
		||||
        int Save(Employee item);
 | 
			
		||||
        Employee SaveEmployee(Employee item);
 | 
			
		||||
        //void Delete(int id);
 | 
			
		||||
        //void DeleteAll();
 | 
			
		||||
        //string GenerateLoanNo(Employee oEmp, string sLoanName);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2358,7 +2358,7 @@ namespace HRM.BO
 | 
			
		|||
        #region parent's function definition
 | 
			
		||||
 | 
			
		||||
        HREmployee Get(int id);
 | 
			
		||||
        int SavePersonalInfo(HREmployee employee);
 | 
			
		||||
        HREmployee SavePersonalInfo(HREmployee employee);
 | 
			
		||||
        void SaveEmployeeProfileUpload(List<HREmployee> oHREmployee);
 | 
			
		||||
        void DeleteChildData(string tableName, string columnName, int id);
 | 
			
		||||
        List<HREmployee> GetAllHREmps();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1985,6 +1985,39 @@ namespace HRM.DA
 | 
			
		|||
                #endregion
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public Employee SaveEmployee(Employee oEmployee)
 | 
			
		||||
        {
 | 
			
		||||
            TransactionContext tc = null;
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                tc = TransactionContext.Begin(true);
 | 
			
		||||
                if (oEmployee.IsNew)
 | 
			
		||||
                {
 | 
			
		||||
                    int id = tc.GenerateID("Employee", "EmployeeID");
 | 
			
		||||
                    base.SetObjectID(oEmployee, id);
 | 
			
		||||
                    oEmployee.EmployeeNo = new HREmployeeService().GetNextEmployeeNo(tc);
 | 
			
		||||
                    EmployeeDA.Insert(tc, oEmployee);
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    EmployeeDA.Update(tc, oEmployee);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                tc.End();
 | 
			
		||||
                return oEmployee;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                #region Handle Exception
 | 
			
		||||
 | 
			
		||||
                if (tc != null)
 | 
			
		||||
                    tc.HandleError();
 | 
			
		||||
                ExceptionLog.Write(e);
 | 
			
		||||
                throw new ServiceException(e.Message, e);
 | 
			
		||||
 | 
			
		||||
                #endregion
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public int SaveHnmEmployee(List<object> employeeData)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2723,7 +2723,7 @@ namespace HRM.DA
 | 
			
		|||
            tc.End();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public int SavePersonalInfo(HREmployee employee)
 | 
			
		||||
        public HREmployee SavePersonalInfo(HREmployee employee)
 | 
			
		||||
        {
 | 
			
		||||
            TransactionContext tc = null;
 | 
			
		||||
            try
 | 
			
		||||
| 
						 | 
				
			
			@ -2738,7 +2738,7 @@ namespace HRM.DA
 | 
			
		|||
                if (employee.IsNew)
 | 
			
		||||
                {
 | 
			
		||||
                    this.SetObjectID(employee, (HREmployeeDA.GetNewID(tc)));
 | 
			
		||||
 | 
			
		||||
                    employee.EmployeeNo = this.GetNextEmployeeNo(tc);
 | 
			
		||||
                    HREmployeeDA.Insert(tc, employee);
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
| 
						 | 
				
			
			@ -2750,7 +2750,7 @@ namespace HRM.DA
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
                tc.End();
 | 
			
		||||
                return employee.ID;
 | 
			
		||||
                return employee;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -2764,7 +2764,35 @@ namespace HRM.DA
 | 
			
		|||
                #endregion
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public string GetNextEmployeeNo(TransactionContext tc)
 | 
			
		||||
        {
 | 
			
		||||
            string nextEmployeeNo = string.Empty;
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                
 | 
			
		||||
                object obj = tc.ExecuteScalar("SELECT MAX(Cast(EmployeeNo AS Decimal(18,0)))+1 FROM EMPLOYEE");
 | 
			
		||||
                if (obj == DBNull.Value)
 | 
			
		||||
                {
 | 
			
		||||
                    nextEmployeeNo = "1";
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    nextEmployeeNo = Convert.ToString(obj);
 | 
			
		||||
                }
 | 
			
		||||
                
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                #region Handle Exception
 | 
			
		||||
                if (tc != null)
 | 
			
		||||
                    tc.HandleError();
 | 
			
		||||
                ExceptionLog.Write(e);
 | 
			
		||||
                throw new Exception(e.Message, e);
 | 
			
		||||
                #endregion
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return nextEmployeeNo;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public int Save(HREmployee employee)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15448,6 +15448,10 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
 | 
			
		|||
            
 | 
			
		||||
            private global::System.Data.DataColumn columnShift;
 | 
			
		||||
            
 | 
			
		||||
            private global::System.Data.DataColumn columnMinutes;
 | 
			
		||||
            
 | 
			
		||||
            private global::System.Data.DataColumn columnExtraAllowance;
 | 
			
		||||
            
 | 
			
		||||
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
			
		||||
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
 | 
			
		||||
            public MonthlyKPIDetailDataTable() {
 | 
			
		||||
| 
						 | 
				
			
			@ -15633,6 +15637,22 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
 | 
			
		|||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
			
		||||
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
 | 
			
		||||
            public global::System.Data.DataColumn MinutesColumn {
 | 
			
		||||
                get {
 | 
			
		||||
                    return this.columnMinutes;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
			
		||||
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
 | 
			
		||||
            public global::System.Data.DataColumn ExtraAllowanceColumn {
 | 
			
		||||
                get {
 | 
			
		||||
                    return this.columnExtraAllowance;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
			
		||||
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
 | 
			
		||||
            [global::System.ComponentModel.Browsable(false)]
 | 
			
		||||
| 
						 | 
				
			
			@ -15689,7 +15709,9 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
 | 
			
		|||
                        string Department, 
 | 
			
		||||
                        string Unit, 
 | 
			
		||||
                        string FunctionalUnit, 
 | 
			
		||||
                        string Shift) {
 | 
			
		||||
                        string Shift, 
 | 
			
		||||
                        double Minutes, 
 | 
			
		||||
                        int ExtraAllowance) {
 | 
			
		||||
                MonthlyKPIDetailRow rowMonthlyKPIDetailRow = ((MonthlyKPIDetailRow)(this.NewRow()));
 | 
			
		||||
                object[] columnValuesArray = new object[] {
 | 
			
		||||
                        EmployeeName,
 | 
			
		||||
| 
						 | 
				
			
			@ -15710,7 +15732,9 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
 | 
			
		|||
                        Department,
 | 
			
		||||
                        Unit,
 | 
			
		||||
                        FunctionalUnit,
 | 
			
		||||
                        Shift};
 | 
			
		||||
                        Shift,
 | 
			
		||||
                        Minutes,
 | 
			
		||||
                        ExtraAllowance};
 | 
			
		||||
                rowMonthlyKPIDetailRow.ItemArray = columnValuesArray;
 | 
			
		||||
                this.Rows.Add(rowMonthlyKPIDetailRow);
 | 
			
		||||
                return rowMonthlyKPIDetailRow;
 | 
			
		||||
| 
						 | 
				
			
			@ -15752,6 +15776,8 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
 | 
			
		|||
                this.columnUnit = base.Columns["Unit"];
 | 
			
		||||
                this.columnFunctionalUnit = base.Columns["FunctionalUnit"];
 | 
			
		||||
                this.columnShift = base.Columns["Shift"];
 | 
			
		||||
                this.columnMinutes = base.Columns["Minutes"];
 | 
			
		||||
                this.columnExtraAllowance = base.Columns["ExtraAllowance"];
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
			
		||||
| 
						 | 
				
			
			@ -15795,6 +15821,10 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
 | 
			
		|||
                base.Columns.Add(this.columnFunctionalUnit);
 | 
			
		||||
                this.columnShift = new global::System.Data.DataColumn("Shift", typeof(string), null, global::System.Data.MappingType.Element);
 | 
			
		||||
                base.Columns.Add(this.columnShift);
 | 
			
		||||
                this.columnMinutes = new global::System.Data.DataColumn("Minutes", typeof(double), null, global::System.Data.MappingType.Element);
 | 
			
		||||
                base.Columns.Add(this.columnMinutes);
 | 
			
		||||
                this.columnExtraAllowance = new global::System.Data.DataColumn("ExtraAllowance", typeof(int), null, global::System.Data.MappingType.Element);
 | 
			
		||||
                base.Columns.Add(this.columnExtraAllowance);
 | 
			
		||||
                this.columnAttenType.Caption = "AttnType";
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
| 
						 | 
				
			
			@ -31459,6 +31489,38 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
 | 
			
		|||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
			
		||||
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
 | 
			
		||||
            public double Minutes {
 | 
			
		||||
                get {
 | 
			
		||||
                    try {
 | 
			
		||||
                        return ((double)(this[this.tableMonthlyKPIDetail.MinutesColumn]));
 | 
			
		||||
                    }
 | 
			
		||||
                    catch (global::System.InvalidCastException e) {
 | 
			
		||||
                        throw new global::System.Data.StrongTypingException("The value for column \'Minutes\' in table \'MonthlyKPIDetail\' is DBNull.", e);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                set {
 | 
			
		||||
                    this[this.tableMonthlyKPIDetail.MinutesColumn] = value;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
			
		||||
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
 | 
			
		||||
            public int ExtraAllowance {
 | 
			
		||||
                get {
 | 
			
		||||
                    try {
 | 
			
		||||
                        return ((int)(this[this.tableMonthlyKPIDetail.ExtraAllowanceColumn]));
 | 
			
		||||
                    }
 | 
			
		||||
                    catch (global::System.InvalidCastException e) {
 | 
			
		||||
                        throw new global::System.Data.StrongTypingException("The value for column \'ExtraAllowance\' in table \'MonthlyKPIDetail\' is DBNull.", e);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                set {
 | 
			
		||||
                    this[this.tableMonthlyKPIDetail.ExtraAllowanceColumn] = value;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
			
		||||
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
 | 
			
		||||
            public bool IsEmployeeNameNull() {
 | 
			
		||||
| 
						 | 
				
			
			@ -31686,6 +31748,30 @@ namespace HRM.Report.Attendence.AttendenceDataSet {
 | 
			
		|||
            public void SetShiftNull() {
 | 
			
		||||
                this[this.tableMonthlyKPIDetail.ShiftColumn] = global::System.Convert.DBNull;
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
			
		||||
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
 | 
			
		||||
            public bool IsMinutesNull() {
 | 
			
		||||
                return this.IsNull(this.tableMonthlyKPIDetail.MinutesColumn);
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
			
		||||
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
 | 
			
		||||
            public void SetMinutesNull() {
 | 
			
		||||
                this[this.tableMonthlyKPIDetail.MinutesColumn] = global::System.Convert.DBNull;
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
			
		||||
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
 | 
			
		||||
            public bool IsExtraAllowanceNull() {
 | 
			
		||||
                return this.IsNull(this.tableMonthlyKPIDetail.ExtraAllowanceColumn);
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
 | 
			
		||||
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")]
 | 
			
		||||
            public void SetExtraAllowanceNull() {
 | 
			
		||||
                this[this.tableMonthlyKPIDetail.ExtraAllowanceColumn] = global::System.Convert.DBNull;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -649,6 +649,8 @@
 | 
			
		|||
              <xs:element name="Unit" msprop:Generator_ColumnPropNameInTable="UnitColumn" msprop:Generator_ColumnPropNameInRow="Unit" msprop:Generator_UserColumnName="Unit" msprop:Generator_ColumnVarNameInTable="columnUnit" type="xs:string" minOccurs="0" />
 | 
			
		||||
              <xs:element name="FunctionalUnit" msprop:Generator_ColumnPropNameInTable="FunctionalUnitColumn" msprop:Generator_ColumnPropNameInRow="FunctionalUnit" msprop:Generator_UserColumnName="FunctionalUnit" msprop:Generator_ColumnVarNameInTable="columnFunctionalUnit" type="xs:string" minOccurs="0" />
 | 
			
		||||
              <xs:element name="Shift" msprop:Generator_ColumnPropNameInTable="ShiftColumn" msprop:Generator_ColumnPropNameInRow="Shift" msprop:Generator_UserColumnName="Shift" msprop:Generator_ColumnVarNameInTable="columnShift" type="xs:string" minOccurs="0" />
 | 
			
		||||
              <xs:element name="Minutes" msprop:Generator_ColumnPropNameInRow="Minutes" msprop:Generator_ColumnPropNameInTable="MinutesColumn" msprop:Generator_ColumnVarNameInTable="columnMinutes" msprop:Generator_UserColumnName="Minutes" type="xs:double" minOccurs="0" />
 | 
			
		||||
              <xs:element name="ExtraAllowance" msprop:Generator_ColumnPropNameInRow="ExtraAllowance" msprop:Generator_ColumnPropNameInTable="ExtraAllowanceColumn" msprop:Generator_ColumnVarNameInTable="columnExtraAllowance" msprop:Generator_UserColumnName="ExtraAllowance" type="xs:int" minOccurs="0" />
 | 
			
		||||
            </xs:sequence>
 | 
			
		||||
          </xs:complexType>
 | 
			
		||||
        </xs:element>
 | 
			
		||||
| 
						 | 
				
			
			@ -698,7 +700,7 @@
 | 
			
		|||
              <xs:element name="Line" msprop:Generator_ColumnPropNameInTable="LineColumn" msprop:Generator_ColumnPropNameInRow="Line" msprop:Generator_UserColumnName="Line" msprop:Generator_ColumnVarNameInTable="columnLine" type="xs:string" minOccurs="0" />
 | 
			
		||||
              <xs:element name="Floor" msprop:Generator_ColumnPropNameInTable="FloorColumn" msprop:Generator_ColumnPropNameInRow="Floor" msprop:Generator_UserColumnName="Floor" msprop:Generator_ColumnVarNameInTable="columnFloor" type="xs:string" minOccurs="0" />
 | 
			
		||||
              <xs:element name="TotalOTDBL" msprop:Generator_ColumnPropNameInTable="TotalOTDBLColumn" msprop:Generator_ColumnPropNameInRow="TotalOTDBL" msprop:Generator_UserColumnName="TotalOTDBL" msprop:Generator_ColumnVarNameInTable="columnTotalOTDBL" type="xs:double" minOccurs="0" />
 | 
			
		||||
              <xs:element name="Division" msprop:Generator_UserColumnName="Division" msprop:Generator_ColumnPropNameInTable="DivisionColumn" msprop:Generator_ColumnPropNameInRow="Division" msprop:Generator_ColumnVarNameInTable="columnDivision" type="xs:string" minOccurs="0" />
 | 
			
		||||
              <xs:element name="Division" msprop:Generator_ColumnPropNameInTable="DivisionColumn" msprop:Generator_ColumnPropNameInRow="Division" msprop:Generator_UserColumnName="Division" msprop:Generator_ColumnVarNameInTable="columnDivision" type="xs:string" minOccurs="0" />
 | 
			
		||||
            </xs:sequence>
 | 
			
		||||
          </xs:complexType>
 | 
			
		||||
        </xs:element>
 | 
			
		||||
| 
						 | 
				
			
			@ -730,7 +732,7 @@
 | 
			
		|||
              <xs:element name="AttnDate" msprop:Generator_ColumnPropNameInTable="AttnDateColumn" msprop:Generator_ColumnPropNameInRow="AttnDate" msprop:Generator_UserColumnName="AttnDate" msprop:Generator_ColumnVarNameInTable="columnAttnDate" type="xs:string" minOccurs="0" />
 | 
			
		||||
              <xs:element name="WorkingHour" msprop:Generator_ColumnPropNameInTable="WorkingHourColumn" msprop:Generator_ColumnPropNameInRow="WorkingHour" msprop:Generator_UserColumnName="WorkingHour" msprop:Generator_ColumnVarNameInTable="columnWorkingHour" type="xs:string" minOccurs="0" />
 | 
			
		||||
              <xs:element name="InTimeShow" msprop:Generator_ColumnPropNameInTable="InTimeShowColumn" msprop:Generator_ColumnPropNameInRow="InTimeShow" msprop:Generator_UserColumnName="InTimeShow" msprop:Generator_ColumnVarNameInTable="columnInTimeShow" type="xs:string" minOccurs="0" />
 | 
			
		||||
              <xs:element name="LateHour" msprop:Generator_ColumnPropNameInRow="LateHour" msprop:Generator_ColumnPropNameInTable="LateHourColumn" msprop:Generator_ColumnVarNameInTable="columnLateHour" msprop:Generator_UserColumnName="LateHour" type="xs:string" minOccurs="0" />
 | 
			
		||||
              <xs:element name="LateHour" msprop:Generator_UserColumnName="LateHour" msprop:Generator_ColumnPropNameInTable="LateHourColumn" msprop:Generator_ColumnPropNameInRow="LateHour" msprop:Generator_ColumnVarNameInTable="columnLateHour" type="xs:string" minOccurs="0" />
 | 
			
		||||
            </xs:sequence>
 | 
			
		||||
          </xs:complexType>
 | 
			
		||||
        </xs:element>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,48 +4,48 @@
 | 
			
		|||
     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="-10" ViewPortY="1" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
 | 
			
		||||
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="123" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
 | 
			
		||||
  <Shapes>
 | 
			
		||||
    <Shape ID="DesignTable:DailyAttnProcess" ZOrder="17" X="2" Y="30" Height="28" Width="164" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpDailyAttnPrev" ZOrder="7" X="310" Y="116" Height="28" Width="172" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="349" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpDailyAttnParentNew" ZOrder="4" X="236" Y="34" Height="28" Width="211" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:DailyAttnProcess" ZOrder="18" X="2" Y="30" Height="28" Width="164" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpDailyAttnPrev" ZOrder="8" X="310" Y="116" Height="28" Width="172" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="349" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpDailyAttnParentNew" ZOrder="5" X="236" Y="34" Height="28" Width="211" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:MonthlyDetail" ZOrder="40" X="1184" Y="70" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="253" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpInfo" ZOrder="39" X="1446" Y="165" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="82" SplitterPosition="82" />
 | 
			
		||||
    <Shape ID="DesignTable:IDCard" ZOrder="11" X="7" Y="131" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:MonthlyAttnBenefit" ZOrder="25" X="1010" Y="275" Height="28" Width="182" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliEmpNotAssignInWork" ZOrder="13" X="2" Y="165" Height="28" Width="224" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliPaymentRegister" ZOrder="12" X="3" Y="96" Height="28" Width="194" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliWorkStatus" ZOrder="5" X="782" Y="388" Height="28" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:IDCard" ZOrder="12" X="7" Y="131" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="120" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:MonthlyAttnBenefit" ZOrder="26" X="1010" Y="275" Height="28" Width="182" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliEmpNotAssignInWork" ZOrder="14" X="2" Y="165" Height="28" Width="224" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliPaymentRegister" ZOrder="13" X="3" Y="96" Height="28" Width="194" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliWorkStatus" ZOrder="6" X="782" Y="388" Height="28" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="177" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:DailyLabourSummary" ZOrder="36" X="1517" Y="371" Height="162" Width="191" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="158" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliDailyBill" ZOrder="38" X="1295" Y="310" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliEmpAssignInWork" ZOrder="16" X="0" Y="0" Height="28" Width="202" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliEmpAssignInWork" ZOrder="17" X="0" Y="0" Height="28" Width="202" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:TimeCard" ZOrder="30" X="242" Y="180" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliWeeklyPayment" ZOrder="10" X="240" Y="149" Height="28" Width="189" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliMonthWiseSummary" ZOrder="8" X="4" Y="321" Height="28" Width="217" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliWeeklyPayment" ZOrder="11" X="240" Y="149" Height="28" Width="189" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:BadliMonthWiseSummary" ZOrder="9" X="4" Y="321" Height="28" Width="217" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:DailyOverTime" ZOrder="37" X="1116" Y="539" Height="257" Width="151" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
 | 
			
		||||
    <Shape ID="DesignTable:AttnBenefitDataCompare" ZOrder="35" X="717" Y="718" Height="239" Width="213" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
 | 
			
		||||
    <Shape ID="DesignTable:AttnMonthlyBDataCompare" ZOrder="34" X="3" Y="353" Height="28" Width="228" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:ActingAllowance" ZOrder="9" X="237" Y="120" Height="28" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:ActingAllowance" ZOrder="10" X="237" Y="120" Height="28" Width="163" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:DepartmentWiseOT" ZOrder="33" X="1145" Y="777" Height="239" Width="180" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
 | 
			
		||||
    <Shape ID="DesignTable:LeaveWithoutPay" ZOrder="19" X="235" Y="92" Height="28" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:DailyInOut" ZOrder="15" X="7" Y="195" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpAttenInfo" ZOrder="27" X="1434" Y="144" Height="182" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
 | 
			
		||||
    <Shape ID="DesignTable:DailyAbsent" ZOrder="14" X="10" Y="260" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:LeaveWithoutPay" ZOrder="20" X="235" Y="92" Height="28" Width="167" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:DailyInOut" ZOrder="16" X="7" Y="195" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpAttenInfo" ZOrder="28" X="1434" Y="144" Height="182" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
 | 
			
		||||
    <Shape ID="DesignTable:DailyAbsent" ZOrder="15" X="10" Y="260" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="158" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:OddNumberInOut" ZOrder="32" X="13" Y="292" Height="28" Width="171" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="196" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:InOutMissing" ZOrder="20" X="236" Y="63" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:MnthlyKPIDtlSummary" ZOrder="21" X="236" Y="2" Height="28" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:DateWiseInOut" ZOrder="26" X="1020" Y="502" Height="28" Width="154" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:LateNessWise" ZOrder="6" X="930" Y="280" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:InOutMissing" ZOrder="21" X="236" Y="63" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:MnthlyKPIDtlSummary" ZOrder="22" X="236" Y="2" Height="28" Width="199" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:DateWiseInOut" ZOrder="27" X="1020" Y="502" Height="28" Width="154" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:LateNessWise" ZOrder="7" X="930" Y="280" Height="28" Width="150" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:DateWiseInOutFiledForce" ZOrder="31" X="1178" Y="502" Height="239" Width="213" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
 | 
			
		||||
    <Shape ID="DesignTable:AbsentDataForMailSender" ZOrder="23" X="407" Y="1" Height="28" Width="218" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:DailyAttnReportForMailSender" ZOrder="22" X="405" Y="28" Height="28" Width="245" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="273" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:MonthlyKPIDetail" ZOrder="29" X="968" Y="266" Height="257" Width="169" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
 | 
			
		||||
    <Shape ID="DesignTable:MonthlyAttendanceReportNew" ZOrder="18" X="0" Y="0" Height="28" Width="248" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:MonthlyAttn" ZOrder="2" X="12" Y="63" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpDailyAttn" ZOrder="1" X="470" Y="232" Height="257" Width="154" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpDailyAttnParent" ZOrder="28" X="0" Y="108" Height="28" Width="184" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpDailyAttnTest" ZOrder="24" X="681" Y="242" Height="239" Width="170" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpDailyAttnParentNewLiFung" ZOrder="3" X="312" Y="281" Height="219" Width="250" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="215" />
 | 
			
		||||
    <Shape ID="DesignTable:AbsentDataForMailSender" ZOrder="24" X="407" Y="1" Height="28" Width="218" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="139" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:DailyAttnReportForMailSender" ZOrder="23" X="405" Y="28" Height="28" Width="245" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="273" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:MonthlyKPIDetail" ZOrder="1" X="968" Y="266" Height="257" Width="169" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="253" SplitterPosition="253" />
 | 
			
		||||
    <Shape ID="DesignTable:MonthlyAttendanceReportNew" ZOrder="19" X="0" Y="0" Height="28" Width="248" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="86" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:MonthlyAttn" ZOrder="3" X="12" Y="63" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpDailyAttn" ZOrder="2" X="470" Y="232" Height="257" Width="154" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="24" SplitterPosition="253" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpDailyAttnParent" ZOrder="29" X="0" Y="108" Height="28" Width="184" AdapterExpanded="true" DataTableExpanded="false" OldAdapterHeight="0" OldDataTableHeight="235" SplitterPosition="24" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpDailyAttnTest" ZOrder="25" X="681" Y="242" Height="239" Width="170" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
 | 
			
		||||
    <Shape ID="DesignTable:EmpDailyAttnParentNewLiFung" ZOrder="4" X="312" Y="281" Height="219" Width="250" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="215" />
 | 
			
		||||
  </Shapes>
 | 
			
		||||
  <Connectors />
 | 
			
		||||
</DiagramLayout>
 | 
			
		||||
| 
						 | 
				
			
			@ -1351,7 +1351,7 @@ namespace HRM.Report
 | 
			
		|||
                                            startTime = startTime.Value.AddMinutes(-15) > dAttnProcess.InTime ? startTime.Value.AddMinutes(-15) : dAttnProcess.InTime;
 | 
			
		||||
 | 
			
		||||
                                            endTime = dAttnProcess.OutTime;
 | 
			
		||||
                                            if (endTime != DateTime.MinValue)
 | 
			
		||||
                                            if (endTime != DateTime.MinValue && endTime != null)
 | 
			
		||||
                                            {
 | 
			
		||||
                                                if (endTime.Value.Subtract(startTime.Value).Add(TimeSpan.FromMinutes(1)).TotalHours >= dExtraAllowanceHours)
 | 
			
		||||
                                                {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,19 +46,19 @@
 | 
			
		|||
        </Field>
 | 
			
		||||
        <Field Name="AttnDate">
 | 
			
		||||
          <DataField>AttnDate</DataField>
 | 
			
		||||
          <rd:TypeName>System.DateTime</rd:TypeName>
 | 
			
		||||
          <rd:TypeName>System.String</rd:TypeName>
 | 
			
		||||
        </Field>
 | 
			
		||||
        <Field Name="AttnType">
 | 
			
		||||
          <DataField>AttnType</DataField>
 | 
			
		||||
          <rd:TypeName>System.Int16</rd:TypeName>
 | 
			
		||||
        <Field Name="AttenType">
 | 
			
		||||
          <DataField>AttenType</DataField>
 | 
			
		||||
          <rd:TypeName>System.String</rd:TypeName>
 | 
			
		||||
        </Field>
 | 
			
		||||
        <Field Name="OTHour">
 | 
			
		||||
          <DataField>OTHour</DataField>
 | 
			
		||||
          <rd:TypeName>System.Double</rd:TypeName>
 | 
			
		||||
          <rd:TypeName>System.String</rd:TypeName>
 | 
			
		||||
        </Field>
 | 
			
		||||
        <Field Name="ReferenceID">
 | 
			
		||||
          <DataField>ReferenceID</DataField>
 | 
			
		||||
          <rd:TypeName>System.Int32</rd:TypeName>
 | 
			
		||||
          <rd:TypeName>System.String</rd:TypeName>
 | 
			
		||||
        </Field>
 | 
			
		||||
        <Field Name="KPIStatus">
 | 
			
		||||
          <DataField>KPIStatus</DataField>
 | 
			
		||||
| 
						 | 
				
			
			@ -88,10 +88,30 @@
 | 
			
		|||
          <DataField>Department</DataField>
 | 
			
		||||
          <rd:TypeName>System.String</rd:TypeName>
 | 
			
		||||
        </Field>
 | 
			
		||||
        <Field Name="Unit">
 | 
			
		||||
          <DataField>Unit</DataField>
 | 
			
		||||
          <rd:TypeName>System.String</rd:TypeName>
 | 
			
		||||
        </Field>
 | 
			
		||||
        <Field Name="FunctionalUnit">
 | 
			
		||||
          <DataField>FunctionalUnit</DataField>
 | 
			
		||||
          <rd:TypeName>System.String</rd:TypeName>
 | 
			
		||||
        </Field>
 | 
			
		||||
        <Field Name="Shift">
 | 
			
		||||
          <DataField>Shift</DataField>
 | 
			
		||||
          <rd:TypeName>System.String</rd:TypeName>
 | 
			
		||||
        </Field>
 | 
			
		||||
        <Field Name="Minutes">
 | 
			
		||||
          <DataField>Minutes</DataField>
 | 
			
		||||
          <rd:TypeName>System.Double</rd:TypeName>
 | 
			
		||||
        </Field>
 | 
			
		||||
        <Field Name="ExtraAllowance">
 | 
			
		||||
          <DataField>ExtraAllowance</DataField>
 | 
			
		||||
          <rd:TypeName>System.Int32</rd:TypeName>
 | 
			
		||||
        </Field>
 | 
			
		||||
      </Fields>
 | 
			
		||||
      <rd:DataSetInfo>
 | 
			
		||||
        <rd:DataSetName>AttendenceDataSet</rd:DataSetName>
 | 
			
		||||
        <rd:SchemaPath>D:\Local\EchoTex\Echo_Desktop\Payroll.Report\Attendence\AttendenceDataSet\AttendenceDataSet.xsd</rd:SchemaPath>
 | 
			
		||||
        <rd:SchemaPath>D:\Git\EchoTex_Payroll\HRM.Report\Attendence\AttendenceDataSet\AttendenceDataSet.xsd</rd:SchemaPath>
 | 
			
		||||
        <rd:TableName>MonthlyKPIDetail</rd:TableName>
 | 
			
		||||
        <rd:TableAdapterFillMethod />
 | 
			
		||||
        <rd:TableAdapterGetDataMethod />
 | 
			
		||||
| 
						 | 
				
			
			@ -131,7 +151,7 @@
 | 
			
		|||
      </Fields>
 | 
			
		||||
      <rd:DataSetInfo>
 | 
			
		||||
        <rd:DataSetName>AttendenceDataSet</rd:DataSetName>
 | 
			
		||||
        <rd:SchemaPath>D:\Local\EchoTextPR\Echo_Desktop.root\Echo_Desktop\Payroll.Report\Attendence\AttendenceDataSet\AttendenceDataSet.xsd</rd:SchemaPath>
 | 
			
		||||
        <rd:SchemaPath>D:\Git\EchoTex_Payroll\HRM.Report\Attendence\AttendenceDataSet\AttendenceDataSet.xsd</rd:SchemaPath>
 | 
			
		||||
        <rd:TableName>MnthlyKPIDtlSummary</rd:TableName>
 | 
			
		||||
        <rd:TableAdapterFillMethod />
 | 
			
		||||
        <rd:TableAdapterGetDataMethod />
 | 
			
		||||
| 
						 | 
				
			
			@ -931,7 +951,7 @@
 | 
			
		|||
                            <Paragraph>
 | 
			
		||||
                              <TextRuns>
 | 
			
		||||
                                <TextRun>
 | 
			
		||||
                                  <Value />
 | 
			
		||||
                                  <Value>=Math.Round(Sum(Fields!Minutes.Value)/60,2)</Value>
 | 
			
		||||
                                  <Style>
 | 
			
		||||
                                    <FontSize>8pt</FontSize>
 | 
			
		||||
                                    <Color>Green</Color>
 | 
			
		||||
| 
						 | 
				
			
			@ -995,7 +1015,7 @@
 | 
			
		|||
                            <Paragraph>
 | 
			
		||||
                              <TextRuns>
 | 
			
		||||
                                <TextRun>
 | 
			
		||||
                                  <Value>=IIF((Sum(iif(Fields!AttnType.Value = 1 or Fields!AttnType.Value = 3 or Fields!AttnType.Value = 7 or Fields!AttnType.Value = 11 or Fields!AttnType.Value = 12,1,0)))>0,Sum(Fields!OTHour.Value)/(Sum(iif(Fields!AttnType.Value = 1 or Fields!AttnType.Value = 3 or Fields!AttnType.Value = 7 or Fields!AttnType.Value = 11 or Fields!AttnType.Value = 12,1,0))),0)</Value>
 | 
			
		||||
                                  <Value>=IIF((Sum(iif(Fields!AttenType.Value = 1 or Fields!AttenType.Value = 3 or Fields!AttenType.Value = 7 or Fields!AttenType.Value = 11 or Fields!AttenType.Value = 12,1,0)))>0,Sum(Fields!OTHour.Value)/(Sum(iif(Fields!AttenType.Value = 1 or Fields!AttenType.Value = 3 or Fields!AttenType.Value = 7 or Fields!AttenType.Value = 11 or Fields!AttenType.Value = 12,1,0))),0)</Value>
 | 
			
		||||
                                  <Style>
 | 
			
		||||
                                    <FontSize>8pt</FontSize>
 | 
			
		||||
                                    <Format>0.00;(0.00)</Format>
 | 
			
		||||
| 
						 | 
				
			
			@ -1187,7 +1207,7 @@
 | 
			
		|||
                            <Paragraph>
 | 
			
		||||
                              <TextRuns>
 | 
			
		||||
                                <TextRun>
 | 
			
		||||
                                  <Value>=Sum(iif(Fields!AttnType.Value = 1 or Fields!AttnType.Value = 3 or Fields!AttnType.Value = 7 or Fields!AttnType.Value = 11 or Fields!AttnType.Value = 12,1,0))</Value>
 | 
			
		||||
                                  <Value>=Sum(iif(Fields!AttenType.Value = 1 or Fields!AttenType.Value = 3 or Fields!AttenType.Value = 7 or Fields!AttenType.Value = 11 or Fields!AttenType.Value = 12,1,0))</Value>
 | 
			
		||||
                                  <Style>
 | 
			
		||||
                                    <FontSize>8pt</FontSize>
 | 
			
		||||
                                  </Style>
 | 
			
		||||
| 
						 | 
				
			
			@ -1201,7 +1221,7 @@
 | 
			
		|||
                            <Border>
 | 
			
		||||
                              <Style>Solid</Style>
 | 
			
		||||
                            </Border>
 | 
			
		||||
                            <BackgroundColor>=iif(Sum(iif(Fields!AttnType.Value = 1 or Fields!AttnType.Value = 3 or Fields!AttnType.Value = 7 or Fields!AttnType.Value = 11 or Fields!AttnType.Value = 12,1,0))>0,"Yellow","White")</BackgroundColor>
 | 
			
		||||
                            <BackgroundColor>=iif(Sum(iif(Fields!AttenType.Value = 1 or Fields!AttenType.Value = 3 or Fields!AttenType.Value = 7 or Fields!AttenType.Value = 11 or Fields!AttenType.Value = 12,1,0))>0,"Yellow","White")</BackgroundColor>
 | 
			
		||||
                            <PaddingLeft>2pt</PaddingLeft>
 | 
			
		||||
                            <PaddingRight>2pt</PaddingRight>
 | 
			
		||||
                            <PaddingTop>2pt</PaddingTop>
 | 
			
		||||
| 
						 | 
				
			
			@ -1219,7 +1239,7 @@
 | 
			
		|||
                            <Paragraph>
 | 
			
		||||
                              <TextRuns>
 | 
			
		||||
                                <TextRun>
 | 
			
		||||
                                  <Value>=Sum(iif(Fields!AttnType.Value = 5 or Fields!AttnType.Value = 8,1,0))</Value>
 | 
			
		||||
                                  <Value>=Sum(iif(Fields!AttenType.Value = 5 or Fields!AttenType.Value = 8,1,0))</Value>
 | 
			
		||||
                                  <Style>
 | 
			
		||||
                                    <FontSize>8pt</FontSize>
 | 
			
		||||
                                  </Style>
 | 
			
		||||
| 
						 | 
				
			
			@ -1233,7 +1253,7 @@
 | 
			
		|||
                            <Border>
 | 
			
		||||
                              <Style>Solid</Style>
 | 
			
		||||
                            </Border>
 | 
			
		||||
                            <BackgroundColor>=IIF(Sum(iif(Fields!AttnType.Value = 5 or Fields!AttnType.Value = 8,1,0))>0,"Yellow","White")</BackgroundColor>
 | 
			
		||||
                            <BackgroundColor>=IIF(Sum(iif(Fields!AttenType.Value = 5 or Fields!AttenType.Value = 8,1,0))>0,"Yellow","White")</BackgroundColor>
 | 
			
		||||
                            <PaddingLeft>2pt</PaddingLeft>
 | 
			
		||||
                            <PaddingRight>2pt</PaddingRight>
 | 
			
		||||
                            <PaddingTop>2pt</PaddingTop>
 | 
			
		||||
| 
						 | 
				
			
			@ -1251,7 +1271,7 @@
 | 
			
		|||
                            <Paragraph>
 | 
			
		||||
                              <TextRuns>
 | 
			
		||||
                                <TextRun>
 | 
			
		||||
                                  <Value>=Sum(iif(Fields!AttnType.Value = 2,1,0))</Value>
 | 
			
		||||
                                  <Value>=Sum(iif(Fields!AttenType.Value = 2,1,0))</Value>
 | 
			
		||||
                                  <Style>
 | 
			
		||||
                                    <FontSize>8pt</FontSize>
 | 
			
		||||
                                  </Style>
 | 
			
		||||
| 
						 | 
				
			
			@ -1265,7 +1285,7 @@
 | 
			
		|||
                            <Border>
 | 
			
		||||
                              <Style>Solid</Style>
 | 
			
		||||
                            </Border>
 | 
			
		||||
                            <BackgroundColor>=IIF(Sum(iif(Fields!AttnType.Value = 2,1,0))>0,"Yellow","White")</BackgroundColor>
 | 
			
		||||
                            <BackgroundColor>=IIF(Sum(iif(Fields!AttenType.Value = 2,1,0))>0,"Yellow","White")</BackgroundColor>
 | 
			
		||||
                            <PaddingLeft>2pt</PaddingLeft>
 | 
			
		||||
                            <PaddingRight>2pt</PaddingRight>
 | 
			
		||||
                            <PaddingTop>2pt</PaddingTop>
 | 
			
		||||
| 
						 | 
				
			
			@ -4495,7 +4515,7 @@
 | 
			
		|||
        <Height>2.20187in</Height>
 | 
			
		||||
        <Style />
 | 
			
		||||
      </Body>
 | 
			
		||||
      <Width>23in</Width>
 | 
			
		||||
      <Width>25in</Width>
 | 
			
		||||
      <Page>
 | 
			
		||||
        <PageHeader>
 | 
			
		||||
          <Height>1.45313in</Height>
 | 
			
		||||
| 
						 | 
				
			
			@ -4722,7 +4742,7 @@
 | 
			
		|||
          </Style>
 | 
			
		||||
        </PageFooter>
 | 
			
		||||
        <PageHeight>8.5in</PageHeight>
 | 
			
		||||
        <PageWidth>25in</PageWidth>
 | 
			
		||||
        <PageWidth>27in</PageWidth>
 | 
			
		||||
        <LeftMargin>0.375in</LeftMargin>
 | 
			
		||||
        <TopMargin>0.375in</TopMargin>
 | 
			
		||||
        <Style />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -314,7 +314,9 @@
 | 
			
		|||
    <EmbeddedResource Include="Attendence\RDLC\MonthlyDetailAttnEcho.rdlc" />
 | 
			
		||||
    <EmbeddedResource Include="Attendence\RDLC\MultipleJobCard.rdlc" />
 | 
			
		||||
    <EmbeddedResource Include="Attendence\RDLC\MultipleJobCardSub.rdlc" />
 | 
			
		||||
    <EmbeddedResource Include="Attendence\RDLC\rptMonthlyKPI.rdlc" />
 | 
			
		||||
    <EmbeddedResource Include="Attendence\RDLC\rptMonthlyKPI.rdlc">
 | 
			
		||||
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
 | 
			
		||||
    </EmbeddedResource>
 | 
			
		||||
    <EmbeddedResource Include="RDLC\ActiveEmployeeDetail.rdlc" />
 | 
			
		||||
    <EmbeddedResource Include="RDLC\AllDigitalServiceBook.rdlc" />
 | 
			
		||||
    <EmbeddedResource Include="RDLC\AllEmpTaxInfo.rdlc" />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,7 +13,7 @@ export class ApiService {
 | 
			
		|||
 | 
			
		||||
    public isSSO = false;
 | 
			
		||||
    public versionDeployement = false;
 | 
			
		||||
    public versionNumber = `V-${GlobalfunctionExtension.generateVersionNumber(new Date(2024, 10, 3))}-`+"01";
 | 
			
		||||
    public versionNumber = `V-${GlobalfunctionExtension.generateVersionNumber(new Date(2025, 0, 7))}-`+"01";
 | 
			
		||||
    public static BASE_URL = '';
 | 
			
		||||
    public base_url = '';
 | 
			
		||||
    // public currentLink = '';
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,7 +26,7 @@ export class IdCardPrintComponent implements OnInit {
 | 
			
		|||
  selectedAuthorizePersonid = undefined;
 | 
			
		||||
  selectedReportTypeid = undefined;
 | 
			
		||||
  reportTypes: { id: number, name: string }[] = [];
 | 
			
		||||
  constructor(public notificctionService : HRMNotificationService,
 | 
			
		||||
  constructor(public notificationService : HRMNotificationService,
 | 
			
		||||
    public reportService: ReportServices,
 | 
			
		||||
    public basicService: BasicService,
 | 
			
		||||
    public employeeService: EmployeeServices,
 | 
			
		||||
| 
						 | 
				
			
			@ -59,7 +59,8 @@ export class IdCardPrintComponent implements OnInit {
 | 
			
		|||
              this.authorizedPersons = resp;
 | 
			
		||||
            },
 | 
			
		||||
            (x)=>{
 | 
			
		||||
                console.log(x);
 | 
			
		||||
              this.notificationService.showError(x.error);
 | 
			
		||||
                // console.log(x);
 | 
			
		||||
            },
 | 
			
		||||
            ()=>{
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -67,15 +68,15 @@ export class IdCardPrintComponent implements OnInit {
 | 
			
		|||
  }
 | 
			
		||||
  preview(reportType: string) {
 | 
			
		||||
    if(this.selectedAuthorizePersonid === undefined){
 | 
			
		||||
      this.notificctionService.showWarning("Please select Authorized Person first!","Warning");
 | 
			
		||||
      this.notificationService.showWarning("Please select Authorized Person first!","Warning");
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    if(this.selectedReportTypeid === undefined){
 | 
			
		||||
      this.notificctionService.showWarning("Please select Report Type first!","Warning");
 | 
			
		||||
      this.notificationService.showWarning("Please select Report Type first!","Warning");
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    if(this.isThreeYear!= true && this.isFiveYear!=true){
 | 
			
		||||
      this.notificctionService.showWarning("Please select Expire Date first!","Warning");
 | 
			
		||||
      this.notificationService.showWarning("Please select Expire Date first!","Warning");
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    let empIds = SearchEmployee.getEmpIds(this.selectedEmps);
 | 
			
		||||
| 
						 | 
				
			
			@ -102,7 +103,8 @@ export class IdCardPrintComponent implements OnInit {
 | 
			
		|||
        }
 | 
			
		||||
      },
 | 
			
		||||
      (err) => {
 | 
			
		||||
          console.log(err);
 | 
			
		||||
          // console.log(err);
 | 
			
		||||
          this.notificationService.showError(err.error);
 | 
			
		||||
          this.loadingPanel.ShowLoadingPanel = false;
 | 
			
		||||
          this.closeForm();
 | 
			
		||||
      },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -184,8 +184,10 @@ export class UserRoleEntryComponent implements OnInit {
 | 
			
		|||
                    userRole.payrollTypeID = this._selectedPayrollTypeid;
 | 
			
		||||
                    userRole.employeeID = u.employeeID;
 | 
			
		||||
                }
 | 
			
		||||
                if (this._selectedRoleType == EnumRoleType.Admin)
 | 
			
		||||
                if (this._selectedRoleType == EnumRoleType.Admin){
 | 
			
		||||
                    userRole.userID = u.id;
 | 
			
		||||
                    userRole.userRoleStatus = EnumAuthStatus.Active;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                userRole.loginIDView = u.loginID;
 | 
			
		||||
                userRole.roleID = r;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,7 +16,7 @@
 | 
			
		|||
    </div>
 | 
			
		||||
    <div *ngIf="newEmployee" class="p-col-12 p-lg-4">
 | 
			
		||||
        <input [(ngModel)]="this.employeeService.hrEmployee.employeeNo"
 | 
			
		||||
            placeholder="Input Employee Id for new Employee.." id="txtempno" pInputText style="width:100%" type="text">
 | 
			
		||||
            placeholder="Input Employee Id for new Employee.." id="txtempno" pInputText style="width:100%" type="text" [readOnly]="true">
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="p-col-12 p-lg-6" style="margin: auto;" align="middle">
 | 
			
		||||
        <span class="k-icon k-i-warning k-i-exception"></span>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -189,19 +189,19 @@ export class EmployeeProfileComponent implements OnInit {
 | 
			
		|||
 | 
			
		||||
            this.refreshEmployee(new HrEmployee());
 | 
			
		||||
 | 
			
		||||
            this.loadingPanel.ShowLoadingPanel = true;
 | 
			
		||||
            this.employeeService.generateEmployeeNo().subscribe(
 | 
			
		||||
                (resp) => {
 | 
			
		||||
                    this.employeeService.hrEmployee.employeeNo = resp as string;
 | 
			
		||||
                },
 | 
			
		||||
                (err) => {
 | 
			
		||||
                    this.notificationService.showError(err);
 | 
			
		||||
                    this.loadingPanel.ShowLoadingPanel = false;
 | 
			
		||||
                },
 | 
			
		||||
                () => {
 | 
			
		||||
                    this.loadingPanel.ShowLoadingPanel = false;
 | 
			
		||||
                }
 | 
			
		||||
            );
 | 
			
		||||
            // this.loadingPanel.ShowLoadingPanel = true;
 | 
			
		||||
            // this.employeeService.generateEmployeeNo().subscribe(
 | 
			
		||||
            //     (resp) => {
 | 
			
		||||
            //         this.employeeService.hrEmployee.employeeNo = resp as string;
 | 
			
		||||
            //     },
 | 
			
		||||
            //     (err) => {
 | 
			
		||||
            //         this.notificationService.showError(err);
 | 
			
		||||
            //         this.loadingPanel.ShowLoadingPanel = false;
 | 
			
		||||
            //     },
 | 
			
		||||
            //     () => {
 | 
			
		||||
            //         this.loadingPanel.ShowLoadingPanel = false;
 | 
			
		||||
            //     }
 | 
			
		||||
            // );
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            this.employeeService.hrEmployee.employeeNo = undefined;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -173,6 +173,7 @@
 | 
			
		|||
 | 
			
		||||
                            <button class="k-button k-primary" kendoButton icon="save"
 | 
			
		||||
                                (click)="SavePersonalInfo()">
 | 
			
		||||
                                <!-- (click)="SavePersonalInfo()"> -->
 | 
			
		||||
                                Save
 | 
			
		||||
                            </button>
 | 
			
		||||
                        </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -359,7 +360,9 @@
 | 
			
		|||
                            </button>
 | 
			
		||||
                            </div>
 | 
			
		||||
                            <div class="p-col-12 p-md-12 p-lg-4" style="margin-top: 11px;" align="right">
 | 
			
		||||
                                <button class="k-button k-primary" kendoButton icon="save" (click)="SavePersonalInfo()">
 | 
			
		||||
                                <button class="k-button k-primary" kendoButton icon="save" 
 | 
			
		||||
                                    (click)="SavePersonalInfo()">
 | 
			
		||||
                                    <!-- (click)="SavePersonalInfo()"> -->
 | 
			
		||||
                                    Save
 | 
			
		||||
                                </button>
 | 
			
		||||
                            </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -173,8 +173,8 @@ export class GeneralComponent implements OnInit {
 | 
			
		|||
            () => {
 | 
			
		||||
            },
 | 
			
		||||
            () => {
 | 
			
		||||
                this.defaultNationality=this.nationalities.find(x=>x.description.toLowerCase()=="bangladeshi");
 | 
			
		||||
                if(this.defaultNationality){
 | 
			
		||||
                this.defaultNationality = this.nationalities.find(x => x.description.toLowerCase() == "bangladeshi");
 | 
			
		||||
                if (this.defaultNationality) {
 | 
			
		||||
                    this.hrEmployee.nationalityID = this.defaultNationality.id;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -386,6 +386,29 @@ export class GeneralComponent implements OnInit {
 | 
			
		|||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // public saveGeneratedEmployee() {
 | 
			
		||||
    //     debugger
 | 
			
		||||
    //     if (this.active == false) {
 | 
			
		||||
    //         this.loadingPanel.ShowLoadingPanel = true;
 | 
			
		||||
    //         this.employeeService.generateEmployeeNo().subscribe(
 | 
			
		||||
    //             (resp) => {
 | 
			
		||||
    //                 this.employeeService.hrEmployee.employeeNo = resp as string;
 | 
			
		||||
    //             },
 | 
			
		||||
    //             (err) => {
 | 
			
		||||
    //                 this.notificationService.showError(err);
 | 
			
		||||
    //                 this.loadingPanel.ShowLoadingPanel = false;
 | 
			
		||||
    //             },
 | 
			
		||||
    //             () => {
 | 
			
		||||
    //                 this.loadingPanel.ShowLoadingPanel = false; setTimeout(() => {
 | 
			
		||||
    //                     this.SavePersonalInfo();
 | 
			
		||||
    //                   }, 1000);
 | 
			
		||||
    //             }
 | 
			
		||||
    //         );
 | 
			
		||||
    //     }
 | 
			
		||||
    //     else{
 | 
			
		||||
    //         this.SavePersonalInfo();
 | 
			
		||||
    //     }
 | 
			
		||||
    // }
 | 
			
		||||
    SavePersonalInfo() {
 | 
			
		||||
        // console.log(this.hrEmployee.banglaName);
 | 
			
		||||
        // return;
 | 
			
		||||
| 
						 | 
				
			
			@ -401,12 +424,18 @@ export class GeneralComponent implements OnInit {
 | 
			
		|||
        if (this.hrEmployee.lastName !== null) {
 | 
			
		||||
            this.hrEmployee.name += ' ' + this.hrEmployee.lastName;
 | 
			
		||||
        }
 | 
			
		||||
        if (this.employeeService.hrEmployee.employeeNo.length > 0) {
 | 
			
		||||
            this.hrEmployee.employeeNo = this.employeeService.hrEmployee.employeeNo;
 | 
			
		||||
        }
 | 
			
		||||
        // if (this.employeeService.hrEmployee.employeeNo.length > 0) {
 | 
			
		||||
        //     this.hrEmployee.employeeNo = this.employeeService.hrEmployee.employeeNo;
 | 
			
		||||
        // }
 | 
			
		||||
        this.employeeService.saveHrPersonalInfo(this.hrEmployee).subscribe(
 | 
			
		||||
            (resp: any) => {
 | 
			
		||||
                this.hrEmployee.id = resp;
 | 
			
		||||
            (resp: HrEmployee) => {
 | 
			
		||||
                if(resp != undefined){
 | 
			
		||||
                    this.hrEmployee.id = resp.id;
 | 
			
		||||
                    if (this.active == false) {
 | 
			
		||||
                        this.hrEmployee.employeeNo = resp.employeeNo;
 | 
			
		||||
                        this.employeeService.hrEmployee.employeeNo = resp.employeeNo;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            },
 | 
			
		||||
            (err: any) => {
 | 
			
		||||
                console.log(err);
 | 
			
		||||
| 
						 | 
				
			
			@ -415,7 +444,7 @@ export class GeneralComponent implements OnInit {
 | 
			
		|||
            },
 | 
			
		||||
            () => {
 | 
			
		||||
                this.loadingPanel.ShowLoadingPanel = false;
 | 
			
		||||
                this.isDisplay=false;
 | 
			
		||||
                this.isDisplay = false;
 | 
			
		||||
                this.notificationService.showSuccess('Data save successfully');
 | 
			
		||||
                if (this.selectedTinFiles !== null && this.selectedTinFiles !== undefined && this.selectedTinFiles.length > 0) {
 | 
			
		||||
                    this.saveFile(this.hrEmployee.id, this.selectedTinFiles, enumEmpFileUploadType.TIN);
 | 
			
		||||
| 
						 | 
				
			
			@ -451,7 +480,7 @@ export class GeneralComponent implements OnInit {
 | 
			
		|||
            },
 | 
			
		||||
            () => {
 | 
			
		||||
                this.loadingPanel.ShowLoadingPanel = false;
 | 
			
		||||
                this.isDisplay=false;
 | 
			
		||||
                this.isDisplay = false;
 | 
			
		||||
                this.notificationService.showSuccess('Data Save successfully.');
 | 
			
		||||
                this.employeeService.hrEmployee.contacts = [];
 | 
			
		||||
                this.employeeService.hrEmployee.contacts.push(this.contact);
 | 
			
		||||
| 
						 | 
				
			
			@ -485,46 +514,46 @@ export class GeneralComponent implements OnInit {
 | 
			
		|||
            this.NIDFiles = undefined;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    saveBanglaPersonalInformation(){
 | 
			
		||||
        const data ={
 | 
			
		||||
    saveBanglaPersonalInformation() {
 | 
			
		||||
        const data = {
 | 
			
		||||
            employeeNo: this.employeeService.hrEmployee.employeeNo,
 | 
			
		||||
            banglaName: this.hrEmployee.banglaName,
 | 
			
		||||
            banglaSpouseName: this.hrEmployee.spouseNameBangla,
 | 
			
		||||
            banglaFathersName: this.hrEmployee.fatherNameBangla,
 | 
			
		||||
            banglaMothersName: this.hrEmployee.motherNameBangla
 | 
			
		||||
        }
 | 
			
		||||
        this.loadingPanel.ShowLoadingPanel=true;
 | 
			
		||||
        this.loadingPanel.ShowLoadingPanel = true;
 | 
			
		||||
        this.employeeService.updateBanglaInformation(data).subscribe(
 | 
			
		||||
            (resp: any)=>{
 | 
			
		||||
            (resp: any) => {
 | 
			
		||||
 | 
			
		||||
        },(err)=>{
 | 
			
		||||
            this.loadingPanel.ShowLoadingPanel=false;
 | 
			
		||||
            }, (err) => {
 | 
			
		||||
                this.loadingPanel.ShowLoadingPanel = false;
 | 
			
		||||
                this.notificationService.showError(err.error);
 | 
			
		||||
        },() =>{
 | 
			
		||||
            this.loadingPanel.ShowLoadingPanel=false;
 | 
			
		||||
            this.isDisplay=false;
 | 
			
		||||
            }, () => {
 | 
			
		||||
                this.loadingPanel.ShowLoadingPanel = false;
 | 
			
		||||
                this.isDisplay = false;
 | 
			
		||||
                this.notificationService.showSuccess("Bangla Information Updated Successfully!");
 | 
			
		||||
            }
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
    SaveBanglaContactInformation(){
 | 
			
		||||
        const data ={
 | 
			
		||||
    SaveBanglaContactInformation() {
 | 
			
		||||
        const data = {
 | 
			
		||||
            employeeNo: this.employeeService.hrEmployee.employeeNo,
 | 
			
		||||
            presentPOInBangla: this.contact.presentPOInBangla,
 | 
			
		||||
            presentAddressInBangla: this.contact.presentAddressInBangla,
 | 
			
		||||
            parmanentPOInBangla: this.contact.parmanentPOInBangla,
 | 
			
		||||
            permanentAddressInBangla: this.contact.permanentAddressInBangla
 | 
			
		||||
        }
 | 
			
		||||
        this.loadingPanel.ShowLoadingPanel=true;
 | 
			
		||||
        this.loadingPanel.ShowLoadingPanel = true;
 | 
			
		||||
        this.employeeService.updateBanglaContactInformation(data).subscribe(
 | 
			
		||||
            (resp: any)=>{
 | 
			
		||||
            (resp: any) => {
 | 
			
		||||
 | 
			
		||||
        },(err)=>{
 | 
			
		||||
            this.loadingPanel.ShowLoadingPanel=false;
 | 
			
		||||
            }, (err) => {
 | 
			
		||||
                this.loadingPanel.ShowLoadingPanel = false;
 | 
			
		||||
                this.notificationService.showError(err.error);
 | 
			
		||||
        },() =>{
 | 
			
		||||
            this.loadingPanel.ShowLoadingPanel=false;
 | 
			
		||||
            this.isDisplay=false;
 | 
			
		||||
            }, () => {
 | 
			
		||||
                this.loadingPanel.ShowLoadingPanel = false;
 | 
			
		||||
                this.isDisplay = false;
 | 
			
		||||
                this.notificationService.showSuccess("Bangla Contact Information Updated Successfully!");
 | 
			
		||||
            }
 | 
			
		||||
        )
 | 
			
		||||
| 
						 | 
				
			
			@ -812,8 +841,8 @@ export class GeneralComponent implements OnInit {
 | 
			
		|||
                (err: any) => {
 | 
			
		||||
                    this.notificationService.showError(err.error);
 | 
			
		||||
                    this.currentFile = undefined;
 | 
			
		||||
                },()=>{
 | 
			
		||||
                    this.signaturePopUp=false;
 | 
			
		||||
                }, () => {
 | 
			
		||||
                    this.signaturePopUp = false;
 | 
			
		||||
                    this.notificationService.showSuccess("Signature Uploaded Successfully!")
 | 
			
		||||
                });
 | 
			
		||||
            this.selectedFiles = undefined;
 | 
			
		||||
| 
						 | 
				
			
			@ -861,7 +890,7 @@ export class GeneralComponent implements OnInit {
 | 
			
		|||
    tinPopUp: boolean = false;
 | 
			
		||||
    dlnoPopUp: boolean = false;
 | 
			
		||||
    passnoPopUp: boolean = false;
 | 
			
		||||
    signaturePopUp:boolean = false;
 | 
			
		||||
    signaturePopUp: boolean = false;
 | 
			
		||||
    popUpAttachment(type: string) {
 | 
			
		||||
        if (type === 'NID')
 | 
			
		||||
            this.nidPopUp = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -187,7 +187,7 @@
 | 
			
		|||
                                            style="width:80%">Add</button>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                </div>
 | 
			
		||||
                                <kendo-grid [kendoGridBinding]="prodBonusLine.prodBonusSupervisors" [sortable]="true" [style.height.%]="100"
 | 
			
		||||
                                <kendo-grid [kendoGridBinding]="prodBonusLine.prodBonusSupervisors" [sortable]="true" [style.height.px]="250"
 | 
			
		||||
                                            [reorderable]="true">
 | 
			
		||||
                                    <!-- [resizable]="true" [pageSize]="state.take" [skip]="state.skip"
 | 
			
		||||
    [sort]="state.sort" [pageable]="true" (dataStateChange)="dataStateChange($event)">-->
 | 
			
		||||
| 
						 | 
				
			
			@ -195,23 +195,23 @@
 | 
			
		|||
                                        <!-- <ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
 | 
			
		||||
        </ng-template> -->
 | 
			
		||||
                                    </kendo-grid-column>
 | 
			
		||||
                                    <kendo-grid-column field="employeeNo" title="Employee No" [width]="100">
 | 
			
		||||
                                    <kendo-grid-column field="employeeNo" title="Employee No" [width]="80">
 | 
			
		||||
                                        <!-- <ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
 | 
			
		||||
        </ng-template> -->
 | 
			
		||||
                                    </kendo-grid-column>
 | 
			
		||||
 | 
			
		||||
                                    <kendo-grid-column field="devGrantParentName" title="top Parent (section)" [width]="120">
 | 
			
		||||
                                    <kendo-grid-column field="devGrantParentName" title="Top Parent (section)" [width]="90">
 | 
			
		||||
                                    </kendo-grid-column>
 | 
			
		||||
                                    <kendo-grid-column field="devParentName" title="parent (floor)" [width]="120">
 | 
			
		||||
                                    <kendo-grid-column field="devParentName" title="Parent (floor)" [width]="80">
 | 
			
		||||
                                    </kendo-grid-column>
 | 
			
		||||
 | 
			
		||||
                                    <kendo-grid-column field="devName" title="posted" [width]="120">
 | 
			
		||||
                                    <kendo-grid-column field="devName" title="Posted" [width]="80">
 | 
			
		||||
                                    </kendo-grid-column>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                                    <kendo-grid-column field="bonusPercent"  title="Bonus Percent" [width]="100">
 | 
			
		||||
                                    <kendo-grid-column field="bonusPercent"  title="Bonus Percent" [width]="80">
 | 
			
		||||
                                    </kendo-grid-column>
 | 
			
		||||
                                    <kendo-grid-column title="Actions" [width]="50">
 | 
			
		||||
                                    <kendo-grid-column title="Actions" [width]="85">
 | 
			
		||||
                                        <ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
 | 
			
		||||
                                            <button type="button" kendoButton icon="delete" class="kt-delete"
 | 
			
		||||
                                                    style="width: fit-content;" (click)="onClickRemoveSupervisors(dataItem)">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -344,8 +344,8 @@ export class ProductionBonusSetupComponent implements OnInit {
 | 
			
		|||
          pdrs.forEach(x => {
 | 
			
		||||
            var item = this.scheduleTime.find(y => y.startDateTime == x.startDateTime);
 | 
			
		||||
            if (item != undefined) {
 | 
			
		||||
                            x.inTime = new Date( item.inTime);
 | 
			
		||||
                            x.outTime = new Date( item.outTime);
 | 
			
		||||
              x.inTime = new Date(item.inTime);
 | 
			
		||||
              x.outTime = new Date(item.outTime);
 | 
			
		||||
              x.totalCount = item.scheduleCount;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
| 
						 | 
				
			
			@ -593,11 +593,18 @@ export class ProductionBonusSetupComponent implements OnInit {
 | 
			
		|||
  }
 | 
			
		||||
  onClickRemoveSupervisors(data: any) {
 | 
			
		||||
    debugger;
 | 
			
		||||
    if (data.id == 0) {
 | 
			
		||||
      const index = this.prodBonusLine.prodBonusSupervisors.findIndex(item => item.employeeID === data.employeeID);
 | 
			
		||||
      if (index !== -1) {
 | 
			
		||||
        this.prodBonusLine.prodBonusSupervisors.splice(index, 1);
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      const index = this.prodBonusLine.prodBonusSupervisors.findIndex(item => item.id === data.id);
 | 
			
		||||
      if (index !== -1) {
 | 
			
		||||
        this.prodBonusLine.prodBonusSupervisors.splice(index, 1);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  clearFields() {
 | 
			
		||||
    this.productionBonusSetup = new ProductionBonusSetup();
 | 
			
		||||
    this.productionBonusSetup.fromDate = new Date();
 | 
			
		||||
| 
						 | 
				
			
			@ -620,7 +627,7 @@ export class ProductionBonusSetupComponent implements OnInit {
 | 
			
		|||
  createWorkSchedule(data: any) {
 | 
			
		||||
    debugger;
 | 
			
		||||
    var newlineParameter: ProdBonusParameter = new ProdBonusParameter();
 | 
			
		||||
    if (this.isNewLine){
 | 
			
		||||
    if (this.isNewLine) {
 | 
			
		||||
      newlineParameter.itemID = this._departmentPicker.selectedID;
 | 
			
		||||
      newlineParameter.itemType = 0;
 | 
			
		||||
      newlineParameter.prodBonusSetupID = this.productionBonusSetup.id;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,8 +30,8 @@
 | 
			
		|||
                            <label>Employee Id </label>
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <div class="p-col-12 p-md-6 p-lg-8 form-control-lg ">
 | 
			
		||||
                            <input formControlName="employeeId" [readonly]="!newEmployee"
 | 
			
		||||
                                [(ngModel)]="employee.employeeNo" type="text" style="width:100%" pInputText required>
 | 
			
		||||
                            <input formControlName="employeeId"[readonly]="true"
 | 
			
		||||
                                [(ngModel)]="employee.employeeNo" type="text" style="width:100%" pInputText><!-- [readonly]="!newEmployee"-->
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <div class="p-col-12 p-md-6 p-lg-4" style="margin:auto">
 | 
			
		||||
                            <label for="txtempName">Name </label>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -137,19 +137,19 @@ export class EmployeePayrollProfileComponent implements OnInit {
 | 
			
		|||
 | 
			
		||||
            this.lastSalaryProcessDate();
 | 
			
		||||
 | 
			
		||||
            this.loadingPanelService.ShowLoadingPanel = true;
 | 
			
		||||
            this.employeeService.generateEmployeeNo().subscribe(
 | 
			
		||||
                (resp) => {
 | 
			
		||||
                    this.employee.employeeNo = resp as string;
 | 
			
		||||
                },
 | 
			
		||||
                (err) => {
 | 
			
		||||
                    this.notificationService.showError(err);
 | 
			
		||||
                    this.loadingPanelService.ShowLoadingPanel = false;
 | 
			
		||||
                },
 | 
			
		||||
                () => {
 | 
			
		||||
                    this.loadingPanelService.ShowLoadingPanel = false;
 | 
			
		||||
                }
 | 
			
		||||
            );
 | 
			
		||||
            // this.loadingPanelService.ShowLoadingPanel = true;
 | 
			
		||||
            // this.employeeService.generateEmployeeNo().subscribe(
 | 
			
		||||
            //     (resp) => {
 | 
			
		||||
            //         this.employee.employeeNo = resp as string;
 | 
			
		||||
            //     },
 | 
			
		||||
            //     (err) => {
 | 
			
		||||
            //         this.notificationService.showError(err);
 | 
			
		||||
            //         this.loadingPanelService.ShowLoadingPanel = false;
 | 
			
		||||
            //     },
 | 
			
		||||
            //     () => {
 | 
			
		||||
            //         this.loadingPanelService.ShowLoadingPanel = false;
 | 
			
		||||
            //     }
 | 
			
		||||
            // );
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            this.employee.employeeNo = undefined;
 | 
			
		||||
| 
						 | 
				
			
			@ -229,7 +229,8 @@ export class EmployeePayrollProfileComponent implements OnInit {
 | 
			
		|||
    createForm() {
 | 
			
		||||
        this.employeeForm = new FormBuilder().group({
 | 
			
		||||
            isNew: ['', Validators.required],
 | 
			
		||||
            employeeId: ['', Validators.required],
 | 
			
		||||
            // employeeId: ['', Validators.required],
 | 
			
		||||
            employeeId: [''],
 | 
			
		||||
            name: ['', Validators.required],
 | 
			
		||||
            mobileNo: [''],
 | 
			
		||||
            emailAddress: [''],
 | 
			
		||||
| 
						 | 
				
			
			@ -276,7 +277,7 @@ export class EmployeePayrollProfileComponent implements OnInit {
 | 
			
		|||
                this.employee.joiningDate = new Date(this.employee.joiningDate);
 | 
			
		||||
            },
 | 
			
		||||
            (err: any) => {
 | 
			
		||||
 | 
			
		||||
                this.notificationService.showError(err.error);
 | 
			
		||||
            },
 | 
			
		||||
            () => {
 | 
			
		||||
                debugger;
 | 
			
		||||
| 
						 | 
				
			
			@ -298,7 +299,8 @@ export class EmployeePayrollProfileComponent implements OnInit {
 | 
			
		|||
 | 
			
		||||
                        },
 | 
			
		||||
                        (err: any) => {
 | 
			
		||||
                            console.log(err);
 | 
			
		||||
                            // console.log(err);
 | 
			
		||||
                            this.notificationService.showError(err.error);
 | 
			
		||||
                        },
 | 
			
		||||
                        () => {
 | 
			
		||||
                            this.empLineManager = new SearchEmployee();
 | 
			
		||||
| 
						 | 
				
			
			@ -332,6 +334,32 @@ export class EmployeePayrollProfileComponent implements OnInit {
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    // public saveGeneratedEmployee() {
 | 
			
		||||
 | 
			
		||||
    //     debugger;
 | 
			
		||||
    //     if (this.newEmployee === true) {
 | 
			
		||||
    //         this.loadingPanelService.ShowLoadingPanel = true;
 | 
			
		||||
    //         this.employeeService.generateEmployeeNo().subscribe(
 | 
			
		||||
    //             (resp) => {
 | 
			
		||||
    //                 this.employee.employeeNo = resp as string;
 | 
			
		||||
    //             },
 | 
			
		||||
    //             (err) => {
 | 
			
		||||
    //                 this.notificationService.showError(err);
 | 
			
		||||
    //                 this.loadingPanelService.ShowLoadingPanel = false;
 | 
			
		||||
    //             },
 | 
			
		||||
    //             () => {
 | 
			
		||||
    //                 this.loadingPanelService.ShowLoadingPanel = false;
 | 
			
		||||
    //                 setTimeout(() => {
 | 
			
		||||
    //                     this.saveEmployee();
 | 
			
		||||
    //                   }, 1000);
 | 
			
		||||
    //             }
 | 
			
		||||
    //         );
 | 
			
		||||
 | 
			
		||||
    //     }
 | 
			
		||||
    //     else {
 | 
			
		||||
    //         this.saveEmployee();
 | 
			
		||||
    //     }
 | 
			
		||||
    // }
 | 
			
		||||
 | 
			
		||||
    saveEmployee() {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -243,7 +243,7 @@ namespace HRM.UI.Controllers
 | 
			
		|||
        [Route("saveEmployee")]
 | 
			
		||||
        public ActionResult SaveEmployee(Employee item)
 | 
			
		||||
        {
 | 
			
		||||
            int ans;
 | 
			
		||||
            Employee ans;
 | 
			
		||||
 | 
			
		||||
            CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
 | 
			
		||||
            if (item.IsNew == true)
 | 
			
		||||
| 
						 | 
				
			
			@ -260,7 +260,8 @@ namespace HRM.UI.Controllers
 | 
			
		|||
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                ans = _EmployeeService.Save(item);
 | 
			
		||||
                //ans = _EmployeeService.Save(item);
 | 
			
		||||
                ans = _EmployeeService.SaveEmployee(item);
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception ex)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -549,7 +550,7 @@ namespace HRM.UI.Controllers
 | 
			
		|||
                return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return Ok(item.ID);
 | 
			
		||||
            return Ok(item);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user