示例#1
0
        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));
        }