public ExpensesReportVerticalRpt GetInformeGastoVerticalListReport(ExpenseList list,
                                                                           ExpedienteList expedientes,
                                                                           ReportFilter filter,
                                                                           InputDeliveryLineList conceptos)
        {
            if (list == null)
            {
                return(null);
            }

            ExpensesReportVerticalRpt doc = new ExpensesReportVerticalRpt();

            List <ResumenGastoPrint> pList     = new List <ResumenGastoPrint>();
            InputDeliveryList        albaranes = InputDeliveryList.GetList(false);

            foreach (ExpedientInfo item in expedientes)
            {
                if (filter.SoloIncompletos)
                {
                    if (list.ExpedienteIsComplete(item.Oid))
                    {
                        continue;
                    }
                }

                ResumenGastoPrint registro = ResumenGastoPrint.New(item, list, conceptos, albaranes);

                if (registro.Proveedor != null ||
                    registro.Naviera != null ||
                    registro.Despachante != null ||
                    registro.TransportistaDestino != null ||
                    registro.TransportistaOrigen != null)
                {
                    pList.Add(registro);
                }
            }

            doc.SetDataSource(pList);

            FormatHeader(doc);

            return(doc);
        }
        public ExpensesReportRpt GetInformeGastoListReport(ExpenseList list,
                                                           ExpedienteList expedients,
                                                           ReportFilter filter,
                                                           ReportFormat format)
        {
            if (list == null)
            {
                return(null);
            }

            ExpensesReportRpt doc = new ExpensesReportRpt();

            List <GastoPrint> pList = new List <GastoPrint>();

            //long oid_exp = 0;

            foreach (ExpenseInfo item in list)
            {
                if (filter.SoloIncompletos)
                {
                    if (list.ExpedienteIsComplete(item.OidExpediente))
                    {
                        continue;
                    }
                }

                pList.Add(GastoPrint.New(item));

                //if ((oid_exp != item.OidExpediente) && (item.OidExpediente != 0))
                //{
                //    oid_exp = item.OidExpediente;

                //    ExpedienteInfo expediente = expedientes.GetItem(item.OidExpediente);

                //    CheckGasto(ECategoriaGasto.GeneralesExpediente, ETipoAcreedor.Naviera, expediente, list, pList);
                //    CheckGasto(ECategoriaGasto.GeneralesExpediente, ETipoAcreedor.Despachante, expediente, list, pList);
                //    CheckGasto(ECategoriaGasto.GeneralesExpediente, ETipoAcreedor.TransportistaOrigen, expediente, list, pList);
                //    CheckGasto(ECategoriaGasto.GeneralesExpediente, ETipoAcreedor.TransportistaDestino, expediente, list, pList);
                //    CheckGasto(ECategoriaGasto.Stock, ETipoAcreedor.Proveedor, expediente, list, pList);
                //}
            }

            //foreach (ExpedienteInfo item in expedientes)
            //{
            //    if (!list.ExistsExpediente(item.Oid))
            //    {
            //        CheckGasto(ECategoriaGasto.GeneralesExpediente, ETipoAcreedor.Naviera, item, list, pList);
            //        CheckGasto(ECategoriaGasto.GeneralesExpediente, ETipoAcreedor.Despachante, item, list, pList);
            //        CheckGasto(ECategoriaGasto.GeneralesExpediente, ETipoAcreedor.TransportistaOrigen, item, list, pList);
            //        CheckGasto(ECategoriaGasto.GeneralesExpediente, ETipoAcreedor.TransportistaDestino, item, list, pList);
            //        CheckGasto(ECategoriaGasto.Stock, ETipoAcreedor.Proveedor, item, list, pList);
            //    }
            //}

            doc.SetDataSource(pList);

            FormatHeader(doc);
            FormatReport(doc, filter, format);

            return(doc);
        }