private void GuardarVenta() { string tipocomprobante = CbxTipoComprobante.SelectedValue.ToString(); string ventaserie = "####"; string ventacorrelativo = "########"; NVenta venta = new NVenta(); if (venta.ObtenerSerieCorrelativo(tipocomprobante) != null) { DataRow row = venta.ObtenerSerieCorrelativo(tipocomprobante); ventaserie = row["Serie"].ToString(); ventacorrelativo = row["Correlativo"].ToString(); } EVenta beVenta = new EVenta { Cliente = Convert.ToInt32(LblIDCliente.Text), Empleado = Frm_Principal.AccesoUsernameID, TipoComprobante = tipocomprobante, Serie = ventaserie, Numero = ventacorrelativo, Fecha = Convert.ToDateTime(DateTime.Now), Hora = Convert.ToDateTime(DateTime.Now), SubTotal = Venta_SubTotal, Igv = Venta_Igv, Total = Venta_Total, Estado = 1 }; NVenta boVenta = new NVenta(); if (boVenta.Agregar(beVenta) == true) { if (MLVDetalle.Items.Count > 0) { NDetalleVenta boDetalleVenta = new NDetalleVenta(); foreach (ListViewItem items in MLVDetalle.Items) { EDetalleVenta beDetalleVenta = new EDetalleVenta { Serie = beVenta.Serie, Numero = beVenta.Numero, Producto = items.SubItems[0].Text, Precio = Convert.ToDouble(items.SubItems[3].Text), Cantidad = Convert.ToInt32(items.SubItems[4].Text), Importe = Convert.ToDouble(items.SubItems[5].Text) }; //Agregar dettalle compra if (boDetalleVenta.Agregar(beDetalleVenta) == true) { int cantidadfinal = 0; double costounitariofinal = 0; double costototalfinal = 0; //Obteniendo Ultimo Movimiento NMovimiento boM = new NMovimiento(); EMovimiento datos = boM.SeleccionarUltimoMovimientoProducto(beDetalleVenta.Producto); if (!string.IsNullOrEmpty(datos.Producto)) { //Si hay datos cantidadfinal = datos.CantidadFinal - beDetalleVenta.Cantidad; costounitariofinal = datos.CostoUnitarioFinal; double costofinaly = Math.Round((costounitariofinal * beDetalleVenta.Cantidad), 2); costototalfinal = datos.CostoTotalFinal - costofinaly; //Movimiento EMovimiento beMovimiento = new EMovimiento { Fecha = DateTime.Now, TipoComprobante = beVenta.TipoComprobante, Serie = beVenta.Serie, Numero = beVenta.Numero, TipoOperacion = "01", Producto = beDetalleVenta.Producto, CantidadEntrada = 0, CostoUnitarioEntrada = 0, CostoTotalEntrada = 0, CantidadSalida = beDetalleVenta.Cantidad, CostoUnitarioSalida = costounitariofinal, CostoTotalSalida = costofinaly, CantidadFinal = cantidadfinal, CostoUnitarioFinal = costounitariofinal, CostoTotalFinal = costototalfinal }; NMovimiento boMovimiento = new NMovimiento(); if (boMovimiento.Agregar(beMovimiento) == true) { EInventario beInventario = new EInventario { Producto = beMovimiento.Producto, ValorUnitario = beMovimiento.CostoUnitarioFinal, Existencias = beMovimiento.CantidadFinal, ValorInventario = beMovimiento.CostoTotalFinal }; NInventario boInventario = new NInventario(); boInventario.Modificar(beInventario); } } } } } //message Frm_Buscar_venta frm = Owner as Frm_Buscar_venta; frm.Listar(); Close(); Frm_Principal.Main.ChangeMessage("La Venta se ingreso correctamente", "Success"); } else { Frm_Principal.Main.ChangeMessage("Algo salio mal", "Failed"); } }