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;
            }
        }
Exemple #2
0
        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;
            }
        }