Click here to Skip to main content
15,888,984 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more: , +
How to save sales order meaning

How to insert data of sales order on Tables Sales Header and Sales Footer to save order

Actually what i need is what i write under Create Action Result on sales ordercontroller to save order

my create view of sales order as following

View Of Create Action
<pre lang="HTML">@model TabDataAccess.Dto.SalesHeader


<h2>Create</h2>

<h4>SalesHeader</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Create">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="SalesOrderNo" class="control-label"></label>
                <input asp-for="SalesOrderNo" class="form-control" />
                <span asp-validation-for="SalesOrderNo" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="SalesYear" class="control-label"></label>
                <input asp-for="SalesYear" class="form-control" />
                <span asp-validation-for="SalesYear" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="BranchCode" class="control-label"></label>
                <input asp-for="BranchCode" class="form-control" />
                <span asp-validation-for="BranchCode" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="SalesType" class="control-label"></label>
                <input asp-for="SalesType" class="form-control" />
                <span asp-validation-for="SalesType" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="SalesDate" class="control-label"></label>
                <input asp-for="SalesDate" class="form-control" />
                <span asp-validation-for="SalesDate" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="CustomerID" class="control-label"></label>
                <select asp-for="CustomerID" class="form-control" asp-items="ViewBag.CustomerID"></select>
            </div>
            <div class="form-group">
                <label asp-for="TotalPrice" class="control-label"></label>
                <input asp-for="TotalPrice" class="form-control" />
                <span asp-validation-for="TotalPrice" class="text-danger"></span>
            </div>
            <div class="details">
                <h4>Order Items</h4>
                <table width="100%">
                    <tr>
                        <td>SalesLineNo</td>
                        <td>ItemCode</td>
                        <td>Quantity</td>
                        <td>UnitPrice</td>
                        <td>Total</td>
                        <td> </td>
                    </tr>
                    <tr>
                        <td>
                            <input type="text" id="SalesLineNo" />
                            
                        </td>
                        <td>
                            <input type="text" id="ItemCode" />
                      
                        </td>
                        <td>
                            <input type="text" id="Qunatity" />
                            
                        </td>
                        <td>
                            <input type="text" id="UnitPrice" />
                           
                        </td>
                        <td>
                            <input type="text" id="Total" />
                           
                        </td>
                        <td>
                            <input type="button" id="add" value="add" />
                        </td>
                    </tr>
                </table>
                <div id="orderItems" class="tablecontainer">

                </div>
                @*<div style="padding:10px 0px; text-align:right">
            <input id="submit" type="button" value="Save" style="padding:10px 20px" />
        </div>*@
                <div class="form-group">
                    <input type="submit" value="Create" class="btn btn-default" />
                </div>
            </div>
            </form>

public class RepositoryTab<T> : IrepositoryTab<T> where T : class
    {
        protected TabDbContext db { get; set; }
        private DbSet<T> dbSet;

        public RepositoryTab(TabDbContext Tabdb)
        {
            db = Tabdb;
            dbSet = db.Set<T>();
        }
 public void Insert(T obj)
        {
            dbSet.Add(obj);
            Save();
        }
 public void Save()
        {
            db.SaveChanges();
        }


What I have tried:

=======SalesOrderController============

public class SalesOrderController : Controller
    {
        private readonly IrepositoryTab<SalesHeader> _repository;
        public  SalesOrderController(IrepositoryTab<SalesHeader> SalesHeader)
        {
            this._repository = SalesHeader;
        }
       
     
        
        [HttpPost]
        public IActionResult Create(SalesHeader sh)
        {
           
           
            if (ModelState.IsValid)
            {
              //are save header is ok i dont know
                    SalesHeader order = new SalesHeader { SalesOrderNo = sh.SalesOrderNo, SalesType = sh.SalesType, BranchCode = sh.BranchCode,SalesYear=sh.SalesYear,SalesDate=sh.SalesDate,CustomerID=sh.CustomerID };
                    foreach (var i in sh.SalesFooters)
                    {
//how to save footer
                   i.SalesLineNo=s
                        order.SalesFooters.Add(i);
                    }
                _repository.Insert(order);
                   
                   
                
            }
           
           //if order saved return message success
        }
    }
}
Posted
Updated 20-Jan-19 10:06am
Comments
ahmed_sa 18-Jan-19 21:46pm    
Models as below
Sales Header Model
public int SalesOrderNo { get; set; }
public int SalesYear { get; set; }
public int BranchCode { get; set; }
public int SalesType { get; set; }
public DateTime SalesDate { get; set; }
public int CustomerID { get; set; }
public Customer Customers { get; set; }
public ICollection<SalesFooter> SalesFooters { get; set; }

Sales Footer model
public int SalesOrderNo { get; set; }
public int SalesLineNo { get; set; }
public int SalesType { get; set; }
public int BranchCode { get; set; }
public string ItemCode { get; set; }
public decimal Quantity { get; set; }
public decimal UnitPrice { get; set; }
public decimal Total { get; set; }
public Items Itemes { get; set; }
public SalesHeader SaleHeaders { get; set; }

1 solution

I've already told you that your model is wrong. Please, read my answer[^] carefully.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900