Esempio n. 1
0
        public SalaCunaReporteQueryResult Retrieve(SalaCunaReporteQuery query)
        {
            SalaCunaReporteQueryResult queryResult      = new SalaCunaReporteQueryResult();
            QueryDispatcher            _queryDispatcher = ServiceLocator.Current.GetInstance <QueryDispatcher>();

            if (GlobalVars.MockedMode)
            {
                SalasCunaDtoMocked salasCunaMocked = SalasCunaDtoMocked.GetInstance();
                queryResult.SalasCuna = salasCunaMocked.GetReporteMocked();
            }
            else
            {
                Int64 cero = 0;

                var querySession = _repositryLocalScheme.Session.CallFunction <SalasCunaReporteDto>("PR_CONS_REP_SALAS_CUNA (?,?,?,?,?,?,?,?,?,?,?,?,?) ");

                querySession.SetParameter(0, DateTimeHelper.GetMinDateTimeNullable(query.FechaDesde));
                querySession.SetParameter(1, DateTimeHelper.GetMinDateTimeNullable(query.FechaHasta));
                querySession.SetParameter(2, query.PersonaJuridicaId != null? query.PersonaJuridicaId : -1);
                querySession.SetParameter(3, query.SalaCunaId != null ? query.SalaCunaId : -1);
                querySession.SetParameter(4, query.EstadoCorrecto ? 'S' : 'N');
                querySession.SetParameter(5, query.DadosBaja ? 'S' : 'N');
                querySession.SetParameter(6, query.DepartamentoId != cero ? query.DepartamentoId : -1);
                querySession.SetParameter(7, query.LocalidadId != cero ? query.LocalidadId : -1);
                querySession.SetParameter(8, query.BarrioId != cero ? query.BarrioId : -1);
                querySession.SetParameter(9, query.Codigo);
                querySession.SetParameter(10, query.Zona == 0? 1 : query.Zona);
                querySession.SetParameter(11, query.PaginationFrom);
                querySession.SetParameter(12, query.PaginationTo);


                queryResult.SalasCuna = (List <SalasCunaReporteDto>)querySession.List <SalasCunaReporteDto>();

                foreach (SalasCunaReporteDto salaCuna in queryResult.SalasCuna)
                {
                    //convenios
                    var queryConvenios = new ConveniosDeSalaByFiltersQuery {
                        SalaCunaId = (int)salaCuna.SalaCunaId
                    };
                    var resultadoConvenios = _queryDispatcher.Dispatch <ConveniosDeSalaByFiltersQuery, ConveniosDeSalaCunaQueryResult>(queryConvenios);

                    salaCuna.Convenios = resultadoConvenios.ConveniosDeSalaCunaDto;
                    //fin convenios

                    //requisitos
                    var queryRequisitos = new RequisitosDeSalaByFiltersQuery {
                        IdSalaCuna = (int)salaCuna.SalaCunaId
                    };
                    var resultadoRequisitos = _queryDispatcher.Dispatch <RequisitosDeSalaByFiltersQuery, RequisitosReporteSalaCunaQueryResult>(queryRequisitos);

                    salaCuna.ListRequisitos = resultadoRequisitos.RequisitosPresentadosDto;
                    //fin requisitos

                    //inmuebles
                    var queryInmuebles = new InmuebleByFiltersQuery {
                        SalaCunaId = (int)salaCuna.SalaCunaId
                    };
                    var resultadoInmuebles = _queryDispatcher.Dispatch <InmuebleByFiltersQuery, InmuebleByFiltersQueryResult>(queryInmuebles);

                    double monto = 0;
                    foreach (InmuebleDto inmueble in resultadoInmuebles.InmueblesDto)
                    {
                        monto += inmueble.Monto;
                    }

                    salaCuna.MontoRefacciones = monto;
                    salaCuna.Inmuebles        = resultadoInmuebles.InmueblesDto;
                    //fin inmuebles
                }
            }

            return(queryResult);
        }