public void Guardar(DynamicGrid almacenDG ) { DBConexion db = new DBConexion(); db.conn.Open(); SqlTransaction trans = db.conn.BeginTransaction(IsolationLevel.Serializable); db.cmd.Transaction = trans; uSQL = new UbicacionSQL(db); DataTable temporal= uSQL.CrearUbicacionesDT(); uSQL.AgregarFilasToUbicacionesDT(temporal, almacenDG.Ubicaciones, id); uSQL.AgregarMasivo(temporal, trans); int exito= uSQL.ActualizarUbicacionMasivo(); if (exito > 0) { UtilesSQL util = new UtilesSQL(db); util.LimpiarTabla("TemporalUbicacion"); trans.Commit(); _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Se guardo el stock")); } else { trans.Rollback(); _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Error: Revisar conexión al servidor")); } }
public void Disminuir(DynamicGrid ubicacionCol, DynamicGrid almacen) { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "funciono")); }
public void GuardarMovimiento(DynamicGrid anaquel, DynamicGrid deposito) { int exito; /*Inicializacion de la transacción*/ DBConexion db = new DBConexion(); try { db.conn.Open(); SqlTransaction trans = db.conn.BeginTransaction(IsolationLevel.ReadCommitted); db.cmd.Transaction = trans; SectorSQL sectorSQL = new SectorSQL(db); UbicacionSQL ubicacionSQL = new UbicacionSQL(db); /*Tablas temporales*/ DataTable sectoresDT = sectorSQL.CrearSectoresDT(); DataTable ubicacionesDT = ubicacionSQL.CrearUbicacionesDT(); List<Sector> lstSectores = new List<Sector>(); List<Ubicacion> ubicacionesModificadas = new List<Ubicacion>(); /*Agrupo todos los sectores y ubicaciones modificadas*/ for (int i = 0; i < anaquel.lstZonas.Count; i++) { lstSectores.AddRange(anaquel.lstZonas[i].LstSectores); for (int j = 0; j < anaquel.lstZonas[i].LstSectores.Count; j++) { ubicacionesModificadas.AddRange(anaquel.lstZonas[i].LstSectores[j].LstUbicaciones); } } /*Agrego las filas a los DT*/ sectorSQL.AgregarFilasToSectoresDT(sectoresDT, lstSectores); ubicacionSQL.AgregarFilasToUbicacionesDT(ubicacionesDT, ubicacionesModificadas); /*empieza el guardado en la bd*/ exito = sectorSQL.AgregarMasivo(sectoresDT, trans); //insertados en TemporalSector if (exito > 0) { exito = sectorSQL.ActualizarSectorMasivo(); //actualizados en tabla Sector if (exito > 0) { exito = sectorSQL.ActualizarIdSector(); //actualizo idSector en tabla sector if (exito > 0) { /*Agrego las ubicaciones de almacen de salida*/ ubicacionSQL.AgregarFilasToUbicacionesDT(ubicacionesDT, deposito.Ubicaciones, deposito.Ubicaciones[0][0][0].IdAlmacen); exito = ubicacionSQL.AgregarMasivo(ubicacionesDT, trans); if (exito > 0) { exito = ubicacionSQL.ActualizarIdSector(); if (exito > 0) { exito = ubicacionSQL.ActualizarUbicacionMasivo(); if (exito > 0) { /*Agrego el movimiento como un "todo" a la bd*/ NotaISSQL notaSQL = new NotaISSQL(db); /*Salida para el depósito*/ NotaIS nota = new NotaIS(); nota.IdMotivo = 8; nota.Tipo = 2; nota.Observaciones = ""; nota.IdDoc = 0; nota.IdAlmacen = idDeposito; nota.IdResponsable = idResponsable; /*Entrada para el anaquel*/ NotaIS notaAn = new NotaIS(); notaAn.IdMotivo = 8; notaAn.Tipo = 1; notaAn.Observaciones = ""; notaAn.IdDoc = 0; notaAn.IdAlmacen = idAnaquel; notaAn.IdResponsable = idResponsable; int idNotaDeposito = notaSQL.AgregarNota(nota, 1); int idNotaAnaquel = notaSQL.AgregarNota(notaAn, 1); if (idNotaDeposito > 0 && idNotaAnaquel> 0) { exito = sectorSQL.ActualizarTemporalSector(idNotaDeposito); if (exito > 0) { exito = notaSQL.AgregarNotaxSector(); if (exito > 0) { exito = sectorSQL.ActualizarTemporalSector(idNotaAnaquel); if (exito > 0) { exito = notaSQL.AgregarNotaxSector(); if (exito > 0) { UtilesSQL util = new UtilesSQL(db); util.LimpiarTabla("TemporalUbicacion"); util.LimpiarTabla("TemporalSector"); trans.Commit(); _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Los productos fueron transferidos correctamente")); return; } } } } } } } } } } } _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Lo sentimos , se produjo un error")); trans.Rollback(); } catch (SqlException e) { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Se fue la conexión")); } }
public void Agregar(DynamicGrid ubicacionCol , DynamicGrid almacen) { int exito=0; if (String.IsNullOrEmpty(CantIngresar)) { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Debe ingresar una cantidad")); return; } else if (int.Parse(CantIngresar) <0) { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Debe ingresar una cantidad positiva")); return; } if (selectedProduct != null) { if (int.Parse(selectedProduct.CanAtender) < int.Parse(CantIngresar)) { if (accion == 1) _windowManager.ShowDialog(new AlertViewModel(_windowManager, "La cantidad que se intenta ingresar es mayor a la cantidad pendiente")); else _windowManager.ShowDialog(new AlertViewModel(_windowManager, "La cantidad que se intenta retirar es mayor a la cantidad pendiente")); } else { if (String.IsNullOrEmpty(VolIngresar)) VolIngresar = "0"; if (accion == 1) exito = ubicacionCol.AgregarProductos(int.Parse(CantIngresar), int.Parse(VolIngresar), SelectedProduct.IdProducto); else exito=ubicacionCol.DisminuirProductos(int.Parse(CantIngresar), SelectedProduct.IdProducto); if (exito > 0) selectedProduct.CanAtender = (int.Parse(selectedProduct.CanAtender) - int.Parse(CantIngresar)).ToString(); LstProductos = new List<ProductoCant>(LstProductos); } } VolIngresar = ""; CantIngresar = ""; }
public void Disminuir(DynamicGrid ubicacionCol, DynamicGrid almacen) { Evaluador eva = new Evaluador(); int exito = 0; if (String.IsNullOrEmpty(TxtCantidad)) { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Debe ingresar una cantidad")); return; } else if (!eva.esNumeroEntero(TxtCantidad)) { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Debe ingresar un número")); return; } else if (int.Parse(TxtCantidad) < 0) { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Debe ingresar una cantidad mayor a cero")); return; } else if (ubicacionCol.SelectedProduct != null) { exito = ubicacionCol.DisminuirProductos(int.Parse(TxtCantidad), ubicacionCol.SelectedProduct.IdProducto); if (exito == 1) { int index = LstProductos.FindIndex(x => x.IdProducto == ubicacionCol.SelectedProduct.IdProducto); if (index >= 0) { LstProductos[index].CanAtender = "" + (int.Parse(LstProductos[index].CanAtender) + int.Parse(TxtCantidad)); } else { ubicacionCol.SelectedProduct.CanAtender = TxtCantidad; LstProductos.Add(ubicacionCol.SelectedProduct); } LstProductos = new List<ProductoCant>(LstProductos); } } }