Exemplo n.º 1
0
        public async Task <IActionResult> RegisterInventario(InventarioForRegister inventarioGeneral)
        {
            //InventarioForRegister inventarioGeneral
            var createdInventario = await _repoInventario.RegistrarInventario(inventarioGeneral);

            return(Ok(createdInventario));
        }
        public async Task <InventarioGeneral> RegistrarInventario(InventarioForRegister command)
        {
            InventarioGeneral dominio = null;
            DateTime          Fecha_out;


            if (command.Id.HasValue)
            {
                dominio = _context.InventarioGeneral.SingleOrDefaultAsync(x => x.Id == command.Id).Result;
            }
            else
            {
                dominio = new InventarioGeneral();
            }


            #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.FechaRegistro = DateTime.Now;
            dominio.HuellaId      = command.HuellaId;
            dominio.LotNum        = command.LotNum;
            dominio.ProductoId    = command.ProductoId;
            // dominio.UbicacionId = command.UbicacionId;
            // dominio.UbicacionIdUlt = command.UbicacionIdUlt;
            dominio.UntCas         = command.UntCas;
            dominio.UntPak         = command.UntPak;
            dominio.UntQty         = command.UntQty;
            dominio.UsuarioIngreso = command.UsuarioIngreso;
            dominio.ClienteId      = command.ClienteId;


            using (var transaction = _context.Database.BeginTransaction())
            {
                try
                {
                    //var max = await _context.InventarioGeneral.MaxAsync(x=>x.LodNum);
                    // if(max==null) max = "E00000001";
                    // max  = 'E' + (Convert.ToInt64(max.Substring(1,8)) + 1).ToString().PadLeft(8,'0');
                    // dominio.LodNum = max;

                    await _context.AddAsync <InventarioGeneral>(dominio);

                    await _context.SaveChangesAsync();

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