public JsonResult SavePayoutMethodPayments(List <PayoutPayment> payments)
        {
            if (!AuthorizationProvider.CanEditStatement())
            {
                return(Forbidden());
            }

            try
            {
                // create/update payments
                var provider = new PayoutPaymentProvider(_dbContext);
                provider.SavePayoutMethodPayments(payments);

                // add a statement completion record for the payment month
                if (payments != null && payments.Count > 0)
                {
                    var nextMonth          = (new DateTime(payments[0].PaymentYear, payments[0].PaymentMonth, 1)).AddMonths(1);
                    var completionProvider = new StatementCompletionProvider(_dbContext);
                    completionProvider.New(nextMonth);
                }

                return(Json("success", JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
        }
 public JsonResult IsEditFreezed(DateTime month)
 {
     try
     {
         // get the edit freeze flag
         var freezeProvider  = new StatementCompletionProvider(_dbContext);
         int editFreezedFlag = !freezeProvider.Exist(month) ? -1 : freezeProvider.IsEditFreezed(month) ? 1 : 0;
         return(Json(editFreezedFlag, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         return(Json(ex.Message, JsonRequestBehavior.AllowGet));
     }
 }
        public JsonResult FreezeEditing(DateTime month, bool freeze)
        {
            if (!AuthorizationProvider.CanFreezeEditing())
            {
                return(Forbidden());
            }

            try
            {
                var provider = new StatementCompletionProvider(_dbContext);
                provider.FreezeEditing(month, freeze);
                return(Json(freeze ? "0" : "1", JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
        }