コード例 #1
0
        private async Task BitacoraAsync(string accion, VentaCanceladaViewModel ventaCancelada, Guid usuarioId, string excepcion = "")
        {
            string directorioBitacora = _configuration.GetValue <string>("DirectorioBitacora");

            await _getHelper.SetBitacoraAsync(token, accion, moduloId,
                                              ventaCancelada, usuarioId.ToString(), directorioBitacora, excepcion);
        }
コード例 #2
0
        public async Task <IActionResult> SetCancelSale(Guid?id)
        {
            var validateToken = await ValidatedToken(_configuration, _getHelper, "movimiento");

            if (validateToken != null)
            {
                return(Json(new { Reiniciar = true, Error = true }));
            }

            if (!await ValidateModulePermissions(_getHelper, moduloId, eTipoPermiso.PermisoEscritura))
            {
                return(Json(new { Reiniciar = true, Error = true }));
            }

            if (id == null || id == Guid.Empty)
            {
                TempData["toast"] = "Identificador de la venta incorrecto.";
                return(Json(new { Reiniciar = true, Error = true }));
            }
            var ventaNoAplicada = await _context.VentasNoAplicadas
                                  .FirstOrDefaultAsync(v => v.VentaNoAplicadaID == id);

            if (ventaNoAplicada == null)
            {
                TempData["toast"] = "Identificador de la venta incorrecto.";
                return(Json(new { Reiniciar = true, Error = true }));
            }

            var ventasNoAplicadasDetalle = await _context.VentasNoAplicadasDetalle
                                           .Where(v => v.VentaNoAplicadaID == id).ToListAsync();

            if (ventasNoAplicadasDetalle == null || ventasNoAplicadasDetalle.Count == 0)
            {
                return(Json(new { Estatus = "No hay registros para cancelar.", Error = true }));
            }

            ventaNoAplicada.Fecha = DateTime.Now;
            _context.Update(ventaNoAplicada);

            Guid ventaCanceladaId = Guid.NewGuid();

            VentaCancelada ventaCancelada = new VentaCancelada();

            ventaCancelada = new VentaCancelada()
            {
                Fecha            = DateTime.Now,
                UsuarioID        = token.UsuarioID,
                VentaCanceladaID = ventaCanceladaId,
                VentaCompleta    = true
            };

            _context.VentasCanceladas.Add(ventaCancelada);

            List <VentaCanceladaDetalle> ventasCanceladasDetalle = new List <VentaCanceladaDetalle>();

            foreach (var item in ventasNoAplicadasDetalle)
            {
                VentaCanceladaDetalle ventaCanceladaDetalle = new VentaCanceladaDetalle()
                {
                    Cantidad                = item.Cantidad,
                    PrecioVenta             = item.PrecioVenta,
                    ProductoID              = item.ProductoID,
                    VentaCanceladaID        = ventaCanceladaId,
                    VentaCanceladaDetalleID = Guid.NewGuid()
                };

                ventasCanceladasDetalle.Add(ventaCanceladaDetalle);
                _context.VentasCanceladasDetalle.Add(ventaCanceladaDetalle);

                _context.Remove(item);
            }

            VentaCanceladaViewModel ventaCanceladaViewModel = new VentaCanceladaViewModel()
            {
                VentasCanceladas        = ventaCancelada,
                VentasCanceladasDetalle = ventasCanceladasDetalle
            };

            try
            {
                await _context.SaveChangesAsync();
                await BitacoraAsync("SetCancelSale", ventaCanceladaViewModel, token.UsuarioID);

                return(Json(new { Error = false }));
            }
            catch (Exception ex)
            {
                string excepcion = ex.InnerException != null?ex.InnerException.Message.ToString() : ex.ToString();
                await BitacoraAsync("SetCancelSale", ventaCanceladaViewModel, token.UsuarioID, excepcion);

                return(Json(new { Estatus = "Cancelación no realizada.", Error = true }));
            }
        }