public void deletePayrollData(payments record) { var payment_details = (from e in fmp.payments_details where e.payment_id == record.payment_id select e).ToList<payments_details>(); var payment_reimbursement = (from e in fmp.payments_reimbursements where e.payment_id == record.payment_id select e).ToList<payments_reimbursements>(); foreach (payments_details item in payment_details) { fmp.payments_details.Remove(item); } foreach (payments_reimbursements item in payment_reimbursement) { fmp.payments_reimbursements.Remove(item); } }
public IHttpActionResult save(dynamic payrollData) { using(TransactionScope scope = new TransactionScope()) { try { string username = Request.Headers.GetValues("logusr").FirstOrDefault(); payments p = new payments(); bool editing = false; if(payrollData.payment_id != null) { int payment_id = payrollData.payment_id; p = (from py in fmp.payments where py.payment_id == payment_id select py).FirstOrDefault<payments>(); editing = true; } else { p = new payments(); } p.startdate = Convert.ToDateTime(payrollData.startdate); p.enddate = Convert.ToDateTime(payrollData.enddate); p.username = username; if (!editing) { p.payment_code = getNextPaymentCode(username); fmp.payments.Add(p); updatePaymentCode(username); } else { deletePayrollData(p); } fmp.SaveChanges(); foreach (dynamic employee in payrollData.employees) { foreach (dynamic day in employee.days) { payments_details detail = new payments_details(); detail.required_hours = Convert.ToDecimal(day.regularHours); detail.overtime = Convert.ToDecimal(day.overtime); detail.day = Convert.ToString(day.day); detail.date = Convert.ToDateTime(day.date); detail.payment_id = p.payment_id; detail.employee_code = Convert.ToString(employee.employee.employee_code); detail.payrate = Convert.ToDecimal(employee.employee.title.payrate); detail.comments = day.comment; fmp.payments_details.Add(detail); if (day.reimbursements != null) { foreach (dynamic reimbursement in day.reimbursements) { payments_reimbursements pr = new payments_reimbursements(); pr.comment = Convert.ToString(reimbursement.comment); pr.hours = Convert.ToDecimal(reimbursement.hours); pr.rate = Convert.ToDecimal(reimbursement.rate); pr.reimbursement_type = Convert.ToInt32(reimbursement.type); pr.payment_id = p.payment_id; pr.reimbursement_id = Convert.ToInt32(reimbursement.obj.id); pr.day = Convert.ToString(day.day); pr.date = Convert.ToDateTime(day.date); pr.employee_code = Convert.ToString(employee.employee.employee_code); fmp.payments_reimbursements.Add(pr); } } } } fmp.SaveChanges(); scope.Complete(); } catch (Exception e) { return InternalServerError(e); } } return Ok("1"); }