@inject IInventoryService InventorySvc
@inject AuthenticationStateProvider AuthState
@foreach (var r in Repuestos)
{
@r.CodigoInterno — @r.Descripcion
}
@foreach (var a in Almacenes)
{
@a.Nombre
}
Entrada por compra
Devolución de cliente
Ajuste positivo (+)
Ajuste negativo (-)
Salida (consumo OT)
Devolución a proveedor
@if (!string.IsNullOrEmpty(error))
{
@error
}
Cancelar
@(guardando ? "Procesando..." : "Registrar")
@code {
[CascadingParameter] private MudDialogInstance MudDialog { get; set; } = default!;
[Parameter] public MovimientoFormDto Movimiento { get; set; } = new();
[Parameter] public List<(int Id, string CodigoInterno, string Descripcion)> Repuestos { get; set; } = new();
[Parameter] public List Almacenes { get; set; } = new();
private MudForm? form;
private bool guardando;
private string? error;
private async Task Guardar()
{
if (form == null) return;
await form.Validate();
if (!form.IsValid) return;
guardando = true;
error = null;
try
{
var auth = await AuthState.GetAuthenticationStateAsync();
var usuario = auth.User.Identity?.Name;
await InventorySvc.RegistrarMovimientoAsync(Movimiento, usuario);
MudDialog.Close(DialogResult.Ok(true));
}
catch (Exception ex)
{
error = ex.Message;
}
finally
{
guardando = false;
}
}
private void Cancelar() => MudDialog.Cancel();
}