private void btn_nuevo_Click(object sender, EventArgs e) { //Validar que no haya campos vacios if (this.txtPuntoVenta.Text == "") { MessageBox.Show("El campo PUNTO DE VENTA no puede estar vacío"); this.txtPuntoVenta.Focus(); } else if (this.txtNumero.Text == "") { MessageBox.Show("El campo NUMERO no puede estar vacío"); this.txtNumero.Focus(); } else if (this.txtFecha.Text == "") { MessageBox.Show("El campo FECHA no puede estar vacío"); this.txtFecha.Focus(); } else { _BD.iniciar_transaccion(); DataTable existe = _BD.consulta("SELECT ISNULL( (SELECT 1 from facturas where ptoVenta = " + this.txtPuntoVenta.Text + " and nroFactura = " + this.txtNumero.Text + " and tipoComprobante = 'V'),0) as existe "); if (existe.Rows[0]["existe"].ToString() == "1") { MessageBox.Show("Ya existe una factura para ese punto de venta y ese numero"); } else { DataTable consultaId = _BD.consulta("SELECT ISNULL(max(idFactura),0)+1 as idFactura from facturas"); int id = int.Parse(consultaId.Rows[0]["idFactura"].ToString()); string sql = @"INSERT INTO FACTURAS (idFactura, tipoComprobante, ptoVenta, nroFactura, fecha, idCliente, idVendedor, total, descripcion, idEstado) VALUES (" + id + ", " + " 'V' , " + this.txtPuntoVenta.Text + ", " + this.txtNumero.Text + ", " + "convert(datetime, '" + this.txtFecha.Text + "', 103)" + ", " + int.Parse(this.cmbCliente.SelectedValue.ToString()) + ", " + int.Parse(this.cmbVendedor.SelectedValue.ToString()) + ", " + int.Parse(this.txtTotal.Text) + ", '" + this.txtDescripcion.Text + "', " + "1 " + ")"; _BD.insert_update_delete(sql); if (dataGridView1.Rows.Count == 0) { MessageBox.Show("No puede insertar una factura sin detalle"); _BD.cerrar_transaccion(); } else { for (int i = 0; i < dataGridView1.Rows.Count; i++) { string sqlDetalle = @"INSERT INTO FACTURASDET (orden, idFactura, idProducto, cantidad, precioUnitario) VALUES (" + dataGridView1.Rows[i].Cells["orden"].Value + ", " + id + ", " + dataGridView1.Rows[i].Cells["idProducto"].Value + ", " + dataGridView1.Rows[i].Cells["cantidad"].Value + ", " + dataGridView1.Rows[i].Cells["precio"].Value + ")"; _BD.insert_update_delete(sqlDetalle); //Actualizo Stock string sqlStock = @"UPDATE STOCK SET cantidad = cantidad - " + dataGridView1.Rows[i].Cells["cantidad"].Value + " WHERE idProducto = " + dataGridView1.Rows[i].Cells["idProducto"].Value; _BD.insert_update_delete(sqlStock); } _BD.cerrar_transaccion(); blanquear_objetos(); } } } }