blob: c58f5d92c446a24a7ca938c6b61e482bd54431cb [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import org.ofbiz.entity.*;
import org.ofbiz.entity.util.*;
import org.ofbiz.base.util.*;
import java.sql.Timestamp;
import org.ofbiz.base.util.ObjectType
contentId = parameters.contentId;
if (!contentId) {
contentId = null;
}
productContentTypeId = parameters.productContentTypeId;
fromDate = parameters.fromDate;
if (!fromDate) {
fromDate = null;
} else {
fromDate = ObjectType.simpleTypeConvert(fromDate, "Timestamp", null, null, false)
}
description = parameters.description;
if (!description) {
description = null;
}
productContent = delegator.findOne("ProductContent", [contentId : contentId, productId : productId, productContentTypeId : productContentTypeId, fromDate : fromDate], false);
if (!productContent) {
productContent = [:];
productContent.productId = productId;
productContent.contentId = contentId;
productContent.productContentTypeId = productContentTypeId;
productContent.fromDate = fromDate;
productContent.thruDate = parameters.thruDate;
productContent.purchaseFromDate = parameters.purchaseFromDate;
productContent.purchaseThruDate = parameters.purchaseThruDate;
productContent.useCountLimit = parameters.useCountLimit;
productContent.useTime = parameters.useTime;
productContent.useTimeUomId = parameters.useTimeUomId;
productContent.useRoleTypeId = parameters.useRoleTypeId;
}
context.productContent = productContent;
productContentData = [:];
productContentData.putAll(productContent);
content = [:];
context.contentId = contentId;
if (contentId) {
content = delegator.findOne("Content", [contentId : contentId], false);
context.content = content;
} else {
if (description) {
content.description = description;
}
}
//Email
if ("FULFILLMENT_EMAIL".equals(productContentTypeId)) {
emailData = [:];
if (contentId && content) {
subjectDr = content.getRelatedOne("DataResource", false);
if (subjectDr) {
subject = subjectDr.getRelatedOne("ElectronicText", false);
emailData.subject = subject.textData;
emailData.subjectDataResourceId = subject.dataResourceId;
}
serviceCtx = [userLogin : userLogin, contentId : contentId, mapKeys : ['plainBody', 'htmlBody']];
result = dispatcher.runSync("findAssocContent", serviceCtx);
contentAssocs = result.get("contentAssocs");
if (contentAssocs) {
contentAssocs.each { contentAssoc ->
bodyContent = contentAssoc.getRelatedOne("ToContent", false);
bodyDr = bodyContent.getRelatedOne("DataResource", false);
body = bodyDr.getRelatedOne("ElectronicText", false);
emailData.put(contentAssoc.mapKey, body.textData);
emailData.put(contentAssoc.get("mapKey")+"DataResourceId", body.dataResourceId);
}
}
}
context.contentFormName = "EditProductContentEmail";
context.emailData = emailData;
} else if ("DIGITAL_DOWNLOAD".equals(productContentTypeId)) {
downloadData = [:];
if (contentId && content) {
downloadDr = content.getRelatedOne("DataResource", false);
if (downloadDr) {
download = downloadDr.getRelatedOne("OtherDataResource", false);
if (download) {
downloadData.file = download.dataResourceContent;
downloadData.fileDataResourceId = download.dataResourceId;
}
}
}
context.contentFormName = "EditProductContentDownload";
context.downloadData = downloadData;
} else if ("FULFILLMENT_EXTERNAL".equals(productContentTypeId)) {
context.contentFormName = "EditProductContentExternal";
} else if (productContentTypeId && productContentTypeId.indexOf("_IMAGE") > -1) {
context.contentFormName = "EditProductContentImage";
} else {
//Assume it is a generic simple text content
textData = [:];
if (contentId && content) {
textDr = content.getRelatedOne("DataResource", false);
if (textDr) {
text = textDr.getRelatedOne("ElectronicText", false);
if (text) {
textData.text = text.textData;
textData.textDataResourceId = text.dataResourceId;
}
}
}
context.contentFormName = "EditProductContentSimpleText";
context.textData = textData;
}
if (productContentTypeId) {
productContentType = delegator.findOne("ProductContentType", [productContentTypeId : productContentTypeId], false);
if (productContentType && "DIGITAL_DOWNLOAD".equals(productContentType.parentTypeId)) {
context.contentFormName = "EditProductContentDownload";
}
}
if (("PAGE_TITLE".equals(productContentTypeId))||("META_KEYWORD".equals(productContentTypeId))||("META_DESCRIPTION".equals(productContentTypeId))) {
context.contentFormName = "EditProductContentSEO";
}
context.productContentData = productContentData;
context.content = content;
context.contentId = contentId;