Example #1
0
        private void btn_Acept_Click(object sender, EventArgs e)
        {
            var _desgloses = new DB_BIM().GetAllElements <Desglose>();

            foreach (var item in _localesByProject)
            {
                var      _desglose         = _desgloses.FirstOrDefault(x => x.Id == item.Local1.Desglose);
                var      _desgloseProyecto = _proyecto.Desglose;
                Desglose _a = null;
                if (_desglose != null && _proyecto.Desglose.FirstOrDefault(x => x.Value == _desglose.Value) == null)
                {
                    var _nuevoDesglose = new Desglose()
                    {
                        Proyecto = _proyecto.Id,
                        Value    = _desglose.Value
                    };
                    _a = new DB_BIM().AddElemento <Desglose>(typeof(Desglose), _nuevoDesglose);
                }
                else
                {
                    _a = _proyecto.Desglose.FirstOrDefault(x => x.Value == _desglose.Value);
                }

                var _itemLocal = new DB_BIM().GetSingleElement <Local>(x => x.Id == item.Local);

                var _local = new Local()
                {
                    Key_Name          = _itemLocal.Key_Name,
                    Ambiente          = _itemLocal.Ambiente,
                    Climatizacion     = _itemLocal.Climatizacion,
                    Coef_Area         = _itemLocal.Coef_Area,
                    Comunicaciones_TV = _itemLocal.Comunicaciones_TV,
                    Desglose          = _a.Id,
                    Habitacion        = _itemLocal.Habitacion,
                    Local_Tipo        = _itemLocal.Local_Tipo,
                    Mod            = _itemLocal.Mod,
                    Porciento_BD   = _itemLocal.Porciento_BD,
                    RoomId         = _itemLocal.RoomId,
                    SubsistemaArea = _itemLocal.SubsistemaArea,
                    SubsistemaTipo = _itemLocal.SubsistemaTipo
                };

                new DB_BIM().AddElemento <Local>(typeof(Local), _local);


                Locales_Proyecto _localProyecto = new Locales_Proyecto()
                {
                    Local    = _local.Id,
                    Proyecto = _proyecto.Id,
                    Cantidad = item.Cantidad
                };
                new DB_BIM().AddElemento <Locales_Proyecto>(typeof(Locales_Proyecto), _localProyecto);
            }

            MessageBox.Show("Todos los locales fueron importados!");
            this.Close();
        }
        private void btn_del_Click(object sender, EventArgs e)
        {
            using (var db = new DB_BIM())
            {
                Desglose _desglose = new Desglose()
                {
                    Proyecto = _proyecto.Id,
                    Value    = listBox2.SelectedItem.ToString()
                };

                db.DeleteElement <Desglose>(x => x.Value == _desglose.Value && x.Proyecto == _desglose.Proyecto, typeof(Desglose));

                UpdateListBox();
            }
        }
        private void btn_add_Click(object sender, EventArgs e)
        {
            using (var db = new DB_BIM())
            {
                Desglose _desglose = new Desglose()
                {
                    Proyecto = _proyecto.Id,
                    Value    = listBox1.SelectedItem.ToString()
                };

                var _proyectoDesglose = db.GetSingleElement <Desglose>(x => x.Value == _desglose.Value && x.Proyecto == _desglose.Proyecto);
                if (_proyectoDesglose == null)
                {
                    db.AddElemento <Desglose>(typeof(Desglose), _desglose);
                    UpdateListBox();
                }
            }
        }
        private void btn_new_Click(object sender, EventArgs e)
        {
            if (txt_desglose.Text != "")
            {
                Desglose _desglose = new Desglose()
                {
                    Proyecto = _proyecto.Id,
                    Value    = txt_desglose.Text
                };

                var _record = new DB_BIM().GetSingleElement <Desglose>(x => x.Value == _desglose.Value && x.Proyecto == _desglose.Proyecto);

                if (_record == null)
                {
                    new DB_BIM().AddElemento <Desglose>(typeof(Desglose), _desglose);
                    UpdateListBox();
                }
            }
            else
            {
                MessageBox.Show("El nuevo desglose debe tener un nombre");
            }
        }
Example #5
0
        private static void AddSingleRoom(ref GridView selectedGrid, int i, T_Local KeyRoom)
        {
            if (i != -2147483647)
            {
                try
                {
                    using (var db = new DB_BIM())
                    {
                        selectedGrid.FocusedRowHandle = i;

                        Local            local         = new Local();
                        Locales_Proyecto localProyecto = new Locales_Proyecto();

                        var subsistemaTipo = "";
                        var subsistemaArea = "";

                        ExcelImportForm.GetSubsistemas(selectedGrid.GetRowCellValue(i, "Cod2").ToString(), ref subsistemaTipo, ref subsistemaArea, selectedGrid.GetRowCellValue(i, "Cod1").ToString());

                        local.SubsistemaTipo =
                            new DB_PLANTILLA().GetSingleRecord <T_Subsistema_Tipo>(x => x.Value == subsistemaTipo).Id;

                        local.SubsistemaArea =
                            new DB_PLANTILLA().GetSingleRecord <T_Subsistema_Area>(x => x.Value == subsistemaArea).Id;

                        var localTipoValue = selectedGrid.GetRowCellValue(i, "LocalTipo").ToString();



                        var cod1       = selectedGrid.GetRowCellValue(i, "Cod1").ToString().Replace(',', '.');
                        var grupoLocal = _grupoLocales.FirstOrDefault(x => x.Cod1.Contains(cod1)).Id;

                        var localTipo = db.GetSingleElement <LocalTipo>(x => x.Value == localTipoValue) ?? new LocalTipo()
                        {
                            Grupo_Locales = grupoLocal,
                            Value         = localTipoValue
                        };


                        var porcientoBD = double.Parse(selectedGrid.GetRowCellValue(i, "PorcientoBD").ToString());
                        local.Porciento_BD = new DB_PLANTILLA().GetSingleElement <T_Porciento_BD>(x => x.Value == porcientoBD).Id;

                        var      areaUtil = selectedGrid.GetRowCellValue(i, "AreaLocal").ToString() == "" ? 0.00 : double.Parse(selectedGrid.GetRowCellValue(i, "AreaLocal").ToString());
                        CoefArea coef     = new CoefArea()
                        {
                            Area_Local = areaUtil
                        };


                        var desgloseValue = selectedGrid.GetRowCellValue(i, "Desglose").ToString();
                        var desglose      = db.GetSingleElement <Desglose>(x => x.Value == desgloseValue && x.Proyecto == _proyecto.Id);

                        if (desglose != null)
                        {
                            local.Desglose = desglose.Id;
                        }
                        else
                        {
                            Desglose _newDesglose = new Desglose()
                            {
                                Value    = desgloseValue,
                                Proyecto = _proyecto.Id
                            };
                            desglose        = _newDesglose;
                            local.Desglose1 = _newDesglose;
                        }

                        //var roomKeyValue = selectedGrid.GetRowCellValue(i, "RoomID").ToString();
                        //var localID = new DB_PLANTILLA().GetSingleElement<T_Local>(x => x.Key_Name == roomKeyValue);
                        var localID = KeyRoom;
                        local.RoomId         = localID.RoomId;
                        local.CoefArea       = coef;
                        local.CoefArea.Value = new DB_PLANTILLA().GetSingleElement <T_CoefArea>(x => x.Id == localID.Coef_Area).Value;
                        local.LocalTipo      = localTipo;

                        local.Key_Name = selectedGrid.GetRowCellValue(i, "Local").ToString();

                        local.Ambiente1          = localID.T_Ambiente.ToProject();
                        local.Comunicaciones_Tv1 = localID.T_Comunicaciones_Tv.ToProject();
                        local.Climatizacion1     = localID.T_Climatizacion.ToProject();

                        localProyecto.Local1   = local;
                        localProyecto.Proyecto = _proyecto.Id;
                        localProyecto.Cantidad = selectedGrid.GetRowCellValue(i, "Hab") == null || selectedGrid.GetRowCellValue(i, "Hab").ToString() == "" ? 0 : int.Parse(selectedGrid.GetRowCellValue(i, "Hab").ToString());

                        var localesProyecto =
                            db.GetSingleElement <Locales_Proyecto>(x =>
                                                                   x.Proyecto1.Cod == _proyecto.Cod &&
                                                                   x.Local1.Desglose == desglose.Id &&
                                                                   x.Local1.Local_Tipo == localTipo.Id &&
                                                                   x.Local1.Key_Name == local.Key_Name);

                        if (localesProyecto == null)
                        {
                            //new DB_BIM().AddElemento<Locales_Proyecto>(typeof(Locales_Proyecto), localProyecto);
                            //LocalController.AddLocalcesProyecto(localProyecto);
                            //LocalController.AddLocalesProyecto(localProyecto);
                            db.Locales_Proyecto.Add(localProyecto);
                            db.SaveChanges();
                        }
                        else
                        {
                            localProyecto.Id = localesProyecto.Id;
                            LocalController.UpdateLocalesProyecto(localProyecto);
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    //Excepciones.Excepciones.EnviarCorreo(ex);
                    //throw;
                }
            }
        }
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            var _selectedGrid = gridControlPrograma.Visible ? gridPrograma : gridDetalle;

            var _subsistemasTipo = new DB_PLANTILLA().GetAllRecords <T_Subsistema_Tipo>();
            var _subsistemasArea = new DB_PLANTILLA().GetAllRecords <T_Subsistema_Area>();
            var _grupoLocales    = new DB_PLANTILLA().GetAllRecords <T_Grupo_Locales>();
            var _porcientos      = new DB_PLANTILLA().GetAllRecords <T_Porciento_BD>();
            var _coefAreas       = new DB_PLANTILLA().GetAllRecords <T_CoefArea>();
            var _locales         = new DB_PLANTILLA().GetAllRecords <T_Local>();

            for (int i = 0; i < _selectedGrid.DataRowCount; i++)
            {
                try
                {
                    _selectedGrid.FocusedRowHandle = i;
                    Local            _local         = new Local();
                    Locales_Proyecto _localProyecto = new Locales_Proyecto();

                    var _subsistemaTipo = "";
                    var _subsistemaArea = "";

                    GetSubsistemas(_selectedGrid.GetRowCellValue(i, "Cod2").ToString(), ref _subsistemaTipo, ref _subsistemaArea, _selectedGrid.GetRowCellValue(i, "Cod1").ToString());
                    //var _subTipoValue = _selectedGrid.GetRowCellValue(i, "Subsistema Tipo").ToString();
                    _local.SubsistemaTipo = _subsistemasTipo.FirstOrDefault(x => x.Value == _subsistemaTipo).Id;

                    //var _subAreaValue = _selectedGrid.GetRowCellValue(i, "Subsistema Area").ToString();
                    _local.SubsistemaArea = _subsistemasArea.FirstOrDefault(x => x.Value == _subsistemaArea).Id;

                    var _localTipoValue = _selectedGrid.GetRowCellValue(i, "LocalTipo").ToString();
                    var _cod1Value      = _selectedGrid.GetRowCellValue(i, "Cod1").ToString().Replace(',', '.');
                    var _grupoLocal     = _grupoLocales.FirstOrDefault(x => x.Cod1.Contains(_cod1Value)).Id;

                    LocalTipo _localTipo = new LocalTipo()
                    {
                        Grupo_Locales = _grupoLocal,
                        Value         = _localTipoValue
                    };

                    var _porcientoBD = double.Parse(_selectedGrid.GetRowCellValue(i, "PorcientoBD").ToString());
                    //_porcientoBD = _porcientoBD / 100;

                    _local.Porciento_BD = _porcientos.FirstOrDefault(x => x.Value == _porcientoBD).Id;


                    var      _areaUtil = _selectedGrid.GetRowCellValue(i, "AreaLocal").ToString() == "" ? 0.00 : double.Parse(_selectedGrid.GetRowCellValue(i, "AreaLocal").ToString());
                    CoefArea _coef     = new CoefArea()
                    {
                        Area_Local = _areaUtil
                    };

                    var _desgloseValue = _selectedGrid.GetRowCellValue(i, "Desglose").ToString();
                    var _desglose      = new DB_BIM().GetSingleElement <Desglose>(x => x.Value == _desgloseValue && x.Proyecto == _proyecto.Id);

                    if (_desglose != null)
                    {
                        _local.Desglose = _desglose.Id;
                    }
                    else
                    {
                        Desglose _newDesglose = new Desglose()
                        {
                            Value    = _desgloseValue,
                            Proyecto = _proyecto.Id
                        };

                        _local.Desglose1 = _newDesglose;
                    }

                    var _localID = _locales.FirstOrDefault(x => x.Key_Name == _selectedGrid.GetRowCellValue(i, "RoomID").ToString());

                    var keyName = _selectedGrid.GetRowCellValue(i, "Local").ToString();

                    var localesProyecto = new DB_BIM().GetElements <Locales_Proyecto>(x => x.Proyecto == _proyecto.Id);
                    var realLocal       =
                        localesProyecto.FirstOrDefault(
                            x =>
                            x.Local1.Desglose == _local.Desglose && x.Local1.LocalTipo == _localTipo &&
                            x.Local1.Key_Name == keyName);


                    if (realLocal != null)
                    {
                        LocalController.UpdateLocalesProyecto(realLocal);
                    }
                    else
                    {
                        _local.RoomId         = _localID.RoomId;
                        _local.CoefArea       = _coef;
                        _local.CoefArea.Value = _coefAreas.FirstOrDefault(x => x.Id == _localID.Coef_Area).Value;
                        _local.LocalTipo      = _localTipo;
                        _local.Key_Name       = keyName;

                        _local.Ambiente1          = _localID.T_Ambiente.ToProject();
                        _local.Comunicaciones_Tv1 = _localID.T_Comunicaciones_Tv.ToProject();
                        _local.Climatizacion1     = _localID.T_Climatizacion.ToProject();

                        _localProyecto.Local1   = _local;
                        _localProyecto.Proyecto = _proyecto.Id;
                        _localProyecto.Cantidad = _selectedGrid.GetRowCellValue(i, "Hab") == null ? 0 : int.Parse(_selectedGrid.GetRowCellValue(i, "Hab").ToString());

                        new DB_BIM().AddElemento <Locales_Proyecto>(typeof(Locales_Proyecto), _localProyecto);
                    }
                }
                catch (Exception ex)
                {
                    Excepciones.Excepciones.EnviarCorreo(ex);
                    //throw;
                }
            }

            MessageBox.Show("Completado!");
        }
Example #7
0
        /// <summary>
        /// Método para obtener una nueva Relación de Caja
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public RelacionCaja ObtenerRelacionCaja(TokenDto token)
        {
            RelacionCaja relacionCaja = new RelacionCaja();

            relacionCaja.CodigoTienda = token.CodeStore;
            List <GrupoRelacionCaja> gruposIncluidosRelacionCaja = new List <GrupoRelacionCaja>();

            relacionCaja.GruposRelacionCaja = gruposIncluidosRelacionCaja.ToArray();
            var grupos    = new Dictionary <String, GrupoRelacionCaja>();
            var secciones = new Dictionary <String, SeccionRelacionCaja>();
            List <GrupoRelacionCaja>   gruposRelacionCaja    = new List <GrupoRelacionCaja>();
            List <SeccionRelacionCaja> seccionesRelacionCaja = new List <SeccionRelacionCaja>();
            decimal iva        = this.ObtenerImpuestoTienda(token.CodeStore);
            var     parametros = new Dictionary <string, object>();

            parametros.Add("@CodigoTienda", token.CodeStore);
            parametros.Add("@CodigoCaja", token.CodeBox);
            foreach (var item in data.GetDataReader("[dbo].[sp_vanti_server_ObtenerRelacionDeCaja]", parametros))
            {
                // Llenado de Desglose
                String   encabezadoGrupo   = item.GetValue(0).ToString();
                String   encabezadoSeccion = item.GetValue(1).ToString();
                Desglose desglose          = new Desglose();
                desglose.Descripcion = item.GetValue(2).ToString();
                desglose.TotalConIVA = Convert.ToDecimal(item.GetValue(3));
                // Llenado de Sección
                SeccionRelacionCaja seccionRelacionCajaActual;
                if (secciones.ContainsKey(encabezadoGrupo + encabezadoSeccion))
                {
                    seccionRelacionCajaActual = secciones[encabezadoGrupo + encabezadoSeccion];
                    List <Desglose> desgloses = seccionRelacionCajaActual.DesgloseRelacionCaja.ToList();
                    desgloses.Add(desglose);
                    seccionRelacionCajaActual.DesgloseRelacionCaja = desgloses.ToArray();
                }
                else
                {
                    seccionRelacionCajaActual            = new SeccionRelacionCaja();
                    seccionRelacionCajaActual.Encabezado = encabezadoSeccion;
                    List <Desglose> desgloses = new List <Desglose>();
                    desgloses.Add(desglose);
                    seccionRelacionCajaActual.DesgloseRelacionCaja = desgloses.ToArray();
                    secciones.Add(encabezadoGrupo + encabezadoSeccion, seccionRelacionCajaActual);
                    // Llenado de Grupo
                    GrupoRelacionCaja grupoRelacionCajaActual;
                    if (grupos.ContainsKey(encabezadoGrupo))
                    {
                        grupoRelacionCajaActual = grupos[encabezadoGrupo];
                        List <SeccionRelacionCaja> seccionesRelacionCajaGrupo = grupoRelacionCajaActual.SeccionesRelacionCaja.ToList();
                        seccionesRelacionCajaGrupo.Add(seccionRelacionCajaActual);
                        grupoRelacionCajaActual.SeccionesRelacionCaja = seccionesRelacionCajaGrupo.ToArray();
                    }
                    else
                    {
                        grupoRelacionCajaActual            = new GrupoRelacionCaja();
                        grupoRelacionCajaActual.Encabezado = encabezadoGrupo;
                        List <SeccionRelacionCaja> seccionesRelacionCajaGrupo = new List <SeccionRelacionCaja>();
                        seccionesRelacionCajaGrupo.Add(seccionRelacionCajaActual);
                        grupoRelacionCajaActual.SeccionesRelacionCaja = seccionesRelacionCajaGrupo.ToArray();
                        grupos.Add(encabezadoGrupo, grupoRelacionCajaActual);
                        // Agregar Grupo hacia Relacion Caja
                        List <GrupoRelacionCaja> gruposActuales = relacionCaja.GruposRelacionCaja.ToList();
                        gruposActuales.Add(grupoRelacionCajaActual);
                        relacionCaja.GruposRelacionCaja = gruposActuales.ToArray();
                    }
                }
            }
            // Asignar Totales
            foreach (var grupo in relacionCaja.GruposRelacionCaja)
            {
                foreach (var seccion in grupo.SeccionesRelacionCaja)
                {
                    foreach (var desglose in seccion.DesgloseRelacionCaja)
                    {
                        //if (seccion.Encabezado.Equals("OTROS INGRESOS"))
                        //{
                        //    seccion.TotalConIVA = 0.00M;
                        //    seccion.TotalSinIVA = 0.00M;
                        //    seccion.IVA = 0.00M;
                        //}
                        //else
                        //{
                        seccion.TotalConIVA = seccion.TotalConIVA + desglose.TotalConIVA;
                        seccion.TotalSinIVA = (seccion.TotalConIVA / (1 + iva));
                        seccion.IVA         = (seccion.TotalConIVA - seccion.TotalSinIVA);
                        //}
                    }
                    grupo.TotalConIVA = grupo.TotalConIVA + seccion.TotalConIVA;
                    grupo.TotalSinIVA = (grupo.TotalConIVA / (1 + iva));
                    grupo.IVA         = (grupo.TotalConIVA - grupo.TotalSinIVA);
                }
                relacionCaja.TotalConIVA = relacionCaja.TotalConIVA + grupo.TotalConIVA;
                relacionCaja.TotalSinIVA = (relacionCaja.TotalConIVA / (1 + iva));
                relacionCaja.IVA         = (relacionCaja.TotalConIVA - relacionCaja.TotalSinIVA);
            }

            // Asignar los Depositos
            List <DepositoAsociado> depositosAsociados = new List <DepositoAsociado>();
            var parametrosDepositos = new Dictionary <string, object>();

            parametrosDepositos.Add("@CodigoTienda", token.CodeStore);
            parametrosDepositos.Add("@CodigoCaja", token.CodeBox);
            foreach (var item in data.GetDataReader("[dbo].[sp_vanti_server_ObtenerDepositosRelacionDeCaja]", parametrosDepositos))
            {
                DepositoAsociado depositoAsociado = new DepositoAsociado();
                depositoAsociado.TotalConIVA = Convert.ToDecimal(item.GetValue(0));;
                ConfigGeneralesCajaTiendaFormaPago configGeneralesCajaTiendaFormaPago = new ConfigGeneralesCajaTiendaFormaPago();
                configGeneralesCajaTiendaFormaPago.IdentificadorFormaPago = item.GetValue(1).ToString();
                configGeneralesCajaTiendaFormaPago.CodigoFormaPago        = item.GetValue(2).ToString();
                configGeneralesCajaTiendaFormaPago.DescripcionFormaPago   = item.GetValue(3).ToString();
                depositoAsociado.InformacionAsociadaFormasPago            = configGeneralesCajaTiendaFormaPago;
                depositosAsociados.Add(depositoAsociado);
            }
            relacionCaja.DepositosAsociados = depositosAsociados.ToArray();
            return(relacionCaja);
        }
Example #8
0
        /// <summary>
        /// Reporte de Relacion de Caja
        /// </summary>
        /// <param name="codeStore">Código del empleado</param>
        /// <param name="fechaInicial">Fecha inicial</param>
        /// <param name="fechaFinal">Fecha final</param>
        /// <param name="numeroPagina">Números por página</param>
        /// <param name="registrosPorPagina">Registros por página</param>
        /// <returns>Respuesta de la operación</returns>
        public RelacionCaja[] ReporteRelacionCaja(int codeStore, string fechaInicial, string fechaFinal, int numeroPagina, int registrosPorPagina)
        {
            ConfigGeneralesCajaTiendaFormaPago InformacionFormaPago = new ConfigGeneralesCajaTiendaFormaPago();

            List <RelacionCaja>        relacionesCaja = new List <RelacionCaja>();
            List <RelacionCajaRespose> relacionCajas  = new List <RelacionCajaRespose>();

            // Objeto y lista de DepositosAsociados
            DepositoAsociado        depositoAso  = new DepositoAsociado();
            List <DepositoAsociado> depositosAso = new List <DepositoAsociado>();

            var parameters = new Dictionary <string, object>();

            parameters.Add("@FechaInicial", fechaInicial);
            parameters.Add("@FechaFinal", fechaFinal);
            parameters.Add("@CodigoTienda", codeStore);
            parameters.Add("@NumeroPagina", numeroPagina);
            parameters.Add("@RegistrosPorPagina", registrosPorPagina);
            foreach (var r in data.GetDataReader("[dbo].[sp_vanti_server_ReporteRelacionesCaja]", parameters))
            {
                // Obtengo datos de relacion de caja
                RelacionCaja relacionCaja = new RelacionCaja();
                relacionCaja.TotalRegistros = Convert.ToInt32(r.GetValue(0));
                relacionCaja.IdRelacionCaja = Convert.ToInt32(r.GetValue(1));
                relacionCaja.CodigoTienda   = Convert.ToInt32(r.GetValue(2));
                relacionCaja.TotalConIVA    = Convert.ToDecimal(r.GetValue(3));
                relacionCaja.TotalSinIVA    = Convert.ToDecimal(r.GetValue(4));
                relacionCaja.IVA            = Convert.ToDecimal(r.GetValue(5));
                relacionCaja.Fecha          = Convert.ToString(r.GetValue(6));

                var parametersRelacion = new Dictionary <string, object>();
                parametersRelacion.Add("@CodigoRelacion", Convert.ToInt32(r.GetValue(1)));
                foreach (var a in data.GetDataReader("dbo.sp_vanti_server_ReporteRelacionCajaDeposito", parametersRelacion))
                {
                    //Obtenemos depositos asociados al id de relacion de caja.
                    DepositoAsociado depositoAsociado = new DepositoAsociado();
                    depositoAsociado.TotalConIVA = Convert.ToDecimal(a.GetValue(0));

                    //Se debe crear el tipo de dato infomacionAsociadaFormaPago
                    ConfigGeneralesCajaTiendaFormaPago tiendaFormaPago = new ConfigGeneralesCajaTiendaFormaPago();
                    tiendaFormaPago.CodigoFormaPago                = Convert.ToString(a.GetValue(1));
                    tiendaFormaPago.IdentificadorFormaPago         = Convert.ToString(a.GetValue(1));
                    tiendaFormaPago.DescripcionFormaPago           = Convert.ToString(a.GetValue(2));
                    depositoAsociado.InformacionAsociadaFormasPago = tiendaFormaPago;
                    depositosAso.Add(depositoAsociado);
                }
                relacionCaja.DepositosAsociados = depositosAso.ToArray();

                List <GrupoRelacionCaja> gruposIncluidosRelacionCaja = new List <GrupoRelacionCaja>();
                relacionCaja.GruposRelacionCaja = gruposIncluidosRelacionCaja.ToArray();
                var grupos    = new Dictionary <String, GrupoRelacionCaja>();
                var secciones = new Dictionary <String, SeccionRelacionCaja>();
                List <GrupoRelacionCaja>   gruposRelacionCaja    = new List <GrupoRelacionCaja>();
                List <SeccionRelacionCaja> seccionesRelacionCaja = new List <SeccionRelacionCaja>();

                var parametros = new Dictionary <string, object>();
                parametros.Add("@IdRelacionCaja", relacionCaja.IdRelacionCaja);
                foreach (var item in data.GetDataReader("[dbo].[sp_vanti_server_ObtenerReporteRelacionDeCaja]", parametros))
                {
                    // Informacion Grupo
                    String encabezadoGrupo = item.GetValue(0).ToString();
                    // Información Sección
                    String encabezadoSeccion = item.GetValue(1).ToString();

                    // Información Desglose
                    Desglose desglose = new Desglose();
                    desglose.Descripcion = item.GetValue(2).ToString();
                    desglose.TotalConIVA = Convert.ToDecimal(item.GetValue(3));

                    // Llenado de Sección
                    SeccionRelacionCaja seccionRelacionCajaActual;
                    if (secciones.ContainsKey(encabezadoGrupo + encabezadoSeccion))
                    {
                        seccionRelacionCajaActual = secciones[encabezadoGrupo + encabezadoSeccion];
                        List <Desglose> desgloses = seccionRelacionCajaActual.DesgloseRelacionCaja.ToList();
                        desgloses.Add(desglose);
                        seccionRelacionCajaActual.DesgloseRelacionCaja = desgloses.ToArray();
                    }
                    else
                    {
                        seccionRelacionCajaActual             = new SeccionRelacionCaja();
                        seccionRelacionCajaActual.Encabezado  = encabezadoSeccion;
                        seccionRelacionCajaActual.IdSeccion   = Convert.ToInt32(item.GetValue(4));
                        seccionRelacionCajaActual.TotalConIVA = Convert.ToDecimal(item.GetValue(5));
                        seccionRelacionCajaActual.TotalSinIVA = Convert.ToDecimal(item.GetValue(6));
                        seccionRelacionCajaActual.IVA         = Convert.ToInt32(item.GetValue(7));
                        List <Desglose> desgloses = new List <Desglose>();
                        desgloses.Add(desglose);
                        seccionRelacionCajaActual.DesgloseRelacionCaja = desgloses.ToArray();
                        secciones.Add(encabezadoGrupo + encabezadoSeccion, seccionRelacionCajaActual);
                        // Llenado de Grupo
                        GrupoRelacionCaja grupoRelacionCajaActual;
                        if (grupos.ContainsKey(encabezadoGrupo))
                        {
                            grupoRelacionCajaActual = grupos[encabezadoGrupo];
                            List <SeccionRelacionCaja> seccionesRelacionCajaGrupo = grupoRelacionCajaActual.SeccionesRelacionCaja.ToList();
                            seccionesRelacionCajaGrupo.Add(seccionRelacionCajaActual);
                            grupoRelacionCajaActual.SeccionesRelacionCaja = seccionesRelacionCajaGrupo.ToArray();
                        }
                        else
                        {
                            grupoRelacionCajaActual             = new GrupoRelacionCaja();
                            grupoRelacionCajaActual.Encabezado  = encabezadoGrupo;
                            grupoRelacionCajaActual.IdGrupo     = Convert.ToInt32(item.GetValue(8));
                            grupoRelacionCajaActual.TotalConIVA = Convert.ToDecimal(item.GetValue(9));
                            grupoRelacionCajaActual.TotalSinIVA = Convert.ToDecimal(item.GetValue(10));
                            grupoRelacionCajaActual.IVA         = Convert.ToDecimal(item.GetValue(11));
                            List <SeccionRelacionCaja> seccionesRelacionCajaGrupo = new List <SeccionRelacionCaja>();
                            seccionesRelacionCajaGrupo.Add(seccionRelacionCajaActual);
                            grupoRelacionCajaActual.SeccionesRelacionCaja = seccionesRelacionCajaGrupo.ToArray();
                            grupos.Add(encabezadoGrupo, grupoRelacionCajaActual);
                            // Agregar Grupo hacia Relacion Caja
                            List <GrupoRelacionCaja> gruposActuales = relacionCaja.GruposRelacionCaja.ToList();
                            gruposActuales.Add(grupoRelacionCajaActual);
                            relacionCaja.GruposRelacionCaja = gruposActuales.ToArray();
                        }
                    }
                }
                relacionesCaja.Add(relacionCaja);
            }
            return(relacionesCaja.ToArray());
        }