Skip to content
Snippets Groups Projects
Commit 787d9f5d authored by Johannes Hörmann's avatar Johannes Hörmann
Browse files

use sqlbuilder in basic

parent 9c6c6c6c
No related branches found
No related tags found
No related merge requests found
Showing
with 132 additions and 119 deletions
......@@ -8,8 +8,8 @@ import("Sql_lib");
var data = newSelect("TITLE, SCORE")
.from("CLASSIFICATIONSCORE")
.orderBy("SORT")
.and("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", "$field.CLASSIFICATIONTYPEID")
.table();
.whereIfSet("CLASSIFICATIONSCORE.CLASSIFICATIONTYPE_ID", "$field.CLASSIFICATIONTYPEID")
.table(true);
var resultText = "";
......
......@@ -19,9 +19,10 @@ var diff = PermissionUtil.getActionDiff(permissionid, actionNew);
if (diff.length > 0) {
// delete all linked permission actions
table = "ASYS_PERMISSIONACTION";
cond = SqlCondition.begin().and("ASYS_PERMISSION_ID = '" + permissionid + "'").build();
var dbDeletes = db.deleteData(table, cond, alias);
newWhere("ASYS_PERMISSIONACTION.ASYS_PERMISSION_ID", permissionid, "# = ?", undefined, alias)
.deleteData(true, table);
// insert the different actions
cols = db.getColumns(table, alias);
for each (var action in actionNew) {
......
import("system.logging");
import("Sql_lib");
import("system.project");
import("system.vars");
......@@ -8,8 +9,6 @@ import("Permission_lib");
var res = [];
var roleTitle = "";
var entityTitle = "";
var sqlCond = "";
var sqlStr = "";
let alias = SqlUtils.getSystemAlias();
var roleInternalEveryone = "INTERNAL_EVERYONE";
......@@ -28,40 +27,61 @@ for each (let entityMetaData in entitiesMetaData) {
}
}
var sqlCondEntityUsePermFlagSet = " and ENTITY_ID in ('" + entitiesUsePermFlagSet.join("','") + "')";
if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
roleTitle = vars.getString("$param.RoleTitle_param");
sqlCond = " where ROLE_ID = '" + roleTitle + "'";
sqlStr = "select distinct ENTITY_ID from ASYS_PERMISSIONSET" + sqlCond + sqlCondEntityUsePermFlagSet;
} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) {
entityTitle = vars.getString("$param.EntityTitle_param");
sqlCond = " where ENTITY_ID = '" + entityTitle + "'";
sqlStr = "select distinct ROLE_ID from ASYS_PERMISSIONSET" + sqlCond + sqlCondEntityUsePermFlagSet;
var rolesOrEntitiesSelect = new SqlBuilder(alias);
var rolesOrEntities = [];
// select nothing if no entities have the perm flag set
if (entitiesUsePermFlagSet.length > 0)
{
if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
roleTitle = vars.getString("$param.RoleTitle_param");
rolesOrEntitiesSelect.select("distinct ENTITY_ID")
.from("ASYS_PERMISSIONSET")
.where("ASYS_PERMISSIONSET.ROLE_ID", roleTitle)
}
else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param"))
{
entityTitle = vars.getString("$param.EntityTitle_param");
rolesOrEntitiesSelect.select("distinct ROLE_ID")
.from("ASYS_PERMISSIONSET")
.where("ASYS_PERMISSIONSET.ENTITY_ID", entityTitle)
}
rolesOrEntities = rolesOrEntitiesSelect
.and("ASYS_PERMISSIONSET.ENTITY_ID", entitiesUsePermFlagSet, SqlBuilder.IN())
.arrayColumn();
}
var rolesOrEntities = db.array(db.COLUMN, sqlStr);
var entityPermSetId = "";
for each (var entry in rolesOrEntities) { // entry contains either a role or an entity, depending on which param exists
if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) {
entityPermSetId = PermissionUtil.getSetRoot(roleTitle, entry);
} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) {
entityPermSetId = PermissionUtil.getSetRoot(entry, entityTitle);
}
var recordPermSetId = db.array(db.COLUMN, SqlCondition.begin().and("ASYS_PERMISSIONSET_ID = '" + entityPermSetId + "'").and("ACCESSTYPE = 'R'")
.buildSql("select ASYS_PERMISSIONSETID from ASYS_PERMISSIONSET"), alias);
var currOverview = [entityPermSetId, entry, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"];
// default entity permissions
currOverview = prepareOverview(entityPermSetId, currOverview, "default");
if (entityPermSetId)
{
var recordPermSetId = new SqlBuilder(alias)
.select("ASYS_PERMISSIONSETID")
.from("ASYS_PERMISSIONSET")
.where("ASYS_PERMISSIONSET.ASYS_PERMISSIONSET_ID", entityPermSetId)
.and("ACCESSTYPE = 'R'")
.arrayColumn();
var currOverview = [entityPermSetId, entry, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"];
// conditional record permissions
currOverview = prepareOverview(recordPermSetId, currOverview, "conditional");
// default entity permissions
currOverview = prepareOverview(entityPermSetId, currOverview, "default");
// default record permissions
currOverview = prepareOverview(recordPermSetId, currOverview, "default");
// conditional record permissions
currOverview = prepareOverview(recordPermSetId, currOverview, "conditional");
res.push(currOverview);
// default record permissions
currOverview = prepareOverview(recordPermSetId, currOverview, "default");
res.push(currOverview);
}
}
result.object(res);
......
import("system.db");
import("system.result");
import("Sql_lib");
var cond = new SqlCondition();
cond.andPrepareVars("CONTACT.ORGANISATION_ID", "$param.OrgId_param");
cond.andPrepareVars("PERSON.CONTACT_ID", "$param.ContactId_param");
var cond = newWhere()
.andIfSet("CONTACT.ORGANISATION_ID", "$param.OrgId_param")
.andIfSet("PERSON.CONTACT_ID", "$param.ContactId_param");
//TODO; add OBJECT_ID (probably another param)
//TODO: use a preparedCondition (.build instead of .translate) when available #1030812 #1034026
result.string(cond.translate("1 = 1"));
\ No newline at end of file
//TODO: use a preparedCondition (.build instead of .toString) when available #1030812 #1034026
result.string(cond.toString());
\ No newline at end of file
import("system.vars");
import("Keyword_lib");
import("system.result");
import("system.db");
import("system.vars");
import("system.neon");
import("Sql_lib");
import("KeywordRegistry_basic");
import("system.result");
import("Keyword_lib");
import("Sql_lib");
var cond = SqlCondition.begin()
var sex = db.cell(cond.andPrepareVars("SALUTATION.SALUTATION", "$field.SALUTATION").buildSql("select SEX from SALUTATION", "1=2"))
var sex = vars.get("$field.GENDER");
if (sex)
{
......
import("system.result");
import("system.db");
import("system.vars");
import("system.neon");
import("Sql_lib");
var cond = SqlCondition.begin()
var sex = db.cell(cond.andPrepareVars("SALUTATION.SALUTATION", "$field.SALUTATION").buildSql("select SEX from SALUTATION", "1=2"))
result.string(sex)
\ No newline at end of file
var sex = newSelect("SEX")
.from("SALUTATION")
.whereIfSet("SALUTATION.SALUTATION", "$field.SALUTATION")
.cell(true);
if (sex)
result.string(sex);
\ No newline at end of file
......@@ -6,7 +6,11 @@ import("Sql_lib");
var orgId = vars.get("$field.ORGANISATION_ID");
if (orgId)
{
var cond = SqlCondition.begin().and("CONTACT.PERSON_ID is null").andPrepare("CONTACT.ORGANISATION_ID", orgId);
var orgRelId = db.cell(cond.buildSql("select CONTACT.CONTACTID from CONTACT", "1 = 1"));
var orgRelId = newSelect("CONTACT.CONTACTID")
.from("CONTACT")
.where("CONTACT.PERSON_ID is null")
.and("CONTACT.ORGANISATION_ID", orgId)
.cell();
result.string(orgRelId);
}
\ No newline at end of file
......@@ -3,15 +3,14 @@ import("system.db");
import("system.result");
import("Sql_lib");
var cond = new SqlCondition();
cond.andPrepareVars("CONTACT.ORGANISATION_ID", "$param.OrgId_param")
.andPrepareVars("PERSON.CONTACT_ID", "$param.ContactId_param");
var cond = newWhereIfSet("CONTACT.ORGANISATION_ID", "$param.OrgId_param")
.andIfSet("PERSON.CONTACT_ID", "$param.ContactId_param");
if (vars.exists("$param.ExcludedContactIds_param") && vars.get("$param.ExcludedContactIds_param"))
{
var excludedContacts = JSON.parse(vars.getString("$param.ExcludedContactIds_param"));
cond.andIn("CONTACT.CONTACTID", excludedContacts, undefined, true);
cond.andIfSet("CONTACT.CONTACTID", excludedContacts, SqlBuilder.NOT_IN());
}
//TODO: use a preparedCondition (.build instead of .translate) when available #1030812 #1034026
result.string(cond.translate("1 = 1"));
\ No newline at end of file
//TODO: use a preparedCondition (.build instead of .toString) when available #1030812 #1034026
result.string(cond.toString());
\ No newline at end of file
......@@ -3,13 +3,13 @@ import("system.db");
import("system.result");
import("Sql_lib");
var cond = new SqlCondition();
var cond = newWhere();
if (vars.get("$param.ExcludedPersonIds_param"))
{
var excludedPersons = JSON.parse(vars.getString("$param.ExcludedPersonIds_param"));
cond.andIn("PERSON.PERSONID", excludedPersons, undefined, true);
cond.andIfSet("PERSON.PERSONID", excludedPersons, SqlBuilder.NOT_IN());
}
//TODO: use a preparedCondition (.build instead of .translate) when available #1030812 #1034026
result.string(cond.translate("1 = 1"));
\ No newline at end of file
//TODO: use a preparedCondition (.build instead of .toString) when available #1030812 #1034026
result.string(cond.toString());
\ No newline at end of file
......@@ -30,7 +30,7 @@ else
result.object(excludeIDs);
// TODO: remove code duplication, better param naming and using SqlCondition
// TODO: remove code duplication, better param naming and using SqlBuilder
function _getParentID(pID, pIDs)
{
//Ermitteln welche Produkte ausgeschlossen werden müssen.
......
......@@ -3,9 +3,8 @@ import("system.neon");
import("system.db");
import("Sql_lib");
db.deleteData("PROD2PROD", SqlCondition.begin()
.andPrepareVars("PROD2PROD.PROD2PRODID", "$field.PROD2PRODID")
.build("1=2"));
newWhereIfSet("PROD2PROD.PROD2PRODID", "$field.PROD2PRODID")
.deleteData(true, "PROD2PROD");
// Refresh otherwise the children of the deleted node would be moved to the root.
neon.refresh();
\ No newline at end of file
......@@ -3,17 +3,13 @@ import("system.vars");
import("system.db");
import("Sql_lib");
var productCond = SqlCondition.begin()
var productCond = newWhere();
if (vars.exists("$param.ExcludedProducts_param") && vars.get("$param.ExcludedProducts_param"))
{
var excludedIds = JSON.parse(vars.getString("$param.ExcludedProducts_param"));
excludedIds.forEach(function(pId)
{
this.andPrepare("PRODUCT.PRODUCTID", pId, "# <> ?");
}, productCond);
productCond.andIfSet("PRODUCT.PRODUCTID", excludedIds, SqlBuilder.NOT_IN());
}
//TODO: use a preparedCondition (.build instead of .translate) when available #1030812 #1034026
result.string(productCond.translate("1 = 1"));
\ No newline at end of file
//TODO: use a preparedCondition (.build instead of .toString) when available #1030812 #1034026
result.string(productCond.toString());
\ No newline at end of file
......@@ -10,9 +10,12 @@ import("KeywordRegistry_basic");
var pricelistname = vars.get("$field.PRICELIST");
if (!pricelistname)
{
var preparedStatement = SqlCondition.begin().andPrepare("CONTACT.CONTACTID", vars.get("$field.CONTACT_ID"));
var dbresult = preparedStatement.buildSql("select ORGANISATION.NAME from CONTACT inner join ORGANISATION on CONTACT.ORGANISATION_ID=ORGANISATION.ORGANISATIONID", "1=2", "order by NAME");
var orgname = db.cell(dbresult);
var orgname = newSelect("ORGANISATION.NAME")
.from("CONTACT")
.join("ORGANISATION", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID", undefined, "inner")
.orderBy("NAME")
.where("CONTACT.CONTACTID", "$field.CONTACT_ID")
.cell(true);
result.string(orgname);
}
......
......@@ -8,7 +8,8 @@ import("Sql_lib");
if((vars.exists("$param.ProductId_param") && vars.get("$param.ProductId_param") && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
|| vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW)
{
result.string(db.cell(SqlCondition.begin()
.andPrepareVars("PRODUCT.PRODUCTID", "$field.PRODUCT_ID")
.buildSql("select PRODUCTNAME from PRODUCT", "1=2")));
result.string(newSelect("PRODUCTNAME")
.from("PRODUCT")
.whereIfSet("$field.PRODUCT_ID")
.cell(true));
}
\ No newline at end of file
import("system.db");
import("system.result");
import("system.vars");
import("Sql_lib");
var cond = SqlCondition.begin()
.andPrepareVars("PRODUCTPRICE.PRODUCT_ID", "$param.ProductId_param")
.andPrepareVars("PRODUCTPRICE.CONTACT_ID", "$param.ContactId_param");
var cond = newWhere()
.andIfSet("PRODUCTPRICE.PRODUCT_ID", "$param.ProductId_param")
.andIfSet("PRODUCTPRICE.CONTACT_ID", "$param.ContactId_param");
//TODO: use a preparedCondition (.build instead of .translate) when available #1030812 #1034026
result.string(cond.translate("1 = 1"));
\ No newline at end of file
//TODO: use a preparedCondition (.build instead of .toString) when available #1030812 #1034026
result.string(cond.toString());
\ No newline at end of file
......@@ -67,9 +67,10 @@ if (rowdata["LASTNAME.value"])
"USER_NEW",
"DATE_NEW"
];
var gender = db.cell(SqlCondition.begin()
.andPrepareIfSet("SALUTATION.SALUTATION", rowdata["PERSON_SALUTATION.value"])
.buildSql("select SEX from SALUTATION", "1=2"));
var gender = newSelect("SEX")
.from("SALUTATION")
.whereIfSet("SALUTATION.SALUTATION", rowdata["PERSON_SALUTATION.value"])
.cell(true);
var personVals = [
rowdata["PERSON_ID.value"],
......
import("Employee_lib");
import("system.datetime");
import("system.db");
import("system.result");
import("system.SQLTYPES");
import("system.vars");
import("Date_lib");
import("system.datetime");
import("Sql_lib");
import("system.SQLTYPES")
import("Employee_lib");
var myContactId = EmployeeUtils.getCurrentContactId();
var forecast = db.cell(SqlCondition.begin()
.andPrepare("FORECAST.DATE_START", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER)
.andPrepare("OBJECTMEMBER.OBJECT_TYPE", 'Salesproject')
.andPrepare("OBJECTMEMBER.CONTACT_ID", myContactId)
.buildSql("select SUM(VOLUME) from OBJECTMEMBER \n\
left join FORECAST on FORECAST.OBJECT_TYPE = OBJECTMEMBER.OBJECT_TYPE and FORECAST.OBJECT_ROWID = OBJECTMEMBER.OBJECT_ROWID", "1=2"));
var forecast = newSelect("SUM(VOLUME)")
.from("OBJECTMEMBER")
.leftJoin("FORECAST", "FORECAST.OBJECT_TYPE = OBJECTMEMBER.OBJECT_TYPE and FORECAST.OBJECT_ROWID = OBJECTMEMBER.OBJECT_ROWID")
.where("FORECAST.DATE_START", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER)
.and("OBJECTMEMBER.OBJECT_TYPE", 'Salesproject')
.and("OBJECTMEMBER.CONTACT_ID", myContactId)
.cell();
result.string(forecast);
\ No newline at end of file
......@@ -11,12 +11,13 @@ import("system.SQLTYPES")
var myContactId = EmployeeUtils.getCurrentContactId();
var turnover = db.cell(SqlCondition.begin()
.andPrepare("SALESORDER.SALESORDERDATE", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER)
.andPrepare("SALESORDER.ORDERTYPE", "ORDTYPEINVO")
.andPrepare("OBJECTMEMBER.OBJECT_TYPE", 'Salesproject')
.andPrepare("OBJECTMEMBER.CONTACT_ID", myContactId)
.buildSql("select sum(NET + VAT) from OBJECTMEMBER \n\
left join SALESORDER on SALESORDER.OBJECT_TYPE = OBJECTMEMBER.OBJECT_TYPE and SALESORDER.OBJECT_ROWID = OBJECTMEMBER.OBJECT_ROWID", "1=2"));
var turnover = newSelect("sum(NET + VAT)")
.from("OBJECTMEMBER")
.leftJoin("SALESORDER", "SALESORDER.OBJECT_TYPE = OBJECTMEMBER.OBJECT_TYPE and SALESORDER.OBJECT_ROWID = OBJECTMEMBER.OBJECT_ROWID")
.where("SALESORDER.SALESORDERDATE", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER)
.and("SALESORDER.ORDERTYPE", "ORDTYPEINVO")
.and("OBJECTMEMBER.OBJECT_TYPE", 'Salesproject')
.and("OBJECTMEMBER.CONTACT_ID", myContactId)
.cell();
result.string(turnover);
\ No newline at end of file
......@@ -6,8 +6,9 @@ import("Date_lib");
import("Sql_lib");
import("system.SQLTYPES")
var forecast = db.cell(SqlCondition.begin()
.andPrepare("FORECAST.DATE_START", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER)
.buildSql("select sum(VOLUME) from FORECAST", "1=2"));
var forecast = newSelect("sum(VOLUME)")
.from("FORECAST")
.where("FORECAST.DATE_START", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER)
.cell();
result.string(forecast);
\ No newline at end of file
import("system.datetime");
import("system.db");
import("system.result");
import("system.SQLTYPES");
import("system.vars");
import("Date_lib");
import("system.datetime");
import("Sql_lib");
import("system.SQLTYPES")
var turnover = db.cell(SqlCondition.begin()
.andPrepare("SALESORDER.SALESORDERDATE", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER)
.buildSql("select sum(NET + VAT) from SALESORDER", "1=2"));
var turnover = newSelect("sum(NET + VAT)")
.from("SALESORDER")
.where("SALESORDER.SALESORDERDATE", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER)
.cell();
result.string(turnover);
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment