private void ProcesarStock(TransferenciaProducto transferenciaProd, bool sumar, int maxikioscoId) { var stockTransaccion = new StockTransaccion { Identifier = Guid.NewGuid(), Cantidad = sumar ? transferenciaProd.Cantidad : -transferenciaProd.Cantidad, StockTransaccionTipoId = 4, //Transferencia FechaUltimaModificacion = DateTime.Now }; //Obtengo la instancia de stock para la transferencia del producto Stock stock = Uow.Stocks.Obtener(s => s.MaxiKioscoId == maxikioscoId && s.ProductoId == transferenciaProd.ProductoId); if (stock == null) { stock = new Stock { Identifier = Guid.NewGuid(), MaxiKioscoId = maxikioscoId, ProductoId = transferenciaProd.ProductoId, OperacionCreacion = "Aprobar transferencia desde web", FechaCreacion = DateTime.Now }; Uow.Stocks.Agregar(stock); } stockTransaccion.Stock = stock; Uow.StockTransacciones.Agregar(stockTransaccion); }
public ActionResult CargarProducto(int productoId, int origenId, int destinoId) { var productoCompleto = Uow.Productos.ObtenerParaTransferencia(productoId, origenId, destinoId); var transferenciaProducto = new TransferenciaProducto { ProductoId = productoId, Cantidad = 1, Producto = new Producto { Descripcion = productoCompleto.Descripcion }, PrecioVenta = productoCompleto.PrecioConIVA, Identifier = Guid.NewGuid(), PrimerCodigoProducto = productoCompleto.Codigo, ProductoMarca = productoCompleto.Marca, StockOrigen = productoCompleto.StockOrigen, StockDestino = productoCompleto.StockDestino, Costo = productoCompleto.CostoConIVA }; return(PartialView(transferenciaProducto)); }
private void Aceptar() { if (PopupAbierto) { PopupAbierto = false; } else if (MensajeErrorAbierto) { MensajeErrorAbierto = false; } else if (ConfirmacionAbierta) { ConfirmacionAbierta = false; } else { if (dgvListado.Rows.Count > 0) { ConfirmacionAbierta = true; var frmConfirmar = new ConfirmationForm("Está seguro que desea guardar la transferencia?", "Si", "No"); if (frmConfirmar.ShowDialog() == DialogResult.OK) { var lineas = new List <TransferenciaProducto>(); for (int i = 0; i <= dgvListado.Rows.Count - 1; i++) { var linea = new TransferenciaProducto(); linea.Cantidad = int.Parse(dgvListado.Rows[i].Cells["Cantidad"].Value.ToString()); linea.Eliminado = false; linea.Identifier = Guid.NewGuid(); linea.PrecioVenta = Convert.ToDecimal(dgvListado.Rows[i].Cells["Unitario"].Value.ToString().Replace("$", "")); linea.ProductoId = (int)dgvListado.Rows[i].Cells["productoId"].Value; linea.Costo = dgvListado.Rows[i].Cells["Costo"].Value == null ? 0 : Convert.ToDecimal(dgvListado.Rows[i].Cells["Costo"].Value.ToString().Replace("$", "")); linea.FechaUltimaModificacion = DateTime.Now; linea.Orden = i + 1; linea.Desincronizado = true; linea.StockDestino = Convert.ToDecimal(dgvListado.Rows[i].Cells["StockActual"].Value.ToString()); linea.Identifier = Guid.Parse(dgvListado.Rows[i].Cells["Identifier"].Value.ToString()); linea.TransferenciaProductoId = Convert.ToInt32(dgvListado.Rows[i].Cells["TransferenciaProductoId"].Value.ToString()); lineas.Add(linea); } if (_operacion == "Crear") { var transferencia = new Transferencia { FechaCreacion = DateTime.Now, Identifier = Guid.NewGuid(), Eliminado = false, TransferenciaProductos = lineas, AutoNumero = _autoNumero, Desincronizado = true, DestinoId = AppSettings.MaxiKioscoId, FechaAprobacion = null, OrigenId = Origen.MaxiKioscoId, UsuarioId = UsuarioActual.UsuarioId }; Repository.Agregar(transferencia); } else { //Transferencia.TransferenciaProductos = lineas; var trans = Repository.Obtener(t => t.TransferenciaId == Transferencia.TransferenciaId, t => t.TransferenciaProductos); var originales = trans.TransferenciaProductos.Where(tp => !tp.Eliminado); var paraEliminar = originales.Select(o => o.TransferenciaProductoId).ToList(); var i = 1; foreach (var tp in lineas) { tp.Orden = i; if (tp.TransferenciaProductoId == 0) { tp.TransferenciaId = Transferencia.TransferenciaId; TransferenciaProductoRepository.Agregar(tp); } else { var original = originales.FirstOrDefault(o => tp.TransferenciaProductoId == o.TransferenciaProductoId); if (original != null) { original.Cantidad = tp.Cantidad; original.PrecioVenta = tp.PrecioVenta; original.ProductoId = tp.ProductoId; original.StockDestino = tp.StockDestino; original.StockOrigen = tp.StockOrigen; TransferenciaProductoRepository.Modificar(original); paraEliminar.Remove(original.TransferenciaProductoId); } } i++; } foreach (var id in paraEliminar) { TransferenciaProductoRepository.Eliminar(id); } trans.OrigenId = Transferencia.OrigenId; trans.DestinoId = Transferencia.DestinoId; trans.FechaUltimaModificacion = DateTime.Now; trans.Desincronizado = true; } Repository.Commit(); this.Close(); } } } }