private void btnBuscar_Click(object sender, EventArgs e) { if (pago == FORMA_PAGO.EFECTIVO) { try { double dTotal_Venta = Convert.ToDouble(txtTotalPago.Text); double dPago_Efectivo = txtSuPago.Numero; double dPago_Tarjeta = 0; if (dTotal_Venta <= (dPago_Efectivo + dPago_Tarjeta)) { long empleadoid = -1; string empleado = string.Empty; empleadoid = frmVenta.obtenerEmpleadoId(); empleado = frmVenta.obtenerNombreEmpleado(); double TotalPagar = Global.StringToDouble(txtTotalPago.Text); double SuPago = txtSuPago.Numero; int count = 1; bool result = true; int length = frmVenta.gridViewDetalleVenta.RowCount; Venta v = new Venta(); decimal subTotal = 0; double iva = 0; double descuento = 0; for (int i = 0; i < length; i++) { VentaDetalle detalle = (VentaDetalle)frmVenta.gridViewDetalleVenta.GetRow(i); descuento += detalle.Descuento_ISR; iva += 0; subTotal += detalle.Importe; detalle.Id_Sucursal = 0; detalle.Quien_Surte = empleado; v.Detalles.Add(detalle); } v.IdDatosFiscales = 0; v.Id_Empleado = empleadoid; frmVenta.agregarDatosVenta(ref v); //v.Id_Tipo_Venta = Convert.ToInt32(Venta.TIPO_VENTA.CONTADO); v.Id_Metodo_pago = idMetodoPago; v.cliente = frmVenta.obtenerNombreCliente(); v.Status = "PAGADA"; v.Subtotal = subTotal - Convert.ToDecimal(iva); v.IVAimporte = 0; v.Total = subTotal;// +Convert.ToDecimal(iva); v.Descuento = Convert.ToDecimal(descuento); if (v.TIPO == TIPO_MOVIMIENTO.VENTA) { v.Comentario = "Venta de contado con un total de $" + txtTotalPago.Text + " en efectivo."; } else { v.Comentario = "Compra de contado con un total de $" + txtTotalPago.Text + " en efectivo."; } v.Su_Pago = (decimal)SuPago; v.Su_Cambio = v.Su_Pago - v.Total; count++; if (result) { result = v.Grabar(); } if (result) { if (v.TIPO == TIPO_MOVIMIENTO.VENTA) { DevExpress.XtraEditors.XtraMessageBox.Show(this, "La venta se guardó correctamente.", this.ProductName, MessageBoxButtons.OK); } else { DevExpress.XtraEditors.XtraMessageBox.Show(this, "La compra se guardó correctamente.", this.ProductName, MessageBoxButtons.OK); } frmVenta.Limpiar(); this.Close(); } } else { DevExpress.XtraEditors.XtraMessageBox.Show(this, "El pago no cubre el total de la venta.", this.ProductName, MessageBoxButtons.OK); txtSuPago.Focus(); } //} } catch (Exception ex) { DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message); } } else { try { double dTotal_Venta = Convert.ToDouble(txtTotalPago.Text); double dPago_Efectivo = 0; double dPago_Tarjeta = 0; dPago_Tarjeta = txtRestante.Numero; dPago_Efectivo = txtSuPago.Numero; bool adelante = false; if (txtRestante.Numero > 0) { if (txtReferencia.Numero == 0) { DevExpress.XtraEditors.XtraMessageBox.Show("Favor de agregar los últimos 4 digitos de la tarjeta o cuenta para referenciar la venta.", this.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); txtReferencia.Focus(); return; } } adelante = (dTotal_Venta >= (dPago_Efectivo + dPago_Tarjeta) && Global.StringToDouble(txtCambio.Text) >= 0); if (adelante)//(dTotal_Venta <= (dPago_Efectivo + dPago_Tarjeta)) || pago == FORMA_PAGO.CREDITO) { long empleadoid = -1; string empleado = string.Empty; empleadoid = frmVenta.obtenerEmpleadoId(); empleado = frmVenta.obtenerNombreEmpleado(); double TotalPagar = Global.StringToDouble(txtTotalPago.Text); double SuPago = dPago_Efectivo + dPago_Tarjeta; int count = 1; bool result = true; int length = frmVenta.gridViewDetalleVenta.RowCount; Venta v = new Venta(); decimal subTotal = 0; double iva = 0; double descuento = 0; for (int i = 0; i < length; i++) { VentaDetalle detalle = (VentaDetalle)frmVenta.gridViewDetalleVenta.GetRow(i); descuento += 0; iva += 0; subTotal += detalle.Importe; detalle.Id_Sucursal = 0; detalle.Quien_Surte = empleado; v.Detalles.Add(detalle); } v.IdDatosFiscales = 0; v.Id_Empleado = empleadoid; frmVenta.agregarDatosVenta(ref v); v.Id_Tipo_Venta = Convert.ToInt32(Venta.TIPO_VENTA.CREDITO); v.Id_Metodo_pago = idMetodoPago; v.cliente = frmVenta.obtenerNombreCliente(); v.Status = "CREDITO"; v.Subtotal = subTotal - Convert.ToDecimal(iva); v.IVAimporte = 0; v.Total = subTotal;// +Convert.ToDecimal(iva); v.Descuento = Convert.ToDecimal(descuento); if (dPago_Efectivo > 0) { if (v.TIPO == TIPO_MOVIMIENTO.VENTA) { v.Comentario = "Venta a crédito con enganche o abono de $" + Global.DoubleToString(dPago_Efectivo) + " en efectivo. Quedando un saldo de $" + txtCambio.Text + "."; } else { v.Comentario = "Compra a crédito con enganche o abono de $" + Global.DoubleToString(dPago_Efectivo) + " en efectivo. Quedando un saldo de $" + txtCambio.Text + "."; } v.Su_Pago = Convert.ToDecimal(dPago_Efectivo); v.Debe = Convert.ToDecimal(Global.StringToDouble(txtCambio.Text)); } else { if (v.TIPO == TIPO_MOVIMIENTO.VENTA) { v.Comentario = "Venta a crédito con un saldo de $" + txtTotalPago.Text; } else { v.Comentario = "Compra a crédito con un saldo de $" + txtTotalPago.Text; } v.Debe = Convert.ToDecimal(txtTotalPago.Text); } count++; if (result) { result = v.Grabar(); } if (result) { if (v.TIPO == TIPO_MOVIMIENTO.VENTA) { DevExpress.XtraEditors.XtraMessageBox.Show(this, "La venta se guardó correctamente.", this.ProductName, MessageBoxButtons.OK); } else { DevExpress.XtraEditors.XtraMessageBox.Show(this, "La compra se guardó correctamente.", this.ProductName, MessageBoxButtons.OK); } frmVenta.Limpiar(); this.Close(); } } } catch (Exception ex) { } } }