public DetalleResolverContingencia(int Id)
 {
     InitializeComponent();
     try
     {
         //Contingencia = General.GetEntityById<MovimientoInventarioTraspasoContingencia>("MovimientoInventarioTraspasoContingencia", "MovimientoInventarioTraspasoContingenciaID", Id);
         Contingencia = Datos.GetEntity<MovimientoInventarioTraspasoContingencia>(c => c.MovimientoInventarioTraspasoContingenciaID == Id && c.Estatus);
         if (Contingencia == null)
             throw new EntityNotFoundException(Id.ToString(), "MovimientoInventarioTraspasoContingencia");
         EsNuevo = false;
     }
     catch (Exception ex)
     {
         Util.MensajeError(ex.Message, GlobalClass.NombreApp);
     }
 }
Exemplo n.º 2
0
 public DetalleResolverContingencia(int Id)
 {
     InitializeComponent();
     try
     {
         //Contingencia = General.GetEntityById<MovimientoInventarioTraspasoContingencia>("MovimientoInventarioTraspasoContingencia", "MovimientoInventarioTraspasoContingenciaID", Id);
         Contingencia = Datos.GetEntity <MovimientoInventarioTraspasoContingencia>(c => c.MovimientoInventarioTraspasoContingenciaID == Id && c.Estatus);
         if (Contingencia == null)
         {
             throw new EntityNotFoundException(Id.ToString(), "MovimientoInventarioTraspasoContingencia");
         }
         EsNuevo = false;
     }
     catch (Exception ex)
     {
         Util.MensajeError(ex.Message, GlobalClass.NombreApp);
     }
 }
Exemplo n.º 3
0
        public static ResAcc RecibirTraspaso(int iUsuarioID, string sMotivo, List <modDetalleTraspaso> oDetalle, bool bValidarContingencia)
        {
            if (oDetalle.Count <= 0)
            {
                return(new ResAcc("No hay nada que recibir."));
            }

            // Validar que lo recibido sea menor o igual que lo enviado
            foreach (var oReg in oDetalle)
            {
                if (oReg.Recibido > oReg.Cantidad)
                {
                    return(new ResAcc("Existen uno o más artículos que tienen una cantidad recibida mayor a lo enviado."));
                }
            }

            // Se verifica si existe alguna contingencia
            bool bExisteContingencia = false;

            foreach (var oReg in oDetalle)
            {
                if (oReg.Recibido < oReg.Cantidad)
                {
                    bExisteContingencia = true;
                    break;
                }
            }

            if (bExisteContingencia && bValidarContingencia)
            {
                return(new ResAcc("El traspaso tiene uno o más conflictos.", Cat.CodigosRes.ConflictoEnTraspasos));
            }

            // Se valida el motivo, en caso de que haya habido contingencia
            if (bExisteContingencia && string.IsNullOrEmpty(sMotivo))
            {
                return(new ResAcc("Debes especificar un motivo."));
            }

            // Se obtiene el MovimientoInventario correspondiente al traspaso
            int iRecibirUnoID = oDetalle[0].MovimientoInventarioDetalleID;
            var oRecibirUno   = Datos.GetEntity <MovimientoInventarioDetalle>(c => c.MovimientoInventarioDetalleID == iRecibirUnoID && c.Estatus);
            int iMovID        = oRecibirUno.MovimientoInventarioID;
            var oTraspasoV    = Datos.GetEntity <MovimientoInventarioView>(c => c.MovimientoInventarioID == iMovID);
            int iSucursalID   = oTraspasoV.SucursalDestinoID.Valor();

            //
            decimal mCostoTotal = 0;

            foreach (var oReg in oDetalle)
            {
                // Si la cantidad recibida es menor a lo enviado, almacenar la contingencia
                if (oReg.Recibido < oReg.Cantidad)
                {
                    var contingencia = new MovimientoInventarioTraspasoContingencia()
                    {
                        MovimientoInventarioID        = iMovID,
                        MovimientoInventarioDetalleID = oReg.MovimientoInventarioDetalleID,
                        ParteID            = oReg.ParteID,
                        CantidadEnviada    = oReg.Cantidad,
                        CantidadRecibida   = oReg.Recibido,
                        CantidadDiferencia = (oReg.Cantidad - oReg.Recibido),
                        Comentario         = sMotivo,
                        UsuarioID          = iUsuarioID,
                        MovimientoInventarioEstatusContingenciaID = Cat.TraspasoEstatusContingencias.NoSolucionado
                    };
                    Datos.Guardar <MovimientoInventarioTraspasoContingencia>(contingencia);
                }

                //Aumentar la existencia actual de la sucursal destino
                var oParte = Datos.GetEntity <Parte>(c => c.ParteID == oReg.ParteID && c.Estatus);
                if (!oParte.EsServicio.Valor())
                {
                    var existencia = Datos.GetEntity <ParteExistencia>(p => p.ParteID == oReg.ParteID && p.SucursalID == iSucursalID);
                    if (existencia != null)
                    {
                        var inicial = existencia.Existencia;
                        existencia.Existencia       += oReg.Recibido;
                        existencia.UsuarioID         = iUsuarioID;
                        existencia.FechaModificacion = DateTime.Now;
                        Datos.Guardar <ParteExistencia>(existencia);

                        var historial = new MovimientoInventarioHistorial()
                        {
                            MovmientoInventarioID = iMovID,
                            ParteID           = oReg.ParteID,
                            ExistenciaInicial = Util.Decimal(inicial),
                            ExistenciaFinal   = Util.Decimal(existencia.Existencia),
                            SucursalID        = iSucursalID,
                            UsuarioID         = iUsuarioID
                        };
                        Datos.Guardar <MovimientoInventarioHistorial>(historial);
                    }
                }

                // Se agrega al Kardex
                var oPartePrecio = Datos.GetEntity <PartePrecio>(c => c.ParteID == oReg.ParteID && c.Estatus);
                AdmonProc.RegistrarKardex(new ParteKardex()
                {
                    ParteID          = oReg.ParteID,
                    OperacionID      = Cat.OperacionesKardex.EntradaTraspaso,
                    SucursalID       = iSucursalID,
                    Folio            = iMovID.ToString(),
                    Fecha            = DateTime.Now,
                    RealizoUsuarioID = iUsuarioID,
                    Entidad          = Util.Cadena(oTraspasoV.NombreProveedor),
                    Origen           = oTraspasoV.SucursalOrigen,
                    Destino          = oTraspasoV.SucursalDestino,
                    Cantidad         = oReg.Recibido,
                    Importe          = oPartePrecio.Costo.Valor()
                });

                // Se suma el importe de cada parte, para crear la póliza
                mCostoTotal += oPartePrecio.Costo.Valor();
            }

            // Se genera la póliza especial correspondiente (AfeConta)
            var oUsuario = Datos.GetEntity <Usuario>(c => c.UsuarioID == iUsuarioID && c.Estatus);
            var oPoliza  = ContaProc.CrearPoliza(Cat.ContaTiposDePoliza.Diario, string.Format("TRASPASO ORIGEN {0:00} DESTINO {1:00}"
                                                                                              , oTraspasoV.SucursalOrigenID, oTraspasoV.SucursalDestinoID), Cat.ContaCuentasAuxiliares.Inventario, 0, mCostoTotal
                                                 , oUsuario.NombreUsuario, Cat.Tablas.MovimientoInventario, iMovID, iSucursalID);

            //Actualizar el movimiento con los datos (fecha y usuario que recibio)
            var movimiento = Datos.GetEntity <MovimientoInventario>(m => m.MovimientoInventarioID == iMovID);

            if (null != movimiento)
            {
                movimiento.ExisteContingencia       = bExisteContingencia;
                movimiento.UsuarioRecibioTraspasoID = iUsuarioID;
                movimiento.FechaRecepcion           = DateTime.Now;
                movimiento.FechaModificacion        = DateTime.Now;
                Datos.Guardar <MovimientoInventario>(movimiento);
            }

            return(new ResAcc());
        }
Exemplo n.º 4
0
        private void btnProcesarRecibir_Click(object sender, EventArgs e)
        {
            // var log = new Log();
            try
            {
                var movimientoId = Util.Entero(this.dgvRecibir.Rows[this.dgvRecibir.SelectedRows[0].Index].Cells["MovimientoInventarioID"].Value);
                if (movimientoId <= 0)
                {
                    Util.MensajeError("Ocurrio un error al intentar recibir el traspaso.", GlobalClass.NombreApp);
                    return;
                }

                // Se valida que no se haya procesado ya el traspaso en cuestión
                if (Datos.Exists<MovimientoInventario>(c => c.MovimientoInventarioID == movimientoId && c.FechaRecepcion.HasValue))
                {
                    UtilLocal.MensajeAdvertencia("El traspaso seleccionado ya fue procesado. Actualiza el listado para ver sólo los traspasos pendientes.");
                    return;
                }
                //

                int iAutorizoID = 0;
                var ResU = UtilLocal.ValidarObtenerUsuario(null, "Autorización");
                if (ResU.Exito)
                    iAutorizoID = ResU.Respuesta.UsuarioID;
                else
                {
                    Util.MensajeError("Error al validar el usuario.", GlobalClass.NombreApp);
                    return;
                }

                bool existeContingencia = false;

                var res = Util.MensajePregunta("¿Está seguro de que la información es correcta?", GlobalClass.NombreApp);
                if (res == DialogResult.No)
                    return;

                if (this.dgvRecibir.SelectedRows.Count <= 0)
                {
                    Util.MensajeError("Debe seleccionar al menos un traspaso.", GlobalClass.NombreApp);
                    return;
                }

                //Validar que lo recibido sea menor o igual que lo enviado
                foreach (DataGridViewRow row in this.dgvRecibirDetalle.Rows)
                {
                    var enviado = Util.Decimal(row.Cells["Cantidad"].Value);
                    var recibido = Util.Decimal(row.Cells["Recibido"].Value);
                    if (recibido > enviado)
                    {
                        Util.MensajeError(string.Format("{0}{1}{2}", "El articulo ", row.Cells["NumeroParte"].Value, " No tiene una cantidad valida en la columna Recibido."), GlobalClass.NombreApp);
                        return;
                    }
                }

                //SplashScreen.Show(new Splash());
                // log.Text = "Ingresando Traspaso, espere un momento...";
                // log.Show();

                foreach (DataGridViewRow row in this.dgvRecibirDetalle.Rows)
                {
                    var enviado = Util.Decimal(row.Cells["Cantidad"].Value);
                    var recibido = Util.Decimal(row.Cells["Recibido"].Value);
                    if (recibido < enviado)
                    {
                        existeContingencia = true;
                    }
                }

                if (existeContingencia)
                {
                    var resp = Util.MensajePregunta("El Traspaso tiene uno o mas conflictos. ¿Está seguro de continuar y recibir esté Traspaso?", GlobalClass.NombreApp);
                    if (resp == DialogResult.No)
                        return;
                }

                if (!this.ValidacionesAlRecibir(existeContingencia))
                    return;

                Cargando.Mostrar();
                this.Cursor = Cursors.WaitCursor;
                this.btnProcesarRecibir.Enabled = false;

                // Se obtienen la Sucursal Origen y Destino para el traspaso seleccionado
                string sOrigen = Util.Cadena(this.dgvRecibir.CurrentRow.Cells["Origen"].Value);
                string sDestino = Util.Cadena(this.dgvRecibir.CurrentRow.Cells["Destino"].Value);

                //
                decimal mCostoTotal = 0;
                foreach (DataGridViewRow row in this.dgvRecibirDetalle.Rows)
                {
                    var enviado = Util.Decimal(row.Cells["Cantidad"].Value);
                    var recibido = Util.Decimal(row.Cells["Recibido"].Value);
                    var parteId = Util.Entero(row.Cells["ParteID"].Value);
                    var numeroParte = Util.Cadena(row.Cells["NumeroParte"].Value);
                    // Si la cantidad recibida es menor a lo enviado, almacenar la contingencia
                    if (recibido < enviado)
                    {
                        var contingencia = new MovimientoInventarioTraspasoContingencia()
                        {
                            MovimientoInventarioID = movimientoId,
                            MovimientoInventarioDetalleID = Util.Entero(row.Cells["MovimientoInventarioDetalleID"].Value),
                            ParteID = parteId,
                            CantidadEnviada = enviado,
                            CantidadRecibida = recibido,
                            CantidadDiferencia = enviado - recibido,
                            Comentario = this.txtMotivo.Text,
                            UsuarioID = iAutorizoID,
                            FechaRegistro = DateTime.Now,
                            MovimientoInventarioEstatusContingenciaID = 2,
                            Estatus = true,
                            Actualizar = true
                        };
                        // log.AppendTextBox("Almacenando Contingencia...");
                        Datos.SaveOrUpdate<MovimientoInventarioTraspasoContingencia>(contingencia);
                    }

                    // Se actualiza la existencia y el kardex
                    int iSucursalID = GlobalClass.SucursalID;
                    var oPartePrecio = Datos.GetEntity<PartePrecio>(c => c.ParteID == parteId && c.Estatus);
                    AdmonProc.AfectarExistenciaYKardex(parteId, iSucursalID, Cat.OperacionesKardex.EntradaTraspaso, movimientoId.ToString(), iAutorizoID
                        , (existeContingencia ? "CONFLICTO" : this.cboProveedor.Text), sOrigen, sDestino, recibido, oPartePrecio.Costo.Valor(), Cat.Tablas.MovimientoInventario, movimientoId);

                    var oExistencia = Datos.GetEntity<ParteExistencia>(c => c.ParteID == parteId && c.SucursalID == iSucursalID && c.Estatus);
                    var historial = new MovimientoInventarioHistorial()
                    {
                        MovmientoInventarioID = movimientoId,
                        ParteID = parteId,
                        ExistenciaInicial = Util.Decimal(oExistencia.Existencia - recibido),
                        ExistenciaFinal = Util.Decimal(oExistencia.Existencia),
                        SucursalID = GlobalClass.SucursalID
                    };
                    Datos.Guardar<MovimientoInventarioHistorial>(historial);

                    //Aumentar la existencia actual de la sucursal destino
                    /*
                    var oParte = General.GetEntity<Parte>(c => c.ParteID == parteId && c.Estatus);
                    if (!oParte.EsServicio.Valor())
                    {
                        var existencia = General.GetEntity<ParteExistencia>(p => p.ParteID == parteId && p.SucursalID == GlobalClass.SucursalID);
                        if (existencia != null)
                        {
                            var inicial = existencia.Existencia;
                            existencia.Existencia += recibido;
                            existencia.UsuarioID = iAutorizoID;
                            // existencia.FechaModificacion = DateTime.Now;
                            // log.AppendTextBox(string.Format("{0} {1}", "Actualizando existencia de:", numeroParte));
                            // General.SaveOrUpdate<ParteExistencia>(existencia, existencia);
                            AdmonProc.AgregarExistencia(parteId, GlobalClass.SucursalID, recibido, Cat.Tablas.MovimientoInventario, movimientoId);

                            var historial = new MovimientoInventarioHistorial()
                            {
                                MovmientoInventarioID = movimientoId,
                                ParteID = parteId,
                                ExistenciaInicial = Util.ConvertirDecimal(inicial),
                                ExistenciaFinal = Util.ConvertirDecimal(existencia.Existencia),
                                SucursalID = GlobalClass.SucursalID,
                                UsuarioID = iAutorizoID,
                                FechaRegistro = DateTime.Now,
                                Estatus = true,
                                Actualizar = true
                            };
                            // log.AppendTextBox("Almacenando en Historial...");
                            General.SaveOrUpdate<MovimientoInventarioHistorial>(historial, historial);
                        }
                    }

                    // Se agrega al Kardex
                    var oPartePrecio = General.GetEntity<PartePrecio>(c => c.ParteID == parteId && c.Estatus);
                    AdmonProc.RegistrarKardex(new ParteKardex()
                    {
                        ParteID = parteId,
                        OperacionID = Cat.OperacionesKardex.EntradaTraspaso,
                        SucursalID = GlobalClass.SucursalID,
                        Folio = movimientoId.ToString(),
                        Fecha = DateTime.Now,
                        RealizoUsuarioID = iAutorizoID,
                        Entidad = this.cboProveedor.Text,
                        Origen = sOrigen,
                        Destino = sDestino,
                        Cantidad = recibido,
                        Importe = oPartePrecio.Costo.Valor(),
                        RelacionTabla = Cat.Tablas.MovimientoInventario,
                        RelacionID = movimientoId
                    });
                    */

                    // Se suma el importe de cada parte, para crear la póliza
                    mCostoTotal += (oPartePrecio.Costo.Valor() * recibido);
                }

                // Se genera la póliza especial correspondiente (AfeConta)
                int iSucursalOrigenID = Util.Entero(this.dgvRecibir.CurrentRow.Cells["SucursalOrigenID"].Value);
                int iSucursalDestinoID = Util.Entero(this.dgvRecibir.CurrentRow.Cells["SucursalDestinoID"].Value);
                var oPoliza = ContaProc.CrearPoliza(Cat.ContaTiposDePoliza.Diario, string.Format("TRASPASO ORIGEN {0:00} DESTINO {1:00}", iSucursalOrigenID, iSucursalDestinoID)
                    , Cat.ContaCuentasAuxiliares.Inventario, Cat.ContaCuentasAuxiliares.Inventario, mCostoTotal, ResU.Respuesta.NombreUsuario
                    , Cat.Tablas.MovimientoInventario, movimientoId, iSucursalDestinoID);
                var oCuentaQuitar = Datos.GetEntity<ContaPolizaDetalle>(c => c.ContaPolizaID == oPoliza.ContaPolizaID && c.Abono > 0);
                if (oCuentaQuitar != null)
                {
                    oCuentaQuitar.Abono = 0;
                    Datos.Guardar<ContaPolizaDetalle>(oCuentaQuitar);
                }

                //Actualizar el movimiento con los datos (fecha y usuario que recibio)
                var movimiento = Datos.GetEntity<MovimientoInventario>(m => m.MovimientoInventarioID == movimientoId);
                if (null != movimiento)
                {
                    movimiento.ExisteContingencia = existeContingencia;
                    movimiento.UsuarioRecibioTraspasoID = iAutorizoID;
                    movimiento.FechaRecepcion = DateTime.Now;
                    movimiento.FechaModificacion = DateTime.Now;
                    // log.AppendTextBox("Finalizando...");
                    Datos.SaveOrUpdate<MovimientoInventario>(movimiento);
                }

                this.LimpiarFormulario();
                this.Cursor = Cursors.Default;
                //SplashScreen.Close();
                // log.finalizo = true;
                // log.Close();
                this.btnProcesarRecibir.Enabled = true;
                new Notificacion("Traspaso Recibido exitosamente", 2 * 1000).Mostrar(Principal.Instance);
            }
            catch (Exception ex)
            {
                this.Cursor = Cursors.Default;
                //SplashScreen.Close();
                // log.finalizo = true;
                // log.Close();
                this.btnProcesarRecibir.Enabled = true;
                Util.MensajeError(ex.Message, GlobalClass.NombreApp);
            }

            Cargando.Cerrar();
        }
Exemplo n.º 5
0
        public static ResAcc RecibirTraspaso(int iUsuarioID, string sMotivo, List<modDetalleTraspaso> oDetalle, bool bValidarContingencia)
        {
            if (oDetalle.Count <= 0)
                return new ResAcc("No hay nada que recibir.");

            // Validar que lo recibido sea menor o igual que lo enviado
            foreach (var oReg in oDetalle)
            {
                if (oReg.Recibido > oReg.Cantidad)
                    return new ResAcc("Existen uno o más artículos que tienen una cantidad recibida mayor a lo enviado.");
            }

            // Se verifica si existe alguna contingencia
            bool bExisteContingencia = false;
            foreach (var oReg in oDetalle)
            {
                if (oReg.Recibido < oReg.Cantidad)
                {
                    bExisteContingencia = true;
                    break;
                }
            }

            if (bExisteContingencia && bValidarContingencia)
                return new ResAcc("El traspaso tiene uno o más conflictos.", Cat.CodigosRes.ConflictoEnTraspasos);

            // Se valida el motivo, en caso de que haya habido contingencia
            if (bExisteContingencia && string.IsNullOrEmpty(sMotivo))
                return new ResAcc("Debes especificar un motivo.");

            // Se obtiene el MovimientoInventario correspondiente al traspaso
            int iRecibirUnoID = oDetalle[0].MovimientoInventarioDetalleID;
            var oRecibirUno = Datos.GetEntity<MovimientoInventarioDetalle>(c => c.MovimientoInventarioDetalleID == iRecibirUnoID && c.Estatus);
            int iMovID = oRecibirUno.MovimientoInventarioID;
            var oTraspasoV = Datos.GetEntity<MovimientoInventarioView>(c => c.MovimientoInventarioID == iMovID);
            int iSucursalID = oTraspasoV.SucursalDestinoID.Valor();

            //
            decimal mCostoTotal = 0;
            foreach (var oReg in oDetalle)
            {
                // Si la cantidad recibida es menor a lo enviado, almacenar la contingencia
                if (oReg.Recibido < oReg.Cantidad)
                {
                    var contingencia = new MovimientoInventarioTraspasoContingencia()
                    {
                        MovimientoInventarioID = iMovID,
                        MovimientoInventarioDetalleID = oReg.MovimientoInventarioDetalleID,
                        ParteID = oReg.ParteID,
                        CantidadEnviada = oReg.Cantidad,
                        CantidadRecibida = oReg.Recibido,
                        CantidadDiferencia = (oReg.Cantidad - oReg.Recibido),
                        Comentario = sMotivo,
                        UsuarioID = iUsuarioID,
                        MovimientoInventarioEstatusContingenciaID = Cat.TraspasoEstatusContingencias.NoSolucionado
                    };
                    Datos.Guardar<MovimientoInventarioTraspasoContingencia>(contingencia);
                }

                //Aumentar la existencia actual de la sucursal destino
                var oParte = Datos.GetEntity<Parte>(c => c.ParteID == oReg.ParteID && c.Estatus);
                if (!oParte.EsServicio.Valor())
                {
                    var existencia = Datos.GetEntity<ParteExistencia>(p => p.ParteID == oReg.ParteID && p.SucursalID == iSucursalID);
                    if (existencia != null)
                    {
                        var inicial = existencia.Existencia;
                        existencia.Existencia += oReg.Recibido;
                        existencia.UsuarioID = iUsuarioID;
                        existencia.FechaModificacion = DateTime.Now;
                        Datos.Guardar<ParteExistencia>(existencia);

                        var historial = new MovimientoInventarioHistorial()
                        {
                            MovmientoInventarioID = iMovID,
                            ParteID = oReg.ParteID,
                            ExistenciaInicial = Util.Decimal(inicial),
                            ExistenciaFinal = Util.Decimal(existencia.Existencia),
                            SucursalID = iSucursalID,
                            UsuarioID = iUsuarioID
                        };
                        Datos.Guardar<MovimientoInventarioHistorial>(historial);
                    }
                }

                // Se agrega al Kardex
                var oPartePrecio = Datos.GetEntity<PartePrecio>(c => c.ParteID == oReg.ParteID && c.Estatus);
                AdmonProc.RegistrarKardex(new ParteKardex()
                {
                    ParteID = oReg.ParteID,
                    OperacionID = Cat.OperacionesKardex.EntradaTraspaso,
                    SucursalID = iSucursalID,
                    Folio = iMovID.ToString(),
                    Fecha = DateTime.Now,
                    RealizoUsuarioID = iUsuarioID,
                    Entidad = Util.Cadena(oTraspasoV.NombreProveedor),
                    Origen = oTraspasoV.SucursalOrigen,
                    Destino = oTraspasoV.SucursalDestino,
                    Cantidad = oReg.Recibido,
                    Importe = oPartePrecio.Costo.Valor()
                });

                // Se suma el importe de cada parte, para crear la póliza
                mCostoTotal += oPartePrecio.Costo.Valor();
            }

            // Se genera la póliza especial correspondiente (AfeConta)
            var oUsuario = Datos.GetEntity<Usuario>(c => c.UsuarioID == iUsuarioID && c.Estatus);
            var oPoliza = ContaProc.CrearPoliza(Cat.ContaTiposDePoliza.Diario, string.Format("TRASPASO ORIGEN {0:00} DESTINO {1:00}"
                , oTraspasoV.SucursalOrigenID, oTraspasoV.SucursalDestinoID), Cat.ContaCuentasAuxiliares.Inventario, 0, mCostoTotal
                , oUsuario.NombreUsuario, Cat.Tablas.MovimientoInventario, iMovID, iSucursalID);

            //Actualizar el movimiento con los datos (fecha y usuario que recibio)
            var movimiento = Datos.GetEntity<MovimientoInventario>(m => m.MovimientoInventarioID == iMovID);
            if (null != movimiento)
            {
                movimiento.ExisteContingencia = bExisteContingencia;
                movimiento.UsuarioRecibioTraspasoID = iUsuarioID;
                movimiento.FechaRecepcion = DateTime.Now;
                movimiento.FechaModificacion = DateTime.Now;
                Datos.Guardar<MovimientoInventario>(movimiento);
            }

            return new ResAcc();
        }