Пример #1
0
        protected override List <ReporteVencimientoVo> GetResults()
        {
            //var empresas = new List<int>();
            //var lineas = new List<int>();
            var data = SearchData.Load(ViewState);
            //if(data.Empresa > 0)empresas.Add(data.Empresa);
            //if(data.Linea > 0)lineas.Add(data.Linea);

            //if(data.Empresa <= 0 && data.Linea <= 0)
            //{
            //    empresas.AddRange((from Empresa e in DAOFactory.EmpresaDAO.GetList() select e.Id).ToList());
            //    lineas.AddRange((from Linea l in DAOFactory.LineaDAO.GetList(new[]{-1}) select l.Id).ToList());
            //}

            var list = DAOFactory.DocumentoDAO.FindByTipo(data.TiposDocumento, new List <int> {
                data.Empresa
            }, new List <int> {
                data.Linea
            });

            if (data.SoloConAviso)
            {
                return((from Documento d in list
                        where d.Vencimiento.HasValue && d.Vencimiento.Value.Subtract(data.Fecha).TotalDays < data.DiasAviso
                        orderby d.Vencimiento
                        select new ReporteVencimientoVo(d, data.Fecha)).ToList());
            }

            return((from Documento d in list orderby !d.Vencimiento.HasValue, d.Vencimiento select new ReporteVencimientoVo(d, data.Fecha)).ToList());
        }
Пример #2
0
        protected IList GetAllPartes()
        {
            var search  = SearchData.Load(ViewState);
            var usuario = DAOFactory.UsuarioDAO.FindById(Usuario.Id);

            return(DAOFactory.DocumentoDAO.FindList(search.aseguradora, -1, -1, search.inicio.ToDataBaseDateTime(), search.fin.ToDataBaseDateTime(), 0, -1, usuario));
        }
Пример #3
0
        private List <PartePersonal> GetPartes()
        {
            var data = SearchData.Load(ViewState);
            var list = Reporter.GetData(data.Transportista, data.Locacion, data.Planta, data.Movil, data.Equipo,
                                        data.Inicio.ToDataBaseDateTime(), data.Fin.ToDataBaseDateTime(), data.Estado);

            if (data.Planta <= 0)
            {
                var user     = DAOFactory.UsuarioDAO.FindById(Usuario.Id);
                var lineas   = user.Lineas.OfType <Linea>().Select(l => l.Id).ToList();
                var empresas = user.Empresas.OfType <Empresa>().Select(l => l.Id).ToList();
                return(list.OfType <PartePersonal>()
                       .Where(p => empresas.Count == 0 || (data.Locacion <= 0 || empresas.Contains(data.Locacion)))
                       .Where(p => lineas.Count == 0 || (data.Planta <= 0 || lineas.Contains(data.Planta))).ToList());
            }

            return(list.OfType <PartePersonal>().ToList());
        }
Пример #4
0
        protected override void OnRowDataBound(C1GridView grid, C1GridViewRowEventArgs e, ReporteVencimientoVo dataItem)
        {
            var data = SearchData.Load(ViewState);

            if (dataItem.DiasAlVencimiento == 9999)
            {
                GridUtils.GetCell(e.Row, ReporteVencimientoVo.IndexDiasAlVencimiento).Text = "";
            }
            else if (dataItem.DiasAlVencimiento < 0)
            {
                e.Row.BackColor = Color.Red;
            }
            else if (dataItem.DiasAlVencimiento < data.DiasAviso)
            {
                e.Row.BackColor = Color.Yellow;
            }
            else
            {
                e.Row.BackColor = Color.Green;
            }
        }
Пример #5
0
 protected void CancelarEdicionDePartes()
 {
     Search(SearchData.Load(ViewState));
 }
Пример #6
0
        protected IList GetPartesAVerificar()
        {
            var search     = SearchData.Load(ViewState);
            var documentos = DAOFactory.DocumentoDAO.FindPartesControladosOVerificados(search.aseguradora, search.inicio.ToDataBaseDateTime(), search.fin.ToDataBaseDateTime());

            var partes = from Documento d in documentos select new PartePersonal(d, DAOFactory);

            var byEquipo = new Dictionary <string, List <PartePersonal> >();

            foreach (var parte in partes)
            {
                if (!byEquipo.ContainsKey(parte.Grupo))
                {
                    byEquipo.Add(parte.Grupo, new List <PartePersonal>());
                }
                byEquipo[parte.Grupo].Add(parte);
            }

            var transportista = DAOFactory.TransportistaDAO.FindById(search.aseguradora);

            foreach (var equipo in byEquipo.Keys)
            {
                var oEquipo = DAOFactory.EquipoDAO.FindById(byEquipo[equipo][0].IdEquipo);
                var tarifa  = DAOFactory.TarifaTransportistaDAO.GetTarifaParaCliente(transportista.Id,
                                                                                     oEquipo.Cliente.Id);

                var tarifaCorto = tarifa != null ? tarifa.TarifaTramoCorto : transportista.TarifaTramoCorto;
                var tarifaLargo = tarifa != null ? tarifa.TarifaTramoLargo : transportista.TarifaTramoLargo;

                double kms  = (from p in byEquipo[equipo] select p.KmTotal).Sum();
                var    kmsc = (from p in byEquipo[equipo] select p.KmTotalCalculado).Sum();
                foreach (var parte in byEquipo[equipo])
                {
                    parte.Importe = parte.KmTotal *
                                    (kms < 14000 ? tarifaCorto : tarifaLargo);
                    parte.ImporteControlado = parte.KmTotalCalculado *
                                              (kmsc < 14000 ? tarifaCorto : tarifaLargo);
                }
            }
            var sums = new Dictionary <string, string>();

            var partesOrdenados = new List <PartePersonal>();

            foreach (var list in byEquipo.Values)
            {
                partesOrdenados.AddRange(list);

                var    horas            = TimeSpan.Zero;
                var    horasControladas = TimeSpan.Zero;
                var    horasDiff        = TimeSpan.Zero;
                var    km                = 0;
                double kmControlado      = 0;
                double kmDiff            = 0;
                double importe           = 0;
                double importeControlado = 0;
                double importeDiff       = 0;
                foreach (var parte in list)
                {
                    horas            = horas.Add(parte.Horas);
                    horasControladas = horasControladas.Add(parte.HorasControladas);
                    horasDiff        = horasDiff.Add(parte.DiffHoras);
                    km                += parte.KmTotal;
                    kmControlado      += parte.KmTotalCalculado;
                    kmDiff            += parte.DiffKmTotal;
                    importe           += parte.Importe;
                    importeControlado += parte.ImporteControlado;
                    importeDiff       += parte.DiffImporte;
                }
                var totales = string.Format(TotalesTemplate,
                                            list[0].Grupo,
                                            string.Format(HeaderHorasTemplate, horas, horasControladas, horasDiff),
                                            string.Format(HeaderKmTemplate, km, kmControlado, kmDiff),
                                            string.Format(HeaderImporteTemplate, importe, importeControlado, importeDiff)
                                            );

                sums.Add(list[0].Grupo, totales);
            }
            foreach (var ordenado in partesOrdenados)
            {
                if (ordenado.TipoServicio == ParteCampos.ListaTipoServicios[0])
                {
                    ordenado.Equipo = sums[ordenado.Grupo];
                }
                else
                {
                    ordenado.TipoServicio = sums[ordenado.Grupo];
                }
            }


            return(partesOrdenados);
        }