Esempio n. 1
0
        public static async Task ReconcileAsync(string tenant, ReconciliationViewModel model, LoginView meta)
        {
            if (string.IsNullOrWhiteSpace(model.Memo))
            {
                model.Memo = string.Format(I18N.ReconciledByName, meta.Name);
            }

            using (var db = DbProvider.Get(FrapidDbServer.GetConnectionString(tenant), tenant).GetDatabase())
            {
                string sql = "SELECT * FROM finance.reconcile_account(@0::bigint, @1::integer, @2::date, @3::text);";

                if (db.DatabaseType == DatabaseType.SqlServer)
                {
                    sql = "EXECUTE finance.reconcile_account @0, @1, @2, @3;";
                }

                await db.NonQueryAsync(sql, model.TransactionDetailId, meta.UserId, model.NewBookDate, model.Memo).ConfigureAwait(false);
            }
        }
Esempio n. 2
0
        public async Task <ActionResult> ReconcileAsync(ReconciliationViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.InvalidModelState(this.ModelState));
            }

            var meta = await AppUsers.GetCurrentAsync().ConfigureAwait(false);

            try
            {
                await Reconciliations.ReconcileAsync(this.Tenant, model, meta).ConfigureAwait(true);

                return(this.Ok());
            }
            catch (Exception ex)
            {
                return(this.Failed(ex.Message, HttpStatusCode.InternalServerError));
            }
        }