private void GuardarVenta() { string tipocomprobante = CbxTipoComprobante.SelectedValue.ToString(); string ventaserie = "####"; string ventacorrelativo = "########"; DVenta venta = new DVenta(); if (venta.ObtenerSerieCorrelativo(tipocomprobante) != null) { DataRow row = venta.ObtenerSerieCorrelativo(tipocomprobante); ventaserie = row["Serie"].ToString(); ventacorrelativo = row["Correlativo"].ToString(); } Venta beVenta = new Venta { Cliente = Convert.ToInt32(LblIDCliente.Text), Empleado = FrmPrincipal.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 }; DVenta boVenta = new DVenta(); if (boVenta.Agregar(beVenta) == true) { if (MLVDetalle.Items.Count > 0) { DDetalleVenta boDetalleVenta = new DDetalleVenta(); foreach (ListViewItem items in MLVDetalle.Items) { DetalleVenta beDetalleVenta = new DetalleVenta { 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 DMovimiento boM = new DMovimiento(); Movimiento 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 Movimiento beMovimiento = new Movimiento { 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 }; DMovimiento boMovimiento = new DMovimiento(); if (boMovimiento.Agregar(beMovimiento) == true) { Inventario beInventario = new Inventario { Producto = beMovimiento.Producto, ValorUnitario = beMovimiento.CostoUnitarioFinal, Existencias = beMovimiento.CantidadFinal, ValorInventario = beMovimiento.CostoTotalFinal }; DInventario boInventario = new DInventario(); boInventario.Modificar(beInventario); } } } } } //message FrmVentas frm = Owner as FrmVentas; frm.Listar(); Close(); FrmPrincipal.Main.ChangeMessage("La Venta se ingreso correctamente", "Success"); } else { FrmPrincipal.Main.ChangeMessage("Algo salio mal", "Failed"); } }
private void GuardarCompra() { Compra beCompra = new Compra { Proveedor = Convert.ToInt32(LblIDProveedor.Text), Empleado = FrmPrincipal.AccesoUsernameID, TipoComprobante = CbxTipoComprobante.SelectedValue.ToString(), Serie = TxtSerie.Text, Numero = TxtNumero.Text, Fecha = Convert.ToDateTime(DtpFecha.Text), SubTotal = Compra_SubTotal, Igv = Compra_Igv, Total = Compra_Total, Estado = 1 }; DCompra boCompra = new DCompra(); if (boCompra.Agregar(beCompra) == true) { if (MLVDetalle.Items.Count > 0) { DDetalleCompra boDetalleCompra = new DDetalleCompra(); foreach (ListViewItem items in MLVDetalle.Items) { DetalleCompra beDetalleCompra = new DetalleCompra { Serie = beCompra.Serie, Numero = beCompra.Numero, Producto = items.SubItems[0].Text, PrecioUnitario = Convert.ToDouble(items.SubItems[3].Text), Cantidad = Convert.ToInt32(items.SubItems[4].Text), PrecioTotal = Convert.ToDouble(items.SubItems[5].Text) }; //Agregar dettalle compra if (boDetalleCompra.Agregar(beDetalleCompra) == true) { int cantidadfinal = 0; double costounitariofinal = 0; double costototalfinal = 0; //Obteniendo Ultimo Movimiento DMovimiento boM = new DMovimiento(); Movimiento datos = boM.SeleccionarUltimoMovimientoProducto(beDetalleCompra.Producto); if (string.IsNullOrEmpty(datos.Producto)) { cantidadfinal = beDetalleCompra.Cantidad; costounitariofinal = beDetalleCompra.PrecioUnitario; costototalfinal = beDetalleCompra.PrecioTotal; } else { //Si hay datos cantidadfinal = datos.CantidadFinal + beDetalleCompra.Cantidad; costototalfinal = datos.CostoTotalFinal + beDetalleCompra.PrecioTotal; costounitariofinal = Math.Round((costototalfinal / cantidadfinal), 2); } Movimiento beMovimiento = new Movimiento { Fecha = DateTime.Now, TipoComprobante = beCompra.TipoComprobante, Serie = beCompra.Serie, Numero = beCompra.Numero, TipoOperacion = "02", Producto = beDetalleCompra.Producto, CantidadEntrada = beDetalleCompra.Cantidad, CostoUnitarioEntrada = beDetalleCompra.PrecioUnitario, CostoTotalEntrada = beDetalleCompra.PrecioTotal, CantidadSalida = 0, CostoUnitarioSalida = 0, CostoTotalSalida = 0, CantidadFinal = cantidadfinal, CostoUnitarioFinal = costounitariofinal, CostoTotalFinal = costototalfinal }; DMovimiento boMovimiento = new DMovimiento(); if (boMovimiento.Agregar(beMovimiento) == true) { Inventario beInventario = new Inventario { Producto = beMovimiento.Producto, ValorUnitario = beMovimiento.CostoUnitarioFinal, Existencias = beMovimiento.CantidadFinal, ValorInventario = beMovimiento.CostoTotalFinal }; DInventario boInventario = new DInventario(); boInventario.Modificar(beInventario); } } } } //message FrmCompras frm = Owner as FrmCompras; frm.Listar(); Close(); FrmPrincipal.Main.ChangeMessage("La Compra se ingreso correctamente", "Success"); } else { FrmPrincipal.Main.ChangeMessage("Algo salio mal", "Failed"); } }