Ejemplo n.º 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));
        }
Ejemplo n.º 2
0
        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));
        }