ofbiz-framework issueshttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues2020-05-25T16:09:11Zhttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/103Reflexion: Annulation de commande2020-05-25T16:09:11ZNicolas MalinReflexion: Annulation de commandeVoir en général la relation d'annulation entre les commandes de vente et d'achatVoir en général la relation d'annulation entre les commandes de vente et d'achathttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/102Amélioration: Annulation commande, affichage du changeReason2020-05-25T16:09:09ZNicolas MalinAmélioration: Annulation commande, affichage du changeReasonSur le détail de commande pur comprendre ce qui est à l'origineSur le détail de commande pur comprendre ce qui est à l'originehttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/101Amélioration: Mise à jour de commande ne pas ignorer les erreurs de maj de st...2019-04-12T15:46:42ZNicolas MalinAmélioration: Mise à jour de commande ne pas ignorer les erreurs de maj de status```
<action service="checkOrderItemStatus" mode="sync" ignore-error="false"/>
``````
<action service="checkOrderItemStatus" mode="sync" ignore-error="false"/>
```https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/100Correction: Réecrire createShoppingListItem qui n'est pas un CRUD logique2019-04-12T15:38:59ZNicolas MalinCorrection: Réecrire createShoppingListItem qui n'est pas un CRUD logiquehttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/99Amélioration: Gérer les Attributes du cart dans la shopping List pour la svg2019-04-12T15:33:53ZNicolas MalinAmélioration: Gérer les Attributes du cart dans la shopping List pour la svgvoir dkt car c'est un poil balaise ce truc :)voir dkt car c'est un poil balaise ce truc :)https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/97Amélioration: createCustRequestFromCommEvent propagation des roles2019-04-12T14:48:33ZNicolas MalinAmélioration: createCustRequestFromCommEvent propagation des rolesPropager les roles de la commEvent sur la custRequestPropager les roles de la commEvent sur la custRequesthttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/96Amélioration: Ajouter les crud pour CustRequestWorkEffort2019-08-26T07:40:52ZNicolas MalinAmélioration: Ajouter les crud pour CustRequestWorkEffortS'inspirer de QuoteWorkEffortS'inspirer de QuoteWorkEfforthttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/95Amélioration: getNextOrderId si customMethod pas de renvoie de prefix product...2019-04-12T14:12:29ZNicolas MalinAmélioration: getNextOrderId si customMethod pas de renvoie de prefix productStorehttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/92Amélioration: Mettre un cache sur l'appel PartyHelper.getPartyName()2019-04-12T13:40:12ZNicolas MalinAmélioration: Mettre un cache sur l'appel PartyHelper.getPartyName()https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/91Amélioration: PartyContentWrapper filtrage à date2019-04-12T13:39:14ZNicolas MalinAmélioration: PartyContentWrapper filtrage à dateMettre une date pour le filtrage des contenus de l'acteur plutot que now()Mettre une date pour le filtrage des contenus de l'acteur plutot que now()https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/90Amélioration: sendCommEventAsEmail on verifie que les emails à ajouter ne son...2019-05-30T20:25:08ZNicolas MalinAmélioration: sendCommEventAsEmail on verifie que les emails à ajouter ne sont pas déjà présentPour éviter les doublons d'envoi si plusieurs acteur ont était ajouter à la commEvent
```
CommunicationEventServices:168
for (GenericValue commRole : commRoles) { // 'from' and 'to' already defined on communication e...Pour éviter les doublons d'envoi si plusieurs acteur ont était ajouter à la commEvent
```
CommunicationEventServices:168
for (GenericValue commRole : commRoles) { // 'from' and 'to' already defined on communication event
List<String> availableRoleTypeIds = UtilMisc.toList("ADDRESSEE", "CC", "BCC");
GenericValue contactMech = commRole.getRelatedOne("ContactMech", false);
if (UtilValidate.isNotEmpty(contactMech)) {
String infoString = contactMech.getString("infoString");
String roleTypeId = commRole.getString("roleTypeId");
if (UtilValidate.isNotEmpty(infoString)) {
if (!emailAlreadyLoad.contains(infoString)
&& availableRoleTypeIds.contains(roleTypeId)) {
emailAlreadyLoad.add(infoString);
} else continue;
if ("ADDRESSEE".equals(roleTypeId)) {
sendTo = "," + infoString;
} else if ("CC".equals(roleTypeId)) {
if (sendCc != null) {
sendCc += "," + infoString;
} else {
sendCc = infoString;
}
} else if ("BCC".equals(roleTypeId)) {
if (sendBcc != null) {
sendBcc += "," + infoString;
} else {
sendBcc = infoString;
}
}
}
}
}
}
```Nicolas MalinNicolas Malinhttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/89Reflexion: Comment améliorer le réenvoie de communication Event2019-04-12T13:24:36ZNicolas MalinReflexion: Comment améliorer le réenvoie de communication EventComme fait chez DKT pour renvoyer des flux ftp cf CommunicationEventServices.xml dans
https://labs.nereide.fr/10923/framework/ofbiz-framework/blob/develop/applications/party/minilang/communication/CommunicationEventServices.xmlComme fait chez DKT pour renvoyer des flux ftp cf CommunicationEventServices.xml dans
https://labs.nereide.fr/10923/framework/ofbiz-framework/blob/develop/applications/party/minilang/communication/CommunicationEventServices.xmlhttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/88Amélioration: Encodage des productId dans les appel content sur EditProductCo...2020-05-25T16:09:11ZNicolas MalinAmélioration: Encodage des productId dans les appel content sur EditProductContent.ftl```
<h3>${uiLabelMap.ProductUploadImage}</h3>
<#assign urlEncodedProductId = "UploadProductImage?"
+ Static["org.apache.ofbiz.base.util.UtilHttp"].urlEncodeArgs({"productId",productId}, false)!
+ "&amp;upload_fil...```
<h3>${uiLabelMap.ProductUploadImage}</h3>
<#assign urlEncodedProductId = "UploadProductImage?"
+ Static["org.apache.ofbiz.base.util.UtilHttp"].urlEncodeArgs({"productId",productId}, false)!
+ "&upload_file_type=">
<form method="post" enctype="multipart/form-data" action="<@ofbizUrl>${urlEncodedProductId}original</@ofbizUrl>" name="imageUploadForm">
<table cellspacing="0" class="basic-table">
<tr>
<td width="20%" align="right" valign="top">
<input type="file" size="50" name="fname"/>
</td>
<td> </td>
<td width="80%" colspan="4" valign="top">
<label><input type="radio" name="upload_file_type_bogus" value="small" onclick='setUploadUrl("<@ofbizUrl>${urlEncodedProductId}small</@ofbizUrl>");'/>${uiLabelMap.CommonSmall}</label>
<label><input type="radio" name="upload_file_type_bogus" value="medium" onclick='setUploadUrl("<@ofbizUrl>${urlEncodedProductId}medium</@ofbizUrl>");'/>${uiLabelMap.CommonMedium}</label>
<label><input type="radio" name="upload_file_type_bogus" value="large"onclick='setUploadUrl("<@ofbizUrl>${urlEncodedProductId}large</@ofbizUrl>");'/>${uiLabelMap.CommonLarge}</label>
<label><input type="radio" name="upload_file_type_bogus" value="detail" onclick='setUploadUrl("<@ofbizUrl>${urlEncodedProductId}detail</@ofbizUrl>");'/>${uiLabelMap.CommonDetail}</label>
<label><input type="radio" name="upload_file_type_bogus" value="original" checked="checked" onclick='setUploadUrl("<@ofbizUrl>${urlEncodedProductId}original</@ofbizUrl>");'/>${uiLabelMap.ProductOriginal}</label>
<input type="submit" class="smallSubmit" value="${uiLabelMap.ProductUploadImage}"/>
</td>
</tr>
</table>
```https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/87Amélioration: calcShipmentCostEstimate rajouter priceUomId et partyId dans le...2019-04-12T12:43:37ZNicolas MalinAmélioration: calcShipmentCostEstimate rajouter priceUomId et partyId dans les fitres du service```
// Now check the tests.
if ((!useWeight || weightValid) && (!useQty || qtyValid) && (!usePrice || priceValid)) {
if (Debug.infoOn())
...```
// Now check the tests.
if ((!useWeight || weightValid) && (!useQty || qtyValid) && (!usePrice || priceValid)) {
if (Debug.infoOn())
Debug.logInfo(" # ADD : " + thisEstimate.getPkShortValueString()
+ " with w" + useWeight + " " + weightValid + " q" + useQty + " "
+ qtyValid + " p" + usePrice + " " + priceValid, module);
```https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/86Amélioration: Ajout de sequenceNum sur ProductPriceRule2019-04-12T12:35:28ZNicolas MalinAmélioration: Ajout de sequenceNum sur ProductPriceRuleAfin de permettre un ordre sur l'enchainement des règles à appliquerAfin de permettre un ordre sur l'enchainement des règles à appliquerhttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/85Amélioration: PriceService, récupération du prix d'un article sur les lignes ...2019-09-04T09:24:52ZNicolas MalinAmélioration: PriceService, récupération du prix d'un article sur les lignes produit de l'accord```
if (UtilValidate.isNotEmpty(agreementId)) {
try {
GenericValue agreementPriceValue = EntityQuery.use(delegator).from("AgreementItemAndProductAppl").where("agreementId", agreementId, "productId", pro...```
if (UtilValidate.isNotEmpty(agreementId)) {
try {
GenericValue agreementPriceValue = EntityQuery.use(delegator).from("AgreementItemAndProductAppl").where("agreementId", agreementId, "productId", productId, "currencyUomId", currencyDefaultUomId).queryFirst();
//======= Decathlon Specific ======
if (null != agreementPriceValue && !currencyDefaultUomId.equals(currencyUomIdTo)) {
agreementPriceValue = EntityQuery.use(delegator).from("AgreementItemAndProductAppl")
.where("agreementId", agreementId, "productId", productId, "currencyUomId", currencyUomIdTo).queryFirst();
}
//======= Decathlon Specific ======
if (agreementPriceValue != null && agreementPriceValue.get("price") != null) {
defaultPriceValue = agreementPriceValue;
}
```https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/84Amélioration: Ajout de ShipmentAttribute2019-09-13T12:31:07ZNicolas MalinAmélioration: Ajout de ShipmentAttribute```
<service name="createShipmentAttribute" default-entity-name="ShipmentAttribute" engine="entity-auto" invoke="create" auth="true">
<description>Create an ShipmentAttribute</description>
<permission-service service-...```
<service name="createShipmentAttribute" default-entity-name="ShipmentAttribute" engine="entity-auto" invoke="create" auth="true">
<description>Create an ShipmentAttribute</description>
<permission-service service-name="acctgAgreementPermissionCheck" main-action="CREATE"/>
<auto-attributes include="pk" mode="IN" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="updateShipmentAttribute" default-entity-name="ShipmentAttribute" engine="entity-auto" invoke="update" auth="true">
<description>Update an ShipmentAttribute</description>
<permission-service service-name="acctgAgreementPermissionCheck" main-action="UPDATE"/>
<auto-attributes include="pk" mode="IN" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
<service name="deleteShipmentAttribute" default-entity-name="ShipmentAttribute" engine="entity-auto" invoke="delete" auth="true">
<description>Delete an ShipmentAttribute</description>
<permission-service service-name="acctgAgreementPermissionCheck" main-action="UPDATE"/>
<auto-attributes include="pk" mode="IN" optional="false"/>
</service>
```la reprisePierre GaudinPierre Gaudinhttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/83Amélioration: Lors de l'affichage des sociétés, filter par celle où on est em...2019-04-12T09:30:03ZNicolas MalinAmélioration: Lors de l'affichage des sociétés, filter par celle où on est employéChangeOrgPartyId.groovy
```
// ========= = DECATHLON specific = ==========
/*
partyAcctgPrefAndGroupList.add(["key":group.partyId,"value":group.groupName])
*/
if (userLogin) {
//check userLogin employment
em...ChangeOrgPartyId.groovy
```
// ========= = DECATHLON specific = ==========
/*
partyAcctgPrefAndGroupList.add(["key":group.partyId,"value":group.groupName])
*/
if (userLogin) {
//check userLogin employment
employeeAssoc = delegator.findList("Employment", EntityCondition.makeCondition(["roleTypeIdTo": "EMPLOYEE", "roleTypeIdFrom": "INTERNAL_ORGANIZATIO", "partyIdTo" : userLogin.partyId,"partyIdFrom": group.partyId]), null, null, null, false);
if (employeeAssoc) {
partyAcctgPrefAndGroupList.add(["key":group.partyId,"value":group.groupName]);
}
}
// ========= = DECATHLON specific = ==========
```https://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/82Amélioration: Ajout d'un util jst pour savoir si une requette ajax est en err...2019-04-12T09:24:46ZNicolas MalinAmélioration: Ajout d'un util jst pour savoir si une requette ajax est en erreur ou pasSur Dkt nous avons ça
```
$.ajax({
type: "POST",
url: "removeItemList",
async: false,
data: ajaxParam.data,
success: function (data: AjaxData) {
makeFloatingMe...Sur Dkt nous avons ça
```
$.ajax({
type: "POST",
url: "removeItemList",
async: false,
data: ajaxParam.data,
success: function (data: AjaxData) {
makeFloatingMessage(data);
if (data.responseMessage === "success") {
```
Qui implique une modification du ServiceEvenetHandler, il faudrait plutot passer par un Util qui indique si la requete est un succès ou pashttps://labs.nereide.fr/10031/apache/ofbiz-framework/-/issues/81Amélioration: RequestHandler garder le nom du fichier lors d'erreur2021-11-10T09:13:01ZNicolas MalinAmélioration: RequestHandler garder le nom du fichier lors d'erreurLors d'un retour erreur avec d'un fichier on perd le nom du fichier à transférer
```
/* DECATHLON specific */
//TODO : suggest to DEV -> manage return error request (no need to retrieve the file name)
if (contentT...Lors d'un retour erreur avec d'un fichier on perd le nom du fichier à transférer
```
/* DECATHLON specific */
//TODO : suggest to DEV -> manage return error request (no need to retrieve the file name)
if (contentType.contains("application") || contentType.contains("text")) {
String fileName = req.getParameter("responseFileName");
if (UtilValidate.isEmpty(fileName)) fileName = (String) req.getAttribute("responseFileName");
if (UtilValidate.isNotEmpty(fileName)) {
resp.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
}
}
/* DECATHLON specific */
```