out_corec = cor_CreateEmptyNamed(cnx, "corec2 for getSchemaX");
__CREATE_QUERY("
SELECT * , prop_group_path AS get_group_path, prop_name AS get_prop_name ,
(SELECT text FROM co_%s_label_prop WHERE id_meta_prop=P.id AND language='%s') AS label,
(SELECT text FROM co_%s_label_class AS L, co_%s_meta_class AS C WHERE C.class_name='%s' AND L.id_meta_class=C.id AND L.language='%s') AS class_label
FROM co_%s_meta_prop AS P WHERE class_name=\'%s\' AND P.prop_representant > %d ORDER BY prop_position , prop_group_path",
par_area, cnx->language,
par_area, par_area, par_class, cnx->language,
par_area,par_class, -1)
__SQL_GET_RESULT
__ASSERT(ok, "Could not get properties in getSchemaX, par_area: '%s', par_class: '%s'", par_area, par_class)
nTuples = cor_GetTupleCount(cnx, corec);
nProps = cor_GetFieldCount(cnx, corec);
n_prop_foreign = cor_GetFieldNum (cnx, corec, "prop_foreign");
n_prop_foreign_prop = cor_GetFieldNum (cnx, corec, "prop_foreign_prop");
n_prop_foreign_dynamic = cor_GetFieldNum (cnx, corec, "prop_foreign_dynamic");
n_prop_foreign_dynamic_classes = cor_GetFieldNum (cnx, corec, "prop_foreign_dynamic_classes");
n_prop_foreign_dynamic_prop = cor_GetFieldNum (cnx, corec, "prop_foreign_dynamic_prop");
n_prop_name = cor_GetFieldNum (cnx, corec, "prop_name");
n_prop_group_path = cor_GetFieldNum (cnx, corec, "get_group_path");
for(i=0; i<nTuples; i++)
{
cor_AppendRecord(cnx, out_corec, corec, i);
prop_foreign = cor_GetCopyOfValue(cnx, corec, i, n_prop_foreign);
prop_foreign_prop = cor_GetCopyOfValue(cnx, corec, i, n_prop_foreign_prop);
prop_foreign_dynamic = cor_GetCopyOfValue(cnx, corec, i, n_prop_foreign_dynamic);
prop_foreign_dynamic_classes = cor_GetCopyOfValue(cnx, corec, i, n_prop_foreign_dynamic_classes);
prop_foreign_dynamic_prop = cor_GetCopyOfValue(cnx, corec, i, n_prop_foreign_dynamic_prop);
prop_name = cor_GetCopyOfValue(cnx, corec, i, n_prop_name);
prop_group_path = cor_GetCopyOfValue(cnx, corec, i, n_prop_group_path);
if(strlen(prop_foreign) >0)
{
get_prop_base = ap_psprintf(p, "%s>%s>%s", prop_name, prop_foreign_prop, prop_foreign);
loc_getSchemaX(cnx, out_corec, par_area, prop_foreign, par_id, deep_level, cur_level,get_prop_base, prop_group_path);
}
if(!strcmp(prop_foreign_dynamic,"1"))
{
@co_getProp(par_area, par_class, par_id, prop_foreign_dynamic_prop);
// if(err==0) dynamic_class_name = atoi(get_str);
get_prop_base = ap_psprintf(p, "%s>%s>%s", prop_name, prop_foreign_prop, get_str);
cou_sendMessageX(cnx, ap_psprintf(p, "get_prop_base %s", get_prop_base), CO_MSG_DEBUG);
cou_sendMessageX(cnx, ap_psprintf(p, "executing loc_getSchemaX"), CO_MSG_DEBUG);
loc_getSchemaX(cnx, out_corec, par_area, get_str, par_id, deep_level, cur_level,get_prop_base, prop_group_path);
cou_sendMessageX(cnx, ap_psprintf(p, "finished execution loc_getSchemaX"), CO_MSG_DEBUG);
}
cou_sendMessageX(cnx, ap_psprintf(p, "finished %d", i), CO_MSG_DEBUG);
}
__CREATE_JS_FROM(out_corec)
cou_setReturnValue(cnx, out_corec, CO_RECORDSET);
__CLEAR_RESULT