Send Several Invoice Details from the view to the controller

0

I need I have several invoice details in my view and I need to send those details to the controller to save them:

View: (I have two Details like this :)

                <tr id="Registrodeproducto">
                    <td>
                        <select name="Detallefacturas.IDProducto" class="form-control">

                            @foreach (var Itemproducto in Model.ListaProductos)
                            {
                                <option value="@Itemproducto.IDProducto">@Itemproducto.Nombre</option>
                            }
                        </select>
                    </td>


                    <td>@Html.TextBoxFor(model => model.Detallefacturas.IDProducto, new { @class = "form-control  input-sm", placeholder = "Referencia", @readonly = 1, @required = 1 })</td>
                    <td>@Html.TextBoxFor(model => model.Detallefacturas.Cantidad, new { @class = "form-control  input-sm", placeholder = "Cantidad", @required = 1 })</td>
                    <td>@Html.TextBoxFor(model => model.Detallefacturas.Precio, new { @class = "form-control  input-sm", placeholder = "Precio Venta Unitario", @required = 1 })</td>
                    <td>@Html.TextBoxFor(model => model.Detallefacturas.Subtotal, new { @class = "form-control  input-sm", placeholder = "Subtotal", @readonly = 1, @required = 1 })</td>
                    <td>
                        <a href="#" class="btn btn-success" title="Agregar Producto"><span class="glyphicon glyphicon-plus"></span></a>
                        <a href="#" class="btn btn-danger" title="Eliminar Producto"><span class="glyphicon glyphicon-remove"></span></a>
                    </td>
                </tr>

Everything works without problems except that the list only comes a detail of two that I have in sight, (Only I get the first detail, how can I solve it?)

public ActionResult Create(FacturaViewModels ModeloFactura)
    {
        //Validamos si se cumplen las validaciones del modelo

        //Creamos una variable de tipo numeraciones que va a contener en nuevo nuemro de factura
        //esa variables es igual a una busqueda donde el IDNuemeracion sea iguial al que trajo de la vista            
            Numeraciones NuevaFactura = db.Numeraciones.Where(item => item.IDNumeracion == ModeloFactura.Facturas.IDNumeracion).FirstOrDefault();
            Facturas IdFacturaGuardado = db.Facturas.OrderByDescending(f => f.IDFactura).First();
            ModeloFactura.Facturas.IDEstado = 1;
            ModeloFactura.Facturas.Usuario = "UsuarioPruebas";
        //Utilizamos los datos que tenemos del modelo de numeraciones para crear el nuemero neuvo
            ModeloFactura.Facturas.NumeroFactura = NuevaFactura.Prefijo + (NuevaFactura.NumeroInicial);
            ModeloFactura.Facturas.Fecha = DateTime.Now;
            ModeloFactura.Facturas.FechaVencimiento = DateTime.Now;
            db.Facturas.Add(ModeloFactura.Facturas);

            List<DetalleFacturas> Detalle = new List<DetalleFacturas>();
            Detalle.Add(ModeloFactura.Detallefacturas);


        foreach (var item in Detalle)
        {
            ModeloFactura.Detallefacturas.IDFactura = ModeloFactura.Facturas.IDFactura;
            ModeloFactura.Detallefacturas.Subtotal = ModeloFactura.Detallefacturas.Cantidad * ModeloFactura.Detallefacturas.Precio;
            db.DetalleFacturas.Add(ModeloFactura.Detallefacturas);
        }             



        //guardamos los cambios en la base datos
            db.SaveChanges();

            return RedirectToAction("Index");         



    }

ViewModels Code:  public class FacturaViewModels     {         public Invoices Invoices {get; set; }

    public List<DetalleFacturas> ListaDetalleFacturas { get; set; }
    public DetalleFacturas Detallefacturas { get; set; }

    public List<Numeraciones> ListaNumeraciones { set; get; }

    public List<Entidades> ListaEntidades { set; get; }

    public List<FormasPagos> ListaFormasPago { set; get; }

    public List<Estados> ListaEstado { set; get; }

    public List<Productos> ListaProductos { get; set; }


}
    
asked by Jhon Castrillon 15.06.2017 в 23:04
source

0 answers