Exemple #1
0
        public int Insertar(TrasladoAlmacenInfo trasladoAlmacenInfo)
        {
            int resultado = 0;

            try
            {
                resultado = _trasladoAlmacenAccesoDatos.Insertar(trasladoAlmacenInfo);
            }
            catch (Exception ex)
            {
                bool rethrow = ExceptionPolicy.HandleException(ex, Constantes.ExcepcionPoliticaLogicaNegocio);
                if (rethrow)
                {
                    throw;
                }
            }
            return(resultado);
        }
        public int Insertar(TrasladoAlmacenInfo inventarioInfo)
        {
            int resultado = 0;

            try
            {
                using (var oConnection = new SqlConnection(HelperAccesoDatos.GetCadenaConexion()))
                {
                    var sqlComando = new SqlCommand {
                        Connection = oConnection, CommandText = "InsertarTrasladoAlmacen", CommandType = CommandType.StoredProcedure
                    };
                    sqlComando.Parameters.Add("AlmacenOrigenId", SqlDbType.Int).Value      = inventarioInfo.AlmacenOrigenId;
                    sqlComando.Parameters.Add("AlmacenDestinoId", SqlDbType.Int).Value     = inventarioInfo.AlmacenDestinoId;
                    sqlComando.Parameters.Add("ProductoId", SqlDbType.Int).Value           = inventarioInfo.ProductoId;
                    sqlComando.Parameters.Add("CantidadProducto", SqlDbType.Decimal).Value = inventarioInfo.CantidadProducto;
                    sqlComando.Parameters.Add("TipoNegocioId", SqlDbType.Int).Value        = inventarioInfo.TipoNegocioId;
                    sqlComando.Parameters.Add("UsuarioResponsableId", SqlDbType.Int).Value = inventarioInfo.UsuarioResponsableId;
                    sqlComando.Parameters.Add("UsuarioCreacionId", SqlDbType.Int).Value    = inventarioInfo.UsuarioCreacionId;
                    sqlComando.Parameters.Add("FechaTraslado", SqlDbType.DateTime2).Value  = inventarioInfo.FechaTraslado;

                    oConnection.Open();
                    resultado = Convert.ToInt32(sqlComando.ExecuteScalar());

                    oConnection.Close();
                }
            }
            catch (Exception ex)
            {
                bool rethrow = ExceptionPolicy.HandleException(ex, Constantes.ExcepcionPoliticaAccesoDatos);
                if (rethrow)
                {
                    throw ex;
                }
            }
            return(resultado);
        }
        protected void btnGuardarTraslado_OnClick(object sender, EventArgs e)
        {
            var usuarioInfo = ObtenerUsuarioInfo();
            var script      = new StringBuilder(String.Empty);
            var mensaje     = String.Empty;
            var ventaId     = Convert.ToInt32(hdnVentaId.Value);
            var productoId  = Convert.ToInt32(hdnProductoId.Value);

            var trasladoInfo = new TrasladoAlmacenInfo();

            trasladoInfo.AlmacenOrigenId      = Convert.ToInt32(ddlAlmacenOrigen.SelectedValue);
            trasladoInfo.AlmacenDestinoId     = Convert.ToInt32(ddlAlmacenDestino.SelectedValue);
            trasladoInfo.ProductoId           = productoId;
            trasladoInfo.CantidadProducto     = Convert.ToDecimal(txtCantidad.Text);
            trasladoInfo.UsuarioResponsableId = Convert.ToInt32(ddlResponsable.SelectedValue);
            trasladoInfo.UsuarioCreacionId    = usuarioInfo.UsuarioId;
            trasladoInfo.TipoNegocioId        = usuarioInfo.TipoNegocioId;
            trasladoInfo.FechaTraslado        = DateTime.ParseExact(txtFechaTraslado.Text.Trim(), "dd/MM/yyyy", null);

            //se registra el traslado
            var trasladoId = new Negocio.TrasladoAlmacen().Insertar(trasladoInfo);

            //se crea o actualiza el producto en el nuevo almacen destino
            var inventarioInfo = new InventarioInfo();

            inventarioInfo.AlmacenId         = Convert.ToInt32(ddlAlmacenDestino.SelectedValue);
            inventarioInfo.ProductoId        = productoId;
            inventarioInfo.InventarioActual  = Convert.ToDecimal(txtCantidad.Text);
            inventarioInfo.UsuarioCreacionId = usuarioInfo.UsuarioId;
            inventarioInfo.TipoNegocioId     = usuarioInfo.TipoNegocioId;

            var inventarioDestinoId = new Negocio.Inventario().Insertar(inventarioInfo);

            //se crea el movimiento de ingreso de almacen
            var movimientosInfo = new MovimientosInfo();

            movimientosInfo.OperacionId       = trasladoId;
            movimientosInfo.TipoMovimientoId  = Constantes.TipoMovimientoTrasladoIngreso;
            movimientosInfo.FechaOperacion    = DateTime.Now;
            movimientosInfo.Glosa             = "Traslado de Inventario Ingreso";
            movimientosInfo.UsuarioCreacionId = usuarioInfo.UsuarioId;

            new Negocio.Movimientos().InsertarMovimientos(movimientosInfo);

            //Se actualiza el saldo del producto en el almacenOriginal
            var inventarioOrigenInfo = new InventarioInfo();

            inventarioOrigenInfo.AlmacenId             = Convert.ToInt32(ddlAlmacenOrigen.SelectedValue);
            inventarioOrigenInfo.ProductoId            = productoId;
            inventarioOrigenInfo.InventarioActual      = (-1) * Convert.ToDecimal(txtCantidad.Text);       //se reduce el stock
            inventarioOrigenInfo.UsuarioModificacionId = usuarioInfo.UsuarioId;
            inventarioOrigenInfo.TipoNegocioId         = usuarioInfo.TipoNegocioId;
            var inventarioOrigenId = new Negocio.Inventario().Actualizar(inventarioOrigenInfo);

            //se crea el movimiento de salida de almacen
            movimientosInfo                   = new MovimientosInfo();
            movimientosInfo.OperacionId       = trasladoId;
            movimientosInfo.TipoMovimientoId  = Constantes.TipoMovimientoTrasladoEgreso;
            movimientosInfo.FechaOperacion    = DateTime.Now;
            movimientosInfo.Glosa             = "Traslado de Inventario Egreso";
            movimientosInfo.UsuarioCreacionId = usuarioInfo.UsuarioId;

            new Negocio.Movimientos().InsertarMovimientos(movimientosInfo);

            mensaje = "Se realizo el traslado correctamente";

            script.Append("MostrarMensaje('" + mensaje + "');");
            script.Append("LimpiarVenta();");
            script.Append("var modalDialog = $find('mpeTraslado'); modalDialog.hide();");

            CargarDatos();
            RegistrarScript(script.ToString(), "GuardarTraslado");
        }