public FrmFacturacion(FrmInicio FormInicio) { InitializeComponent(); IdUsuario = FormInicio.IdUsuario; //Inserta las condiciones de pago. this.cbxCondicionPago.DataSource = NFacturas.ObtenerCondicionPago(); this.cbxCondicionPago.ValueMember = "ID_CONDICION"; this.cbxCondicionPago.DisplayMember = "NOMBRE"; this.cbxCondicionPago.SelectedIndex = 1; //Verifica que se obtenga un número de factura. int NumFact = 0; int.TryParse(NFacturas.ObtenerNumFactura(), out NumFact); if (NumFact == 0) { new Configuracion().Mensaje("Número de factura no encontrado en la base de datos" + "Procedimiento Almacenado: Facturas.ObtenerNumFactura", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Dispose(); } else { //Establece el valor si es obtenido. lblFactura.Text = String.Format(Convert.ToString(NumFact + 1), "000000"); } }
//btnEmitir - Evento Click - Emite el comprobante de factura y registra la venta en la base de datos. private void btnEmitir_Click(object sender, EventArgs e) { string Respuesta = ""; //Revisión de datos obligatorios if (String.IsNullOrWhiteSpace(txtIdCliente.Text)) { new Configuracion().Mensaje("Debe ingresar un cliente para la factura.", "Dato Inválido", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.errorProvider.SetError(txtIdCliente, "Ingrese un cliente."); } else if (dgvProductos.RowCount == 0) { new Configuracion().Mensaje("Debe ingresar algún producto para facturar.", "Dato Inválido", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { //Envía los datos para que sean ingresados en la base de datos. Respuesta = NFacturas.Facturar(Convert.ToInt32(txtIdCliente.Text), new Numalet().Convertir(lblTotal.Text, true), Convert.ToDecimal(lblTotal.Text), Convert.ToDecimal(this.lblSubTotal.Text), Convert.ToDecimal(this.lblExento.Text), this.lblNombreImpuesto1.Text.Replace(this.lblNombreImpuesto1.Text.Substring(this.lblNombreImpuesto1 .Text.Length - 6), ""), Convert.ToDecimal(this.lblBaseImpuesto1.Text), Convert.ToDecimal(this.lblImpuesto1.Text), this.lblNombreImpuesto2.Text.Replace(this.lblNombreImpuesto2.Text.Substring(this.lblNombreImpuesto2 .Text.Length - 6), ""), Convert.ToDecimal(this.lblBaseImpuesto2.Text), Convert.ToDecimal(this.lblImpuesto2.Text), Convert.ToInt32(this.cbxCondicionPago.SelectedValue), cbxDireccionEntrega.Text, IdUsuario); //Obtiene el número de la factura nuevamente por seguridad int NumFactura = Convert.ToInt32(NFacturas.ObtenerNumFactura()); if (Respuesta == "OK") { //Ingresa cada uno de los productos cargados en el dgv for (int Fila = 0; Fila < dgvProductos.Rows.Count; Fila++) { string Codigo = Convert.ToString(dgvProductos.Rows[Fila].Cells["ColumnCodigo"].Value); string Cantidad = Convert.ToString(dgvProductos.Rows[Fila].Cells["ColumnCantidad"].Value); string Precio = Convert.ToString(dgvProductos.Rows[Fila].Cells["ColumnPrecio"].Value); string Importe = Convert.ToString(dgvProductos.Rows[Fila].Cells["ColumnImporte"].Value); string Impuesto = Convert.ToString(dgvProductos.Rows[Fila].Cells["ColumnImpuesto"].Value); Respuesta = NFacturas.FacturarProductos(NumFactura, Convert.ToInt32(Codigo), Convert.ToDecimal(Cantidad), Convert.ToDecimal(Precio), Convert.ToDecimal(Importe), Impuesto.Replace(Impuesto.Substring(Impuesto.Length - 5), "")); } if (Respuesta == "OK") { FrmImpresiones FormImpresiones = new FrmImpresiones(this); FormImpresiones.NumFactura = NumFactura - 1; FormImpresiones.ShowDialog(); //Envía formulario de operación exitosa y descarga el form. new Configuracion().Mensaje(String.Format("La factura {0} ha sido generada exitosamente.", Convert.ToString(NumFactura)), "Factura Generada", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Dispose(); } else { //Si ocurre un error muestra mensaje al usuario con la respuesta recibida. new Configuracion().Mensaje(Respuesta, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { //Si ocurre un error muestra mensaje al usuario con la respuesta recibida. new Configuracion().Mensaje(Respuesta, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } //Refresca las facturas en el control ctrlFacturas.Refrescar(); }