public EmployeeMontlyAttendance objGetEmployeeMontlyAttendance(string EmployeeId)
        {
            EmployeeMontlyAttendance argEmployeeMontlyAttendance = new EmployeeMontlyAttendance();
            DataSet DataSetToFill = new DataSet();

            if (EmployeeId.ToString().Trim() == "")
            {
                goto ErrorHandlers;
            }

            DataSetToFill = this.GetEmployeeMontlyAttendance4ID(EmployeeId.ToString().Trim());

            if (DataSetToFill.Tables[0].Rows.Count <= 0)
            {
                goto Finish;
            }

            argEmployeeMontlyAttendance = this.objCreteEmployeeMontlyAttendance((DataRow)DataSetToFill.Tables[0].Rows[0]);

            goto Finish;

ErrorHandlers:

Finish:
            DataSetToFill = null;

            return(argEmployeeMontlyAttendance);
        }
        private EmployeeMontlyAttendance objCreteEmployeeMontlyAttendance(DataRow dr)
        {
            EmployeeMontlyAttendance tEmployeeMontlyAttendance = new EmployeeMontlyAttendance();

            tEmployeeMontlyAttendance.SetObjectInfo(dr);

            return(tEmployeeMontlyAttendance);
        }
        public void InsertEmployeeErrnDeduction(EmployeeMontlyAttendance argEmployeeMontlyAttendance, DataAccess da, List <ErrorHandlerClass> lstErr)
        {
            da.Open_Connection();

            SqlParameter[] param = new SqlParameter[15];
            param[0] = new SqlParameter("@EmployeeId", argEmployeeMontlyAttendance.EmployeeId);
            param[1] = new SqlParameter("@Allwances", argEmployeeMontlyAttendance.Allwances);
            param[2] = new SqlParameter("@AllowanesAmount", argEmployeeMontlyAttendance.AllowanesAmount);
            param[3] = new SqlParameter("@Deductions", argEmployeeMontlyAttendance.Deductions);
            param[4] = new SqlParameter("@DedPercentage", argEmployeeMontlyAttendance.DedPercentage);
            param[5] = new SqlParameter("@DedAmount", argEmployeeMontlyAttendance.DedAmount);

            param[6]  = new SqlParameter("@CreatedBy", argEmployeeMontlyAttendance.CreatedBy);
            param[7]  = new SqlParameter("@ModifiedBy", argEmployeeMontlyAttendance.ModifiedBy);
            param[8]  = new SqlParameter("@ItemNo", argEmployeeMontlyAttendance.ItemNo);
            param[9]  = new SqlParameter("@Month", argEmployeeMontlyAttendance.Month);
            param[10] = new SqlParameter("@Year", argEmployeeMontlyAttendance.Year);

            param[11]           = new SqlParameter("@Type", SqlDbType.Char);
            param[11].Size      = 1;
            param[11].Direction = ParameterDirection.Output;

            param[12]           = new SqlParameter("@Message", SqlDbType.VarChar);
            param[12].Size      = 255;
            param[12].Direction = ParameterDirection.Output;

            param[13]           = new SqlParameter("@returnvalue", SqlDbType.VarChar);
            param[13].Size      = 20;
            param[13].Direction = ParameterDirection.Output;
            param[14]           = new SqlParameter("@IsSytemCalucalted", argEmployeeMontlyAttendance.IsSytemCalucalted);

            int i = da.NExecuteNonQuery("Proc_InsertMonthlyEarningnDeduction", param);

            string strMessage  = Convert.ToString(param[12].Value);
            string strType     = Convert.ToString(param[11].Value);
            string strRetValue = Convert.ToString(param[13].Value);

            objErrorHandlerClass.Type        = strType;
            objErrorHandlerClass.MsgId       = 0;
            objErrorHandlerClass.Message     = strMessage.ToString();
            objErrorHandlerClass.RowNo       = 0;
            objErrorHandlerClass.FieldName   = "";
            objErrorHandlerClass.LogCode     = "";
            objErrorHandlerClass.ReturnValue = strRetValue;
            lstErr.Add(objErrorHandlerClass);
            //return i;
        }
        public void UpdateEmployeeMontlyAttendance(EmployeeMontlyAttendance argEmployeeMontlyAttendance, DataAccess da, List <ErrorHandlerClass> lstErr)
        {
            da.Open_Connection();

            SqlParameter[] param = new SqlParameter[29];
            param[0]  = new SqlParameter("@EmployeeId", argEmployeeMontlyAttendance.EmployeeId);
            param[1]  = new SqlParameter("@Month", argEmployeeMontlyAttendance.Month);
            param[2]  = new SqlParameter("@Year", argEmployeeMontlyAttendance.Year);
            param[3]  = new SqlParameter("@SalaryProcessDate", argEmployeeMontlyAttendance.SalaryProcessDate);
            param[4]  = new SqlParameter("@TotalMonthDays", argEmployeeMontlyAttendance.TotalMontrhInDays);
            param[5]  = new SqlParameter("@OverTime", argEmployeeMontlyAttendance.OverTime);
            param[6]  = new SqlParameter("@Present", argEmployeeMontlyAttendance.Present);
            param[7]  = new SqlParameter("@Absent", argEmployeeMontlyAttendance.Absent);
            param[8]  = new SqlParameter("@Holidays", argEmployeeMontlyAttendance.Holidays);
            param[9]  = new SqlParameter("@WeekOff", argEmployeeMontlyAttendance.WeekOff);
            param[10] = new SqlParameter("@RstHoliDays ", argEmployeeMontlyAttendance.RstHoliDays);
            param[11] = new SqlParameter("@Maternity", argEmployeeMontlyAttendance.Maternity);
            param[12] = new SqlParameter("@EL", argEmployeeMontlyAttendance.EL);
            param[13] = new SqlParameter("@CL", argEmployeeMontlyAttendance.CL);
            param[14] = new SqlParameter("@SL", argEmployeeMontlyAttendance.SL);
            param[15] = new SqlParameter("@L1", argEmployeeMontlyAttendance.L1);
            param[16] = new SqlParameter("@L2", argEmployeeMontlyAttendance.L2);
            param[17] = new SqlParameter("@L3", argEmployeeMontlyAttendance.L3);
            param[18] = new SqlParameter("@PaidDays", argEmployeeMontlyAttendance.PaidDays);
            param[19] = new SqlParameter("@DayWork", argEmployeeMontlyAttendance.DayWork);
            param[20] = new SqlParameter("@ESILeave", argEmployeeMontlyAttendance.ESILeave);
            param[21] = new SqlParameter("@ArrPaidDays", argEmployeeMontlyAttendance.ArrPaidDays);
            param[22] = new SqlParameter("@PFPaidDays", argEmployeeMontlyAttendance.PFPaidDays);
            param[23] = new SqlParameter("@ESIPaidDays", argEmployeeMontlyAttendance.ESIPaidDays);
            param[24] = new SqlParameter("@Remarks", argEmployeeMontlyAttendance.Remarks);

            param[25] = new SqlParameter("@ModifiedBy", argEmployeeMontlyAttendance.ModifiedBy);

            param[26]           = new SqlParameter("@Type", SqlDbType.Char);
            param[26].Size      = 1;
            param[26].Direction = ParameterDirection.Output;

            param[27]           = new SqlParameter("@Message", SqlDbType.VarChar);
            param[27].Size      = 255;
            param[27].Direction = ParameterDirection.Output;

            param[28]           = new SqlParameter("@returnvalue", SqlDbType.VarChar);
            param[28].Size      = 20;
            param[28].Direction = ParameterDirection.Output;

            int i = da.NExecuteNonQuery("Proc_UpdateEmployeeAttendance", param);

            string strMessage  = Convert.ToString(param[27].Value);
            string strType     = Convert.ToString(param[26].Value);
            string strRetValue = Convert.ToString(param[28].Value);

            objErrorHandlerClass.Type        = strType;
            objErrorHandlerClass.MsgId       = 0;
            objErrorHandlerClass.Message     = strMessage.ToString();
            objErrorHandlerClass.RowNo       = 0;
            objErrorHandlerClass.FieldName   = "";
            objErrorHandlerClass.LogCode     = "";
            objErrorHandlerClass.ReturnValue = strRetValue;
            lstErr.Add(objErrorHandlerClass);
            //return i;
        }
        public ICollection <ErrorHandlerClass> SaveEmployeeMontlyAttendance(EmployeeMontlyAttendance objEmployeeMontlyAttendance, ICollection <EmployeeMontlyAttendance> colEmployeeMontlyAttendance)
        {
            List <ErrorHandlerClass> lstErr = new List <ErrorHandlerClass>();
            DataAccess da = new DataAccess();

            try
            {
                da.Open_Connection();
                da.BEGIN_TRANSACTION();

                if (blnIsEmployeeMontlyAttendanceExist(objEmployeeMontlyAttendance.EmployeeId, objEmployeeMontlyAttendance.Month, objEmployeeMontlyAttendance.Year) == false)
                {
                    // objEmployeeMontlyAttendance.ErrorMsg = "0";
                    InsertEmployeeMontlyAttendance(objEmployeeMontlyAttendance, da, lstErr);
                    foreach (ErrorHandlerClass objerr in lstErr)
                    {
                        if (objerr.Type == "E")
                        {
                            da.ROLLBACK_TRANSACTION();
                            return(lstErr);
                        }
                    }

                    if (colEmployeeMontlyAttendance.Count > 0)
                    {
                        foreach (EmployeeMontlyAttendance argEmployeeMontlyAttendance in colEmployeeMontlyAttendance)
                        {
                            InsertEmployeeErrnDeduction(argEmployeeMontlyAttendance, da, lstErr);
                        }
                    }

                    da.COMMIT_TRANSACTION();
                }
                else
                {
                    ErrorHandlerClass _objErrorHandlerClass = new ErrorHandlerClass();
                    _objErrorHandlerClass.Message = "This months's Salary has been already calculate!!";
                }
                //else
                //{
                //    UpdateEmployeeMontlyAttendance(objEmployeeMontlyAttendance, da, lstErr);
                //    UpdateEmployeeErrnDeduction(objEmployeeMontlyAttendance, da, lstErr);
                //    foreach (ErrorHandlerClass objerr in lstErr)
                //    {
                //        if (objerr.Type == "E")
                //        {
                //            da.ROLLBACK_TRANSACTION();
                //            return lstErr;
                //        }
                //    }
                //    da.COMMIT_TRANSACTION();
                //}
            }
            catch (Exception ex)
            {
                if (da != null)
                {
                    da.ROLLBACK_TRANSACTION();
                }
                objErrorHandlerClass.Type      = ErrorConstant.strAboartType;
                objErrorHandlerClass.MsgId     = 0;
                objErrorHandlerClass.Message   = ex.Message.ToString();
                objErrorHandlerClass.RowNo     = 0;
                objErrorHandlerClass.FieldName = "";
                objErrorHandlerClass.LogCode   = "";
                lstErr.Add(objErrorHandlerClass);
            }
            finally
            {
                if (da != null)
                {
                    da.Close_Connection();
                    da = null;
                }
            }
            return(lstErr);
        }