public ActionResult EmployeeRecAdjustment(string date, int EmpId, int ItemId, decimal OldQty, decimal NewQty, string Remarks) { EmployeeAdjustment employeeAdjustment = new EmployeeAdjustment(); DateTime? EffDate = Convert.ToDateTime(date); var RecordInItemPurchase = db.ItemPurchases.Where(i => DbFunctions.TruncateTime(i.EffectiveDate) == DbFunctions.TruncateTime(EffDate) && i.EmployeeId == EmpId && i.ItemId == ItemId).FirstOrDefault(); int CurrentDate = DateTime.Now.Day; DateTime UserInputDate = Convert.ToDateTime(date); int EffectiveDate = UserInputDate.Day; if (CurrentDate == EffectiveDate) { employeeAdjustment.EmployeeId = EmpId; employeeAdjustment.ItemId = ItemId; employeeAdjustment.CashierId = RecordInItemPurchase.CashierId; employeeAdjustment.EnteredUserId = Convert.ToInt32(Session["UserId"].ToString()); employeeAdjustment.TransactionTypeId = 4; employeeAdjustment.FactoryId = RecordInItemPurchase.FactoryId; employeeAdjustment.UnitPrice = RecordInItemPurchase.UnitPrice; employeeAdjustment.Quantity = NewQty; employeeAdjustment.EffectiveDate = EffDate; employeeAdjustment.EnteredDate = DateTime.Now; employeeAdjustment.Remarks = Remarks; db.EmployeeAdjustments.Add(employeeAdjustment); db.SaveChanges(); EmployeePayment employeePayment = new EmployeePayment(); //Add a plus value for EmployeeID & Effective Date employeePayment.EmployeeID = EmpId; employeePayment.EffectiveDate = EffDate; employeePayment.Amount = (RecordInItemPurchase.UnitPrice * (NewQty * -1)); db.EmployeePayments.Add(employeePayment); db.SaveChanges(); ItemPurchase itemPurchase = new ItemPurchase();//Add minues value for Unit Price & Quantity for EmpId & EffDate itemPurchase.EffectiveDate = EffDate; itemPurchase.EmployeeId = EmpId; itemPurchase.ItemId = ItemId; itemPurchase.UnitPrice = (RecordInItemPurchase.UnitPrice * -1); itemPurchase.Quantity = NewQty; itemPurchase.FactoryId = RecordInItemPurchase.FactoryId; itemPurchase.CashierId = RecordInItemPurchase.CashierId; db.ItemPurchases.Add(itemPurchase); db.SaveChanges(); ItemTransaction itemTransaction1 = new ItemTransaction(); //If same date No plus value for transaction type 3, Add plus value for Trans Type 2 itemTransaction1.ItemID = ItemId; itemTransaction1.Quantity = (NewQty * -1); itemTransaction1.TransactionTypeId = 2; itemTransaction1.EffectiveDate = EffDate; db.ItemTransactions.Add(itemTransaction1); db.SaveChanges(); var EmployeeDetails = db.Employees.Where(e => e.ID == EmpId).FirstOrDefault();//Reduce Credit Balance EmployeeDetails.CreditBalance = (EmployeeDetails.CreditBalance + ((RecordInItemPurchase.UnitPrice * -1) * NewQty)); db.Entry(EmployeeDetails).State = EntityState.Modified; db.SaveChanges(); var daySesslingQty = db.Items.Where(i => i.ID == ItemId).FirstOrDefault(); decimal ReduceQty = (OldQty + NewQty);//If same date reduce Item Day Selling qty daySesslingQty.DaySellingQty = daySesslingQty.DaySellingQty + ReduceQty; db.Entry(daySesslingQty).State = EntityState.Modified; db.SaveChanges(); success = "Adjustment Entered Succfully."; } else if (CurrentDate > EffectiveDate) { employeeAdjustment.EmployeeId = EmpId; employeeAdjustment.ItemId = ItemId; employeeAdjustment.CashierId = RecordInItemPurchase.CashierId; employeeAdjustment.EnteredUserId = Convert.ToInt32(Session["UserId"].ToString()); employeeAdjustment.TransactionTypeId = 5; employeeAdjustment.FactoryId = RecordInItemPurchase.FactoryId; employeeAdjustment.UnitPrice = RecordInItemPurchase.UnitPrice; employeeAdjustment.Quantity = NewQty; employeeAdjustment.EffectiveDate = EffDate; employeeAdjustment.EnteredDate = DateTime.Now; employeeAdjustment.Remarks = Remarks; db.EmployeeAdjustments.Add(employeeAdjustment); db.SaveChanges(); //employeeAdjustment.EmployeeId = EmpId; //employeeAdjustment.ItemId = ItemId; //employeeAdjustment.CashierId = RecordInItemPurchase.CashierId; //employeeAdjustment.EnteredUserId = Convert.ToInt32(Session["UserId"].ToString()); //employeeAdjustment.TransactionTypeId = 3; //employeeAdjustment.FactoryId = RecordInItemPurchase.FactoryId; //employeeAdjustment.UnitPrice = RecordInItemPurchase.UnitPrice; //employeeAdjustment.Quantity = NewQty; //employeeAdjustment.EffectiveDate = EffDate; //employeeAdjustment.EnteredDate = DateTime.Now; //employeeAdjustment.Remarks = Remarks; //db.EmployeeAdjustments.Add(employeeAdjustment); //db.SaveChanges(); EmployeePayment employeePayment = new EmployeePayment(); employeePayment.EmployeeID = EmpId; employeePayment.EffectiveDate = EffDate; employeePayment.Amount = (RecordInItemPurchase.UnitPrice * (NewQty * -1)); db.EmployeePayments.Add(employeePayment); db.SaveChanges(); ItemPurchase itemPurchase = new ItemPurchase(); itemPurchase.EffectiveDate = EffDate; itemPurchase.EmployeeId = EmpId; itemPurchase.ItemId = ItemId; itemPurchase.UnitPrice = (RecordInItemPurchase.UnitPrice * -1); itemPurchase.Quantity = NewQty; itemPurchase.FactoryId = RecordInItemPurchase.FactoryId; itemPurchase.CashierId = RecordInItemPurchase.CashierId; db.ItemPurchases.Add(itemPurchase); db.SaveChanges(); ItemTransaction itemTransaction1 = new ItemTransaction();//If any other day- add plus value to transTyoe 2 and minus value to trans Type 3 itemTransaction1.ItemID = ItemId; itemTransaction1.Quantity = (NewQty * -1); itemTransaction1.TransactionTypeId = 2; itemTransaction1.EffectiveDate = EffDate; db.ItemTransactions.Add(itemTransaction1); db.SaveChanges(); ItemTransaction itemTransaction2 = new ItemTransaction(); itemTransaction2.ItemID = ItemId; itemTransaction2.Quantity = NewQty; itemTransaction2.TransactionTypeId = 3; itemTransaction2.EffectiveDate = EffDate; db.ItemTransactions.Add(itemTransaction2); db.SaveChanges(); var EmployeeDetails = db.Employees.Where(e => e.ID == EmpId).FirstOrDefault(); EmployeeDetails.CreditBalance = (EmployeeDetails.CreditBalance + ((RecordInItemPurchase.UnitPrice * -1) * NewQty)); db.Entry(EmployeeDetails).State = EntityState.Modified; db.SaveChanges(); success = "Adjustment Entered Succfully."; } else { error = "Error in Adjustment Entering. Please Start Again"; } return(Json(new { error, success }, JsonRequestBehavior.AllowGet)); }
public void Update(EmployeeAdjustment employeeAdjustment) { _employeeAdjustmentRepository.Update(employeeAdjustment); }