Exemple #1
0
        public async Task <IActionResult> ActualizarInventario(InventarioForEdit inventarioGeneral)
        {
            var editedInventario = await _repoInventario.ActualizarInventario(inventarioGeneral);

            return(Ok(editedInventario));
        }
        public async Task <InventarioGeneral> ActualizarInventario(InventarioForEdit command)
        {
            InventarioGeneral dominio        = null;
            AjusteInventario  dominio_ajuste = new AjusteInventario();
            InvLod            dominio_invlod = null;
            DateTime          Fecha_out;

            dominio        = _context.InventarioGeneral.SingleOrDefaultAsync(x => x.Id == command.Id).Result;
            dominio_invlod = _context.InvLod.SingleOrDefaultAsync(x => x.Id == dominio.LodId).Result;


            #region validar Fechas

            if (command.FechaExpire == "" || command.FechaExpire == null)
            {
                dominio.FechaExpire = null;
            }
            else
            if (!DateTime.TryParse(command.FechaExpire, out Fecha_out))
            {
                throw new ArgumentException("Fecha de Expiración incorrecta");
            }
            else
            {
                dominio.FechaExpire = Convert.ToDateTime(command.FechaExpire);
            }

            #endregion

            dominio_ajuste.Almacenado = dominio.Almacenado;
            dominio_ajuste.ClienteId  = dominio.ClienteId;
            dominio_ajuste.EstadoId   = command.EstadoId;
            if (command.FechaExpire != null)
            {
                dominio_ajuste.FechaExpire = Convert.ToDateTime(command.FechaExpire);
            }
            dominio_ajuste.FechaHoraAjuste = DateTime.Now;
            dominio_ajuste.FechaIngreso    = dominio.FechaRegistro;
            if (command.FechaManufactura != null)
            {
                dominio_ajuste.FechaManufactura = Convert.ToDateTime(command.FechaManufactura);
            }
            dominio_ajuste.HuellaId          = dominio.HuellaId;
            dominio_ajuste.InventarioId      = dominio.Id;
            dominio_ajuste.LineaId           = dominio.LineaId;
            dominio_ajuste.LodNum            = dominio_invlod.LodNum;
            dominio_ajuste.LotNum            = command.LotNum;
            dominio_ajuste.OrdenReciboId     = dominio.OrdenReciboId;
            dominio_ajuste.ProductoId        = dominio.ProductoId;
            dominio_ajuste.UbicacionId       = dominio_invlod.UbicacionId;
            dominio_ajuste.UntQty            = command.UntQty;
            dominio_ajuste.UsuarioRegistroId = command.UsuarioActualizar;



            dominio.LotNum = command.LotNum;
            dominio.UntQty = command.UntQty;
            if (command.FechaExpire != null)
            {
                dominio.FechaExpire = Convert.ToDateTime(command.FechaExpire);
            }
            if (command.FechaManufactura != null)
            {
                dominio.FechaManufactura = Convert.ToDateTime(command.FechaManufactura);
            }
            dominio.EstadoId = command.EstadoId;


            using (var transaction = _context.Database.BeginTransaction())
            {
                try
                {
                    await _context.AddAsync <AjusteInventario>(dominio_ajuste);

                    await _context.SaveChangesAsync();

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw ex;
                }
                return(dominio);
            }
        }