Hi friends,
i am working a small application which should display data in textbox when selected the listview , the problem i am getting when i apply leaves for same employee code with differnt leave type and when i am selecting the recorded added listview to show data in textboxes it getting error and displaying the data but when i close the application and open and again i select the recorded from listview the error will not come for the first time applying and selected record for first time only it will come. please some one help me.
the error is
it will show 'fromdate ' in a small box, first time when i select listview index record, when i added leaves for same employee code different leave type
when i use break point listapproval.Items[i].Selected == true it is showin false and after that it will show
the code is
private void listapproval_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
groupBox3.Visible = true;
txtEmpCode.Enabled = false;
btnSave.Enabled = false;
btnDelete.Enabled = true;
// btnDelete.Enabled = true;
string empcode = "";
string empname = "";
string leavetype = "";
string fromdate = "";
string todate = "";
string description = "";
string status = "";
for (int i = 0; i < listapproval.Items.Count; i++)
{
if (listapproval.Items[i].Selected == true)
{
empcode = listapproval.Items[i].SubItems[0].Text;
empname = listapproval.Items[i].SubItems[1].Text;
leavetype = listapproval.Items[i].SubItems[2].Text;
fromdate = listapproval.Items[i].SubItems[3].Text;
todate = listapproval.Items[i].SubItems[4].Text;
status = listapproval.Items[i].SubItems[5].Text;
string q1="select LeaveCode From LeaveMaster Where LeaveName='"+leavetype+"'" ;
DBCom.getData(q1);
if(DBCom.rdr.HasRows)
{
while(DBCom.rdr.Read())
{
lc =DBCom.rdr["LeaveCode"].ToString();
}
}
Loading
Ashok KumarPosted Aug 3, 2012, 3:39 AM
but this is not working it showing error while i am saving data
the error i am getting is
insufficient leaves
my entire code
public partial class LeavesApproval : Form
{
string qry = "";
public LeavesApproval()
{
InitializeComponent();
}
public void errorMsg(string qry)
{
MessageBox.Show(qry, "Anviz-Application", MessageBoxButtons.OK, MessageBoxIcon.Question);
}
public void successMsg(string msg)
{
MessageBox.Show(msg, "Anviz-Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
int statuscode = 0;
int balance=0;
string lc = "";
private void listapproval_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
groupBox3.Visible = true;
txtEmpCode.Enabled = false;
btnSave.Enabled = false;
btnDelete.Enabled = true;
// btnDelete.Enabled = true;
string empcode = "";
string empname = "";
string leavetype = "";
//string fromdate = "";
//string todate = "";
DateTime fromdate;
DateTime todate;
string description = "";
string status = "";
for (int i = 0; i < listapproval.Items.Count; i++)
{
if (listapproval.Items[i].Selected == true)
{
empcode = listapproval.Items[i].SubItems[0].Text;
empname = listapproval.Items[i].SubItems[1].Text;
leavetype = listapproval.Items[i].SubItems[2].Text;
fromdate =Convert.ToDateTime( listapproval.Items[i].SubItems[3].Text);
todate = Convert.ToDateTime(listapproval.Items[i].SubItems[4].Text);
status = listapproval.Items[i].SubItems[5].Text;
string q1="select LeaveCode From LeaveMaster Where LeaveName='"+leavetype+"'" ;
DBCom.getData(q1);
if(DBCom.rdr.HasRows)
{
while(DBCom.rdr.Read())
{
lc =DBCom.rdr["LeaveCode"].ToString();
}
}
qry = "select * from LeavesApproval where EmployeeCode='" + empcode + "'and LeaveCode='"+lc+"'";
DBCom.getData(qry);
if (DBCom.rdr.HasRows)
{
while (DBCom.rdr.Read())
{
txtEmpCode.Text = DBCom.rdr["EmployeeCode"].ToString();
cmbLeave.Text = leavetype;
dtpFromDate.Text = DBCom.rdr["FromDate"].ToString();
dtpToDate.Text = DBCom.rdr["Todate"].ToString();
txtDescription.Text = DBCom.rdr["Description"].ToString();
}
}
qry = "select * from LeavesApproval where EmployeeCode='" + empcode + "'and LeaveCode='" + lc + "'";
DBCom.getData1(qry);
if (DBCom.rdr1.HasRows)
{
while (DBCom.rdr1.Read())
{
statuscode = Convert.ToInt32(DBCom.rdr1["Flag" ].ToString());
}
}
if (statuscode == 1)
{
status = "Pending";
rdbPending.Checked = true;
}
else if (statuscode == 2)
{
status = "Approved";
rdbApproved.Checked = true;
}
else if (statuscode == 3)
{
status = "Decline";
rdbDecline.Checked = true;
}
string q2 = "Select Leave_Balance From Employee_Leave where Emp_Code='" + empcode + "' and Leave_Code='" + lc + "'";
DBCom.getData(q2);
if (DBCom.rdr.HasRows)
{
while (DBCom.rdr.Read())
{
txtLeaveLeft.Text = DBCom.rdr["Leave_Balance"].ToString();
}
}
}
}
}
catch (Exception ex)
{
errorMsg(ex.Message);
}
}
string ec = "";
public void PopulateLeave()
{
try
{
string q1 = "select Emp_Employee_Category from EmployeeMaster where Emp_code='" + txtEmpCode.Text.ToString() + "'";
DBCom.getData(q1);
if (DBCom.rdr.HasRows)
{
while (DBCom.rdr.Read())
{
ec = DBCom.rdr["Emp_Employee_Category"].ToString();
}
}
qry = "Select LeaveName from LeaveMaster where EmployeeCategory='"+ec+"'";
DBCom.fillDataTable(qry);
DataTable dt = new DataTable();
dt = DBCom.fillDataTable(qry);
DataRow dr = dt.NewRow();
dr[0] = "--Select--";
dt.Rows.InsertAt(dr, 0);
if (dt.Rows.Count > 0)
{
cmbLeave.DisplayMember = "LeaveName";
cmbLeave.DataSource = dt;
}
}
catch (Exception ex)
{
errorMsg(ex.Message);
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
try
{
Clear();
}
catch (Exception ex)
{
errorMsg(ex.Message);
}
}
public void Clear()
{
txtEmpCode.Text = "";
txtDescription.Text = "";
txtLeaveLeft.Text = "";
dtpFromDate.Enabled = true;
dtpToDate.Enabled = true;
dtpFromDate.Text = DateTime.Now.ToShortDateString();
dtpToDate.Text = DateTime.Now.ToShortTimeString();
btnDelete.Enabled = false;
btnSave.Enabled = true;
btnApprove.Visible = false;
groupBox3.Visible = false;
txtEmpCode.Enabled = true;
}
private void LeavesApproval_Load(object sender, EventArgs e)
{
//PopulateLeave();
PopulateLeavesApproval();
groupBox3.Visible = false;
btnApprove.Enabled = true;
btnDecline.Visible = false;
btnDelete.Enabled = false;
btnDecline.Visible = false;
//btnUpdate.Enabled = false;
}
private void InsertUpdateDelete(string mode, int Leave_id)
{
string EmployeeCode = txtEmpCode.Text.ToUpper().ToString();
string FromDate = dtpFromDate.Value.ToString();
string Todate = dtpToDate.Value.ToString();
string LeaveType = cmbLeave.Text.ToString();
string Description = txtDescription.Text.ToString();
string ApprovalStatus = "1";
string flag = "1";
string leavecode = "";
qry = "Select LeaveCode from LeaveMaster where LeaveName = '" + cmbLeave.Text.ToString() + "'";
DBCom.getData(qry);
if (DBCom.rdr.HasRows)
{
while (DBCom.rdr.Read())
{
leavecode = DBCom.rdr["LeaveCode"].ToString();
}
}
Hashtable hashTable = new Hashtable();
hashTable.Add("Mode", mode);
hashTable.Add("EmployeeCode", EmployeeCode);
hashTable.Add("LeaveCode", leavecode);
hashTable.Add("FromDate", FromDate);
hashTable.Add("ToDate ", Todate);
hashTable.Add("Description", Description);
hashTable.Add("Flag ", flag);
hashTable.Add("ApprovalStatus", ApprovalStatus);
hashTable.Add("Leave_id", Leave_id);
DBCom.exeStoredProcedure("spleavesapproval", hashTable);
}
public void PopulateLeavesApproval()
{
listapproval.Items.Clear();
string empcode = "";
string empname = "";
string Leavetype = "";
string FromDate = "";
string Todate = "";
string status = "";
int statuscode=0;
try
{
qry = "select * from LeavesApproval ";
DBCom.getData(qry);
if (DBCom.rdr.HasRows)
{
while (DBCom.rdr.Read())
{
empcode = DBCom.rdr["EmployeeCode"].ToString();
// LeaveType = DBCom.rdr["LeaveCode"].ToString();
FromDate = DBCom.rdr["FromDate"].ToString();
Todate = DBCom.rdr["ToDate"].ToString();
LeaveCode = DBCom.rdr["LeaveCode"].ToString();
qry = "select LeaveName From LeaveMaster where LeaveCode='" + LeaveCode + "'";
DBCom.getData1(qry);
string leavname = "";
if (DBCom.rdr1.HasRows)
{
while (DBCom.rdr1.Read())
{
leavname= DBCom.rdr1["LeaveName"].ToString();
}
}
status = DBCom.rdr["Flag"].ToString();
statuscode = Convert.ToInt32(DBCom.rdr["ApprovalStatus"].ToString());
// statuscode = 1;
//string flag = "1";
if (statuscode == 1)
{
status = "Pending";
}
else if (statuscode == 2)
{
status = "Approved";
}
else if (statuscode == 3)
{
status = "Dicline";
}
qry = "select Emp_Name from EmployeeMaster where Emp_Code='" + empcode + "'";
DBCom.getData1(qry);
if (DBCom.rdr1.HasRows)
{
while (DBCom.rdr1.Read())
{
empname = DBCom.rdr1["Emp_Name"].ToString();
}
}
ListViewItem lvi = new ListViewItem(empcode);
lvi.SubItems.Add(empname);
lvi.SubItems.Add(leavname);
lvi.SubItems.Add(FromDate);
lvi.SubItems.Add(Todate);
lvi.SubItems.Add(status);
listapproval.Items.Add(lvi);
}
}
}
catch (Exception ex)
{
errorMsg(ex.Message);
}
}
string LeaveCode = "";
private void btnSave_Click(object sender, EventArgs e)
{
if (txtEmpCode.Text == "")
{
errorMsg("Please Enter The Employee Code");
txtEmpCode.Focus();
}
else if (cmbLeave.Text == "")
{
errorMsg("Please Enter leavetype");
cmbLeave.Focus();
}
else if (dtpToDate.Text == "")
{
errorMsg("Please Enter The todate");
dtpToDate.Focus();
}
else if (Convert.ToDateTime(dtpFromDate.Text) > Convert.ToDateTime(dtpToDate.Text))
{
errorMsg("From date cannot be greater than To date");
dtpToDate.Focus();
}
else
{
qry = "Select LeaveCode from LeaveMaster where LeaveName='" + cmbLeave.Text.Trim().ToString() + "'";
DBCom.getData(qry);
if (DBCom.rdr.HasRows)
{
while (DBCom.rdr.Read())
{
LeaveCode = DBCom.rdr["LeaveCode"].ToString();
}
}
string fromdate = dtpFromDate.Value.ToString("yyyy-MM-dd");
string todate = dtpToDate.Value.ToString("yyyy-MM-dd");
qry = "Select count(*) from LeavesApproval where EmployeeCode='" + txtEmpCode.Text.Trim().ToString() + "' ";
qry = qry + " and ((FromDate>='" + fromdate + "' and FromDate<='" + todate + "')";
qry = qry + "OR (FromDate<='" + fromdate + "' and ToDate>='" + todate + "')";
qry = qry + "OR (ToDate>='" + fromdate + "' and ToDate<='" + todate + "')) ";
DBCom.countData(qry);
if (DBCom.count == 0)
{
//int Leave_id = 0;
////InsertUpdateDelete("I", id);
//InsertUpdateDelete("I", Leave_id);
//successMsg("Record added successfully");
string EmmployeeCode = txtEmpCode.Text;
string LeaveType = cmbLeave.Text.Trim().ToString();
string FromDate = dtpFromDate.Text.ToString();
// DateTime fromdate = Convert.ToDateTime(FromDate);
string ToDate = dtpToDate.Text.ToString();
//DateTime todate = Convert.ToDateTime(ToDate);
string Description = txtDescription.Text;
string ApprovalStatus = "1";
string flag = "1";
Hashtable hashTable1 = new Hashtable();
hashTable1.Add("piEmpCode", EmmployeeCode);
hashTable1.Add("piLeaveType", LeaveCode);
hashTable1.Add("piFromDate", FromDate);
hashTable1.Add("piToDate", ToDate);
hashTable1.Add("piReason", Description);
hashTable1.Add("ApprovalStatus",ApprovalStatus);
hashTable1.Add("Flag", flag);
DBCom.exeStoredProcedure("spApprovalleaveapplieddetails", hashTable1);
successMsg("Record added successfully");
PopulateLeavesApproval();
//successMsg("Leave applied successfully");
//PopulateManualPunches();
Clear();
}
else
{
errorMsg("Leave is already applied for the selected date for the employee");
}
}
}
private void btnApprove_Click(object sender, EventArgs e)
{
if (rdbApproved.Checked == true)
{
qry = "update LeavesApproval set ApprovalStatus=2 where EmployeeCode='" + txtEmpCode.Text + "'and FromDate='" + dtpFromDate.Value.ToString() + "' and ToDate='" + dtpToDate.Value.ToString() + "'";
DBCom.putData(qry);
PopulateLeavesApproval();
qry = "update LeavesApproval set Flag=2 where EmployeeCode='" + txtEmpCode.Text + "'and FromDate='" + dtpFromDate.Value.ToString() + "' and ToDate='" + dtpToDate.Value.ToString() + "'";
DBCom.putData(qry);
string EmmployeeCode = txtEmpCode.Text;
string LeaveType = cmbLeave.Text.Trim().ToString();
string FromDate = dtpFromDate.Text.ToString();
// DateTime fromdate = Convert.ToDateTime(FromDate);
string ToDate = dtpToDate.Text.ToString();
//DateTime todate = Convert.ToDateTime(ToDate);
// string Description = txtDescription.Text;
string id= "";
string flag = "";
qry = "select Leave_id,Flag from LeavesApproval where EmployeeCode = '" + txtEmpCode.Text.ToString() + "'";
DBCom.getData(qry);
if (DBCom.rdr.HasRows)
{
while (DBCom.rdr.Read())
{
id = DBCom.rdr["Leave_id"].ToString();
flag = DBCom.rdr["Flag"].ToString();
}
}
//Hashtable hashtable = new Hashtable();
//hashtable.Add("piLeaveid", id);
// DBCom.exeStoredProcedure("spApprovalDeleteLeave",hashtable);
Hashtable hashtable1 = new Hashtable();
hashtable1.Add("Leaveid", id);
hashtable1.Add("Flag", flag);
DBCom.exeStoredProcedure("SpUpdateNewApprovalLeaveStatus", hashtable1);
MessageBox.Show(" leaves are approved");
}
else if (rdbDecline.Checked == true)
{
qry = "update LeavesApproval set ApprovalStatus=3 where EmployeeCode='" + txtEmpCode.Text + "'and FromDate='" + dtpFromDate.Value.ToString() + "' and ToDate='" + dtpToDate.Value.ToString() + "'";
DBCom.putData(qry);
PopulateLeavesApproval();
qry = "update LeavesApproval set Flag=3 where EmployeeCode='" + txtEmpCode.Text + "'and FromDate='" + dtpFromDate.Value.ToString() + "' and ToDate='" + dtpToDate.Value.ToString() + "'";
DBCom.putData(qry);
string id = "";
qry = "select Leave_id from LeavesApproval where EmployeeCode = '" + txtEmpCode.Text.ToString() + "'";
DBCom.getData(qry);
if (DBCom.rdr.HasRows)
{
while (DBCom.rdr.Read())
{
id = DBCom.rdr["Leave_id"].ToString();
}
}
Hashtable hashtable = new Hashtable();
hashtable.Add("piLeaveid", id);
DBCom.exeStoredProcedure("spApprovalDeleteLeave", hashtable);
MessageBox.Show(" leaves are declined");
}
else if (rdbPending.Checked == true)
{
qry = "update LeavesApproval set ApprovalStatus=1 where EmployeeCode='" + txtEmpCode.Text + "'and FromDate='" + dtpFromDate.Value.ToString() + "' and ToDate='" + dtpToDate.Value.ToString() + "'";
DBCom.putData(qry);
PopulateLeavesApproval();
qry = "update LeavesApproval set Flag=1 where EmployeeCode='" + txtEmpCode.Text + "'and FromDate='" + dtpFromDate.Value.ToString() + "' and ToDate='" + dtpToDate.Value.ToString() + "'";
DBCom.putData(qry);
}
}
private void rdbApproved_CheckedChanged(object sender, EventArgs e)
{
}
private void rdbDecline_CheckedChanged(object sender, EventArgs e)
{
}
private void btnDecline_Click(object sender, EventArgs e)
{
//if(rdbPending.Checked==true)
//{
//qry = "update LeavesApproval set ApprovalStatus=1 where EmployeeCode='" + txtEmpCode.Text + "'and FromDate='" + dtpFromDate.Value.ToString() + "' and ToDate='" + dtpToDate.Value.ToString() + "'";
//DBCom.putData(qry);
//PopulateLeavesApproval();
//qry = "update LeavesApproval set Flag=1 where EmployeeCode='" + txtEmpCode.Text + "'and FromDate='" + dtpFromDate.Value.ToString() + "' and ToDate='" + dtpToDate.Value.ToString() + "'";
//DBCom.putData(qry);
//}
}
private void rdbPending_CheckedChanged(object sender, EventArgs e)
{
}
private void cmbLeave_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbLeave.SelectedIndex == 0)
{
txtLeaveLeft.Text = "";
}
else
{
qry = "Select LeaveCode from LeaveMaster where LeaveName='" + cmbLeave.Text.ToString() + "'";
DBCom.getData(qry);
if (DBCom.rdr.HasRows)
{
while (DBCom.rdr.Read())
{
string LeaveCode = DBCom.rdr[0].ToString();
qry = "Select Leave_Balance from Employee_Leave where Leave_code='" + LeaveCode + "' and Emp_code='" + txtEmpCode.Text + "'";
DBCom.getData(qry);
if (DBCom.rdr.HasRows)
{
while (DBCom.rdr.Read())
{
txtLeaveLeft.Text = DBCom.rdr[0].ToString();
}
}
}
}
}
}
int Leave_id;
private void btnDelete_Click(object sender, EventArgs e)
{
try
{
DialogResult result1 = MessageBox.Show("Are You sure You want to delete the selcted Entry", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result1 == DialogResult.Yes)
{
qry = "select Leave_id from LeavesApproval where EmployeeCode='" + txtEmpCode.Text.ToString() + "' and FromDate='" + dtpFromDate.Value.ToString() + "'and ToDate='" + dtpToDate.Value.ToString() + "'";
DBCom.getData(qry);
if (DBCom.rdr.HasRows)
{
while (DBCom.rdr.Read())
{
Leave_id = Convert.ToInt32(DBCom.rdr["Leave_id"].ToString());
}
}
InsertUpdateDelete("D", Leave_id);
successMsg("Record deleted successfully");
PopulateLeavesApproval();
string EmmployeeCode = txtEmpCode.Text;
string LeaveType = cmbLeave.Text.Trim().ToString();
string FromDate = dtpFromDate.Text.ToString();
DateTime fromdate = Convert.ToDateTime(FromDate);
string ToDate = dtpToDate.Text.ToString();
DateTime todate = Convert.ToDateTime(ToDate);
string Description = txtDescription.Text;
//Hashtable hashTable1 = new Hashtable();
//hashTable1.Add("piEmpCode", EmmployeeCode);
//hashTable1.Add("piLeaveType", LeaveCode);
//hashTable1.Add("piFromDate", FromDate);
//hashTable1.Add("piToDate", ToDate);
//DBCom.exeStoredProcedure("spApprovalDeleteLeave", hashTable1);
Clear();
}
}
catch (Exception ex)
{
errorMsg(ex.Message);
}
}
private void txtEmpCode_TextChanged(object sender, EventArgs e)
{
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void txtEmpCode_Leave(object sender, EventArgs e)
{
PopulateLeave();
}
}
}
Naeem KhanPosted Aug 3, 2012, 3:13 AM
Try this line code
You have to convert date into Date Time... and you should use date time Data type instead of
String ... and convert into Date time...
fromdate =Convert.ToDateTime(listapproval.Items[i].SubItems[3].Text);
as same to same you have to do with todate ...
Hope this would be help full for you..
thanks