Ejemplo n.º 1
0
        public List <CXC_011_Info> get_list(int IdEmpresa, int IdSucursal, decimal IdCliente, int Idtipo_cliente, DateTime fechaCorte, bool MostrarSoloCarteraVencida, int DiasVencimiento)
        {
            try
            {
                int IdSucursalIni = IdSucursal;
                int IdSucursalFin = IdSucursal == 0 ? 999999 : IdSucursal;

                int IdClienteIni = Convert.ToInt32(IdCliente);
                int IdClienteFin = IdCliente == 0 ? 999999999 : Convert.ToInt32(IdCliente);

                decimal Idtipo_clienteIni = Idtipo_cliente;
                decimal Idtipo_clienteFin = Idtipo_cliente == 0 ? 9999999 : Idtipo_cliente;

                fechaCorte = fechaCorte.Date;

                List <CXC_011_Info> Lista;
                using (Entities_reportes Context = new Entities_reportes())
                {
                    var lst = (from q in Context.SPCXC_011(IdEmpresa, IdSucursalIni, IdSucursalFin, IdClienteIni, IdClienteFin, Idtipo_clienteIni, Idtipo_clienteFin, fechaCorte, MostrarSoloCarteraVencida, DiasVencimiento)
                               select new CXC_011_Info
                    {
                        IdEmpresa = q.IdEmpresa,
                        IdSucursal = q.IdSucursal,
                        IdBodega = q.IdBodega,
                        IdCliente = q.IdCliente,
                        Codigo = q.Codigo,
                        IdCbteVta = q.IdCbteVta,
                        CodCbteVta = q.CodCbteVta,
                        vt_fecha = q.vt_fecha,
                        vt_fech_venc = q.vt_fech_venc,
                        vt_NumFactura = q.vt_NumFactura,
                        vt_Observacion = q.vt_Observacion,
                        vt_plazo = q.vt_plazo,
                        vt_serie1 = q.vt_serie1,
                        vt_serie2 = q.vt_serie2,
                        vt_tipoDoc = q.vt_tipoDoc,
                        Su_Descripcion = q.Su_Descripcion,
                        pe_cedulaRuc = q.pe_cedulaRuc,
                        pe_telefonoOfic = q.pe_telefonoOfic,
                        pe_nombreCompleto = q.pe_nombreCompleto,
                        Valor_Original = q.Valor_Original,
                        Valor_vencido = q.Valor_vencido,
                        Valor_x_Vencer = q.Valor_x_Vencer,
                        Vencer_30_Dias = q.Vencer_30_Dias,
                        Vencer_60_Dias = q.Vencer_60_Dias,
                        Vencer_90_Dias = q.Vencer_90_Dias,
                        Dias_Vencidos = q.Dias_Vencidos,
                        Idtipo_cliente = q.Idtipo_cliente,
                        Mayor_a_90Dias = q.Mayor_a_90Dias,
                        Saldo = q.Saldo,
                        Total_Pagado = q.Total_Pagado,
                        TelefonoContacto = q.TelefonoContacto,
                        NomContacto = q.NomContacto,
                        Descripcion_tip_cliente = q.Descripcion_tip_cliente,
                        Orden = (q.Dias_Vencidos < 0 ? 1 : 2),
                        Grupo = (q.Dias_Vencidos < 0 ? "VENCIDO" : "POR VENCER")
                    }).ToList();

                    var lstA = lst.GroupBy(q => new { q.Orden, q.IdCliente }).Select(q => new
                    {
                        Orden      = q.Key.Orden,
                        IdCliente  = q.Key.IdCliente,
                        MaximoDias = q.Min(g => g.Dias_Vencidos)
                    }).ToList();

                    Lista = (from g in lstA
                             join q in lst
                             on new { g.Orden, g.IdCliente } equals new { q.Orden, q.IdCliente }
                             select new CXC_011_Info
                    {
                        IdEmpresa = q.IdEmpresa,
                        IdSucursal = q.IdSucursal,
                        IdBodega = q.IdBodega,
                        IdCliente = q.IdCliente,
                        Codigo = q.Codigo,
                        IdCbteVta = q.IdCbteVta,
                        CodCbteVta = q.CodCbteVta,
                        vt_fecha = q.vt_fecha,
                        vt_fech_venc = q.vt_fech_venc,
                        vt_NumFactura = q.vt_NumFactura,
                        vt_Observacion = q.vt_Observacion,
                        vt_plazo = q.vt_plazo,
                        vt_serie1 = q.vt_serie1,
                        vt_serie2 = q.vt_serie2,
                        vt_tipoDoc = q.vt_tipoDoc,
                        Su_Descripcion = q.Su_Descripcion,
                        pe_cedulaRuc = q.pe_cedulaRuc,
                        pe_telefonoOfic = q.pe_telefonoOfic,
                        pe_nombreCompleto = q.pe_nombreCompleto,
                        Valor_Original = q.Valor_Original,
                        Valor_vencido = q.Valor_vencido,
                        Valor_x_Vencer = q.Valor_x_Vencer,
                        Vencer_30_Dias = q.Vencer_30_Dias,
                        Vencer_60_Dias = q.Vencer_60_Dias,
                        Vencer_90_Dias = q.Vencer_90_Dias,
                        Dias_Vencidos = q.Dias_Vencidos,
                        Idtipo_cliente = q.Idtipo_cliente,
                        Mayor_a_90Dias = q.Mayor_a_90Dias,
                        Saldo = q.Saldo,
                        Total_Pagado = q.Total_Pagado,
                        TelefonoContacto = q.TelefonoContacto,
                        NomContacto = q.NomContacto,
                        Descripcion_tip_cliente = q.Descripcion_tip_cliente,
                        Orden = q.Orden,
                        Grupo = q.Grupo,
                        MaximoDias = g.MaximoDias
                    }).ToList();
                }
                return(Lista);
            }
            catch (Exception EX)
            {
                throw;
            }
        }