Пример #1
0
        private bool ValidarDatos()
        {
            if (txtDescripcion.Text.ToUpper().Trim().Equals(string.Empty))
            {
                MessageBox.Show("Complete la descripción", "Aviso");
                return(false);
            }
            if (txtDescripcion.Text.ToUpper().Trim().Equals("CORTESIA"))
            {
                MessageBox.Show("El nombre no puede ser CORTESIA", "Aviso");
                return(false);
            }

            listaPromocionZona    = new List <PromocionZona>();
            listaPromocionFuncion = new List <PromocionFuncion>();
            foreach (DataGridViewRow dtr in dgvZonas.Rows)
            {
                if (Convert.ToBoolean(dtr.Cells["Sel"].Value) == true)
                {
                    if (Convert.ToString(dtr.Cells["Precio"].Value).Equals(String.Empty))
                    {
                        MessageBox.Show("Debe ingresar todos los precios", "Aviso");
                        return(false);
                    }
                    else
                    {
                        PromocionZona pZona = new PromocionZona();
                        pZona.Zona   = dtr.DataBoundItem as Zona;
                        pZona.Precio = Convert.ToSingle(dtr.Cells["Precio"].Value);
                        listaPromocionZona.Add(pZona);
                    }
                }
            }


            if (listaPromocionZona.Count < 1)
            {
                MessageBox.Show("Debe seleccionar al menos una zona", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(false);
            }


            foreach (DataGridViewRow dtr in dgvFunciones.Rows)
            {
                if (Convert.ToBoolean(dtr.Cells["SelF"].Value) == true)
                {
                    PromocionFuncion pFuncion = new PromocionFuncion();
                    pFuncion.Funcion = dtr.DataBoundItem as Funcion;
                    listaPromocionFuncion.Add(pFuncion);
                }
            }

            if (listaPromocionFuncion.Count < 1)
            {
                MessageBox.Show("Debe seleccionar al menos una función", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(false);
            }

            return(true);
        }
Пример #2
0
        public List <PromocionZona> ListPromocionZonaByFuncionZona(int idFuncion, string zonas)
        {
            string sql = "SELECT * FROM TH_PROMOCION_ZONA PZ INNER JOIN TH_ZONA Z ON Z.IDZONA = PZ.IDZONA WHERE PZ.IDPROMOCION IN (SELECT IDPROMOCION FROM TH_PROMOCION_FUNCION WHERE IDFUNCION = @idFuncion) AND PZ.IDZONA IN (@zonas)";

            sql = sql.Replace("@zonas", zonas);
            OleDbParameter       pIdFuncion        = UtilDA.SetParameters("@idFuncion", OleDbType.Integer, idFuncion);
            List <PromocionZona> listPromocionZona = new List <PromocionZona>();
            PromocionZona        promocionZona;

            using (var dtr = UtilDA.ExecuteReader(cmd, CommandType.Text, sql, cnx, pIdFuncion))
            {
                while (dtr.Read())
                {
                    promocionZona = new PromocionZona()
                    {
                        Promocion = new Promocion()
                        {
                            IdPromocion = DataConvert.ToInt(dtr["IdPromocion"])
                        },
                        Precio = DataConvert.ToSingle(dtr["PZ.Precio"]),
                        Zona   = new Zona()
                        {
                            IdZona = DataConvert.ToInt(dtr["Z.IdZona"])
                        }
                    };
                    listPromocionZona.Add(promocionZona);
                }
            }
            UtilDA.Close(cnx);
            return(listPromocionZona);
        }
Пример #3
0
        private void LoadData()
        {
            dgvZonas.AutoGenerateColumns     = false;
            dgvFunciones.AutoGenerateColumns = false;
            txtObra.Text                   = promocion.PromocionZonas[0].Zona.Obra.Nombre;
            txtDescripcion.Text            = promocion.Descripcion;
            listTipoPromocion              = servicio.GetListaTipoPromocion();
            cboTipoPromocion.DataSource    = listTipoPromocion;
            cboTipoPromocion.DisplayMember = "Descripcion";
            cboTipoPromocion.SelectedItem  = listTipoPromocion.Where(tx => tx.IdTipoPromocion == promocion.TipoPromocion.IdTipoPromocion).FirstOrDefault();
            cboEstado.SelectedIndex        = promocion.Estado == "Activo" ? 0 : 1;
            dtpFechaInicio.Value           = promocion.FechaInicio;
            dtpFechaFin.Value              = promocion.FechaFin;
            chkRequiereEmpresa.Checked     = promocion.RequiereEmpresa;

            listZona    = servicio.ListZonaByObra(promocion.PromocionZonas[0].Zona.Obra.IdObra);
            listFuncion = servicio.ListarFuncionByObraGrilla(promocion.PromocionZonas[0].Zona.Obra.IdObra);

            dgvFunciones.DataSource = listFuncion;
            dgvZonas.DataSource     = listZona;

            foreach (DataGridViewRow row in dgvZonas.Rows)
            {
                Zona          zona   = row.DataBoundItem as Zona;
                PromocionZona prZona = promocion.PromocionZonas.Where(tx => tx.Zona.IdZona == zona.IdZona).FirstOrDefault();
                if (prZona != null)
                {
                    DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)row.Cells["Sel"];
                    chk.Value = true;
                    row.Cells["Precio"].Value = prZona.Precio;
                }
            }

            foreach (DataGridViewRow row in dgvFunciones.Rows)
            {
                Funcion          funcion   = row.DataBoundItem as Funcion;
                PromocionFuncion prFuncion = promocion.PromocionFunciones.Where(tx => tx.Funcion.IdFuncion == funcion.IdFuncion).FirstOrDefault();
                if (prFuncion != null)
                {
                    DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)row.Cells["SelF"];
                    chk.Value = true;
                }
            }
        }
Пример #4
0
        private void btnCrear_Click(object sender, EventArgs e)
        {
            if (ValidarCampos())
            {
                List <PromocionZona> listaPromocionZona = new List <PromocionZona>();
                bool isValid = true;
                foreach (DataGridViewRow dtr in dgvZonas.Rows)
                {
                    if (Convert.ToBoolean(dtr.Cells["Sel"].Value) == true)
                    {
                        if (Convert.ToString(dtr.Cells["Precio"].Value).Equals(String.Empty))
                        {
                            isValid = false;
                            break;
                        }
                        else
                        {
                            PromocionZona pZona = new PromocionZona();
                            pZona.Zona   = dtr.DataBoundItem as Zona;
                            pZona.Precio = Convert.ToSingle(dtr.Cells["Precio"].Value);
                            listaPromocionZona.Add(pZona);
                        }
                    }
                }

                if (!isValid)
                {
                    MessageBox.Show("Debe ingresar el precio", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                if (listaPromocionZona.Count < 1)
                {
                    MessageBox.Show("Debe seleccionar al menos una zona", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                List <PromocionFuncion> listaPromocionFuncion = new List <PromocionFuncion>();

                foreach (DataGridViewRow dtr in dgvFunciones.Rows)
                {
                    if (Convert.ToBoolean(dtr.Cells["SelF"].Value) == true)
                    {
                        PromocionFuncion pFuncion = new PromocionFuncion();
                        pFuncion.Funcion = dtr.DataBoundItem as Funcion;
                        listaPromocionFuncion.Add(pFuncion);
                    }
                }

                if (listaPromocionFuncion.Count < 1)
                {
                    MessageBox.Show("Debe seleccionar al menos una función", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }


                Promocion promocion = new Promocion()
                {
                    Descripcion        = txtDescripcion.Text.ToUpper().Trim(),
                    FechaFin           = dtpFechaFin.Value.Date,
                    FechaInicio        = dtpFechaInicio.Value.Date,
                    TipoPromocion      = cboTipoPromocion.SelectedItem as TipoPromocion,
                    RequiereEmpresa    = chkRequiereEmpresa.Checked,
                    PromocionFunciones = listaPromocionFuncion,
                    PromocionZonas     = listaPromocionZona
                };
                try
                {
                    if (servicio.InsertPromocion(promocion))
                    {
                        MessageBox.Show("Proceso realizado correctamente", "Aviso");
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Ha ocurrido un error", "Aviso");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ocurrió un error: " + ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Complete todos los campos", "Aviso");
            }
        }
Пример #5
0
        /// <summary>
        /// Apply discount
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAplicarDescuento_Click(object sender, EventArgs e)
        {
            Promocion promocion = cboPromocion.SelectedItem as Promocion;
            string    tipoPromo = cboTipoPromocion.Text;

            if (promocion != null)
            {
                if (promocion.RequiereEmpresa && empresa == null)
                {
                    MessageBox.Show("Debe seleccionar una empresa para aplicar este descuento", "Aviso");
                    return;
                }
                else if (!promocion.RequiereEmpresa && empresa != null)
                {
                    MessageBox.Show("No debe seleccionar una empresa para esta promoción", "Aviso");
                    return;
                }


                bool aplicoPromocion     = false;
                int  cantidad2x1Aplicado = 0;
                int  idZonaOrigen        = 0;


                foreach (AsientoZona az in listaAsientoPrecioTemp.OrderBy(tx => tx.Zona.IdZona).ToList())
                {
                    if (!az.PromocionAplicada)
                    {
                        if (promocion.IdPromocion == -1)
                        {
                            if (empresa.Cortesias)
                            {
                                aplicoPromocion      = true;
                                az.Zona.Precio       = 0;
                                az.PromocionAplicada = true;
                                az.NombrePromocion   = promocion.Descripcion;
                                //Filtrar zonas con promocion para cadena en cabecera reserva
                                if (idZonas.IndexOf(az.Zona.IdZona) == -1)
                                {
                                    idZonas.Add(az.Zona.IdZona);
                                    promociones += promocion.Descripcion + ",";
                                }
                                aplicoPromocionGeneral = true;
                            }
                            else
                            {
                                MessageBox.Show("La empresa seleccionada no acepta cortesias", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                                return;
                            }
                        }
                        else if (tipoPromo == "2 X 1")
                        {
                            if (!aplico2x1)
                            {
                                PromocionZona pzona = promocion.PromocionZonas.Where(tx => tx.Zona.IdZona == az.Zona.IdZona).FirstOrDefault();
                                if (pzona != null)
                                {
                                    if (idZonaOrigen == 0)
                                    {
                                        idZonaOrigen = az.Zona.IdZona;
                                    }
                                    else
                                    {
                                        if (idZonaOrigen != az.Zona.IdZona)
                                        {
                                            cantidad2x1Aplicado = 0;
                                            idZonaOrigen        = az.Zona.IdZona;
                                        }
                                    }
                                    int    cantidadAsientosZona = listaAsientoPrecioTemp.Where(tx => tx.Zona.IdZona == az.Zona.IdZona).Count();
                                    double cantidadMaxima       = cantidadAsientosZona / 2;

                                    if (cantidadMaxima >= 1 && cantidad2x1Aplicado < cantidadMaxima * 2)
                                    {
                                        cantidad2x1Aplicado++;
                                        aplicoPromocion      = true;
                                        az.Zona.Precio       = pzona.Precio;
                                        az.PromocionAplicada = true;
                                        az.NombrePromocion   = promocion.Descripcion;
                                        //Filtrar zonas con promocion para cadena en cabecera reserva
                                        if (idZonas.IndexOf(az.Zona.IdZona) == -1)
                                        {
                                            idZonas.Add(az.Zona.IdZona);
                                            promociones += promocion.Descripcion + ",";
                                        }
                                        aplicoPromocionGeneral = true;
                                    }
                                }
                            }
                        }
                        else
                        {
                            PromocionZona pzona = promocion.PromocionZonas.Where(tx => tx.Zona.IdZona == az.Zona.IdZona).FirstOrDefault();
                            if (pzona != null)
                            {
                                aplicoPromocion      = true;
                                az.Zona.Precio       = pzona.Precio;
                                az.PromocionAplicada = true;
                                az.NombrePromocion   = promocion.Descripcion;
                                //Filtrar zonas con promocion para cadena en cabecera reserva
                                if (idZonas.IndexOf(az.Zona.IdZona) == -1)
                                {
                                    idZonas.Add(az.Zona.IdZona);
                                    promociones += promocion.Descripcion + ",";
                                }
                                aplicoPromocionGeneral = true;
                            }
                        }
                    }
                }



                if (aplicoPromocion)
                {
                    if (tipoPromo == "2 X 1")
                    {
                        aplico2x1 = true;
                    }
                    PopularDatosReserva();
                    AsociarEntidadesReserva();
                    MessageBox.Show("Descuento aplicado correctamente", "Aviso");
                }
                else
                {
                    MessageBox.Show("No se encontraron mas descuentos que aplicar", "Aviso");
                }
            }

            else
            {
                MessageBox.Show("Debe seleccionar un descuento", "Aviso");
            }
        }
Пример #6
0
        public List <Promocion> ListPromocionByObra(int idObra)
        {
            OleDbCommand            cmd2             = new OleDbCommand();
            OleDbCommand            cmd3             = new OleDbCommand();
            string                  sql              = "SELECT * FROM TH_PROMOCION P INNER JOIN TH_TIPO_PROMOCION TP ON TP.IDTIPOPROMOCION = P.IDTIPOPROMOCION WHERE IDPROMOCION IN (SELECT PZ.IDPROMOCION FROM TH_PROMOCION_ZONA PZ INNER JOIN TH_ZONA Z ON Z.IDZONA = PZ.IDZONA WHERE Z.IDOBRA = @idObra)";
            OleDbParameter          pIdObra          = UtilDA.SetParameters("@idObra", OleDbType.Integer, idObra);
            Promocion               promocion        = null;
            PromocionZona           promocionZona    = null;
            PromocionFuncion        promocionFuncion = null;
            List <Promocion>        ListaPromocion   = new List <Promocion>();
            List <PromocionZona>    listaZona        = null;
            List <PromocionFuncion> listaFuncion     = null;

            using (var dtr = UtilDA.ExecuteReader(cmd, CommandType.Text, sql, cnx, pIdObra))
            {
                while (dtr.Read())
                {
                    promocion = new Promocion()
                    {
                        IdPromocion     = DataConvert.ToInt(dtr["IdPromocion"]),
                        Descripcion     = DataConvert.ToString(dtr["P.Descripcion"]),
                        Estado          = DataConvert.ToString(dtr["P.Estado"]),
                        FechaInicio     = DataConvert.ToDateTime(dtr["FechaInicio"]),
                        FechaFin        = DataConvert.ToDateTime(dtr["FechaFin"]),
                        FechaCreacion   = DataConvert.ToDateTime(dtr["P.FechaCrea"]),
                        UsuarioCreacion = DataConvert.ToString(dtr["P.UserCrea"]),
                        RequiereEmpresa = DataConvert.ToBool(dtr["RequiereEmpresa"]),
                        TipoPromocion   = new TipoPromocion()
                        {
                            IdTipoPromocion = DataConvert.ToInt(dtr["TP.IdTipoPromocion"]),
                            Descripcion     = DataConvert.ToString(dtr["TP.Descripcion"]),
                            Estado          = DataConvert.ToString(dtr["TP.FechaCrea"]),
                            UsuarioCreacion = DataConvert.ToString(dtr["TP.UserCrea"])
                        }
                    };
                    listaZona = new List <PromocionZona>();
                    string         SQLZONA      = "SELECT PZ.PRECIO,Z.IDZONA,Z.NOMBRE,Z.DESCRIPCION,Z.ESTADO,O.IdObra,O.Nombre FROM (TH_PROMOCION_ZONA PZ INNER JOIN TH_ZONA Z ON Z.IDZONA = PZ.IDZONA) INNER JOIN TH_OBRA O ON O.IDOBRA = Z.IDOBRA  WHERE PZ.idpromocion = @idPromocion";
                    OleDbParameter pIdPromocion = UtilDA.SetParameters("@idPromocion", OleDbType.Integer, promocion.IdPromocion);
                    using (var subdtr = UtilDA.ExecuteSubReader(cmd2, CommandType.Text, SQLZONA, cnx, pIdPromocion))
                    {
                        while (subdtr.Read())
                        {
                            promocionZona = new PromocionZona()
                            {
                                Promocion = promocion,
                                Precio    = DataConvert.ToSingle(subdtr["Precio"]),
                                Zona      = new Zona()
                                {
                                    IdZona      = DataConvert.ToInt(subdtr["IdZona"]),
                                    Nombre      = DataConvert.ToString(subdtr["Z.Nombre"]),
                                    Descripcion = DataConvert.ToString(subdtr["Descripcion"]),
                                    Estado      = DataConvert.ToString(subdtr["Estado"]),
                                    Obra        = new Obra()
                                    {
                                        IdObra = DataConvert.ToInt(subdtr["IdObra"]),
                                        Nombre = DataConvert.ToString(subdtr["O.Nombre"])
                                    }
                                }
                            };
                            listaZona.Add(promocionZona);
                        }
                    }

                    listaFuncion = new List <PromocionFuncion>();
                    string         SQLFUNCION          = "SELECT * FROM TH_PROMOCION_FUNCION PF INNER JOIN TH_FUNCION P ON P.IDFUNCION = PF.IDFUNCION WHERE PF.IDPROMOCION = @idPromocion";
                    OleDbParameter pIdPromocionFuncion = UtilDA.SetParameters("@idPromocion", OleDbType.Integer, promocion.IdPromocion);
                    using (var subdtr2 = UtilDA.ExecuteSubReader(cmd3, CommandType.Text, SQLFUNCION, cnx, pIdPromocionFuncion))
                    {
                        while (subdtr2.Read())
                        {
                            promocionFuncion = new PromocionFuncion()
                            {
                                Promocion = promocion,
                                Funcion   = new Funcion()
                                {
                                    IdFuncion = DataConvert.ToInt(subdtr2["P.IdFuncion"]),
                                    Dia       = DataConvert.ToInt(subdtr2["Dia"]),
                                    Horario   = DataConvert.ToString(subdtr2["Horario"]),
                                    Estado    = DataConvert.ToString(subdtr2["Estado"])
                                }
                            };
                            listaFuncion.Add(promocionFuncion);
                        }
                    }

                    promocion.PromocionFunciones = listaFuncion;
                    promocion.PromocionZonas     = listaZona;
                    ListaPromocion.Add(promocion);
                }
            }

            UtilDA.Close(cnx);
            return(ListaPromocion);
        }