/// <summary> /// Devuelve movimientos de sucursales, en los q este presente la sucursal indicada /// Si no encuentra nada devuelve null /// </summary> /// <param name="fechaDesde"></param> /// <param name="fechaHasta"></param> /// <param name="idSucursal"></param> /// <returns></returns> private List <MovimientosArticulos> buscarListMovSucursales(DateTime fechaDesde, DateTime fechaHasta, int idSucursal) { string sql = "SELECT * FROM movimiento_articulos_sucursales mas WHERE (mas.idsucursal_desde =:p3 OR mas.idsucursal_hasta=:p4) and mas.fecha BETWEEN :p1 AND :p2"; DataTable dt = conn.GetDT(sql, idSucursal, idSucursal, fechaDesde, fechaHasta); if (dt == null || dt.Rows.Count == 0) { return(null); } ControladorArticulos c_art = new ControladorArticulos(conn); ControladorSucursal c_suc = new ControladorSucursal(conn); List <MovimientosArticulos> listMa = new List <MovimientosArticulos>(); foreach (DataRow row in dt.Rows) { MovimientosArticulos m = new MovimientosArticulos(); m.IdMovimiento = Convert.ToInt32(row["idmovimiento"]); m.Articulo_ = c_art.BuscarArticulo(Convert.ToInt32(row["idarticulo"])); m.Cantidad = Convert.ToInt32(row["cantidad"]); m.Fecha = Convert.ToDateTime(row["fecha"]); m.IdUsuario = Convert.ToInt32(row["idusuario"]); m.Observacion = row["observacion"].ToString(); m.SucursalDesde = c_suc.BuscarSucursal(Convert.ToInt32(row["idsucursal_desde"])); m.SucursalHasta = c_suc.BuscarSucursal(Convert.ToInt32(row["idsucursal_hasta"])); listMa.Add(m); } return(listMa); }
public void AgregarAjusteStock(MovimientosArticulos m) { BeginTransaction(); try { ///inserto el movimiento string sql = @"INSERT INTO movimiento_articulos ( idsucursal_desde, idartciulo, idtipo_movimiento, cantidad, fecha, idusuario, observacion ) VALUES ( :idsucursal_desde, :idartciulo, :idtipo_movimiento, :cantidad, :fecha, :idusuario, :observacion )"; conn.Execute(sql, m.IdSucursalDesde, m.IdArticulo_, m.IdTipoMovimiento, m.Cantidad, DateTime.Today, m.IdUsuario, m.Observacion); ///Ahora actualizo el stock del articulo TipoMovimientoArticulo tm = BuscarTipoMovimiento((int)m.IdTipoMovimiento); ControladorArticulos c_Art = new ControladorArticulos(conn); if (tm.EsSuma) { c_Art.ActualizarStockArticulo(m.IdArticulo_, m.Cantidad, m.IdSucursalDesde); } else { c_Art.ActualizarStockArticulo(m.IdArticulo_, -m.Cantidad, m.IdSucursalDesde); } CommitTransaction(); } catch (Npgsql.NpgsqlException ex) { RollbackTransaction(); ControladorExcepcion.tiraExcepcion(ex); } catch (FormatException ex) { RollbackTransaction(); ControladorExcepcion.tiraExcepcion(ex.Message); } }
public void AgregarMovimientoEntreSucursales(MovimientosArticulos m) { BeginTransaction(); try { string sql = @"INSERT INTO movimiento_articulos_sucursales ( idsucursal_desde, idsucursal_hasta, idarticulo, cantidad, fecha, idusuario, observacion ) VALUES ( :idsucursal_desde, :idsucursal_hasta, :idarticulo, :cantidad, :fecha, :idusuario, :observacion )"; conn.Execute(sql, m.IdSucursalDesde, m.IdSucursalHasta, m.IdArticulo_, m.Cantidad, m.Fecha, m.IdUsuario, m.Observacion); ControladorArticulos c_Art = new ControladorArticulos(conn); ///Resto articulo en sucursal Desde c_Art.ActualizarStockArticulo(m.IdArticulo_, -m.Cantidad, m.IdSucursalDesde); ///Sumo Articulkos en sucursal hasta c_Art.ActualizarStockArticulo(m.IdArticulo_, m.Cantidad, (int)m.IdSucursalHasta); CommitTransaction(); } catch (Npgsql.NpgsqlException ex) { RollbackTransaction(); ControladorExcepcion.tiraExcepcion(ex); } }
protected void btnAceptarModal_Click(object sender, EventArgs e) { try { if (esAjujsteStock) { MovimientosArticulos m = new MovimientosArticulos(); m.Articulo_ = new Articulo(); m.Articulo_.Idarticulo = Convert.ToInt32(hfIdArticuloStock.Value); m.Cantidad = Convert.ToInt32(txtCantidadStock.Text); m.Fecha = DateTime.Today; m.IdUsuario = ApplicationSesion.ActiveUser.Idusuario; m.Observacion = txtObservacionesStock.Text; m.SucursalDesde = new Sucursal(); m.SucursalDesde.IdSucursal = ucCbxSucursalesStock.SelectedValue; m.TipoMovimiento = new TipoMovimientoArticulo(); m.TipoMovimiento.IdTipoMovimiento = ucCbxTipoMovimientoArticulo.SelectedValue; using (ControladorMovimientos c_mov = new ControladorMovimientos()) { c_mov.AgregarAjusteStock(m); } txtDescArtciuloStock.Text = ""; txtObservacionesStock.Text = ""; txtCantidadStock.Text = ""; hfIdArticuloStock.Value = ""; cerrarModal(modalConfirmacion); mostrarMensaje("Ajuste de Stock agregado con exito"); } else { MovimientosArticulos m = new MovimientosArticulos(); m.Articulo_ = new Articulo(); m.Articulo_.Idarticulo = Convert.ToInt32(hfIdArticuloDescripcion.Value); m.Cantidad = Convert.ToInt32(txtCantidadSucursal.Text); m.Fecha = DateTime.Today; m.IdUsuario = ApplicationSesion.ActiveUser.Idusuario; m.Observacion = txtObservacionesSucursal.Text; m.SucursalDesde = new Sucursal(); m.SucursalDesde.IdSucursal = ucCbxSucursalesDesde.SelectedValue; m.SucursalHasta = new Sucursal(); m.SucursalHasta.IdSucursal = ucCbxSucursalHasta.SelectedValue; using (ControladorMovimientos c_mov = new ControladorMovimientos()) { c_mov.AgregarMovimientoEntreSucursales(m); } txtDescArticulo.Text = ""; txtCantidadSucursal.Text = ""; txtObservacionesSucursal.Text = ""; hfIdArticuloDescripcion.Value = ""; cerrarModal(modalConfirmacion); mostrarMensaje("Movimiento de Articulo entre sucursal realizado con exito"); } bindGrillaMovimientos(); } catch (ExcepcionPropia ex) { mostrarExcepcion(ex.Message); cerrarModal(modalConfirmacion); } }