Пример #1
0
        private static void GetTerceroAction(object sender, DoWorkEventArgs e)
        {
            using (NeuronCloudBaseEntities context = new NeuronCloudBaseEntities(NeuronCloudBaseStorage.EntityConnectionString))
            {
                var tercero = e.Argument as Modelos.Tercero;

                if (tercero != null)
                {
                    bool actualizar = false;

                    var terceroExistente = context.Tercero.FirstOrDefault(terceros => terceros.NumeroUnicoDocumento == tercero.NumeroUnicoDocumento);
                    if (terceroExistente != null)
                    {
                        actualizar = true;
                        e.Result   = ProxyDBToModel.Tercero(terceroExistente);
                    }

                    if (!actualizar)
                    {
                        e.Result = tercero;
                    }
                }
                else
                {
                    throw new InvalidOperationException("Es Objeto no es de Tipo Modelos.Tercero o esta Vacio");
                }
            }
        }
Пример #2
0
        private static void BuscarOrdenesDeServicioAction(object sender, DoWorkEventArgs e)
        {
            var paramentrosBusqueda = e.Argument as ParametrosBusquedaOrdenDeServicio;

            if (paramentrosBusqueda != null)
            {
                var salida             = new List <OrdenDeServicio>();
                var numeroDeResultados = paramentrosBusqueda.NumeroDeResultados;
                if (paramentrosBusqueda.NumeroDeResultados < 0)
                {
                    numeroDeResultados = 100;
                }

                using (NeuronCloudBaseEntities contexto = new NeuronCloudBaseEntities(NeuronCloudBaseStorage.EntityConnectionString))
                {
                    if (paramentrosBusqueda.TodasLasFechas || (!paramentrosBusqueda.FechaInicio.HasValue && !paramentrosBusqueda.FechaFin.HasValue))
                    {
                        if (string.IsNullOrWhiteSpace(paramentrosBusqueda.DocUnicoOsc) && string.IsNullOrWhiteSpace(paramentrosBusqueda.NumeroUnicoDocumento))
                        {
                            Debug.WriteLine("resultadosSinFiltros");
                            var resultadosSinFiltros = (from ordenDeServicio in contexto.OSC
                                                        join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles
                                                        select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados);

                            Debug.WriteLine(((ObjectQuery)resultadosSinFiltros).ToTraceString());

                            foreach (var resultado in resultadosSinFiltros)
                            {
                                var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc);
                                foreach (var oscDet in resultado.Detalle)
                                {
                                    osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet));
                                }

                                salida.Add(osc);
                            }
                        }
                        else if (string.IsNullOrWhiteSpace(paramentrosBusqueda.DocUnicoOsc) && !string.IsNullOrWhiteSpace(paramentrosBusqueda.NumeroUnicoDocumento))
                        {
                            Debug.WriteLine("resultadosFiltroNumeroDoc");
                            var resultadosFiltroNumeroDoc = (from ordenDeServicio in contexto.OSC
                                                             join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles
                                                             where ordenDeServicio.NumeroUnicoDocumento.Contains(paramentrosBusqueda.NumeroUnicoDocumento)
                                                             select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados);

                            Debug.WriteLine(((ObjectQuery)resultadosFiltroNumeroDoc).ToTraceString());

                            foreach (var resultado in resultadosFiltroNumeroDoc)
                            {
                                var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc);
                                foreach (var oscDet in resultado.Detalle)
                                {
                                    osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet));
                                }

                                salida.Add(osc);
                            }
                        }
                        else if (!string.IsNullOrWhiteSpace(paramentrosBusqueda.DocUnicoOsc) && string.IsNullOrWhiteSpace(paramentrosBusqueda.NumeroUnicoDocumento))
                        {
                            Debug.WriteLine("resultadosFiltroOsc");
                            var resultadosFiltroOsc = (from ordenDeServicio in contexto.OSC
                                                       join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles
                                                       where ordenDeServicio.DocUnicoOSC.Contains(paramentrosBusqueda.DocUnicoOsc)
                                                       select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados);

                            Debug.WriteLine(((ObjectQuery)resultadosFiltroOsc).ToTraceString());

                            foreach (var resultado in resultadosFiltroOsc)
                            {
                                var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc);
                                foreach (var oscDet in resultado.Detalle)
                                {
                                    osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet));
                                }

                                salida.Add(osc);
                            }
                        }
                        else
                        {
                            Debug.WriteLine("resultadosFiltroNumeroDocYOsc");
                            var resultadosFiltroNumeroDocYOsc = (from ordenDeServicio in contexto.OSC
                                                                 join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles
                                                                 where ordenDeServicio.NumeroUnicoDocumento.Contains(paramentrosBusqueda.NumeroUnicoDocumento) && ordenDeServicio.DocUnicoOSC.Contains(paramentrosBusqueda.DocUnicoOsc)
                                                                 select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados);

                            Debug.WriteLine(((ObjectQuery)resultadosFiltroNumeroDocYOsc).ToTraceString());

                            foreach (var resultado in resultadosFiltroNumeroDocYOsc)
                            {
                                var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc);
                                foreach (var oscDet in resultado.Detalle)
                                {
                                    osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet));
                                }

                                salida.Add(osc);
                            }
                        }
                    }
                    else if (paramentrosBusqueda.FechaInicio.HasValue && paramentrosBusqueda.FechaFin.HasValue)
                    {
                        if (string.IsNullOrWhiteSpace(paramentrosBusqueda.DocUnicoOsc) && string.IsNullOrWhiteSpace(paramentrosBusqueda.NumeroUnicoDocumento))
                        {
                            Debug.WriteLine("resultadosSinFiltros Con Fecha");
                            var resultadosSinFiltros = (from ordenDeServicio in contexto.OSC
                                                        join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles
                                                        where ordenDeServicio.Fecha >= paramentrosBusqueda.FechaInicio.Value
                                                        where ordenDeServicio.Fecha <= paramentrosBusqueda.FechaFin.Value
                                                        select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados);

                            Debug.WriteLine(((ObjectQuery)resultadosSinFiltros).ToTraceString());

                            foreach (var resultado in resultadosSinFiltros)
                            {
                                var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc);
                                foreach (var oscDet in resultado.Detalle)
                                {
                                    osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet));
                                }

                                salida.Add(osc);
                            }
                        }
                        else if (string.IsNullOrWhiteSpace(paramentrosBusqueda.DocUnicoOsc) && !string.IsNullOrWhiteSpace(paramentrosBusqueda.NumeroUnicoDocumento))
                        {
                            Debug.WriteLine("resultadosFiltroNumeroDoc Con Fecha");
                            var resultadosFiltroNumeroDoc = (from ordenDeServicio in contexto.OSC
                                                             join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles
                                                             where ordenDeServicio.NumeroUnicoDocumento.Contains(paramentrosBusqueda.NumeroUnicoDocumento)
                                                             where ordenDeServicio.Fecha >= paramentrosBusqueda.FechaInicio.Value
                                                             where ordenDeServicio.Fecha <= paramentrosBusqueda.FechaFin.Value
                                                             select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados);

                            Debug.WriteLine(((ObjectQuery)resultadosFiltroNumeroDoc).ToTraceString());

                            foreach (var resultado in resultadosFiltroNumeroDoc)
                            {
                                var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc);
                                foreach (var oscDet in resultado.Detalle)
                                {
                                    osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet));
                                }

                                salida.Add(osc);
                            }
                        }
                        else if (!string.IsNullOrWhiteSpace(paramentrosBusqueda.DocUnicoOsc) && string.IsNullOrWhiteSpace(paramentrosBusqueda.NumeroUnicoDocumento))
                        {
                            Debug.WriteLine("resultadosFiltroOsc Con Fecha");
                            var resultadosFiltroOsc = (from ordenDeServicio in contexto.OSC
                                                       join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles
                                                       where ordenDeServicio.DocUnicoOSC.Contains(paramentrosBusqueda.DocUnicoOsc)
                                                       where ordenDeServicio.Fecha >= paramentrosBusqueda.FechaInicio.Value
                                                       where ordenDeServicio.Fecha <= paramentrosBusqueda.FechaFin.Value
                                                       select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados);

                            Debug.WriteLine(((ObjectQuery)resultadosFiltroOsc).ToTraceString());

                            foreach (var resultado in resultadosFiltroOsc)
                            {
                                var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc);
                                foreach (var oscDet in resultado.Detalle)
                                {
                                    osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet));
                                }

                                salida.Add(osc);
                            }
                        }
                        else
                        {
                            Debug.WriteLine("resultadosFiltroNumeroDocYOsc Con Fecha");
                            var resultadosFiltroNumeroDocYOsc = (from ordenDeServicio in contexto.OSC
                                                                 join det in contexto.OSCDet on ordenDeServicio.DocUnicoOSC equals det.DocUnicoOSC into detalles
                                                                 where ordenDeServicio.NumeroUnicoDocumento.Contains(paramentrosBusqueda.NumeroUnicoDocumento) && ordenDeServicio.DocUnicoOSC.Contains(paramentrosBusqueda.DocUnicoOsc)
                                                                 where ordenDeServicio.Fecha >= paramentrosBusqueda.FechaInicio.Value
                                                                 where ordenDeServicio.Fecha <= paramentrosBusqueda.FechaFin.Value
                                                                 select new { Osc = ordenDeServicio, Detalle = detalles }).Take(numeroDeResultados);

                            Debug.WriteLineIf(resultadosFiltroNumeroDocYOsc is ObjectQuery, ((ObjectQuery)resultadosFiltroNumeroDocYOsc).ToTraceString());

                            foreach (var resultado in resultadosFiltroNumeroDocYOsc)
                            {
                                var osc = ProxyDBToModel.OrdenDeServicio(resultado.Osc);
                                foreach (var oscDet in resultado.Detalle)
                                {
                                    osc.Detalle.Add(ProxyDBToModel.DetalleOrdenDeServicio(oscDet));
                                }

                                salida.Add(osc);
                            }
                        }
                    }
                    else
                    {
                        throw new Exception("Se inicio una Búqueda por Rango de Fechas y una de las Fechas es Nula.");
                    }
                }

                e.Result = salida;
            }
        }