public PagoAcreedorListRpt GetPagoAcreedorListReport(PaymentSummaryList list)
        {
            if (list == null)
            {
                return(null);
            }

            PagoAcreedorListRpt doc = new PagoAcreedorListRpt();

            doc.SetDataSource(list);
            doc.SetParameterValue("Empresa", Schema.Name);
            doc.SetParameterValue("Title", Title);
            doc.SetParameterValue("Filter", Filter);

            return(doc);
        }
        public PaymentsReportRpt GetInformeControlPagosReport(InputInvoiceList facturas,
                                                              ExpedienteList expedientes,
                                                              PaymentSummaryList resumen,
                                                              ReportFilter filter,
                                                              ReportFormat format)
        {
            List <ExpedientInfo> explist = new List <ExpedientInfo>();

            foreach (ExpedientInfo exp in expedientes)
            {
                if ((filter.exp_inicial.Length == 0 || exp.Codigo.CompareTo(filter.exp_inicial) >= 0) &&
                    (filter.exp_final.Length == 0 || exp.Codigo.CompareTo(filter.exp_final) <= 0))
                {
                    explist.Add(exp);
                }
            }

            List <ControlPagosPrint> lista = new List <ControlPagosPrint>();
            ExpedientInfo            obj   = null;
            DateTime fecha_pago            = DateTime.MinValue;

            string oidS = string.Empty;
            long   oid  = 0;

            foreach (InputInvoiceInfo item in facturas)
            {
                if (!CompFechas(filter, item.Prevision, item.FechaPagoFactura))
                {
                    continue;
                }
                if ((filter.tipo == EPagos.Pagados) && !item.Pagada)
                {
                    continue;
                }
                if ((filter.tipo == EPagos.Pendientes) && item.Pagada)
                {
                    continue;
                }

                switch (filter.tipo_informe)
                {
                case ETipoInforme.Despachante:

                    if (item.ETipoAcreedor != ETipoAcreedor.Despachante)
                    {
                        continue;
                    }

                    if (filter.objeto_detallado != null)
                    {
                        if (!item.OidAcreedor.Equals(((DespachanteInfo)filter.objeto_detallado).Oid))
                        {
                            continue;
                        }
                    }

                    obj  = expedientes.GetItem(item.OidExpediente);
                    oidS = ((long)(item.TipoAcreedor + 1)).ToString("00") + "00000" + item.OidAcreedor.ToString();
                    oid  = Convert.ToInt64(oidS);
                    lista.Add(item.GetControlPagosPrintObject(obj, resumen.GetItem(oid)));

                    break;

                case ETipoInforme.Naviera:

                    if (item.ETipoAcreedor != ETipoAcreedor.Naviera)
                    {
                        continue;
                    }

                    if (filter.objeto_detallado != null)
                    {
                        if (!item.OidAcreedor.Equals(((NavieraInfo)filter.objeto_detallado).Oid))
                        {
                            continue;
                        }
                    }

                    oidS = ((long)(item.TipoAcreedor + 1)).ToString("00") + "00000" + item.OidAcreedor.ToString();
                    oid  = Convert.ToInt64(oidS);

                    obj = expedientes.GetItem(item.OidExpediente);
                    lista.Add(item.GetControlPagosPrintObject(obj, resumen.GetItem(oid)));

                    break;

                case ETipoInforme.Proveedor:

                    if (item.ETipoAcreedor != ETipoAcreedor.Proveedor)
                    {
                        continue;
                    }

                    obj = expedientes.GetItem(item.OidExpediente);

                    if (filter.objeto_detallado != null)
                    {
                        if (!item.OidAcreedor.Equals(((ProveedorInfo)filter.objeto_detallado).Oid))
                        {
                            continue;
                        }
                    }

                    oidS = ((long)(item.TipoAcreedor + 1)).ToString("00") + "00000" + item.OidAcreedor.ToString();
                    oid  = Convert.ToInt64(oidS);

                    obj = expedientes.GetItem(item.OidExpediente);
                    lista.Add(item.GetControlPagosPrintObject(obj, resumen.GetItem(oid)));

                    break;

                case ETipoInforme.TransportistaDestino:

                    if (item.ETipoAcreedor != ETipoAcreedor.TransportistaDestino)
                    {
                        continue;
                    }

                    if (filter.objeto_detallado != null)
                    {
                        if (item.OidAcreedor.Equals(((Transporter)filter.objeto_detallado).Oid))
                        {
                            continue;
                        }
                    }

                    oidS = ((long)(item.TipoAcreedor + 1)).ToString("00") + "00000" + item.OidAcreedor.ToString();
                    oid  = Convert.ToInt64(oidS);

                    obj = expedientes.GetItem(item.OidExpediente);
                    lista.Add(item.GetControlPagosPrintObject(obj, resumen.GetItem(oid)));

                    break;

                case ETipoInforme.TransportistaOrigen:

                    if (item.ETipoAcreedor != ETipoAcreedor.TransportistaOrigen)
                    {
                        continue;
                    }

                    if (filter.objeto_detallado != null)
                    {
                        if (item.OidAcreedor.Equals(((TransporterInfo)filter.objeto_detallado).Oid))
                        {
                            continue;
                        }
                    }

                    oidS = ((long)(item.TipoAcreedor + 1)).ToString("00") + "00000" + item.OidAcreedor.ToString();
                    oid  = Convert.ToInt64(oidS);

                    obj = expedientes.GetItem(item.OidExpediente);
                    lista.Add(item.GetControlPagosPrintObject(obj, resumen.GetItem(oid)));

                    break;

                case ETipoInforme.Todos:

                    oidS = ((long)(item.TipoAcreedor + 1)).ToString("00") + "00000" + item.OidAcreedor.ToString();
                    oid  = Convert.ToInt64(oidS);

                    obj = expedientes.GetItem(item.OidExpediente);
                    lista.Add(item.GetControlPagosPrintObject(obj, resumen.GetItem(oid)));

                    break;
                }
            }

            PaymentsReportRpt doc = new PaymentsReportRpt();

            if (format.Vista == EReportVista.Resumido)
            {
                doc.TitulosDetalle.SectionFormat.EnableSuppress = true;
                doc.Detalle.SectionFormat.EnableSuppress        = true;
                doc.GHElemento.SectionFormat.EnableSuppress     = true;
                doc.ReportDefinition.ReportObjects["SubtotalesAcreedorLB"].ObjectFormat.EnableSuppress = true;
            }
            else
            {
                doc.TitulosResumido.SectionFormat.EnableSuppress = true;
                doc.ReportDefinition.ReportObjects["NombreAcreedor"].ObjectFormat.EnableSuppress = true;
            }

            doc.SetDataSource(lista);

            FormatHeader(doc);

            return(doc);
        }