private string GuardarPagoBasicoDelSocioController(int idCaja, int idSocio,
                                                           decimal TotalPagado, int idUsuarioOperador, DataGridViewRowCollection filas,
                                                           string folioReciboListaPoductos, string folioReciboLicencia)
        {
            ClsPagoBasico clsPagoBasico = new ClsPagoBasico();

            clsPagoBasico.IdCaja      = idCaja;
            clsPagoBasico.IdSocio     = idSocio;
            clsPagoBasico.TotalPagado = TotalPagado;
            clsPagoBasico.FolioReciboListaPoductos = folioReciboListaPoductos;
            clsPagoBasico.FolioReciboLicencia      = folioReciboLicencia;
            clsPagoBasico.IdUsuarioOperador        = idUsuarioOperador;


            foreach (DataGridViewRow fila in filas)
            {
                ClsProductoViewModel clsProductoViewModel = (ClsProductoViewModel)fila.Cells[1].Value;
                ClsTarifaViewModel   clsTarifaViewModel   = (ClsTarifaViewModel)fila.Cells[2].Value;
                decimal descuento      = Decimal.Parse(fila.Cells[3].EditedFormattedValue.ToString());
                decimal cantidadAPagar = Decimal.Parse(fila.Cells[4].EditedFormattedValue.ToString());

                clsPagoBasico.AddProductoAPagar(clsProductoViewModel.Id, clsTarifaViewModel.Id, clsTarifaViewModel.Cantidad,
                                                "campo no usado", descuento, cantidadAPagar);
            }

            string respuesta = clsPagoBasico.MovsEnCaja_PagoProducto_DetallesProductosEnPago_create();

            return(respuesta);
        }
 private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (listBox2.SelectedIndex > -1)
     {
         ClsTarifaViewModel clsTarifaElegidaViewModel = (ClsTarifaViewModel)listBox2.SelectedItem;
         decimal            tarifaElegida             = (decimal)clsTarifaElegidaViewModel.Cantidad;
         textBox3.Text = tarifaElegida.ToString();
         textBox2.Text = "";
     }
 }
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            bool listBox1Seleccionado = listBox1.SelectedIndex > -1 ? true : false; //Averiguar si esta seleccionado
            bool listBox2Seleccionado = listBox2.SelectedIndex > -1 ? true : false; //Averiguar si esta seleccionado
            bool textBox3ConContenido = textBox3.Text.Length > 0 ? true : false;    // Averiguar si tiene contenido

            if (listBox1Seleccionado && listBox2Seleccionado && textBox3ConContenido)
            {
                if (textBox2.Text.Length > 0)
                {
                    decimal descuento = 0.0m;
                    bool    esNumero  = Decimal.TryParse(textBox2.Text, out descuento);

                    if (esNumero)
                    {
                        ClsTarifaViewModel clsTarifaViewModelSeleccionado = (ClsTarifaViewModel)listBox2.SelectedItem;
                        decimal            tarifaElegida = (decimal)clsTarifaViewModelSeleccionado.Cantidad;

                        if (descuento >= 0m && descuento <= tarifaElegida)
                        {
                            decimal resta = tarifaElegida - descuento;
                            textBox3.Text = resta.ToString();
                        }
                        else
                        {
                            textBox2.Text = "";  //Despues de esta linea se vuelve a disparar el evento textBox2_TextChanged
                            MessageBox.Show("El descuento debe ser menor ó igual a la tarifa seleccionada", "Reglas de operación", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        }
                    }

                    else
                    {
                        textBox2.Text = ""; //Despues de esta linea se vuelve a disparar el evento textBox2_TextChanged
                        MessageBox.Show("Entrada no numerica", "Reglas de operación", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }

                else
                {
                    ClsTarifaViewModel clsTarifaViewModelSeleccionado = (ClsTarifaViewModel)listBox2.SelectedItem;
                    textBox3.Text = (clsTarifaViewModelSeleccionado.Cantidad).ToString();
                }
            }
        }
        //--------------------Events
        private void button1_Click(object sender, EventArgs e)
        {
            //En este punto los calculos del descuento ya se supone estan correctos, por eso no se vuelven a calcular
            //al momento de agregar al datagridView
            try
            {
                bool listBox1Seleccionado = listBox1.SelectedIndex > -1 ? true : false; //Averiguar si esta seleccionado
                bool listBox2Seleccionado = listBox2.SelectedIndex > -1 ? true : false; //Averiguar si esta seleccionado
                bool textBox3ConContenido = textBox3.Text.Length > 0 ? true : false;    // El textBox3 ya se que solo numeros contiene, por ello solo compruebo si tiene algo
                bool textBox2Vacio        = textBox2.Text.Length == 0 ? true : false;   //Averiguar si esta vacío

                if (listBox1Seleccionado && listBox2Seleccionado && textBox3ConContenido && textBox2Vacio)
                {
                    ClsProductoViewModel clsProductoViewModel = (ClsProductoViewModel)listBox1.SelectedItem;
                    ClsTarifaViewModel   clsTarifaViewModel   = (ClsTarifaViewModel)listBox2.SelectedItem;
                    decimal cantidadAPagar = Decimal.Parse(textBox3.Text);

                    if (ExisteProductoEnDataGridView(clsProductoViewModel) == false)
                    {
                        AddFilaADataGridView_ProductosAPagar(clsProductoViewModel, clsTarifaViewModel, 0.0m, cantidadAPagar);
                        label7.Text = CalcularSumaTotalEnDataGridView().ToString();

                        if (EsAfiliacion(clsProductoViewModel))
                        {
                            label22.Enabled   = true;
                            textBox18.Enabled = true;
                        }
                    }

                    else
                    {
                        MessageBox.Show("Ya capturaste este producto", "Reglas de operación", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }

                else if (listBox1Seleccionado && listBox2Seleccionado && textBox3ConContenido && (textBox2Vacio == false))
                {
                    ClsProductoViewModel clsProductoViewModel = (ClsProductoViewModel)listBox1.SelectedItem;
                    ClsTarifaViewModel   clsTarifaViewModel   = (ClsTarifaViewModel)listBox2.SelectedItem;
                    decimal descuento      = Decimal.Parse(textBox2.Text);
                    decimal cantidadAPagar = Decimal.Parse(textBox3.Text);

                    if (ExisteProductoEnDataGridView(clsProductoViewModel) == false)
                    {
                        AddFilaADataGridView_ProductosAPagar(clsProductoViewModel, clsTarifaViewModel, descuento, cantidadAPagar);
                        label7.Text = CalcularSumaTotalEnDataGridView().ToString();
                        if (EsAfiliacion(clsProductoViewModel))
                        {
                            label22.Enabled   = true;
                            textBox18.Enabled = true;
                        }
                    }

                    else
                    {
                        MessageBox.Show("Ya capturaste este producto", "Reglas de operación", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }

                else
                {
                    string texto = "Recuerda que se requiere seleccionar un producto, una tarifa, e ingresar opcionalmente un descuento";
                    MessageBox.Show(texto, "Reglas de operación", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + " " + ex.Source + " " + ex.StackTrace);
            }
        }
        private void AddFilaADataGridView_ProductosAPagar(ClsProductoViewModel clsProductoViewModel, ClsTarifaViewModel clsTarifaViewModel, decimal descuento, decimal cantidadAPagar)
        {
            int n = dataGridView1.Rows.Add();

            dataGridView1.Rows[n].Cells[1].Value = clsProductoViewModel;
            dataGridView1.Rows[n].Cells[2].Value = clsTarifaViewModel;
            dataGridView1.Rows[n].Cells[3].Value = descuento;
            dataGridView1.Rows[n].Cells[4].Value = cantidadAPagar;
        }