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)); }
public List <ProformaDetalle> GetProformaDetalle(Int64 idProforma) { string consulta = ""; consulta += " select "; consulta += " det.id, det.id_proforma, det.rubro_id, rub.nombre as nombre_rubro,rub.hijos,rub.aritmetica, rub.clave,rub.es_total_ingresos,"; consulta += " coalesce(ejercicio_resultado, 0) as ejercicio_resultado, "; consulta += " coalesce(enero_monto_resultado, 0) as enero_monto_resultado, "; consulta += " coalesce(febrero_monto_resultado, 0) as febrero_monto_resultado, "; consulta += " coalesce(marzo_monto_resultado, 0) as marzo_monto_resultado, "; consulta += " coalesce(abril_monto_resultado, 0) as abril_monto_resultado, "; consulta += " coalesce(mayo_monto_resultado, 0) as mayo_monto_resultado, "; consulta += " coalesce(junio_monto_resultado, 0) as junio_monto_resultado, "; consulta += " coalesce(julio_monto_resultado, 0) as julio_monto_resultado, "; consulta += " coalesce(agosto_monto_resultado, 0) as agosto_monto_resultado, "; consulta += " coalesce(septiembre_monto_resultado, 0) as septiembre_monto_resultado, "; consulta += " coalesce(octubre_monto_resultado, 0) as octubre_monto_resultado, "; consulta += " coalesce(noviembre_monto_resultado, 0) as noviembre_monto_resultado, "; consulta += " coalesce(diciembre_monto_resultado, 0) as diciembre_monto_resultado, "; consulta += " coalesce(total_resultado, 0) as total_resultado, "; consulta += " coalesce(acumulado_resultado, 0) as acumulado_resultado, "; consulta += " coalesce(valor_tipo_cambio_resultado, 0) as valor_tipo_cambio_resultado "; consulta += " from proforma_detalle det "; consulta += " inner join rubro rub on det.rubro_id = rub.id "; consulta += " where id_proforma = " + idProforma; consulta += " and det.activo = 'true' "; List <ProformaDetalle> lstProformaDetalle = new List <ProformaDetalle>(); DataTable dataTable = _queryExecuter.ExecuteQuery(consulta.Trim()); foreach (DataRow rdr in dataTable.Rows) { ProformaDetalle proforma_detalle = new ProformaDetalle(); proforma_detalle.id = ToInt64(rdr["id"]); proforma_detalle.id_proforma = ToInt64(rdr["id_proforma"]); proforma_detalle.rubro_id = ToInt64(rdr["rubro_id"]); proforma_detalle.nombre_rubro = Convert.ToString(rdr["nombre_rubro"]); proforma_detalle.aritmetica = Convert.ToString(rdr["aritmetica"]); proforma_detalle.es_total_ingresos = ToBoolean(rdr["es_total_ingresos"]); proforma_detalle.ejercicio_resultado = ToDouble(rdr["ejercicio_resultado"]); proforma_detalle.enero_monto_resultado = ToDouble(rdr["enero_monto_resultado"]); proforma_detalle.febrero_monto_resultado = ToDouble(rdr["febrero_monto_resultado"]); proforma_detalle.marzo_monto_resultado = ToDouble(rdr["marzo_monto_resultado"]); proforma_detalle.abril_monto_resultado = ToDouble(rdr["abril_monto_resultado"]); proforma_detalle.mayo_monto_resultado = ToDouble(rdr["mayo_monto_resultado"]); proforma_detalle.junio_monto_resultado = ToDouble(rdr["junio_monto_resultado"]); proforma_detalle.julio_monto_resultado = ToDouble(rdr["julio_monto_resultado"]); proforma_detalle.agosto_monto_resultado = ToDouble(rdr["agosto_monto_resultado"]); proforma_detalle.septiembre_monto_resultado = ToDouble(rdr["septiembre_monto_resultado"]); proforma_detalle.octubre_monto_resultado = ToDouble(rdr["octubre_monto_resultado"]); proforma_detalle.noviembre_monto_resultado = ToDouble(rdr["noviembre_monto_resultado"]); proforma_detalle.diciembre_monto_resultado = ToDouble(rdr["diciembre_monto_resultado"]); proforma_detalle.total_resultado = ToDouble(rdr["total_resultado"]); proforma_detalle.acumulado_resultado = ToDouble(rdr["acumulado_resultado"]); proforma_detalle.valor_tipo_cambio_resultado = ToDouble(rdr["valor_tipo_cambio_resultado"]); //proforma_detalle.activo = ToBoolean(rdr["activo"]); proforma_detalle.hijos = rdr["hijos"].ToString(); proforma_detalle.clave_rubro = rdr["clave"].ToString(); lstProformaDetalle.Add(proforma_detalle); } Proforma pro = _proformaDataAccessLayer.GetProforma(idProforma); Boolean hayPeriodoActivo = _profHelper.existePeridodoActivo(pro.anio, pro.tipo_proforma_id, pro.tipo_captura_id); Int64 idEmpresa = ToInt64(_queryExecuter.ExecuteQueryUniqueresult( "select empresa_id from centro_costo where id =" + pro.centro_costo_id)["empresa_id"]); List <ProformaDetalle> detallesAniosPosteriores = GetEjercicioPosterior(pro.anio, pro.centro_costo_id, pro.modelo_negocio_id, pro.tipo_captura_id, pro.tipo_proforma_id); lstProformaDetalle.ForEach(detalle => { detalle.editable = hayPeriodoActivo; detalle.mes_inicio = _profHelper.getMesInicio(pro.tipo_proforma_id); detalle.modelo_negocio_id = pro.modelo_negocio_id; detalle.anio = pro.anio; detalle.centro_costo_id = pro.centro_costo_id; detalle.tipo_proforma_id = pro.tipo_proforma_id; detalle.tipo_captura_id = pro.tipo_captura_id; detalle.empresa_id = idEmpresa; detalle.unidad_id = pro.unidad_id; detallesAniosPosteriores.ForEach(posterior => { if (detalle.rubro_id == posterior.rubro_id) { detalle.anios_posteriores_resultado = posterior.anios_posteriores_resultado; } }); }); return(_profHelper.reorderConceptos(lstProformaDetalle)); }