Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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");
        }