public List <ProformaDetalle> manageBuildProforma(Int64 idCC, int anio, Int64 idTipoProforma, Int64 idTipoCaptura) { CentroCostos cc = ObtenerDatosCC(idCC); string proyeccion = cc.proyeccion; List <ProformaDetalle> detalles; if (proyeccion.Equals(ProyeccionBase)) { detalles = GeneraProforma(idCC, anio, idTipoProforma, idTipoCaptura); detalles = _profHelper.reorderConceptos(detalles); } else if (proyeccion.Equals(ProyeccionMetodo)) { detalles = _profHelper.BuildProformaFromModeloAsTemplate(cc, anio, idTipoProforma, idTipoCaptura); } else if (proyeccion.Equals(ProyeccionShadow)) { Int64 idTipoProforma012 = getIdTipoProformaByClave(ClaveProforma012); detalles = _profHelper.BuildProformaFromModeloAsTemplate(cc, anio, idTipoProforma012, idTipoCaptura); } else { throw new ArgumentException("La proyeccion '" + proyeccion + "' no es soportada"); } Boolean hayPeriodoActivo = _profHelper.existePeridodoActivo(anio, idTipoProforma, idTipoCaptura); detalles.ForEach(detalle => { detalle.editable = hayPeriodoActivo; }); return(_profHelper.setIdInterno(detalles)); }