Пример #1
0
        public async Task <long> PostAsync(string tenant, OpeningInventory model)
        {
            string connectionString = FrapidDbServer.GetConnectionString(tenant);

            string sql = @"SELECT * FROM inventory.post_opening_inventory
                            (
                                @OfficeId, @UserId, @LoginId, 
                                @ValueDate::date, @BookDate::date, 
                                @ReferenceNumber, @StatementReference, 
                                ARRAY[{0}]
                            );";

            sql = string.Format(sql, this.GetParametersForDetails(model.Details));

            using (var connection = new NpgsqlConnection(connectionString))
            {
                using (var command = new NpgsqlCommand(sql, connection))
                {
                    command.Parameters.AddWithNullableValue("@OfficeId", model.OfficeId);
                    command.Parameters.AddWithNullableValue("@UserId", model.UserId);
                    command.Parameters.AddWithNullableValue("@LoginId", model.LoginId);
                    command.Parameters.AddWithNullableValue("@ValueDate", model.ValueDate);
                    command.Parameters.AddWithNullableValue("@BookDate", model.BookDate);
                    command.Parameters.AddWithNullableValue("@ReferenceNumber", model.ReferenceNumber.Or(""));
                    command.Parameters.AddWithNullableValue("@StatementReference", model.StatementReference.Or(""));

                    command.Parameters.AddRange(this.AddParametersForDetails(model.Details).ToArray());

                    connection.Open();
                    var awaiter = await command.ExecuteScalarAsync().ConfigureAwait(false);

                    return(awaiter.To <long>());
                }
            }
        }
        public async Task <ActionResult> PostAsync(OpeningInventory model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.InvalidModelState(this.ModelState));
            }

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

            model.UserId   = meta.UserId;
            model.OfficeId = meta.OfficeId;
            model.LoginId  = meta.LoginId;

            long tranId = await DAL.Backend.Setup.OpeningInventories.PostAsync(this.Tenant, model).ConfigureAwait(true);

            return(this.Ok(tranId));
        }
Пример #3
0
        public async Task <long> PostAsync(string tenant, OpeningInventory model)
        {
            string connectionString = FrapidDbServer.GetConnectionString(tenant);

            string sql = @"EXECUTE inventory.post_opening_inventory
                                @OfficeId, @UserId, @LoginId, 
                                @ValueDate, @BookDate, 
                                @ReferenceNumber, @StatementReference, 
                                @Details, @TransactionMasterId OUTPUT
                            ;";


            using (var connection = new SqlConnection(connectionString))
            {
                using (var command = new SqlCommand(sql, connection))
                {
                    command.Parameters.AddWithNullableValue("@OfficeId", model.OfficeId);
                    command.Parameters.AddWithNullableValue("@UserId", model.UserId);
                    command.Parameters.AddWithNullableValue("@LoginId", model.LoginId);
                    command.Parameters.AddWithNullableValue("@ValueDate", model.ValueDate);
                    command.Parameters.AddWithNullableValue("@BookDate", model.BookDate);
                    command.Parameters.AddWithNullableValue("@ReferenceNumber", model.ReferenceNumber.Or(""));
                    command.Parameters.AddWithNullableValue("@StatementReference", model.StatementReference.Or(""));

                    using (var details = this.GetDetails(model.Details))
                    {
                        command.Parameters.AddWithNullableValue("@Details", details, "inventory.opening_stock_type");
                    }

                    command.Parameters.Add("@TransactionMasterId", SqlDbType.BigInt).Direction = ParameterDirection.Output;

                    connection.Open();
                    await command.ExecuteNonQueryAsync().ConfigureAwait(false);

                    return(command.Parameters["@TransactionMasterId"].Value.To <long>());
                }
            }
        }
Пример #4
0
        public async Task <ActionResult> PostAsync(OpeningInventory model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.InvalidModelState(this.ModelState));
            }

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

            model.UserId   = meta.UserId;
            model.OfficeId = meta.OfficeId;
            model.LoginId  = meta.LoginId;
            try
            {
                long tranId = await DAL.Backend.Setup.OpeningInventories.PostAsync(this.Tenant, model).ConfigureAwait(true);

                return(this.Ok(tranId));
            }
            catch (Exception ex)
            {
                return(this.Failed(ex.Message, HttpStatusCode.InternalServerError));
            }
        }
Пример #5
0
        public static async Task <long> PostAsync(string tenant, OpeningInventory model)
        {
            var entry = LocateService(tenant);

            return(await entry.PostAsync(tenant, model).ConfigureAwait(false));
        }