internal List<ProductoCant> ListaProductos(string idSolicitudAB) { List<ProductoCant> productos = new List<ProductoCant>(); ProductoSQL pGw = new ProductoSQL(); string where = "WHERE idSolicitudAB=@idSolicitudAB"; db.cmd.Parameters.AddWithValue("@idSolicitudAB", idSolicitudAB); db.cmd.CommandText = "SELECT * FROM ProductoxSolicitudAb " + where; try { db.conn.Open(); SqlDataReader reader = db.cmd.ExecuteReader(); Producto p = new Producto(); while (reader.Read()) { ProductoCant pa = new ProductoCant(); pa.IdProducto= reader.IsDBNull(reader.GetOrdinal("idProducto")) ? -1 : int.Parse(reader["idProducto"].ToString()); p = pGw.Buscar_por_CodigoProducto(pa.IdProducto); pa.CodigoProd = p.CodigoProd.ToString(); pa.Nombre = p.Nombre; pa.Can = reader.IsDBNull(reader.GetOrdinal("cantidad")) ? null : reader["cantidad"].ToString(); pa.CanAtend = reader.IsDBNull(reader.GetOrdinal("cantidadAtendida")) ? null : reader["cantidadAtendida"].ToString(); productos.Add(pa); } db.cmd.Parameters.Clear(); db.conn.Close(); } catch (SqlException e) { Console.WriteLine(e.ToString()); } catch (Exception e) { Console.WriteLine(e.StackTrace.ToString()); } return productos; }
public List<ProductoCant> BuscarNotas(int p) { DBConexion db1 = new DBConexion(); List<ProductoCant> lstProCant = new List<ProductoCant>(); db1.cmd.CommandText = "SELECT idProducto,idNota,sum(cantidad) AS cantidad ,idAlmacen FROM ProductoxNotaIS WHERE idNota=@idNota GROUP BY idProducto, idNota, idAlmacen"; db1.cmd.Parameters.AddWithValue("@idNota", p); try { db1.conn.Open(); SqlDataReader reader = db1.cmd.ExecuteReader(); while (reader.Read()) { ProductoSQL psql = new ProductoSQL(); ProductoCant procan = new ProductoCant(); procan.CanAtender = reader.IsDBNull(reader.GetOrdinal("cantidad")) ? null : reader["cantidad"].ToString(); procan.IdProducto = reader.IsDBNull(reader.GetOrdinal("idProducto")) ? -1 : int.Parse(reader["idProducto"].ToString()); Producto pr = psql.Buscar_por_CodigoProducto(procan.IdProducto); procan.Nombre = pr.Nombre; procan.CodigoProd = pr.CodigoProd; lstProCant.Add(procan); } db1.cmd.Parameters.Clear(); db1.conn.Close(); } catch (SqlException e) { Console.WriteLine(e); } catch (Exception e) { Console.WriteLine(e.StackTrace.ToString()); } return lstProCant; }
//Botones: public void CargarProductos() { string referencia = TxtDoc; if (string.IsNullOrWhiteSpace(referencia)) { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "No se ha ingresado ningun Documento de Referencia")); return; } string mot = this.selectedMotivo; if (string.Compare(mot, "Orden de Compra", true) == 0) { List<ProductoxOrdenCompra> poc = new List<ProductoxOrdenCompra>(); poc = SelectedOrden.LstProducto; List<ProductoCant> lpcan = new List<ProductoCant>(); for (int i = 0; i < poc.Count; i++) { ProductoCant pcan = new ProductoCant(); pcan.IdProducto = poc.ElementAt(i).Producto.IdProducto; pcan.Can = poc.ElementAt(i).Cantidad; pcan.CodigoProd = poc.ElementAt(i).Producto.CodigoProd; pcan.Nombre = poc.ElementAt(i).Producto.Nombre; pcan.CanAtend = poc.ElementAt(i).CantAtendida.ToString(); pcan.CanAtender = poc.ElementAt(i).CantidadAtender; pcan.Ubicaciones = new List<Ubicacion>(); lpcan.Add(pcan); } LstProductos = new List<ProductoCant>(lpcan); } else { if (string.Compare(mot, "Traslado Externo", true) == 0) { if (selectedGuia == null) { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Ingrese un código de guía de remisión valido")); } else { LstProductos = selectedGuia.Nota.LstProducto; } } else { if (string.Compare(mot, "Devolucion", true) == 0) { List<DevolucionProducto> dv = new List<DevolucionProducto>(); DevolucionSQL dsql = new DevolucionSQL(); dv = dsql.BuscarProductos(-1, -1, null, SelectedDevolucion.IdDevolucion); List<ProductoCant> lpcan = new List<ProductoCant>(); for (int i = 0; i < dv.Count; i++) { ProductoCant pcan = new ProductoCant(); Producto p = new Producto(); ProductoSQL pgw = new ProductoSQL(); p = pgw.Buscar_por_CodigoProducto(dv.ElementAt(i).IdProducto); pcan.IdProducto = p.IdProducto; pcan.Nombre = p.Nombre; pcan.Can = "0"; pcan.CanAtend = "0"; pcan.CanAtender = dv.ElementAt(i).Devuelto.ToString(); pcan.Ubicaciones = new List<Ubicacion>(); pcan.CodigoProd = p.CodigoProd; lpcan.Add(pcan); } LstProductos = new List<ProductoCant>(lpcan); } else { if (string.Compare(mot, "Abastecimiento", true) == 0) { List<ProductoCant> psa = new List<ProductoCant>(); ProductoxSolicitudAbSQL pasql = new ProductoxSolicitudAbSQL(); psa = pasql.ListaProductos(SelectedSolicitud.idSolicitudAB.ToString()); List<ProductoCant> lpcan = new List<ProductoCant>(); for (int i = 0; i < psa.Count; i++) { ProductoCant pcan = new ProductoCant(); pcan.IdProducto = psa.ElementAt(i).IdProducto; pcan.Can = psa.ElementAt(i).Can; pcan.CodigoProd = psa.ElementAt(i).CodigoProd; pcan.Nombre = psa.ElementAt(i).Nombre; pcan.CanAtend = "0"; pcan.CanAtender = psa.ElementAt(i).CanAtend; pcan.Ubicaciones = new List<Ubicacion>(); lpcan.Add(pcan); } LstProductos = new List<ProductoCant>(lpcan); } } } } NotifyOfPropertyChange(() => LstProductos); if (LstProductos != null) { EstadoMot = false; Estado = false; } }
public void AgregarProducto() { if (SelectedProducto == null) { return; } Validacion.Evaluador eval = new Validacion.Evaluador(); if (SelectedProducto.CodigoProd == null || TxtCantPro == null || !eval.esNumeroEntero(TxtCantPro) || Convert.ToInt64(TxtCantPro) <= 0) { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Debe completar todos los campos y la cantidad debe ser mayor a 0")); } else { ProductoCant pxa; Producto lstAux = null; lstAux = pxaSQL.Buscar_por_CodigoProducto(SelectedProducto.CodigoProd); if ((lstAux != null)) { if (LstProductos != null) { if ((pxa = LstProductos.Find(x => x.CodigoProd == lstAux.CodigoProd)) == null) { pxa = new ProductoCant(); pxa.CanAtender = TxtCantPro; pxa.CanAtend = "0"; pxa.Can = "0"; pxa.IdProducto = lstAux.IdProducto; pxa.CodigoProd = lstAux.CodigoProd.ToString(); pxa.Nombre = lstAux.Nombre; pxa.Ubicaciones = new List<Ubicacion>(); LstProductos.Add(pxa); LstProductos = new List<ProductoCant>(LstProductos); } else { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "El producto que se quiere registrar ya esta siendo ingresado")); } } else { pxa = new ProductoCant(); pxa.CanAtender = TxtCantPro; pxa.CanAtend = "0"; pxa.Can = "0"; pxa.CodigoProd = lstAux.CodigoProd.ToString(); pxa.Nombre = lstAux.Nombre; pxa.IdProducto = lstAux.IdProducto; pxa.Ubicaciones = new List<Ubicacion>(); LstProductos = new List<ProductoCant>(); LstProductos.Add(pxa); LstProductos = new List<ProductoCant>(LstProductos); } } else { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "El código proporcionado no existe")); } } }
//Botones: public void CargarProductos() { string referencia = TxtDoc; if (string.IsNullOrWhiteSpace(referencia)) { _windowManager.ShowDialog(new AlertViewModel(_windowManager, "No se ha ingresado ningun Documento de Referencia")); return; } string mot = this.selectedMotivo; if (string.Compare(mot, "Orden de Despacho", true) == 0) { List<DetalleVenta> l = new DetalleVentaSQL().BuscarTodos(); List<ProductoCant> lpcan = new List<ProductoCant>(); for (int i = 0; i < l.Count; i++) if (l[i].IdDetalleV == SelectedDespacho.Venta.IdVenta) { Producto p = new ProductoSQL().Buscar_por_CodigoProducto(l[i].IdProducto); ProductoCant pcan = new ProductoCant(); pcan.IdProducto = p.IdProducto; pcan.CodigoProd = p.CodigoProd; pcan.Nombre = p.Nombre; pcan.CanAtender = l.ElementAt(i).Cantidad.ToString(); lpcan.Add(pcan); } LstProductos = new List<ProductoCant>(lpcan); } else { if (string.Compare(mot, "Abastecimiento", true) == 0) { List<ProductoCant> psa = new List<ProductoCant>(); ProductoxSolicitudAbSQL pasql = new ProductoxSolicitudAbSQL(); psa = pasql.ListaProductos(SelectedSolicitud.idSolicitudAB.ToString()); List<ProductoCant> lpcan = new List<ProductoCant>(); for (int i = 0; i < psa.Count; i++) { ProductoCant pcan = new ProductoCant(); pcan.IdProducto = psa.ElementAt(i).IdProducto; pcan.Can = psa.ElementAt(i).Can; pcan.CodigoProd = psa.ElementAt(i).CodigoProd; pcan.Nombre = psa.ElementAt(i).Nombre; pcan.CanAtend = "0"; pcan.CanAtender = psa.ElementAt(i).CanAtend; pcan.Ubicaciones = new List<Ubicacion>(); lpcan.Add(pcan); } LstProductos = new List<ProductoCant>(lpcan); } } NotifyOfPropertyChange(() => LstProductos); EstadoMot = false; Estado = false; }
public void GuardarVenta(string cmbTipoVenta) { int numFilas = LstVenta.Count(); if (numFilas > 0) { Venta v = new Venta(); v.LstDetalle = new List<DetalleVenta>(); v.LstPagos = new List<VentaPago>(); v.LstDetalleServicio = new List<DetalleVentaServicio>(); //guardar datos de la venta //completar if (tipoVenta[cmbTipoVenta] == 0) v.TipoDocPago = "Boleta"; else { v.TipoDocPago = "Factura"; //validar que los datos de ruc y razon social if (!string.IsNullOrEmpty(TxtRuc) && !string.IsNullOrEmpty(TxtRazonSocial)) { v.Ruc = TxtRuc; v.RazonSocial = TxtRazonSocial; } else { MessageBox.Show("Falta ingresar Ruc o Razón Social", "AVISO", MessageBoxButton.OK, MessageBoxImage.Error); return; } } v.NumDocPago = null; v.TipoVenta = "Tienda"; v.Estado = 1; v.FechaReg = System.DateTime.Now; v.IdUsuario = Convert.ToInt32(Thread.CurrentPrincipal.Identity.Name); //idCliente desde la tarjeta de este si es que hay if (!string.IsNullOrEmpty(TxtCliente)) { v.IdCliente = Convert.ToInt32(cliente.Id); v.CodTarjeta = Convert.ToInt32(TxtCliente); } else { v.IdCliente = -1; v.CodTarjeta = -1; } //guardar detalle de la venta foreach (DetalleVenta dv in lstVenta) { v.LstDetalle.Add(dv); } v.Monto = total; v.Descuento = desc; v.Igv = igv_total; v.PtosGanados = Convert.ToInt32(v.Monto / PUNTO); foreach (VentaPago vp in lstPagos) { if (vp.Nombre.Equals("Efectivo")) { vp.Monto -= Double.Parse(txtVuelto); } v.LstPagos.Add(vp); } //guardar detalle de servicios de la venta, si es que hay if (LstVentaServicios.Count() > 0) { foreach (DetalleVentaServicio dvs in LstVentaServicios) { v.LstDetalleServicio.Add(dvs); } } //insertar en la base de datos DBConexion db = new DBConexion(); db.conn.Open(); SqlTransaction trans = db.conn.BeginTransaction(IsolationLevel.Serializable); db.cmd.Transaction = trans; VentaSQL vsql = new VentaSQL(db); if (v.IdCliente == -1) { int k = vsql.AgregarSinCliente(v); if (k != 0) { NotaISSQL ntgw = new NotaISSQL(); NotaIS nota = new NotaIS(); AlmacenSQL asql = new AlmacenSQL(); nota.IdAlmacen = asql.BuscarAlmacen(-1, idTienda, 2).IdAlmacen; // Logica de Referencia de documento //Si existe documento de referencia colocar el ID nota.IdDoc = v.IdVenta; nota.IdMotivo = 9; nota.IdResponsable = v.IdUsuario; nota.Observaciones = "Venta en Cajero"; nota.Tipo = 2; List<ProductoCant> LstProductos = new List<ProductoCant>(); List<ProductoCant> lpcan = new List<ProductoCant>(); for (int i = 0; i < v.LstDetalle.Count; i++) { Producto p = new ProductoSQL().Buscar_por_CodigoProducto(v.LstDetalle.ElementAt(i).IdProducto); ProductoCant pcan = new ProductoCant(); pcan.IdProducto = p.IdProducto; pcan.CodigoProd = p.CodigoProd; pcan.Nombre = p.Nombre; pcan.CanAtender = v.LstDetalle.ElementAt(i).Cantidad.ToString(); lpcan.Add(pcan); } LstProductos = new List<ProductoCant>(lpcan); nota.LstProducto = LstProductos; nota.IdNota = ntgw.AgregarNota(nota); trans.Commit(); ntgw.AgregarNotaxSector(nota); MessageBox.Show("Venta Realizada con Exito"); Limpiar(); } else { trans.Rollback(); MessageBox.Show("Ocurrio un Error en el proceso"); } } else { int k = vsql.Agregar(v); if (k != 0) { NotaISSQL ntgw = new NotaISSQL(); NotaIS nota = new NotaIS(); AlmacenSQL asql = new AlmacenSQL(); nota.IdAlmacen = asql.BuscarAlmacen(-1, idTienda, 2).IdAlmacen; // Logica de Referencia de documento //Si existe documento de referencia colocar el ID nota.IdDoc = v.IdVenta; nota.IdMotivo = 9; nota.IdResponsable = v.IdUsuario; nota.Observaciones = "Venta en Cajero"; nota.Tipo = 2; List<ProductoCant> LstProductos = new List<ProductoCant>(); List<ProductoCant> lpcan = new List<ProductoCant>(); for (int i = 0; i < v.LstDetalle.Count; i++) { Producto p = new ProductoSQL().Buscar_por_CodigoProducto(v.LstDetalle.ElementAt(i).IdProducto); ProductoCant pcan = new ProductoCant(); pcan.IdProducto = p.IdProducto; pcan.CodigoProd = p.CodigoProd; pcan.Nombre = p.Nombre; pcan.CanAtender = v.LstDetalle.ElementAt(i).Cantidad.ToString(); lpcan.Add(pcan); } LstProductos = new List<ProductoCant>(lpcan); nota.LstProducto = LstProductos; nota.IdNota = ntgw.AgregarNota(nota); trans.Commit(); ntgw.AgregarNotaxSector(nota); MessageBox.Show("Venta Realizada con Exito"); Limpiar(); } else { trans.Rollback(); MessageBox.Show("Ocurrio un Error en el proceso"); } } if (v.TipoDocPago.Equals("Boleta")) { GenerarPDFBoletaProductos(v); if (v.LstDetalleServicio.Count() > 0) GenerarPDFBoletaServicios(v); } else { GenerarPDFFacturaProductos(v); if (v.LstDetalleServicio.Count() > 0) GenerarPDFFacturaServicios(v); } } else { MessageBox.Show("Debe ingreasar datos de la venta"); return; } }
public void SelectedItemChanged(object sender, MadeInHouse.Dictionary.DynamicGrid anaquel) { SelectedProduct = ((sender as DataGrid).SelectedItem as ProductoxTienda); if (SelectedProduct != null) { ProductoCant pc = new ProductoCant(); pc.IdProducto = SelectedProduct.IdProducto; anaquel.SelectedProduct = pc; anaquel.UbicarSector(SelectedProduct.IdProducto, 4); TxtStockActual = anaquel.StockActual.ToString(); TxtCapacidad = anaquel.CapacidadActual.ToString(); //(sender as DataGrid).SelectedItem = null; } }
public void BuscarProductos(MadeInHouse.Dictionary.DynamicGrid almacen, MadeInHouse.Dictionary.DynamicGrid ubicacionCol) { if (TxtProducto == null || TxtProducto == "") { _windowManager.ShowWindow(new ProductoBuscarViewModel(_windowManager, this, 7, idTienda)); } else { ProductoCant pc = new ProductoCant(); //Buscar producto del textBox Inicial: if (productoSeleccionado == null) { ProductoSQL prodSQL = new ProductoSQL(); List<Producto> lstProd; lstProd = prodSQL.BuscarProducto(TxtProducto); if (lstProd == null) _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Producto no existente con ese código")); else { pc.Nombre = lstProd[0].Nombre; pc.IdProducto = lstProd[0].IdProducto; pc.CodigoProd = TxtProducto; productoSeleccionado = null; } } else { pc.Nombre = ProductoSeleccionado.Nombre; pc.IdProducto = ProductoSeleccionado.IdProducto; pc.CodigoProd = ProductoSeleccionado.CodigoProd; productoSeleccionado = null; } ubicacionCol.SelectedProduct = pc; almacen.UbicarProducto(pc.IdProducto); pc = null; } }