desarrollando editar

main
Gerardo 2024-10-28 13:09:34 +01:00
parent c165c4e507
commit 1af942cd9a
12 changed files with 226 additions and 6 deletions

View File

@ -19,6 +19,7 @@ using System.Threading.Tasks;
using VentaUniformes.Application.Persistencia.Producto.Queries.GetAllProduct;
using VentaUniformes.Application.VentasView;
using VentaUniformes.Application.VentasView.historico;
using VentaUniformes.Application.VentasView.Editar;
namespace VentaUniformes.Application
{
public static class DependencyInjectionService
@ -64,6 +65,9 @@ namespace VentaUniformes.Application
services.AddTransient<IVentasHistoricoViewService, VentasHistoricoViewService>();
services.AddTransient<IEditarVentaViewService, EditarVentaViewService>();
#endregion
#region Sesion

View File

@ -31,5 +31,7 @@ namespace VentaUniformes.Application.Interfaces
public Task<bool> AddLineSales(List<SaleLineEntity> e);
public Task<List<SaleEntity>> GetSale(int top, string alumnoFilter);
public Task<SaleEntity> GetSale(int IdSale);
public Task<List<SaleLineEntity>> GetLineSale(int IdSale);
}
}

View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VentaUniformes.Application.VentasView.Editar
{
public class EditarVentaViewModel
{
public int Id { get; set; }
public string Alumno { get; set; }
public string Curso { get; set; }
public int ModoPago { get; set; }
public bool isBill { get; set; }
public string Name { get; set; }
public string DNI { get; set; }
public List<LineEditarVentaViewModel> Productos { get; set; }
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VentaUniformes.Application.VentasView.Editar
{
internal class EditarVentaViewService
{
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VentaUniformes.Application.VentasView.Editar
{
public interface IEditarVentaViewService
{
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VentaUniformes.Application.VentasView.Editar
{
public class LineEditarVentaViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public float Price { get; set; }
public int Cantidad { get; set; }
}
}

View File

@ -9,7 +9,7 @@ namespace VentaUniformes.Application.VentasView
public interface IVentasViewService
{
public Task<VentasViewModel> GetNewVenta();
public Task<VentasViewModel> GetVenta(int IdVenta);
public Task<bool> BorraVenta(int idSale);
public Task<bool> Save(VentasViewModel model);

View File

@ -36,10 +36,6 @@ namespace VentaUniformes.Application.VentasView
res.Productos = _mapper.Map<List<LineVentasViewModel>>(l);
return res;
}
public async Task<VentasViewModel> GetVenta(int IdVenta)
{
return null;
}
public async Task<bool> Save(VentasViewModel model)
{

View File

@ -15,6 +15,7 @@ using VentaUniformes.Application.Persistencia.Producto.Queries.GetAllProduct;
using VentaUniformes.Application.VentasView;
using VentaUniformes.Application.VentasView.historico;
using VentaUniformes.Domain.Entities.Sale;
using VentaUniformes.Application.VentasView.Editar;
namespace VentaUniformes.Application.configuration
{
@ -31,6 +32,7 @@ namespace VentaUniformes.Application.configuration
CreateMap<GetAllProductModel, ProductEntity>().ReverseMap();
CreateMap<LineVentasViewModel, ProductEntity>().ReverseMap();
CreateMap<VentaLineHistoricoViewModel, SaleEntity>().ReverseMap();
CreateMap<LineEditarVentaViewModel, ProductEntity>().ReverseMap();

View File

@ -0,0 +1,12 @@
using Microsoft.AspNetCore.Mvc;
namespace VentaUniformes.app.Controllers
{
public class EditarVentaController : Controller
{
public IActionResult Index()
{
return View();
}
}
}

View File

@ -0,0 +1,140 @@
@model VentaUniformes.Application.VentasView.Editar.EditarVentaViewModel;
@{
ViewData["Title"] = "Venta uniformes";
}
<form asp-action="Principal" method="post">
<div class="row">
<!-- Columna izquierda: tabla de productos enctype="multipart/form-data-->
<div class="col-md-8" form-group>
<input asp-for="Id" type="hidden" />
<div class="form-group">
<label asp-for="Alumno"></label>
<input asp-for="Alumno" class="form-control" />
</div>
<div class="form-group">
<label asp-for="Curso"></label>
<input asp-for="Curso" class="form-control" />
</div>
<div class="form-group">
<label asp-for="isBill">
<input type="checkbox" asp-for="isBill" id="con-factura" onchange="toggleFactura()" /> Con factura
</label>
<div id="factura">
<div class="form-group">
<label asp-for="Name">Nombre</label>
<input asp-for="Name" id="name-factura" class="form-control" />
</div>
<div class="form-group">
<label asp-for="DNI">DNI</label>
<input asp-for="DNI" id="dni-factura" class="form-control" />
</div>
</div>
</div>
<!-- Input (oculto inicialmente) -->
<div id="campoInput" style="display:none; margin-top:10px;">
<label for="inputOpcional">Texto adicional:</label>
<input type="text" id="inputOpcional" name="inputOpcional" placeholder="Escribe algo..." />
</div>
<table class="table">
<thead>
<tr>
<th>Nombre</th>
<th>Descripcion</th>
<th>Precio</th>
<th>Cantidad</th>
</tr>
</thead>
<tbody>
@for (int i = 0; i < Model.Productos.Count; i++)
{
<tr>
<td>@Model.Productos[i].Name</td>
<td>@Model.Productos[i].Description</td>
<td>@Model.Productos[i].Price.ToString("C")</td>
<td>
<input asp-for="Productos[i].Cantidad" class="form-control cantidad-input" data-precio="@Model.Productos[i].Price.ToString().Replace(',','.')" data-index="@i" data-idp="@Model.Productos[i].Id" type="number" min="0" />
<input asp-for="Productos[i].Id" type="hidden" />
<input asp-for="Productos[i].Price" type="hidden" />
</td>
</tr>
}
</tbody>
</table>
</div>
<!-- Columna derecha: resumen de total y método de pago -->
<div class="col-md-4 form-group">
<div class="card form-group">
<div class="card-body form-group">
<h5 class="card-title">Resumen</h5>
<p><strong>Total:<span id="total">0.00</span> €</strong></p>
<h6>Método de pago</h6>
<div class="form-check">
<div>
<label>
@Html.RadioButtonFor(m => m.ModoPago,0)
Efectivo
</label>
</div>
<div>
<label>
@Html.RadioButtonFor(m => m.ModoPago, 1)
Tarjeta
</label>
</div>
</div>
<button type="submit" class="btn btn-primary mt-3">Procesar Venta</button>
@if (ViewData["Mensaje"] != null)
{
<div class="alert alert-danger">
@ViewData["Mensaje"]
</div>
}
</div>
</div>
</div>
</div>
</form>
@section Scripts {
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
//actualizacion del total
$(document).ready(function () {
toggleFactura();
$(".cantidad-input").on('input', function () {
let total = 0;
$(".cantidad-input").each(function () {
let cantidad = $(this).val();
let precio = $(this).data("precio");
total += cantidad * precio;
});
$("#total").text(total.toFixed(2));
});
});
function toggleFactura() {
var checkbox = document.getElementById("con-factura");
var divfactura = document.getElementById("factura");
if (checkbox.checked) {
divfactura.style.display = "block"; // Mostrar el input
} else {
divfactura.style.display = "none"; // Ocultar el input
}
}
</script>
}

View File

@ -6,7 +6,7 @@
<div class="row">
<!-- Columna izquierda: tabla de productos enctype="multipart/form-data-->
<div class="col-md-8" form-group>
<input asp-for="Id" type="hidden" />
<div class="form-group">
<label asp-for="Alumno"></label>
<input asp-for="Alumno" class="form-control" />