private void Cobrar_factura(string IdFactura) { //abrir un formulario de cobro sobre IdFactura string gIdent = this.GetType().FullName + " " + System.Reflection.MethodBase.GetCurrentMethod().Name + " "; GloblaVar.gUTIL.ATraza(gIdent + " Entrada a " + gIdent); try { clase_cabecera_factura factura = new clase_cabecera_factura(); factura.Factura = IdFactura; factura.Anyo = textBox_Anyo.Text; factura.Serie = comboBox_Serie.Text; factura.DetCod = textBox_DetCod.Text; factura.FechaEmision = DateTime.Today.ToShortDateString(); factura.ImportePendiente = textBox_Importe.Text; frmFPCobros Cobros = new frmFPCobros(); Cobros.CnO = CnO; Cobros.COBRO_AGRUPADO = false; Cobros.factura = factura; Cobros.ShowDialog(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); GloblaVar.gUTIL.ATraza(gIdent + ex.ToString()); } }
private void Cargar_Listado_Facturas() { textBox_ImpteFactura.Text = "0,00"; textBox_ImptePendiente.Text = "0,00"; for (int x = 0; x < Lista_Facturas.Count; x++) { clase_cabecera_factura esta_factura = (clase_cabecera_factura)Lista_Facturas[x]; string strQ = "SELECT * FROM FACTV_CABE WHERE Factura=" + esta_factura.Factura + " AND Anyo=" + esta_factura.Anyo + " AND Serie='" + esta_factura.Serie + "'"; try { SqlDataReader myReader = null; SqlCommand myCommand = new SqlCommand(strQ, CnO); myReader = myCommand.ExecuteReader(); while (myReader.Read()) { //se supone que todos tienen el mismo detcod, aquí se almacenará el último valor DetCod = myReader["DetCod"].ToString(); subserie = myReader["SubSerie"].ToString(); //sumar datos de cada factura textBox_ImpteFactura.Text = Funciones.Suma(textBox_ImpteFactura.Text, Funciones.Formatea(myReader["ImpteFactura"].ToString())); textBox_ImptePendiente.Text = Funciones.Suma(textBox_ImptePendiente.Text, Funciones.Formatea(myReader["ImptePendiente"].ToString())); importe_cobrado = Funciones.Suma(importe_cobrado, Funciones.Formatea(myReader["ImpteCobrado"].ToString())); } myReader.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } }
private void button_Aceptar_Click(object sender, EventArgs e) { //escribir los cambios if (factura != null || Lista_Facturas != null) { //comprobar si el resultado es negativo, y en ese caso impedir el cobro if (textBox_ImptePendiente.Text.StartsWith("-") == true) { MessageBox.Show("No puede efectuarse el cobro por excederse la cantidad del importe"); } else { bool adelante = true; if (COBRO_AGRUPADO == false) { //si no estamos haciendo un cobro agrupado, crearemos uno que tenga solo una entrada de factura Lista_Facturas = new ArrayList(); Lista_Facturas.Add(factura); } else { //comprobar que se están cobrando las facturas completas, de lo contrario no seguiremos if (textBox_ImptePendiente.Text != "0,00") { adelante = false; MessageBox.Show("No se puede hacer un cobro agrupado si queda importe pendiente"); } } //Cobro del albarán string idCobro = ""; string fechaCobro = DateTime.Today.ToShortDateString(); bool generadoVenAlbCobro = false; if (adelante == true) { for (int n = 0; n < Lista_Facturas.Count; n++) { factura = (clase_cabecera_factura)Lista_Facturas[n]; string IdCobroFact = Nuevo_Cobro(); string efectivo_money = "0"; string transferencia_money = "0"; string tarjeta_money = "0"; string talon_money = "0"; string pagare_money = "0"; string cobrado = importe_cobrado; string importeVenAlbCobro = "0"; //para cobros agrupados // Abel. lo comento para que no de error--> string importe_agrupado = "0"; //texto efectivo if (textBox_Efectivo.Text != "0,00") { decimal auxiliar = 0; if (Decimal.TryParse(textBox_Efectivo.Text, out auxiliar) == true) { //if (auxiliar > 0) //comentamos este if para permitir que se cobren abonos (efectivo en negativo) //{ efectivo_money = Funciones.Formatea(textBox_Efectivo.Text).Replace(",", "."); cobrado = Funciones.Suma(cobrado, efectivo_money); importeVenAlbCobro = Funciones.Suma(importeVenAlbCobro, efectivo_money); //} } } //generar transferencia if (textBox_Transferencia.Text != "0,00") { decimal auxiliar = 0; if (Decimal.TryParse(textBox_Transferencia.Text, out auxiliar) == true) { if (auxiliar > 0) { transferencia_money = Funciones.Formatea(textBox_Transferencia.Text).Replace(",", "."); cobrado = Funciones.Suma(cobrado, transferencia_money); importeVenAlbCobro = Funciones.Suma(importeVenAlbCobro, transferencia_money); if (n == 0) //solo entrará una vez { string observaciones = textBox_Obs_Transferencia.Text.Replace("'", "''"); if (observaciones.Length > 99) { observaciones = observaciones.Substring(0, 99); } string insert_transfer = "INSERT INTO TRANSFERENCIAS(DetCod, Fecha, FechaCobro, Importe, Observaciones, IdCobroFact) "; insert_transfer += " VALUES(" + DetCod + ", '" + DateTime.Today.ToShortDateString() + "', '" + DateTime.Today.ToShortDateString() + "', " + transferencia_money + ", '" + observaciones + "', " + IdCobroFact + ")"; int res = EjecutaNonQuery(insert_transfer); } } } } //generar talones if (textBox_Talon.Text != "0,00") { decimal auxiliar = 0; if (Decimal.TryParse(textBox_Talon.Text, out auxiliar) == true) { if (auxiliar > 0) { talon_money = Funciones.Formatea(textBox_Talon.Text).Replace(",", "."); cobrado = Funciones.Suma(cobrado, talon_money); importeVenAlbCobro = Funciones.Suma(importeVenAlbCobro, talon_money); if (n == 0) //solo entrará una vez { string observaciones = textBox_Obs_Talon.Text.Replace("'", "''"); if (observaciones.Length > 99) { observaciones = observaciones.Substring(0, 99); } string insert_talon = "INSERT INTO TALONES(DetCod, Fecha, FechaCobro, Importe, Observaciones, IdCobroFact) "; insert_talon += " VALUES(" + DetCod + ", '" + dateTimePicker1.Value.ToShortDateString() + "', '" + DateTime.Today.ToShortDateString() + "', " + talon_money + ", '" + observaciones + "', " + IdCobroFact + ")"; int res = EjecutaNonQuery(insert_talon); } } } } //generar pago tarjeta if (textBox_Tarjeta.Text != "0,00") { decimal auxiliar = 0; if (Decimal.TryParse(textBox_Tarjeta.Text, out auxiliar) == true) { if (auxiliar > 0) { tarjeta_money = Funciones.Formatea(textBox_Tarjeta.Text).Replace(",", "."); cobrado = Funciones.Suma(cobrado, tarjeta_money); importeVenAlbCobro = Funciones.Suma(importeVenAlbCobro, tarjeta_money); if (n == 0) //solo entrará una vez { string observaciones = textBox_Obs_Tarjeta.Text.Replace("'", "''"); if (observaciones.Length > 99) { observaciones = observaciones.Substring(0, 99); } string insert_tarjeta = "INSERT INTO CREDIT_CARDS(DetCod, Fecha, FechaCobro, Importe, Observaciones, IdCobroFact) "; insert_tarjeta += " VALUES(" + DetCod + ", '" + DateTime.Today.ToShortDateString() + "', '" + DateTime.Today.ToShortDateString() + "', " + tarjeta_money + ", '" + observaciones + "', " + IdCobroFact + ")"; int res = EjecutaNonQuery(insert_tarjeta); } } } } //cobrar pagarés if (textBox_Pagare.Text != "0,00") { decimal auxiliar = 0; if (Decimal.TryParse(textBox_Pagare.Text, out auxiliar) == true) { if (auxiliar > 0) { if (n == 0) //solo entrará una vez { for (int x = 0; x < gPagares.Rows.Count; x++) { if (gPagares.Rows[x].Cells[8].EditedFormattedValue.ToString().ToLower() == "true") { string idpagare = gPagares.Rows[x].Cells[0].Value.ToString(); string importe_pagare = gPagares.Rows[x].Cells[6].Value.ToString(); string observaciones = gPagares.Rows[x].Cells[9].Value.ToString(); string vencimiento = gPagares.Rows[x].Cells[4].Value.ToString(); string update_pagare = "UPDATE PAGARES SET Cobrado='S', FechaCobro='" + DateTime.Today.ToShortDateString() + "', IdCobroFact=" + IdCobroFact; update_pagare += " WHERE IdPagare=" + idpagare; int res = EjecutaNonQuery(update_pagare); } } } pagare_money = Funciones.Formatea(textBox_Pagare.Text).Replace(",", "."); cobrado = Funciones.Suma(cobrado, pagare_money); importeVenAlbCobro = Funciones.Suma(importeVenAlbCobro, pagare_money); } } } string observaciones_cobro = textBox_Observaciones.Text.Replace("'", "''"); if (observaciones_cobro.Length > 99) { observaciones_cobro = observaciones_cobro.Substring(0, 99); } //controlar importes en caso de cobro agrupado if (COBRO_AGRUPADO == true) { talon_money = Recortar(talon_money, factura.Importe); pagare_money = Recortar(pagare_money, factura.Importe); tarjeta_money = Recortar(tarjeta_money, factura.Importe); transferencia_money = Recortar(transferencia_money, factura.Importe); cobrado = Recortar(cobrado, factura.Importe); } //crear la sentencia INSERT string insert = "INSERT INTO FACTV_COBROS(IdCobroFact, Factura, Anyo, Serie, SubSerie, Fecha, Efectivo, Talon, Pagare, Tarjeta, Transferencia, Observaciones, Cobrado) "; insert += " VALUES(" + IdCobroFact + ", " + factura.Factura + ", " + factura.Anyo + ", '" + factura.Serie + "', '" + subserie + "', '" + DateTime.Today.ToShortDateString() + "', " + efectivo_money + ", " + talon_money + ", " + pagare_money + ", " + tarjeta_money + ", " + transferencia_money + ", '" + observaciones_cobro + "', 0) "; int res_cobro = EjecutaNonQuery(insert); if (res_cobro == 1) { //cobro insertado con éxito, se actualiza factura string update = "UPDATE FACTV_CABE SET ImpteCobrado=" + cobrado.Replace(",", ".") + ", ImptePendiente=" + textBox_ImptePendiente.Text.Replace(",", ".") + ", FechaCobro='" + DateTime.Today.ToShortDateString() + "' WHERE Factura=" + factura.Factura + " AND Anyo=" + factura.Anyo + " AND Serie='" + factura.Serie + "'"; int res_update = EjecutaNonQuery(update); switch (frmPpal.USUARIO) { case "1": string update_VenTve = "UPDATE VENALB_CABE SET VenTve=4 WHERE VenTve=1 AND VenNfp=" + factura.Factura + " AND AnyoFra=" + factura.Anyo + " AND SerieFra='" + factura.Serie + "'"; int res_ventve = EjecutaNonQuery(update_VenTve); break; case "5": //DIALPESCA //Al cobrar una factura completa creamos el cobro en VENALB_COBRO y ponemos el IdCobro y FechaCobro //en todos los albaranes de esa factura donde IdCobro=null y FechaCobro=null if (textBox_ImptePendiente.Text == "0,00") { if (!generadoVenAlbCobro) { idCobro = Funciones.Nuevo_Cobro_Albaran(CnO); string insertVenalbCobros = @"INSERT INTO VENALB_COBROS(IdCobro, DetCod, Cantidad, IdVendedor, IdTipoCobro, Fecha, Efectivo, Tarjeta, Talon, Pagare, Transferencia, Deuda)"; insertVenalbCobros += " VALUES (" + idCobro + ", " + DetCod + ", " + importeVenAlbCobro.Replace(",", ".") + ", " + GloblaVar.gIdVendedor.ToString() + ","; insertVenalbCobros += GloblaVar.gIdTipoCobro.ToString() + ", '" + fechaCobro + "', " + efectivo_money + ", " + tarjeta_money + ", " + talon_money + ", " + pagare_money + ", " + transferencia_money + ", 0.00)"; int resVenalbCobros = Funciones.EjecutaNonQuery(insertVenalbCobros, CnO); generadoVenAlbCobro = true; } //Modificamos IdCobro y FechaCobro de todos los albaranes de esa factura donde IdCobro=null y FechaCobro=null string updateVenalbCabe = @"UPDATE VENALB_CABE SET IdCobro=" + idCobro + ", FechaCobro='" + fechaCobro + "' WHERE VenNfp=" + factura.Factura + " AND AnyoFra=" + factura.Anyo + " AND SerieFra='" + factura.Serie + "' AND IdCobro is null"; int resVenalbCabe = Funciones.EjecutaNonQuery(updateVenalbCabe, CnO); } break; case "8": //VALPEIX //Al cobrar una factura completa creamos el cobro en VENALB_COBRO y ponemos el IdCobro y FechaCobro //en todos los albaranes de esa factura donde IdCobro=null y FechaCobro=null if (textBox_ImptePendiente.Text == "0,00") { if (!generadoVenAlbCobro) { idCobro = Funciones.Nuevo_Cobro_Albaran(CnO); string insertVenalbCobros = @"INSERT INTO VENALB_COBROS(IdCobro, DetCod, Cantidad, IdVendedor, IdTipoCobro, Fecha, Efectivo, Tarjeta, Talon, Pagare, Transferencia, Deuda)"; insertVenalbCobros += " VALUES (" + idCobro + ", " + DetCod + ", " + importeVenAlbCobro.Replace(",", ".") + ", " + GloblaVar.gIdVendedor.ToString() + ","; insertVenalbCobros += GloblaVar.gIdTipoCobro.ToString() + ", '" + fechaCobro + "', " + efectivo_money + ", " + tarjeta_money + ", " + talon_money + ", " + pagare_money + ", " + transferencia_money + ", 0.00)"; int resVenalbCobros = Funciones.EjecutaNonQuery(insertVenalbCobros, CnO); generadoVenAlbCobro = true; } //Modificamos IdCobro y FechaCobro de todos los albaranes de esa factura donde IdCobro=null y FechaCobro=null string updateVenalbCabe = @"UPDATE VENALB_CABE SET IdCobro=" + idCobro + ", FechaCobro='" + fechaCobro + "' WHERE VenNfp=" + factura.Factura + " AND AnyoFra=" + factura.Anyo + " AND SerieFra='" + factura.Serie + "' AND IdCobro is null"; int resVenalbCabe = Funciones.EjecutaNonQuery(updateVenalbCabe, CnO); } break; default: break; } MessageBox.Show("Cobro realizado"); } else { MessageBox.Show("Hubo un problema en base de datos al cobrar la factura"); } }//for recorre ListaFacturas } } } }