private void dGV1_CellContentClick(object sender, DataGridViewCellEventArgs e) { string gIdent = this.GetType().FullName + " " + System.Reflection.MethodBase.GetCurrentMethod().Name; GloblaVar.gUTIL.ATraza(gIdent + " Entrada a " + sender.ToString()); string Albaran = dGV1.CurrentRow.Cells["Albaran"].Value.ToString(); string Fecha = dGV1.CurrentRow.Cells["Fecha"].Value.ToString(); string Año = dGV1.CurrentRow.Cells["Anyo"].Value.ToString(); //string Det = dGV1.CurrentRow.Cells["C_Det"].Value.ToString(); //string BI = dGV1.CurrentRow.Cells["BI1"].Value.ToString(); //string IVA = dGV1.CurrentRow.Cells["IVA1"].Value.ToString(); //string RE = dGV1.CurrentRow.Cells["RE1"].Value.ToString(); //string Total = dGV1.CurrentRow.Cells["Total"].Value.ToString(); //string Vendedor = dGV1.CurrentRow.Cells["C_Vend"].Value.ToString(); //Cobrar_Albaran(Albaran, Fecha, Año, Det, BI, IVA, RE, Total, Vendedor); int a = 2; if (a == 1) { MessageBox.Show("Fase de PRUEBAS. Todavia no facture abonos."); this.Close(); } else { clase_ABONG_CABE AlbAbono = new clase_ABONG_CABE(); ArrayList Lista_Lineas_Abono = new ArrayList(); clase_linea_factura linea_abono = null; string idFactura = ""; if (AlbAbono.CargaAlbaran(Albaran, Año)) { string error = Comprobaciones(AlbAbono); if (error == "") { //idFactura = Funciones.FacturarAbono1(AlbAbono, "AB", "Albaran de Abono de " + Funciones.DameNomDet(AlbAbono.DetCod.ToString())); idFactura = Funciones.FacturarAbono1(AlbAbono, "AB", "La presente FACTURA RECTIFICATIVA modifica la factura NÚMERO: " + AlbAbono.RectificaFact + " AÑO: " + AlbAbono.RectificaAnyoFact + " SERIE: " + AlbAbono.RectificaSerieFact); } else { MessageBox.Show(error); } } //if (AlbAbono.CargaAlbaran(Albaran,Año)) if (idFactura != "") { AlbAbono = null; MessageBox.Show("La FACTURA RECTIFICATIVA se ha generado correctamente. \n \n Numero de FACTURA: " + idFactura); CargarGrid(); } } } //private void dGV1_CellContentClick(object sender, DataGridViewCellEventArgs e)
private void button_Aceptar_Click(object sender, EventArgs e) { try { //importe if (textBox_Importe.Text != "") { decimal auxiliar = 0; if (Decimal.TryParse(textBox_Importe.Text, out auxiliar) == true) { if (auxiliar > 0) { textBox_Importe.Text = Funciones.Formatea(textBox_Importe.Text); } } } //detcod if (textBox_DetCod.Text != "" && textBox_Importe.Text != "") { //insertar cobro //proceso anterior, insertaba el abono en la tabla ABONOS //string insert = "INSERT INTO ABONOS(DetCod, Fecha, Importe, Observaciones) "; //insert += " VALUES(" + textBox_DetCod.Text + ", '" + textBox_Fecha.Text + "', " + textBox_Importe.Text + ", '" + textBox_Observaciones.Text.Replace("'", "''") + "')"; //SqlCommand myCommand = new SqlCommand(insert, myConnection); //int res = myCommand.ExecuteNonQuery(); //proceso actual, crea un albarán y una factura con importes negativo clase_linea_factura linea_factura = new clase_linea_factura(); //ComentadoEncarni //linea_factura.LinF = "1"; linea_factura.ArtCod = "9998"; //ComentadoEncarni //linea_factura.VelImp = textBox_Importe.Text; string anyo = textBox_Fecha.Text.Substring(6, 4); string factura = Funciones.FacturarAbono2(textBox_DetCod.Text, anyo, "AB", Convert.ToDateTime(textBox_Fecha.Text), linea_factura, textBox_Observaciones.Text, textBox_Importe.Text, myConnection); if (factura != "") { MessageBox.Show("El abono se ha realizado correctamente"); //imprimir recibo try { string fichero = Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.System)) + "\\OREMAPE\\RECIBOS\\temporal.txt"; TextWriter tw = new StreamWriter(fichero); string linea = "ENDUMAR ."; tw.WriteLine(linea); linea = "Mercavalencia, Modulo 20"; tw.WriteLine(linea); linea = "46013 VALENCIA"; tw.WriteLine(linea); tw.WriteLine(""); linea = DateTime.Today.ToShortDateString(); tw.WriteLine(linea); tw.WriteLine(""); linea = "Cliente " + detcod; tw.WriteLine(linea); linea = " " + detnom; tw.WriteLine(linea); tw.WriteLine(""); linea = " Abonado: " + textBox_Importe.Text; tw.WriteLine(linea); linea = " "; tw.WriteLine(linea); if (textBox_Observaciones.Text != "") { linea = " Observaciones: " + textBox_Observaciones.Text; tw.WriteLine(linea); } linea = " "; tw.WriteLine(linea); linea = " Firma o sello:"; tw.WriteLine(linea); linea = " "; tw.WriteLine(linea); tw.WriteLine(linea); //Añadir 6 líneas en blanco #if !DEBUG tw.WriteLine(""); tw.WriteLine(""); tw.WriteLine(""); tw.WriteLine(""); tw.WriteLine(""); tw.WriteLine(""); #endif tw.Close(); //Imprimir RECIBO printDialog1.PrinterSettings = new System.Drawing.Printing.PrinterSettings(); string impresora = frmInicioCaja.RUTA_RECIBOS; if (impresora == "") { impresora = printDialog1.PrinterSettings.PrinterName; } AbreCajon(impresora); RawPrinterHelper.SendFileToPrinter(impresora, fichero); CortaTicket(impresora); //las pruebas en la oficina las haremos en Debug, y solo haremos un ticket //al compilar como Release el ejecutable hará dos tickets: #if !DEBUG AbreCajon(impresora); RawPrinterHelper.SendFileToPrinter(impresora, fichero); CortaTicket(impresora); #endif } catch (System.Exception ex) { MessageBox.Show(ex.ToString()); } } else { MessageBox.Show("Error. No se pudo registrar el abono."); } } else { MessageBox.Show("El importe y el código de cliente son obligatorios"); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
private void Marcaciones(int indice) { //esta función se activa cuando se marca un albarán string VenAlb = dataGridView_Albaranes.Rows[indice].Cells[1].Value.ToString(); string Anyo = dataGridView_Albaranes.Rows[indice].Cells[3].Value.ToString(); //string VenFec = dataGridView_Albaranes.Rows[indice].Cells[4].Value.ToString(); //string VenBru = dataGridView_Albaranes.Rows[indice].Cells[6].Value.ToString(); //string VenIva = dataGridView_Albaranes.Rows[indice].Cells[7].Value.ToString(); //string VenRec = dataGridView_Albaranes.Rows[indice].Cells[8].Value.ToString(); //comprobar si estaba marcada bool marcada = false; if (dataGridView_Albaranes.Rows[indice].Cells[0].Value.ToString().ToLower() == "true") { marcada = true; } if (marcada) { //si esta marcada se va a desmarcar dataGridView_Albaranes.Rows[indice].Cells[0].Value = false; for (int y = 0; y < 2; y++) { for (int x = 0; x < dataGridView_Facturado.Rows.Count; x++) { int row = 0; bool encontrada = false; if (dataGridView_Facturado.Rows[x].Cells[4].Value.ToString() == VenAlb) { encontrada = true; row = x; } if (encontrada == true) { dataGridView_Facturado.Rows.Remove(dataGridView_Facturado.Rows[row]); Renumerar_Grid(); x--; } } } } else { dataGridView_Albaranes.Rows[indice].Cells[0].Value = true; int contador = dataGridView_Facturado.Rows.Count + 1; //lectura de lineas de albarán ArrayList Lineas = Funciones.Lineas_Albaran(VenAlb, Anyo, CnO); for (int x = 0; x < Lineas.Count; x++) { detalle_linea_albaran linea_albaran = (detalle_linea_albaran)Lineas[x]; clase_linea_factura linea_factura = new clase_linea_factura(); linea_factura.Albaran = VenAlb; linea_factura.Anyo = textBox_Anyo.Text; linea_factura.AnyoAlb = Anyo; linea_factura.ArtCod = linea_albaran.ArtCod; linea_factura.Cajas = linea_albaran.VelBul; linea_factura.Factura = ""; linea_factura.Importe = Funciones.Formatea(linea_albaran.VelImp); linea_factura.Kilos = linea_albaran.VelKil; linea_factura.Linea = contador.ToString(); linea_factura.LineaAlbaran = linea_albaran.VelLin; linea_factura.PartAnyo = linea_albaran.PartAnyo; linea_factura.Partida = linea_albaran.Partida; linea_factura.Precio = linea_albaran.VelPre; linea_factura.Serie = comboBox_Serie.Text; linea_factura.Traza = linea_albaran.VelTrz; linea_factura.PartAlm = linea_albaran.PartAlm; //se ha creado una línea de factura a partir de las lineas del albarán y ahora se agrega por binding dataSource2.Add(linea_factura); contador++; } } }
} //private void textBox_DetCod_Enter(object sender, EventArgs e) private void button_Grabar_Click(object sender, EventArgs e) { if (textBox_DetCod.Text != "") { //Grabar el abono string gIdent = this.GetType().FullName + " " + System.Reflection.MethodBase.GetCurrentMethod().Name + " "; GloblaVar.gUTIL.ATraza(gIdent + " Click en Grabar Abono"); //grabar las líneas ArrayList Lista_Lineas_Abono = new ArrayList(); clase_linea_factura linea_abono = null; if (!string.IsNullOrEmpty(tbArtCod1.Text)) { linea_abono = new clase_linea_factura(); linea_abono.Linea = "1"; linea_abono.ArtCod = tbArtCod1.Text; linea_abono.Kilos = Funciones.Formatea(tbVelKil1.Text); linea_abono.Precio = Funciones.Formatea(tbVelPre1.Text); linea_abono.Importe = Funciones.Formatea(tbVelImp1.Text); Lista_Lineas_Abono.Add(linea_abono); } if (!string.IsNullOrEmpty(tbArtCod2.Text)) { linea_abono = new clase_linea_factura(); linea_abono.Linea = "2"; linea_abono.ArtCod = tbArtCod2.Text; linea_abono.Kilos = Funciones.Formatea(tbVelKil2.Text); linea_abono.Precio = Funciones.Formatea(tbVelPre2.Text); linea_abono.Importe = Funciones.Formatea(tbVelImp2.Text); Lista_Lineas_Abono.Add(linea_abono); } if (!string.IsNullOrEmpty(tbArtCod3.Text)) { linea_abono = new clase_linea_factura(); linea_abono.Linea = "3"; linea_abono.ArtCod = tbArtCod3.Text; linea_abono.Kilos = Funciones.Formatea(tbVelKil3.Text); linea_abono.Precio = Funciones.Formatea(tbVelPre3.Text); linea_abono.Importe = Funciones.Formatea(tbVelImp3.Text); Lista_Lineas_Abono.Add(linea_abono); } if (!string.IsNullOrEmpty(tbArtCod4.Text)) { linea_abono = new clase_linea_factura(); linea_abono.Linea = "4"; linea_abono.ArtCod = tbArtCod4.Text; linea_abono.Kilos = Funciones.Formatea(tbVelKil4.Text); linea_abono.Precio = Funciones.Formatea(tbVelPre4.Text); linea_abono.Importe = Funciones.Formatea(tbVelImp4.Text); Lista_Lineas_Abono.Add(linea_abono); } //GloblaVar.gIdVendedor; string idFactura = Funciones.FacturarAbono(textBox_DetCod.Text, textBox_Anyo.Text, comboBox_Serie.Text, Convert.ToDateTime(dtpFechaFra.Text), Lista_Lineas_Abono, textBox_Observaciones.Text, textBox_BI.Text, textBox_IVA.Text, textBox_Recargo.Text, textBox_Importe.Text, dTipo_iva, CnO); if (idFactura != "") { Limpieza_Factura(); MessageBox.Show("El abono se ha realizado correctamente"); GloblaVar.gUTIL.ATraza(gIdent + "El abono se ha realizado correctamente"); } } else { MessageBox.Show("El detallista es obligatorio"); } }
private void button_Grabar_Click(object sender, EventArgs e) { //grabar las líneas ArrayList Lista_Albaranes = new ArrayList(); for (int x = 0; x < dataGridView_Albaranes.Rows.Count; x++) { if (dataGridView_Albaranes.Rows[x].Cells[0].FormattedValue.ToString().ToLower() == "true") { dato_albaran dato = new dato_albaran(); dato.VenAlb = dataGridView_Albaranes.Rows[x].Cells[1].Value.ToString(); dato.Anyo = dataGridView_Albaranes.Rows[x].Cells[3].Value.ToString(); Lista_Albaranes.Add(dato); } } //comprobar si la factura tiene líneas if (Lista_Albaranes.Count > 0) { //si tiene se graban los cambios //pero tiene que hacerse con un UPDATE en vez de un INSERT //cabecera string observaciones = textBox_Observaciones.Text.Replace("'", "''"); if (observaciones.Length > 99) { observaciones = observaciones.Substring(0, 99); } string textopie = textBox_TextoPie.Text.Replace("'", "''"); if (textopie.Length > 199) { textopie = textopie.Substring(0, 199); } string textocabe = textBox_TextoCabecera.Text.Replace("'", "''"); if (textocabe.Length > 199) { textocabe = textocabe.Substring(0, 199); } string update_cabecera = "UPDATE FACTV_CABE SET DetCod=" + textBox_DetCod.Text + ", BI1=" + textBox_BI.Text.Replace(",", ".") + ", IVA1=" + textBox_IVA.Text.Replace(",", ".") + ", RE1=" + textBox_Recargo.Text.Replace(",", ".") + ", ImpteFactura=" + textBox_Importe.Text.Replace(",", ".") + ", ImptePendiente=" + textBox_Importe.Text.Replace(",", ".") + ", "; update_cabecera += " Observaciones='" + observaciones + "', TextoPie='" + textopie + "', TextoCabe='" + textocabe + "' "; update_cabecera += " WHERE Factura=" + textBox_Factura.Text + " AND Anyo=" + textBox_Anyo.Text + " AND Serie='" + textBox_Serie.Text + "' "; int res_cabecera = EjecutaNonQuery(update_cabecera); Funciones.Escribe_LOG("Se ha modificado una factura. Se incluye el update a continuación.", "MODIFICAR", CnO); Funciones.Escribe_LOG(update_cabecera, "MODIFICAR", CnO); //hay que borrar las líneas anteriores y escribir las nuevas string delete_lineas = "DELETE FACTV_LINEAS WHERE Factura=" + textBox_Factura.Text + " AND Anyo=" + textBox_Anyo.Text + " AND Serie='" + textBox_Serie.Text + "' "; int res_delete = EjecutaNonQuery(delete_lineas); //hay que desmarcar también los albaranes que estaban marcados string desmarca_albaranes = "UPDATE VENALB_CABE SET VenNfp = NULL, AnyoFra = NULL, SerieFra = NULL WHERE VenNfp=" + textBox_Factura.Text + " AND AnyoFra=" + textBox_Anyo.Text + " AND SerieFra='" + textBox_Serie.Text + "' "; int res_desmarcar = EjecutaNonQuery(desmarca_albaranes); //y marcar los nuevos Funciones.Marcar_Ventas(textBox_Factura.Text, textBox_Anyo.Text, textBox_Serie.Text, Lista_Albaranes, CnO); //y ahora escribimos las nuevas, código basado en Funciones.Facturar ArrayList Lista_Lineas_Factura = new ArrayList(); int contador = 1; for (int y = 0; y < Lista_Albaranes.Count; y++) { dato_albaran albaran = (dato_albaran)Lista_Albaranes[y]; ArrayList Lista_Lineas_Albaran = Funciones.Lineas_Albaran(albaran.VenAlb, albaran.Anyo, CnO); if (Lista_Lineas_Albaran != null) { for (int x = 0; x < Lista_Lineas_Albaran.Count; x++) { detalle_linea_albaran linea_albaran = (detalle_linea_albaran)Lista_Lineas_Albaran[x]; clase_linea_factura linea_factura = new clase_linea_factura(); linea_factura.Albaran = albaran.VenAlb; linea_factura.Anyo = textBox_Anyo.Text; linea_factura.AnyoAlb = albaran.Anyo; linea_factura.ArtCod = linea_albaran.ArtCod; linea_factura.Cajas = linea_albaran.VelBul; linea_factura.Factura = textBox_Factura.Text; linea_factura.Importe = linea_albaran.VelImp; linea_factura.Kilos = linea_albaran.VelKil; linea_factura.Linea = contador.ToString(); linea_factura.LineaAlbaran = linea_albaran.VelLin; linea_factura.PartAnyo = linea_albaran.PartAnyo; linea_factura.Partida = linea_albaran.Partida; linea_factura.Precio = linea_albaran.VelPre; linea_factura.Serie = textBox_Serie.Text; linea_factura.Traza = linea_albaran.VelTrz; linea_factura.PartAlm = linea_albaran.PartAlm; Lista_Lineas_Factura.Add(linea_factura); contador++; } } } for (int x = 0; x < Lista_Lineas_Factura.Count; x++) { clase_linea_factura linea = (clase_linea_factura)Lista_Lineas_Factura[x]; string insert_linea = "INSERT FACTV_LINEAS(Factura, Anyo, Serie, LinF, VelAlb, AnyoAlb, VelLin, ArtCod, VelBul, VelKil, VelPre, VelTrz, VelImp, Partida, PartAnyo, PartAlm) "; insert_linea += " VALUES (" + textBox_Factura.Text + ", " + textBox_Anyo.Text + ", '" + textBox_Serie.Text + "', " + linea.Linea + ", " + linea.Albaran + ", " + linea.AnyoAlb + ", " + linea.LineaAlbaran + ", " + linea.ArtCod + ", " + linea.Cajas.Replace(",", ".") + ", " + linea.Kilos.Replace(",", ".") + ", " + linea.Precio.Replace(",", ".") + ", '" + linea.Traza + "', " + linea.Importe.Replace(",", ".") + ", " + linea.Partida + ", " + linea.PartAnyo + ", '" + linea.PartAlm + "')"; int res_linea = EjecutaNonQuery(insert_linea); } //y ya está todo hecho //cerraremos el formulario y devolverá un OK } else { //si no tiene se avisa MessageBox.Show("No se puede grabar una factura sin líneas"); //el formulario se cerrará pero no habrá hecho ningún cambio en la BD } }