public Principal_inicio(bool ya_existe)
        {
            InitializeComponent();
            label_usuario.Text = Principal.usuario;
            label_fecha.Text = DateTime.Today.ToShortDateString();
            txt_real.Text = (Datos.Conex.contizacion_real()).ToString();
            factura = Datos.Conex.traer_datos_facturas();
            txt_factura_numero.Text = factura.Factura_numero_dato.ToString();
            txt_factura_prefijo.Text = factura.Factura_Prefijo_dato;
            txt_venta_prefijo.Text = factura.Venta_Prefijo_dato;
            txt_venta_numero.Text = factura.Venta_numero_dato.ToString();
            if (ya_existe == true)
            {
                cj = Datos.Datos_Caja.get_caja_por_fecha(DateTime.Today);
                txt_monto.Text = cj.Monto.ToString();
            }
            else
            {

                cj.Fecha = DateTime.Today.Date;
            }
            this.ya_existe = ya_existe;
            cumples();
            productos_stock();
            facturas();
            if (Principal.test_mode == true) {
                label14.Visible = true;
                label_productos_stock.Visible = true;
                btn_ver_productos.Visible = true;

            }
        }
        public static Clases.Caja get_caja_por_fecha(DateTime fecha)
        {
            //creo la conexion
            SqlConnection cnn = new SqlConnection(conexion);
            //abro la conexion
            cnn.Open();
            //creo la lista para almacenar las personas
            Caja cj = new Caja();

            //Creo el comando sql a utlizar
            SqlCommand cmd = new SqlCommand("select  id_caja, monto from caja where fecha = @fecha");
            cmd.Parameters.Add(new SqlParameter("@fecha", fecha));
            //asigno la conexion al comando
            cmd.Connection = cnn;
            //creo el datareader
            SqlDataReader obdr = cmd.ExecuteReader();
            //recorro el datareader
            while (obdr.Read())
            {

                cj.Id_caja = obdr.GetInt64(0);
                cj.Monto = Math.Round(obdr.GetDecimal(1),2);
            }
            //Cierro la conexion
            cnn.Close();
            //retorno la lsita
            return cj;
        }
        public static void ModificarCaja(Caja cj)
        {
            //creo la conexion
            SqlConnection cnn = new SqlConnection(conexion);
            //abro la conexion
            cnn.Open();
            //Creo el comando sql a utlizar
            SqlCommand cmd = new SqlCommand("update caja set monto = @monto where id_caja = @id_caja");
            cmd.Parameters.Add(new SqlParameter("@monto", cj.Monto));
            cmd.Parameters.Add(new SqlParameter("@id_caja", cj.Id_caja));

            cmd.Connection = cnn;

            cmd.ExecuteNonQuery();
        }
        private void PrintPage(object sender, PrintPageEventArgs e)
        {
            int y = 150;

            if (imprime_caja == false)
            {

                titulo = " Listado de Ventas entre los dias : " + date_desde.Value.Date.ToShortDateString() + " y " + date_hasta.Value.Date.ToShortDateString() + " // Total : [ " + txt_pesos.Text + " ]-";
            }
            else
            {
                Caja c = new Caja();
                c = Datos_Caja.get_caja_por_fecha(date_desde.Value.Date);
                titulo = " Listado de Ventas del dia : " + date_desde.Value.Date.ToShortDateString() + "// Caja: " + c.Monto.ToString() +" // Total : [ " + txt_pesos.Text + " ]-";

            }
            e.Graphics.DrawString(DateTime.Now + " // " + factura.Comercio_nombre, printFont, Brushes.Black, 200, 80, new StringFormat());
            e.Graphics.DrawString(titulo, printFont, Brushes.Black, 30, 110, new StringFormat());
            e.Graphics.DrawString("N Venta", printFont, Brushes.Black, 50, y, new StringFormat());

            e.Graphics.DrawString("Cliente", printFont, Brushes.Black, 190, y, new StringFormat());
            e.Graphics.DrawString("Fecha", printFont, Brushes.Black, 360, y, new StringFormat());
            e.Graphics.DrawString("Total", printFont, Brushes.Black, 450, y, new StringFormat());
            e.Graphics.DrawString("Comentario", printFont, Brushes.Black, 530, y, new StringFormat());
            y = y + 15;
            for (int x = inicio; x < listaVacia.Count; x++)
            {
                if (y > 1000)
                {
                    inicio = x;
                    e.HasMorePages = true;
                    break;
                }
                else
                {
                    e.HasMorePages = false;
                }
                e.Graphics.DrawString(((Venta)listaVacia[x]).Venta_numero.ToString(), printFont, Brushes.Black, 50, y, new StringFormat());

                e.Graphics.DrawString(((Venta)listaVacia[x]).Provisorio.ToString(), printFont, Brushes.Black, 190, y, new StringFormat());
                e.Graphics.DrawString(((Venta)listaVacia[x]).Fecha.Day.ToString() + "/" + ((Venta)listaVacia[x]).Fecha.Month.ToString() + "/" + ((Venta)listaVacia[x]).Fecha.Year.ToString(), printFont, Brushes.Black, 360, y, new StringFormat());
                e.Graphics.DrawString(((Venta)listaVacia[x]).Total.ToString(), printFont, Brushes.Black, 450, y, new StringFormat());
                e.Graphics.DrawString(((Venta)listaVacia[x]).Observaciones, printFont, Brushes.Black, 530, y, new StringFormat());
                y = y + 15;

            }
        }
        public void cargar()
        {
            txt_pesos.Text = "0";

            bool es_fecha = false;
            ArrayList lista = new ArrayList();

            // modelo
            if (cbox_filtro_producto.SelectedIndex == 1)
            {
                string buscar = "and c.nombre like '%" + txt_buscar.Text + "%'";
                lista = Datos.DatosVenta.getVentas(buscar);

                for (int i = 0; i < lista.Count; i++)
                {

                    txt_pesos.Text = (Convert.ToDecimal(txt_pesos.Text) + ((Venta)lista[i]).Total).ToString();

                }

            }
            if (cbox_filtro_producto.SelectedIndex == 0)
            {
                string buscar = "and v.venta_numero like '%" + txt_buscar.Text + "%'";
                lista = Datos.DatosVenta.getVentas(buscar);

                for (int i = 0; i < lista.Count; i++)
                {

                    txt_pesos.Text = (Convert.ToDecimal(txt_pesos.Text) + ((Venta)lista[i]).Total).ToString();

                }

            }

            if (cbox_filtro_producto.SelectedIndex == 3)
            {
                string buscar = "and v.observaciones like '%" + txt_buscar.Text + "%'";
                lista = Datos.DatosVenta.getVentas(buscar);

                for (int i = 0; i < lista.Count; i++)
                {

                    txt_pesos.Text = (Convert.ToDecimal(txt_pesos.Text) + ((Venta)lista[i]).Total).ToString();

                }

            }

            else if (cbox_filtro_producto.SelectedIndex == 2)
            {
                txt_en_pesos.Text = "0";
                bnt_imprimir.Enabled = true;
                if (btn_buscar_validar == true)
                {
                    DateTime fecha1 = date_fecha.Value.AddDays(1);
                    // string buscar = "and  fecha between '" + date_fecha.Value.Year + "-" + date_fecha.Value.Day + "-" + date_fecha.Value.Month + "' and '" + fecha1.Year + "-" + fecha1.Day + "-" + fecha1.Month + "'";
                    lista = Datos.DatosVenta.getVenta_cliente_porfecha(date_fecha.Value.Date);

                    for (int i = 0; i < lista.Count; i++)
                    {

                        txt_pesos.Text = (Convert.ToDecimal(txt_pesos.Text) + ((Venta)lista[i]).Total).ToString();
                        txt_en_pesos.Text = (Convert.ToDecimal(txt_en_pesos.Text) + ((Venta)lista[i]).En_pesos).ToString();

                    }
                    es_fecha = true;
                    cj = Datos.Datos_Caja.get_caja_por_fecha(date_fecha.Value.Date);
                    txt_caja.Text = cj.Monto.ToString();
                }

                else
                {
                    lista = listaVacia;

                }

            }

            if (lista.Count == 0)
            {
                btn_ver.Enabled = false;
                if (es_fecha == false)
                {
                    bdd_ventas.DataSource = listaVacia;
                }
                else
                {
                    if (btn_buscar_validar == true)
                    {

                        MessageBox.Show("No existen registros en la fecha seleccionada", "Mensaje");

                        cargar_si_vacio();
                    }
                }

            }
            else
            {
                btn_ver.Enabled = true;
                listaVacia.Clear();
                listaVacia = lista;
                bdd_ventas.DataSource = listaVacia;
            }

            es_fecha = false;
            btn_buscar_validar = false;
        }