Example #1
0
        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());
            }
        }
Example #2
0
        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());
                }
            }
        }
Example #3
0
        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
                    }
                }
            }
        }