Как сохранить запись таблицы mutipule с помощью Asp.net MVC Json - PullRequest
0 голосов
/ 05 июля 2019

Я создаю простую систему продаж для моего проекта последнего года. Я создаю форму продаж. Прикрепленный снимок экрана ниже, как выглядит форма. После завершения продаж мне нужно сохранить данные в несколько таблиц вместе с идентификатором lastinsert. если я нажму кнопку печати счета. У меня есть таблицы в базе данных о продажах и продажах. Я показал снимок ниже. Я не умею сохранять записи в таблицу множественных чисел с идентификатором lastinsert.

введите описание изображения здесь

Таблица продаж

Итог по дате ID

Sales_Product Table

id sales_id product_id цена кол-во всего

Код, который я попробовал

JQuery

  function addProject() {
                    var table_data = [];
                    $('#product_list tbody tr').each(function (row, tr) {
                        var sub = {
                                     //these records i am going to add into sales table
                            'barcode': $(tr).find('td:eq(1)').text(),
                            'pname': $(tr).find('td:eq(2)').text(),
                            'pro_price': $(tr).find('td:eq(3)').text(),
                            'qty': $(tr).find('td:eq(4)').text(),
                            'total_cost': $(tr).find('td:eq(5)').text(),
                        };
                        table_data.push(sub);
                    });

                    //these records i am going to add into sales 
                    var total = $("#total").val();

                    $.ajax({
                        type: 'POST',
                        url: '/product/Save',
                        dataType: 'JSON',
                        data: {
                            total: $('#total').val(), data: table_data
                        },
                        success: function (data) {
                            console.log(_data);

                            var msg;
                            if (isNew) {
                                msg = "Sales Completed";
                            }

                            last_id = data.last_id
                            window.location.href = "print.php?last_id=" + last_id;

                            $.alert({
                                title: 'Success!',
                                content: msg,
                                type: 'green',
                                boxWidth: '400px',
                                theme: 'light',
                                useBootstrap: false,
                                autoClose: 'ok|2000'
                            });
                            isNew = true;
                        },

                        error: function (xhr, status, error) {
                            alert(xhr);

                        }

                    });
                }

Контроллер

  [HttpPost]
            public ActionResult Save(sale s)
            {
                bool status = false;
                if (ModelState.IsValid)
                {
                    using (saleEntities3 dc = new saleEntities3())
                    {

                          //Sales table
                            var v = dc.sales.Where(a => a.id == s.id).FirstOrDefault();
                            dc.sales.Add(v);  
                            dc.SaveChanges();
                            v.id = s.id; // lastinsertid

                        //how to add into lastinsertid as a  sales product table as a sales_id colum 

//Sales product table i don't how to add

                           status = true;
                    }
                }
                return new JsonResult { Data = new { status = status } };

            }

saleEntities3

 public partial class saleEntities3 : DbContext
    {
        public saleEntities3()
            : base("name=saleEntities3")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

        public virtual DbSet<product> products { get; set; }
        public virtual DbSet<sale> sales { get; set; }
        public virtual DbSet<sales_product> sales_product { get; set; }
    }
}

1 Ответ

0 голосов
/ 05 июля 2019

Для сохранения в таблице Sales_Product необходимо сохранить с идентификатором сохраненных продаж в соответствии с вашей структурой таблицы

[HttpPost]
public ActionResult Save(sale s)
{
    bool status = false;
    if (ModelState.IsValid)
    {
        using (saleEntities3 dc = new saleEntities3())
        {

            //Sales table
            var v = dc.sales.Where(a => a.id == s.id).FirstOrDefault();
            dc.sales.Add(v);  
            dc.SaveChanges();

            dc.sales_product.Add(new sales_product{
                 sales_id = s.id,
                 product_id = s.barcode, //I believe this is the product id
                 price = s.pro_price,
                 quantity = s.qty,
                 total = s.total_cost
            });

            dc.SaveChanges();

            status = true;
        }
    }
    return new JsonResult { Data = new { status = status } };

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...