public void UpdateAssignWork() { try { string workAssignIDObj = hdnAssignWorkID.Value; if (!string.IsNullOrEmpty(workAssignIDObj)) { int workAssignID = Convert.ToInt32(workAssignIDObj); var workCollection = context.WorkAssigns.Where(x => x.IsActive == true && x.WorkAssignID == workAssignID); if (workCollection.Count() > 0) { using (TransactionScope scope = new TransactionScope()) { Database.WorkAssign workAssign = workCollection.FirstOrDefault(); workAssign.BillNo = ddlBillNo.SelectedItem.Text; workAssign.CompletedCount = txtCompletedCount.Text == "" ? 0 : Convert.ToInt32(txtCompletedCount.Text); workAssign.ModifiedBy = currentUserName; workAssign.ModifiedDate = DateTime.Now; workAssign.EmployeeID = Convert.ToInt32(ddlEmployeeName.SelectedValue); if (!string.IsNullOrEmpty(txtExpectedDeliveryDate.Text)) { workAssign.ExpectedCompletionDate = Convert.ToDateTime(txtExpectedDeliveryDate.Text); } else { workAssign.ExpectedCompletionDate = null; } workAssign.IsComplete = chkIsWorkCompleted.Checked; workAssign.Remarks = txtRemarks.Text; if (!string.IsNullOrEmpty(txtWorkAssignDate.Text)) { workAssign.WorkAssignDate = Convert.ToDateTime(txtWorkAssignDate.Text); } else { workAssign.WorkAssignDate = null; } workAssign.WorkCount = txtItemCount.Text == "" ? 0 : Convert.ToInt32(txtItemCount.Text); workAssign.WorkTypeID = Convert.ToInt32(ddlWorkType.SelectedValue); workAssign.IsActive = true; workAssign.TotalCost = txtTotalCost.Text == "" ? 0 : Convert.ToDecimal(txtTotalCost.Text); var totalAmt = txtTotalCost.Text == "" ? 0 : Convert.ToDecimal(txtTotalCost.Text); var paidAmt = txtAmountPaid.Text == "" ? 0 : Convert.ToDecimal(txtAmountPaid.Text); var remAmount = totalAmt - paidAmt; workAssign.RemainingCost = remAmount; context.SaveChanges(); if (rptrData.Items.Count > 0) { foreach (RepeaterItem rptrItem in rptrData.Items) { if (rptrItem.Visible) { int workAssignInventoryUsedID = Convert.ToInt32(((HiddenField)rptrItem.FindControl("hdnWorkassignUsedID")).Value); var invUsedObj = context.WorkAssignInventoryUseds.Where(x => x.IsActive == true && x.WorkAssignInventoryUsedID == workAssignInventoryUsedID); if (invUsedObj.Count() > 0) { WorkAssignInventoryUsed workAssUID = invUsedObj.SingleOrDefault(); int?oldCount = workAssUID.InventoryUsedCount; workAssUID.InventoryTypeID = Convert.ToInt32(((HiddenField)rptrItem.FindControl("hdnItemID")).Value); workAssUID.InventoryUsedCount = Convert.ToInt32(((Label)rptrItem.FindControl("lblQuantity")).Text); workAssUID.ModifiedBy = currentUserName; workAssUID.ModifiedDate = DateTime.Now.Date; workAssUID.IsActive = true; workAssUID.WorkAssignID = workAssign.WorkAssignID; context.SaveChanges(); Database.InventoryType currentInventory = context.InventoryTypes.Where(x => x.IsActive == true && x.InventoryTypeId == workAssUID.InventoryTypeID).SingleOrDefault(); if (currentInventory != null) { var currentQuantity = currentInventory.InventoryCount == null ? 0 : currentInventory.InventoryCount; currentInventory.InventoryCount = currentQuantity + (oldCount - workAssUID.InventoryUsedCount); context.SaveChanges(); } } } else { int workAssignInventoryUsedID = Convert.ToInt32(((HiddenField)rptrItem.FindControl("hdnWorkassignUsedID")).Value); var invUsedObj = context.WorkAssignInventoryUseds.Where(x => x.IsActive == true && x.WorkAssignInventoryUsedID == workAssignInventoryUsedID); if (invUsedObj.Count() > 0) { WorkAssignInventoryUsed workAssUID = invUsedObj.SingleOrDefault(); workAssUID.ModifiedBy = currentUserName; workAssUID.ModifiedDate = DateTime.Now.Date; workAssUID.IsActive = false; context.SaveChanges(); Database.InventoryType currentInventory = context.InventoryTypes.Where(x => x.IsActive == true && x.InventoryTypeId == workAssUID.InventoryTypeID).SingleOrDefault(); if (currentInventory != null) { var currentQuantity = currentInventory.InventoryCount == null ? 0 : currentInventory.InventoryCount; currentInventory.InventoryCount = currentQuantity + workAssUID.InventoryUsedCount; context.SaveChanges(); } } } } } var salCollection = context.Salaries.Where(x => x.IsActive == true && x.WorkAssignID == workAssign.WorkAssignID); if (salCollection.Count() > 0) { Salary EmpSalary = salCollection.FirstOrDefault(); EmpSalary.AmountPaid = txtAmountPaid.Text == "" ? 0 : Convert.ToDecimal(txtAmountPaid.Text); EmpSalary.AmountPaidDate = txtPaidDate.Text == "" ? DateTime.Now.Date : Convert.ToDateTime(txtPaidDate.Text); EmpSalary.ModifiedBy = currentUserName; EmpSalary.ModifiedDate = DateTime.Now; EmpSalary.EmployeeID = Convert.ToInt32(ddlEmployeeName.SelectedValue); EmpSalary.Remarks = txtRemarks.Text; EmpSalary.WorkAssignID = workAssign.WorkAssignID; EmpSalary.IsActive = true; context.SaveChanges(); } lblMessage.Text = "Assign Successfully"; lblMessage.ForeColor = Color.Green; scope.Complete(); } } else { lblMessage.Text = "Work Assign ID Not Found "; lblMessage.ForeColor = Color.Red; } } else { lblMessage.Text = "Work Assign ID Not in proper format "; lblMessage.ForeColor = Color.Red; } } catch { throw; } }
public void AssignWork() { try { if (ddlEmployeeName.SelectedValue != "0" && ddlBillNo.SelectedValue != "0" && ddlWorkType.SelectedValue != "0") { int empId = Convert.ToInt32(ddlEmployeeName.SelectedValue); var BillNo = ddlBillNo.SelectedValue; var workTypeID = Convert.ToInt32(ddlWorkType.SelectedValue); //To Check same bill no and same work is not assign to emplyee var workCollection = context.WorkAssigns.Where(x => x.EmployeeID == empId && x.BillNo == BillNo && x.WorkTypeID == workTypeID); if (workCollection.Count() == 0) { using (TransactionScope scope = new TransactionScope()) { WorkAssign workAssign = new WorkAssign(); workAssign.BillNo = ddlBillNo.SelectedItem.Text; workAssign.CompletedCount = txtCompletedCount.Text == "" ? 0 : Convert.ToInt32(txtCompletedCount.Text); workAssign.CreatedBy = currentUserName; workAssign.CreatedDate = DateTime.Now; workAssign.EmployeeID = ddlEmployeeName.SelectedValue == "0" ? 0 : Convert.ToInt32(ddlEmployeeName.SelectedValue); if (!string.IsNullOrEmpty(txtExpectedDeliveryDate.Text)) { workAssign.ExpectedCompletionDate = Convert.ToDateTime(txtExpectedDeliveryDate.Text); } workAssign.IsComplete = chkIsWorkCompleted.Checked; workAssign.Remarks = txtRemarks.Text; if (!string.IsNullOrEmpty(txtWorkAssignDate.Text)) { workAssign.WorkAssignDate = Convert.ToDateTime(txtWorkAssignDate.Text); } workAssign.WorkCount = txtItemCount.Text == "" ? 0 : Convert.ToInt32(txtItemCount.Text); workAssign.WorkTypeID = ddlWorkType.SelectedValue == "0" ? 0 : Convert.ToInt32(ddlWorkType.SelectedValue); workAssign.IsActive = true; workAssign.TotalCost = txtTotalCost.Text == "" ? 0 : Convert.ToInt32(txtTotalCost.Text); var totalAmt = txtTotalCost.Text == "" ? 0 : Convert.ToInt32(txtTotalCost.Text); var paidAmt = txtAmountPaid.Text == "" ? 0 : Convert.ToInt32(txtAmountPaid.Text); var remAmount = totalAmt - paidAmt; workAssign.RemainingCost = remAmount; context.WorkAssigns.Add(workAssign); context.SaveChanges(); Salary EmpSalary = new Salary(); EmpSalary.AmountPaid = paidAmt; EmpSalary.AmountPaidDate = txtPaidDate.Text == "" ? DateTime.Now.Date : Convert.ToDateTime(txtPaidDate.Text); EmpSalary.CreatedBy = currentUserName; EmpSalary.CreatedDate = DateTime.Now; EmpSalary.EmployeeID = ddlEmployeeName.SelectedValue == "0" ? 0 : Convert.ToInt32(ddlEmployeeName.SelectedValue); EmpSalary.Remarks = txtRemarks.Text; EmpSalary.WorkAssignID = workAssign.WorkAssignID; EmpSalary.IsActive = true; context.Salaries.Add(EmpSalary); context.SaveChanges(); if (rptrData.Items.Count > 0) { foreach (RepeaterItem rptrItem in rptrData.Items) { if (rptrItem.Visible) { WorkAssignInventoryUsed workAssUID = new WorkAssignInventoryUsed(); workAssUID.InventoryTypeID = Convert.ToInt32(((HiddenField)rptrItem.FindControl("hdnItemID")).Value); workAssUID.InventoryUsedCount = Convert.ToInt32(((Label)rptrItem.FindControl("lblQuantity")).Text); workAssUID.WorkAssignID = workAssign.WorkAssignID; workAssUID.CreatedBy = currentUserName; workAssUID.CreatedDate = DateTime.Now.Date; workAssUID.IsActive = true; context.WorkAssignInventoryUseds.Add(workAssUID); context.SaveChanges(); Database.InventoryType currentInventory = context.InventoryTypes.Where(x => x.InventoryTypeId == workAssUID.InventoryTypeID).SingleOrDefault(); if (currentInventory != null) { var currentQuantity = currentInventory.InventoryCount == null ? 0 : currentInventory.InventoryCount; currentInventory.InventoryCount = currentQuantity - workAssUID.InventoryUsedCount; currentInventory.ModifiedBy = currentUserName; currentInventory.ModifiedDate = DateTime.Now.Date; context.SaveChanges(); } } } } lblMessage.Text = "Assign Successfully"; lblMessage.ForeColor = Color.Green; ClearForm(); scope.Complete(); } } else { lblMessage.Text = "Work is already assign to Employee"; lblMessage.ForeColor = Color.Red; } } else { lblMessage.Text = "Form is not properly filled"; lblMessage.ForeColor = Color.Red; } } catch { throw; } }