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

merged sqlLibRefactor into master

parents 6bcaba0c 86454952
No related branches found
No related tags found
No related merge requests found
Showing
with 135 additions and 140 deletions
......@@ -18,8 +18,6 @@ if (vars.exists("$param.Entry_param"))
/**
* Deletes ApointmentLinks referring to the deleted Appointment.
*/
var cond = SqlCondition.begin();
cond.andPrepareIfSet("AB_APPOINTMENTLINK.APPOINTMENT_ID", entry[calendars.ID])
db.deleteData("AB_APPOINTMENTLINK", cond.build("1 = 2"));
newWhereIfSet("AB_APPOINTMENTLINK.APPOINTMENT_ID", entry[calendars.ID])
.deleteData(true, "AB_APPOINTMENTLINK")
}
\ No newline at end of file
......@@ -5,14 +5,15 @@ import("system.vars");
import("system.result");
var rowCount = "0";
var cond = SqlCondition.begin();
var cond = newSelect("count(APPOINTMENT_ID)")
.from("AB_APPOINTMENTLINK");
if (vars.exists("$local.idvalues") && vars.get("$local.idvalues"))
rowCount = "1";
else if (vars.getString("$param.LinkedAppointmentsFromDashlet_param"))
{
cond.andPrepareIfSet("AB_APPOINTMENTLINK.OBJECT_ROWID", EmployeeUtils.getCurrentContactId());
rowCount = db.cell(cond.buildSql("select count(APPOINTMENT_ID) from AB_APPOINTMENTLINK", "1=1"));
cond.whereIfSet("AB_APPOINTMENTLINK.OBJECT_ROWID", EmployeeUtils.getCurrentContactId());
rowCount = cond.cell();
}
/**
......@@ -20,8 +21,8 @@ else if (vars.getString("$param.LinkedAppointmentsFromDashlet_param"))
*/
else if (vars.getString("$param.LinkedObjectId_param") != undefined)
{
cond.andPrepareVars("AB_APPOINTMENTLINK.OBJECT_ROWID", "$param.LinkedObjectId_param");
rowCount = db.cell(cond.buildSql("select count(APPOINTMENT_ID) from AB_APPOINTMENTLINK", "1=1"));
cond.whereIfSet("AB_APPOINTMENTLINK.OBJECT_ROWID", "$param.LinkedObjectId_param");
rowCount = cond.cell();
}
/**
* Will be used, if the user is operating the calendar.
......
......@@ -8,10 +8,9 @@ import("system.tools");
import("Sql_lib");
var attrType = vars.get("$field.ATTRIBUTE_TYPE");
var dropDownDef = db.cell(
SqlCondition.begin()
.andPrepareVars("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.AB_ATTRIBUTE_ID")
.buildSql("select DROPDOWNDEFINITION from AB_ATTRIBUTE")
);
var dropDownDef = newSelect("DROPDOWNDEFINITION")
.from("AB_ATTRIBUTE")
.whereIfSet("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.AB_ATTRIBUTE_ID")
.cell();
result.string(AttributeTypeUtil.getAttributeViewValue(attrType, vars.get("$field.VALUE"), dropDownDef));
......@@ -33,14 +33,10 @@ var defaultFields = [
//these fields hold the attributeRelation value, depending on the attribute type
var valueFields = AttributeTypeUtil.getAllDatabaseFields();
var attributeSql = SqlBuilder.begin()
.select(defaultFields.concat(valueFields))
.from("AB_ATTRIBUTE")
.orderBy("AB_ATTRIBUTE.SORTING asc");
var attributeCond = SqlCondition.begin(); //where-condition (condition for the Attribute)
var attributeRelationCond = SqlCondition.begin()
.and("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID"); //condition for the joined values (for AttributeRelation)
var attributeSql = newSelect(defaultFields.concat(valueFields))
.from("AB_ATTRIBUTE")
.orderBy("AB_ATTRIBUTE.SORTING asc")
.where(); // go into where mode
var possibleAttributes;
......@@ -51,13 +47,13 @@ if (idvalues)
showEmpty = false;
if (showEmpty)
attributeCond.andPrepare("AB_ATTRIBUTE.AB_ATTRIBUTEID", attrId);
attributeSql.and("AB_ATTRIBUTE.AB_ATTRIBUTEID", attrId);
else
{
attributeCond.andIn("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", idvalues.map(function(pId)
attributeSql.andIfSet("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", idvalues.map(function(pId)
{
return pId[0] == "," ? pId.split(",")[1] : pId;
}));
}), SqlBuilder.IN());
objectRowId = null;
}
getTree = false;
......@@ -65,41 +61,42 @@ if (idvalues)
else if (showEmpty || objectRowId)
{
if (getTheme)
attributeCond.andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.THEME);
attributeSql.and("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.THEME);
else
attributeCond.andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.THEME, "# != ?");
attributeSql.and("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.THEME, "# != ?");
if (showEmpty)
{
possibleAttributes = AttributeUtil.getPossibleAttributes(objectType);
let filtered = vars.exists("$param.FilteredAttributeIds_param") && vars.getString("$param.FilteredAttributeIds_param");
attributeCond.andIn("AB_ATTRIBUTE.AB_ATTRIBUTEID", possibleAttributes);
attributeSql.andIfSet("AB_ATTRIBUTE.AB_ATTRIBUTEID", possibleAttributes, SqlBuilder.IN());
}
if (vars.exists("$param.FilteredAttributeIds_param") && vars.getString("$param.FilteredAttributeIds_param"))
{
let filteredIds = JSON.parse(vars.getString("$param.FilteredAttributeIds_param"));
let filteredCondition = new SqlCondition();
let filteredIdChildren = AttributeUtil.getAllChildren(filteredIds);
filteredCondition.andIn("AB_ATTRIBUTE.AB_ATTRIBUTEID", filteredIdChildren);
filteredCondition.andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.COMBOVALUE, "# != ?")
let filteredCondition = newWhereIfSet("AB_ATTRIBUTE.AB_ATTRIBUTEID", filteredIdChildren, SqlBuilder.IN())
.and("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.COMBOVALUE, "# != ?");
// return nothing if filteredAttributeIds is an empty array. (--> and 1=2)
attributeCond.andSqlCondition(filteredCondition, "1=2");
if (filteredIds && filteredIds.length > 0)
attributeSql.and(filteredCondition);
}
}
var attributeRelationCond = newWhere("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID"); //condition for the joined values (for AttributeRelation)
if (objectRowId)
{
attributeRelationCond.andPrepare("AB_ATTRIBUTERELATION.OBJECT_ROWID", objectRowId);
attributeRelationCond.and("AB_ATTRIBUTERELATION.OBJECT_ROWID", objectRowId);
if (objectType)
attributeRelationCond.andPrepare("AB_ATTRIBUTERELATION.OBJECT_TYPE", objectType);
attributeRelationCond.and("AB_ATTRIBUTERELATION.OBJECT_TYPE", objectType);
}
attributeSql.where(attributeCond);
if (showEmpty)
attributeSql.leftJoin("AB_ATTRIBUTERELATION", attributeRelationCond);
......@@ -117,11 +114,12 @@ if (getTree)
if (!possibleAttributes)
possibleAttributes = AttributeUtil.getPossibleAttributes(objectType);
let minUsages = db.table(SqlCondition.begin()
.andIn("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", possibleAttributes)
.andPrepare("AB_ATTRIBUTEUSAGE.OBJECT_TYPE", objectType)
.buildSql("select AB_ATTRIBUTE_ID, MIN_COUNT from AB_ATTRIBUTEUSAGE", "1=2")
);
let minUsages = newSelect("AB_ATTRIBUTE_ID, MIN_COUNT")
.from("AB_ATTRIBUTEUSAGE")
.whereIfSet("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", possibleAttributes)
.and("AB_ATTRIBUTEUSAGE.OBJECT_TYPE", objectType)
.table(true);
minUsages.forEach(function (usage)
{
this[usage[0]] = {
......@@ -131,7 +129,7 @@ if (getTree)
}, minCountInsurance);
}
var attrRelations = db.table(attributeSql.build()).map(
var attrRelations = attributeSql.table(true).map(
function (row)
{
var [attrRelId, attrId, attrParentId, attrType, attrName, dropDownDef, comboViewVal, dateNew, userNew, dateEdit, userEdit] = row;
......@@ -195,14 +193,17 @@ function _buildAttributeTree (pAttrRelations)
*/
function _fetchParentAttributes (pAttributeIds, pParentAttributes)
{
var attributeCond = SqlCondition.begin();
var attributeCond = newSelect("AB_ATTRIBUTEID, ATTRIBUTE_PARENT_ID, ATTRIBUTE_NAME")
.from("AB_ATTRIBUTE")
.where()
var nextIds = [];
pAttributeIds.forEach(function (id)
{
if (!(id in this))
attributeCond.orPrepare("AB_ATTRIBUTE.AB_ATTRIBUTEID", id);
attributeCond.andIfSet("AB_ATTRIBUTE.AB_ATTRIBUTEID", id);
}, attrCatalog);
db.table(attributeCond.buildSql("select AB_ATTRIBUTEID, ATTRIBUTE_PARENT_ID, ATTRIBUTE_NAME from AB_ATTRIBUTE", "1=2"))
attributeCond.table(true)
.forEach(function ([attrId, parentId, attrName])
{
this[attrId] = true; //make entry in attrCatalog to avoid duplicates
......
......@@ -6,5 +6,6 @@ import("system.db");
var rowData = vars.get("$local.rowdata");
if (rowData["AB_ATTRIBUTE_ID.value"] && rowData["VALUE.value"])
{
db.deleteData("AB_ATTRIBUTERELATION", SqlCondition.equals("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", vars.get("$local.uid"), "1=2"));
newWhere("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", vars.get("$local.uid"))
.deleteData(true, "AB_ATTRIBUTERELATION")
}
\ No newline at end of file
......@@ -33,8 +33,8 @@ if (uid.length === 1)
});
values[AttributeTypeUtil.getTypeColumnIndex(type) + 3] = rowdata["VALUE.value"];
db.updateData("AB_ATTRIBUTERELATION", columns, null, values,
SqlCondition.equals("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", uid[0], "1=2"));
newWhere("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", vars.get("$local.uid"))
.updateData(true, columns, null, values, "AB_ATTRIBUTERELATION");
}
else
{
......
......@@ -2,7 +2,6 @@ import("Sql_lib");
import("system.db");
import("system.result");
//TODO: use a preparedCondition (.build instead of .translate) when available #1030812 #1034026
result.string(SqlCondition.begin()
.andPrepareVars("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", "$param.AttributeId_param")
.translate("1=2"));
//TODO: use a preparedCondition (.build instead of .toString) when available #1030812 #1034026
result.string(newWhereIfSet("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", "$param.AttributeId_param")
.toString());
......@@ -13,10 +13,10 @@ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW
var parentId = vars.get("$param.AttrParentId_param");
var attributeId = vars.get("$field.UID");
var usageSql = SqlCondition.begin()
.andPrepare("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", parentId)
.buildSql("select OBJECT_TYPE from AB_ATTRIBUTEUSAGE", "1=0");
var usages = db.array(db.COLUMN, usageSql);
var usages = newSelect("OBJECT_TYPE")
.from("AB_ATTRIBUTEUSAGE")
.and("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", parentId)
.array(db.COLUMN, true)
//preset the usages with the ones from the parent
usages.forEach(function (usage)
......
import("system.logging");
import("system.db");
import("system.neon");
import("system.result");
......@@ -13,12 +14,10 @@ if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.r
var parentType = AttributeUtil.getAttributeType(vars.get("$field.ATTRIBUTE_PARENT_ID"));
if (AttributeTypeUtil.isGroupType(type))
{
var hasSubordinate = db.cell(SqlCondition.begin()
.andPrepareVars("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", "$field.UID")
.buildSql(
"select count(*) from AB_ATTRIBUTE", "1=2" //TODO: is there a way exists could be used in all dbms?
)
) != "0";
var hasSubordinate = newSelect("count(*)")
.from("AB_ATTRIBUTE")
.where("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", "$field.UID")
.cell() != "0"
if (hasSubordinate)
state = neon.COMPONENTSTATE_READONLY;
}
......
......@@ -11,9 +11,12 @@ if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
var parentId = vars.get("$field.ATTRIBUTE_PARENT_ID");
if (parentId)
{
var cond = SqlCondition.begin().andPrepare("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", parentId);
var maskingHelper = new SqlMaskingUtils();
var newCodeNumber = db.cell(cond.buildSql("select " + maskingHelper.max("AB_ATTRIBUTE.SORTING") + " from AB_ATTRIBUTE", "1 = 2"));
var newCodeNumber = newSelect(maskingHelper.max("AB_ATTRIBUTE.SORTING"))
.from("AB_ATTRIBUTE")
.where("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", parentId)
.cell();
newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0)
if (isNaN(newCodeNumber))
throw new TypeError(translate.text("The code number is not a valid number."));
......
......@@ -15,33 +15,28 @@ var parentType = vars.exists("$param.AttrParentType_param") && vars.get("$param.
var fetchUsages = true;
var translateName = false;
var sqlSelect = "select AB_ATTRIBUTEID, ATTRIBUTE_PARENT_ID, ATTRIBUTE_NAME, ATTRIBUTE_ACTIVE, DROPDOWNDEFINITION, DROPDOWNFILTER, SORTING, ATTRIBUTE_TYPE, "
+ KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.attributeType(), "ATTRIBUTE_TYPE") //3
+ ", '', '', '' from AB_ATTRIBUTE";
var sqlOrder = " order by ATTRIBUTE_PARENT_ID asc, SORTING asc";
var condition = SqlCondition.begin();
var condition = newWhere()
if (vars.exists("$local.idvalues") && vars.get("$local.idvalues"))
{
condition.andIn("AB_ATTRIBUTE.AB_ATTRIBUTEID", vars.get("$local.idvalues"));
condition.andIfSet("AB_ATTRIBUTE.AB_ATTRIBUTEID", vars.get("$local.idvalues"), SqlBuilder.IN());
}
else if (getGroups) //if getGroups == true, it is the lookup for selecting the superordinate attribute
{
//this condition filters out the own id and the children to prevent loops
var isGroupCondition = SqlCondition.begin();
var isGroupCondition = newWhere();
for (let type in $AttributeTypes)
{
if ($AttributeTypes[type].isGroup)
{
isGroupCondition.orPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes[type]);
isGroupCondition.or("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes[type]);
}
condition.andSqlCondition(SqlCondition.begin()
.andSqlCondition(isGroupCondition)
.andPrepareVars("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$param.AttrParentId_param", "# != ?")
.andIn("AB_ATTRIBUTE.AB_ATTRIBUTEID", AttributeUtil.getAllChildren(vars.getString("$param.AttrParentId_param")), null, true)
}
condition.and(newWhere()
.and(isGroupCondition)
.andIfSet("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$param.AttrParentId_param", "# <> ?")
.andIfSet("AB_ATTRIBUTE.AB_ATTRIBUTEID", AttributeUtil.getAllChildren(vars.getString("$param.AttrParentId_param")), SqlBuilder.NOT_IN())
);
}
else if (objectType) //if there's an objectType, it comes from the AttributeRelation entity (lookup for the attribute selection)
......@@ -49,7 +44,7 @@ else if (objectType) //if there's an objectType, it comes from the AttributeRel
var filteredAttributes = null;
if (vars.exists("$param.AttributeTypes_param") && vars.getString("$param.AttributeTypes_param"))
condition.andIn("AB_ATTRIBUTE.ATTRIBUTE_TYPE", JSON.parse(vars.getString("$param.AttributeTypes_param")));
condition.and("AB_ATTRIBUTE.ATTRIBUTE_TYPE", JSON.parse(vars.getString("$param.AttributeTypes_param")), SqlBuilder.IN());
if (vars.exists("$param.FilteredAttributeIds_param") && vars.getString("$param.FilteredAttributeIds_param"))
filteredAttributes = JSON.parse(vars.getString("$param.FilteredAttributeIds_param"));
......@@ -60,7 +55,7 @@ else if (objectType) //if there's an objectType, it comes from the AttributeRel
var ids = AttributeUtil.getPossibleAttributes(objectType, true, filteredAttributes, attributeCount);
if (ids.length > 0)
condition.andIn("AB_ATTRIBUTE.AB_ATTRIBUTEID", ids);
condition.and("AB_ATTRIBUTE.AB_ATTRIBUTEID", ids, SqlBuilder.IN());
else // do not return anything, if parameter is there but an empty array
condition.and("1=2");
......@@ -73,7 +68,7 @@ else if (parentType) //condition for all subordinate attributes of an attribute
{
var parentId = vars.exists("$param.AttrParentId_param") && vars.get("$param.AttrParentId_param");
if (parentId)
condition.andIn("AB_ATTRIBUTE.AB_ATTRIBUTEID", AttributeUtil.getAllChildren(vars.getString("$param.AttrParentId_param")));
condition.and("AB_ATTRIBUTE.AB_ATTRIBUTEID", AttributeUtil.getAllChildren(vars.getString("$param.AttrParentId_param")), SqlBuilder.IN());
}
else
condition.and("1=2");
......@@ -86,18 +81,18 @@ if (vars.exists("$local.filter") && vars.get("$local.filter"))
{
var filter = vars.get("$local.filter");
if (filter.filter)
condition.andSqlCondition(JditoFilterUtils.getSqlCondition(filter.filter, "AB_ATTRIBUTE", undefined, {
condition.andIfSet(JditoFilterUtils.getSqlCondition(filter.filter, "AB_ATTRIBUTE", undefined, {
// special filter for usage
USAGE_FILTER : function (pValue, pOperator)
{
var cond = new SqlCondition();
var cond = newWhere();
switch (pOperator)
{
case "EQUAL":
return cond.andPrepare(["AB_ATTRIBUTEUSAGE", "OBJECT_TYPE", "attrUse"], pValue, "exists (select 1 from AB_ATTRIBUTEUSAGE attrUse where attrUse.AB_ATTRIBUTE_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID and # = ?)");
return cond.and(["AB_ATTRIBUTEUSAGE", "OBJECT_TYPE", "attrUse"], pValue, "exists (select 1 from AB_ATTRIBUTEUSAGE attrUse where attrUse.AB_ATTRIBUTE_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID and # = ?)");
case "NOT_EQUAL":
return cond.andPrepare(["AB_ATTRIBUTEUSAGE", "OBJECT_TYPE", "attrUse"], pValue, "not exists (select 1 from AB_ATTRIBUTEUSAGE attrUse where attrUse.AB_ATTRIBUTE_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID and # = ?)");
return cond.and(["AB_ATTRIBUTEUSAGE", "OBJECT_TYPE", "attrUse"], pValue, "not exists (select 1 from AB_ATTRIBUTEUSAGE attrUse where attrUse.AB_ATTRIBUTE_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID and # = ?)");
case "ISNULL":
return cond.and("not exists (select 1 from AB_ATTRIBUTEUSAGE attrUse where attrUse.AB_ATTRIBUTE_ID = AB_ATTRIBUTEID)");
case "ISNOTNULL":
......@@ -110,10 +105,12 @@ if (vars.exists("$local.filter") && vars.get("$local.filter"))
var usages;
if (fetchUsages) //this query is only necessary in Attribute, not in AttributeRelation
{
var usagesSelect = "select AB_ATTRIBUTE_ID, OBJECT_TYPE from AB_ATTRIBUTEUSAGE \n\
join AB_ATTRIBUTE on AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID";
var usageTbl = db.table(condition.buildSql(usagesSelect, "1=1"));
{
var usageTbl = newSelect("AB_ATTRIBUTE_ID, OBJECT_TYPE")
.from("AB_ATTRIBUTEUSAGE")
.join("AB_ATTRIBUTE", newWhere("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID"))
.whereIfSet(condition)
.table();
usages = {};
for (let i = 0, l = usageTbl.length; i < l; i++)
{
......@@ -125,7 +122,18 @@ if (fetchUsages) //this query is only necessary in Attribute, not in AttributeRe
}
}
var attributes = db.table(condition.buildSql(sqlSelect, "1=1", sqlOrder));
var sqlSelect = "select AB_ATTRIBUTEID, ATTRIBUTE_PARENT_ID, ATTRIBUTE_NAME, ATTRIBUTE_ACTIVE, DROPDOWNDEFINITION, DROPDOWNFILTER, SORTING, ATTRIBUTE_TYPE, "
+ KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.attributeType(), "ATTRIBUTE_TYPE") //3
+ ", '', '', '' from AB_ATTRIBUTE";
var attributes = newSelect("AB_ATTRIBUTEID, ATTRIBUTE_PARENT_ID, ATTRIBUTE_NAME, ATTRIBUTE_ACTIVE, DROPDOWNDEFINITION, DROPDOWNFILTER, SORTING, ATTRIBUTE_TYPE, "
+ KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.attributeType(), "ATTRIBUTE_TYPE") //3
+ ", '', '', ''")
.from("AB_ATTRIBUTE")
.whereIfSet(condition)
.orderBy("ATTRIBUTE_PARENT_ID asc, SORTING asc")
.table();
//TODO: attribute name caching like keywords
var allNames = db.table("select AB_ATTRIBUTEID, ATTRIBUTE_PARENT_ID, ATTRIBUTE_NAME from AB_ATTRIBUTE");
......
......@@ -3,33 +3,21 @@ import("system.db");
import("system.vars");
import("Attribute_lib");
var condition = SqlCondition.begin()
.andPrepareVars("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.UID")
.build("1=2");
db.deleteData("AB_ATTRIBUTE", condition);
newWhere("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.UID")
.deleteData(true, "AB_ATTRIBUTE");
var attributeId = vars.get("$field.UID");
var childIds = AttributeUtil.getAllChildren(attributeId).concat(attributeId);
condition = SqlCondition.begin()
.andIn("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", childIds)
.build();
//delete all entries in AB_ATTRIBUTEUSAGE belonging to the attribute to avoid unrelated entries
db.deleteData("AB_ATTRIBUTEUSAGE", condition);
condition = SqlCondition.begin()
.andIn("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID", childIds)
.build();
newWhereIfSet("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", childIds, SqlBuilder.IN())
.deleteData(true, "AB_ATTRIBUTEUSAGE");
//delete all entries in AB_ATTRIBUTERELATION for the attributes
db.deleteData("AB_ATTRIBUTERELATION", condition);
condition = SqlCondition.begin()
.andIn("AB_ATTRIBUTE.AB_ATTRIBUTEID", childIds)
.build();
newWhereIfSet("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID", childIds, SqlBuilder.IN())
.deleteData(true, "AB_ATTRIBUTERELATION");
//delete all attribute children
db.deleteData("AB_ATTRIBUTE", condition);
newWhereIfSet("AB_ATTRIBUTE.AB_ATTRIBUTEID", childIds, SqlBuilder.IN())
.deleteData(true, "AB_ATTRIBUTE");
......@@ -21,5 +21,6 @@ var values = [
rowdata["DROPDOWNFILTER.value"] || "",
rowdata["SORTING.value"] || ""
];
db.updateData("AB_ATTRIBUTE", columns, null, values,
SqlCondition.equals("AB_ATTRIBUTE.AB_ATTRIBUTEID", vars.get("$field.UID"), "1=2"));
\ No newline at end of file
newWhere("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.UID")
.updateData(true, columns, null, values, "AB_ATTRIBUTE");
\ No newline at end of file
......@@ -4,6 +4,10 @@ import("system.db");
import("system.result");
if (vars.get("$this.value"))
result.string(db.cell(SqlCondition.begin().andPrepare("BULKMAIL.BULKMAILID", vars.get("$this.value")).buildSql("select NAME from BULKMAIL")));
result.string(newSelect("NAME")
.from("BULKMAIL")
.where("BULKMAIL.BULKMAILID", "$this.value")
.buildSql("select NAME from BULKMAIL")
.cell());
else
result.string("");
\ No newline at end of file
......@@ -10,7 +10,7 @@ var bulkMailId = vars.get("$param.BulkMailId_param");
var query = SqlBuilder.begin()
.select(["STATUS", "STATUS", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.bulkMailRecipientStatus(), "STATUS"), "count(STATUS)"])
.from("BULKMAILRECIPIENT")
.where(SqlCondition.begin().andPrepare("BULKMAILRECIPIENT.BULKMAIL_ID", bulkMailId))
.where("BULKMAILRECIPIENT.BULKMAIL_ID", bulkMailId)
.groupBy("STATUS");
result.object(db.table(query.build()));
\ No newline at end of file
......@@ -7,18 +7,13 @@ import("system.db");
var recipientIds = db.array(db.COLUMN, SqlBuilder.begin()
.select("BULKMAILRECIPIENTID")
.from("BULKMAILRECIPIENT")
.join("CONTACT", SqlCondition.begin()
.join("CONTACT", newWhere()
.and("BULKMAILRECIPIENT.CONTACT_ID = CONTACT.CONTACTID")
.andSqlCondition(ContactUtils.getCommRestrictionCondition($KeywordRegistry.communicationMediumCampaign$mail())))
.where(SqlCondition.begin()
.andPrepareVars("BULKMAILRECIPIENT.BULKMAIL_ID", "$param.BulkMailId_param"))
.and(ContactUtils.getCommRestrictionCondition($KeywordRegistry.communicationMediumCampaign$mail())))
.whereIfSet("BULKMAILRECIPIENT.BULKMAIL_ID", "$param.BulkMailId_param")
.build());
if (recipientIds.length)
{
db.deleteData("BULKMAILRECIPIENT", SqlCondition.begin()
.andIn("BULKMAILRECIPIENT.BULKMAILRECIPIENTID", recipientIds)
.build("1=2"));
}
newWhereIfSet("BULKMAILRECIPIENT.BULKMAILRECIPIENTID", recipientIds, SqlBuilder.IN())
.deleteData(true, "BULKMAILRECIPIENT")
neon.refreshAll();
\ No newline at end of file
......@@ -2,8 +2,5 @@ import("system.db");
import("system.result");
import("Sql_lib");
var condition = SqlCondition.begin()
.andPrepareVars("BULKMAILRECIPIENT.BULKMAIL_ID", "$param.BulkMailId_param");
//TODO: use a preparedCondition (.build instead of .translate) when available #1030812 #1034026
result.string(condition.translate("1=1"));
\ No newline at end of file
//TODO: use a preparedCondition (.build instead of .toString) when available #1030812 #1034026
result.string(newWhere("BULKMAILRECIPIENT.BULKMAIL_ID", "$param.BulkMailId_param").toString());
\ No newline at end of file
......@@ -4,6 +4,6 @@ import("Contact_lib");
import("system.db");
import("system.result");
var commRestrictionCond = ContactUtils.getCommRestrictionCondition($KeywordRegistry.communicationMediumCampaign$mail()).build();
var sql = "case when (" + SqlUtils.translateStatementWithQuotes(commRestrictionCond) + ") then 'true' else 'false' end";
var commRestrictionCond = ContactUtils.getCommRestrictionCondition($KeywordRegistry.communicationMediumCampaign$mail());
var sql = "case when (" + commRestrictionCond.toString() + ") then 'true' else 'false' end";
result.string(sql);
......@@ -8,9 +8,9 @@ import("system.vars");
var bulkMailId = vars.get("$param.BulkMailId_param");
var query = SqlBuilder.begin()
.select(["STATUS", "STATUS", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.bulkMailRecipientStatus(), "STATUS"), "count(STATUS)"])
.from("BULKMAILRECIPIENT")
.where(SqlCondition.begin().andPrepare("BULKMAILRECIPIENT.BULKMAIL_ID", bulkMailId))
.groupBy("STATUS");
.select(["STATUS", "STATUS", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.bulkMailRecipientStatus(), "STATUS"), "count(STATUS)"])
.from("BULKMAILRECIPIENT")
.where("BULKMAILRECIPIENT.BULKMAIL_ID", bulkMailId)
.groupBy("STATUS");
result.object(db.table(query.build()));
\ No newline at end of file
......@@ -4,10 +4,11 @@ import("Employee_lib");
import("system.vars");
import("system.result");
var contactId = db.cell(SqlCondition.begin()
.andPrepareVars("BULKMAIL.BULKMAILID", "$param.BulkMailId_param")
.buildSql("select TESTING_CONTACT_ID from BULKMAIL")
);
var contactId = newSelect("TESTING_CONTACT_ID")
.from("BULKMAIL")
.whereIfSet("BULKMAIL.BULKMAILID", "$param.BulkMailId_param")
.cell(true);
if (!contactId)
contactId = EmployeeUtils.getCurrentContactId();
......
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