Hi all,
With this last commit, I think we finish the conversion for CRUD in mini-lang to entity-auto :) \o/ Now next step mini-lang to groovy ! Cheers, Nicolas On 9/2/19 5:13 PM, [hidden email] wrote: > Author: nmalin > Date: Mon Sep 2 15:13:47 2019 > New Revision: 1866286 > > URL: http://svn.apache.org/viewvc?rev=1866286&view=rev > Log: > Improved: Convert Shipment Crud simple service to entity-auto > (OFBIZ-6996) > I converted all available shipment entities crud currently on simple service to entity-auto service : > * ItemIssuanceRole > * ShipmentItem > * ShipmentPackageContent > * ShipmentPackageRouteSeg > * ShipmentRouteSegment > * QuantityBreak > > I also transformed a simple method call to a permission service: checkCanChangeShipmentStatus, who check for a shipment is it on good status for the change. > With this last conversion, the permission control set on the service definition instead of core service > > Modified: > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > > Modified: ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > ============================================================================== > --- ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml (original) > +++ ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml Mon Sep 2 15:13:47 2019 > @@ -1489,6 +1489,10 @@ > <value xml:lang="zh">å建快éæ·»å ååæ°æ®æ¶åç交æé误ï¼${errMessage}ã</value> > <value xml:lang="zh-TW">æ°å»ºå¿«éå¢å è®åè³ææç¼ç交æé¯èª¤: ${errMessage}.</value> > </property> > + <property key="ShipmentCanChangeStatusPermissionError"> > + <value xml:lang="en">Cannot perform this operation when the shipment [${testShipment.shipmentId}] is in the ${testShipmentStatus.description} [${testShipment.statusId}] status."</value> > + <value xml:lang="fr">Impossible de réaliser l'opération demandée quand l'expédition [${testShipment.shipmentId}] est dans le statut ${testShipmentStatus.description} [${testShipment.statusId}]</value> > + </property> > <property key="variantevents.variantProductId_required_but_missing_enter_an_id"> > <value xml:lang="de">variantProductId wir benötigt, fehlt aber, bitte geben Sie eine ID für die neue Produktvariante an.</value> > <value xml:lang="en">variantProductId is required but missing, please enter an id for the new variant product.</value> > > Modified: ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > ============================================================================== > --- ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml (original) > +++ ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml Mon Sep 2 15:13:47 2019 > @@ -22,10 +22,6 @@ under the License. > xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd"> > <!-- ItemIssuance services --> > <simple-method method-name="createItemIssuance" short-description="Create ItemIssuance"> > - <set value="Create ItemIssuance" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > - <check-errors/> > - > <make-value entity-name="ItemIssuance" value-field="newEntity"/> > <sequenced-id sequence-name="ItemIssuance" field="newEntity.itemIssuanceId"/> > <field-to-result field="newEntity.itemIssuanceId" result-name="itemIssuanceId"/> > @@ -64,48 +60,9 @@ under the License. > </if-not-empty> > <field-to-result field="affectAccounting" result-name="affectAccounting"/> > </simple-method> > - <simple-method method-name="updateItemIssuance" short-description="Update ItemIssuance"> > - <set value="Update ItemIssuance" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > - <check-errors/> > - > - <entity-one entity-name="ItemIssuance" value-field="lookedUpValue"/> > - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> > - <store-value value-field="lookedUpValue"/> > - </simple-method> > - <simple-method method-name="deleteItemIssuance" short-description="Delete ItemIssuance"> > - <set value="Delete ItemIssuance" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > - <check-errors/> > - > - <entity-one entity-name="ItemIssuance" value-field="lookedUpValue"/> > - <remove-value value-field="lookedUpValue"/> > - </simple-method> > - > - <!-- ItemIssuanceRole services --> > - <simple-method method-name="createItemIssuanceRole" short-description="Create ItemIssuanceRole"> > - <set value="Create ItemIssuanceRole" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > - <check-errors/> > - <make-value entity-name="ItemIssuanceRole" value-field="newEntity"/> > - <set-pk-fields map="parameters" value-field="newEntity"/> > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > - <create-value value-field="newEntity"/> > - </simple-method> > - > - <simple-method method-name="deleteItemIssuanceRole" short-description="Delete ItemIssuanceRole"> > - <set value="Delete ItemIssuanceRole" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > - <check-errors/> > - <entity-one entity-name="ItemIssuanceRole" value-field="lookedUpValue"/> > - <remove-value value-field="lookedUpValue"/> > - </simple-method> > > <!-- the actual issuance services --> > <simple-method method-name="issueOrderItemToShipment" short-description="Issue OrderItem to Shipment"> > - <set value="Issue OrderItem to Shipment" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > - <check-errors/> > > <!-- get orderHeader --> > <entity-one entity-name="OrderHeader" value-field="orderHeader" auto-field-map="true"/> > @@ -132,9 +89,6 @@ under the License. > </simple-method> > > <simple-method method-name="issueOrderItemShipGrpInvResToShipment" short-description="Issue OrderItemShipGrpInvRes to Shipment"> > - <set value="Issue OrderItemShipGrpInvRes to Shipment" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > - <check-errors/> > > <!-- get orderItemShipGrpInvRes --> > <make-value entity-name="OrderItemShipGrpInvRes" value-field="OrderItemShipGrpInvResLookupPk"/> > @@ -464,7 +418,7 @@ under the License. > <field-to-result field="itemIssuanceId"/> > </simple-method> > <simple-method method-name="associateIssueRoles" short-description="Associate Roles for ItemIssuance - meant to be called in-line"> > - <!-- make sure the party is in the PACKER role --> > + <!-- make sure the party is in the PACKER role TODO need to replace by ensurePartyRole--> > <make-value entity-name="PartyRole" value-field="partyRole"/> > <set field="partyRole.partyId" from-field="userLogin.partyId"/> > <set field="partyRole.roleTypeId" value="PACKER"/> > @@ -565,8 +519,9 @@ under the License. > <!-- issuance can be canceled only if the sales shipment is not packed --> > > <if-compare field="shipment.statusId" operator="not-equals" value="SHIPMENT_CANCELLED"> > - <set from-field="itemIssuance.shipmentId" field="shipmentId"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > + <set from-field="itemIssuance.shipmentId" field="checkCanChangeShipmentStatusPackedMap.shipmentId"/> > + <set value="UPDATE" field="checkCanChangeShipmentStatusPackedMap.mainAction"/> > + <call-service service-name="checkCanChangeShipmentStatusPacked" in-map-name="checkCanChangeShipmentStatusPackedMap" /> > <check-errors/> > </if-compare> > > > Modified: ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > ============================================================================== > --- ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml (original) > +++ ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml Mon Sep 2 15:13:47 2019 > @@ -361,9 +361,6 @@ under the License. > </simple-method> > > <simple-method method-name="issueOrderItemToShipmentAndReceiveAgainstPO" short-description="Issues order item quantity specified to the shipment, then receives inventory for that item and quantity"> > - <set value="Issue OrderItem to Shipment and Receive against PO" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > - <check-errors/> > > <!-- get orderItem --> > <entity-one entity-name="OrderItem" value-field="orderItem" auto-field-map="true"/> > > Modified: ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > ============================================================================== > --- ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml (original) > +++ ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml Mon Sep 2 15:13:47 2019 > @@ -112,9 +112,6 @@ under the License. > </simple-method> > > <simple-method method-name="updateShipment" short-description="Update Shipment"> > - <set value="Update Shipment" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusDelivered"/> > - <check-errors/> > > <make-value entity-name="Shipment" value-field="lookupPKMap"/> > <set-pk-fields map="parameters" value-field="lookupPKMap"/> > @@ -283,14 +280,6 @@ under the License. > <store-value value-field="lookedUpValue"/> > </simple-method> > > - <simple-method method-name="deleteShipment" short-description="Delete Shipment"> > - <set value="Delete Shipment" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - <entity-one entity-name="Shipment" value-field="lookedUpValue"/> > - <remove-value value-field="lookedUpValue"/> > - </simple-method> > - > <simple-method method-name="createShipmentForReturn" short-description="Create Shipment based on ReturnHeader"> > <entity-one entity-name="ReturnHeader" value-field="returnHeader"> > <field-map field-name="returnId" from-field="parameters.returnId"/> > @@ -428,10 +417,6 @@ under the License. > </simple-method> > > <simple-method method-name="setShipmentSettingsFromPrimaryOrder" short-description="Set Shipment Settings From Primary Order"> > - <set value="Set Shipment Settings From Primary Order" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - > <!-- on Shipment set partyIdFrom, partyIdTo (vendorPartyId), originContactMechId, destinationContactMechId, estimatedShipCost --> > <entity-one entity-name="Shipment" value-field="shipment"/> > > @@ -670,12 +655,7 @@ under the License. > </simple-method> > > <simple-method method-name="setShipmentSettingsFromFacilities" short-description="Set Shipment Settings From Facilities"> > - <set value="Set Shipment Settings From Facilities" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - > <entity-one entity-name="Shipment" value-field="shipment"/> > - > <clone-value value-field="shipment" new-value-field="shipmentCopy"/> > > <string-to-list string="-fromDate" list="descendingFromDateOrder"/> > @@ -817,35 +797,8 @@ under the License. > </simple-method> > > <!-- ShipmentItem services --> > - <simple-method method-name="createShipmentItem" short-description="Create ShipmentItem"> > - <set value="Create ShipmentItem" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - > - <make-value entity-name="ShipmentItem" value-field="newEntity"/> > - <set-pk-fields map="parameters" value-field="newEntity"/> > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > - <!-- if no shipmentItemSeqId, generate one based on existing items, ie one greater than the current higher number --> > - <make-next-seq-id value-field="newEntity" seq-field-name="shipmentItemSeqId"/> > - <field-to-result field="newEntity.shipmentItemSeqId" result-name="shipmentItemSeqId"/> > - <create-value value-field="newEntity"/> > - </simple-method> > - <simple-method method-name="updateShipmentItem" short-description="Update ShipmentItem"> > - <set value="Update ShipmentItem" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - > - <make-value entity-name="ShipmentItem" value-field="lookupPKMap"/> > - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > - <find-by-primary-key entity-name="ShipmentItem" map="lookupPKMap" value-field="lookedUpValue"/> > - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> > - <store-value value-field="lookedUpValue"/> > - </simple-method> > <simple-method method-name="deleteShipmentItem" short-description="Delete ShipmentItem"> > - <set value="Delete ShipmentItem" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - <!-- If there is any Shipment Package Content available for this Shipment Item then it cannot be deleted as it require > + <!-- If there is any Shipment Package Content available for this Shipment Item then it cannot be deleted as it require > Shipment Package content to be deleted first --> > <entity-and entity-name="ShipmentPackageContent" list="shipmentPackageContents"> > <field-map field-name="shipmentId" from-field="parameters.shipmentId"/> > @@ -946,10 +899,6 @@ under the License. > > <!-- ShipmentPackage services --> > <simple-method method-name="createShipmentPackage" short-description="Create ShipmentPackage"> > - <set value="Create ShipmentPackage" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - > <make-value entity-name="ShipmentPackage" value-field="newEntity"/> > <set-pk-fields map="parameters" value-field="newEntity"/> > <set-nonpk-fields map="parameters" value-field="newEntity"/> > @@ -971,10 +920,6 @@ under the License. > <call-simple-method method-name="ensurePackageRouteSeg"/> > </simple-method> > <simple-method method-name="updateShipmentPackage" short-description="Update ShipmentPackage"> > - <set value="Update ShipmentPackage" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusShipped"/> > - <check-errors/> > - > <make-value entity-name="ShipmentPackage" value-field="lookupPKMap"/> > <set-pk-fields map="parameters" value-field="lookupPKMap"/> > <find-by-primary-key entity-name="ShipmentPackage" map="lookupPKMap" value-field="lookedUpValue"/> > @@ -986,9 +931,6 @@ under the License. > <call-simple-method method-name="ensurePackageRouteSeg"/> > </simple-method> > <simple-method method-name="deleteShipmentPackage" short-description="Delete ShipmentPackage"> > - <set value="Delete ShipmentPackage" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > <!-- If there is any Shipment Package Content available for this shipment than Shipment Package cannot be deleted as it require > Shipment Package Content to be deleted first --> > <entity-and entity-name="ShipmentPackageContent" list="shipmentPackageContents"> > @@ -1029,43 +971,7 @@ under the License. > </simple-method> > > <!-- ShipmentPackageContent services --> > - <simple-method method-name="createShipmentPackageContent" short-description="Create ShipmentPackageContent"> > - <set value="Create ShipmentPackageContent" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - > - <make-value entity-name="ShipmentPackageContent" value-field="newEntity"/> > - <set-pk-fields map="parameters" value-field="newEntity"/> > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > - > - <create-value value-field="newEntity"/> > - <field-to-result field="newEntity.shipmentPackageSeqId" result-name="shipmentPackageSeqId"/> > - </simple-method> > - <simple-method method-name="updateShipmentPackageContent" short-description="Update ShipmentPackageContent"> > - <set value="Update ShipmentPackageContent" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - > - <make-value entity-name="ShipmentPackageContent" value-field="lookupPKMap"/> > - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > - <find-by-primary-key entity-name="ShipmentPackageContent" map="lookupPKMap" value-field="lookedUpValue"/> > - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> > - <store-value value-field="lookedUpValue"/> > - </simple-method> > - <simple-method method-name="deleteShipmentPackageContent" short-description="Delete ShipmentPackageContent"> > - <set value="Delete ShipmentPackageContent" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - > - <make-value entity-name="ShipmentPackageContent" value-field="lookupPKMap"/> > - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > - <find-by-primary-key entity-name="ShipmentPackageContent" map="lookupPKMap" value-field="lookedUpValue"/> > - <remove-value value-field="lookedUpValue"/> > - </simple-method> > <simple-method method-name="addShipmentContentToPackage" short-description="Add Shipment Content To Package"> > - <set value="Create ShipmentPackageContent" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > <make-value entity-name="ShipmentPackageContent" value-field="newEntity"/> > <set-pk-fields map="parameters" value-field="newEntity"/> > <find-by-primary-key value-field="shipmentPackageContent" map="newEntity"/> > @@ -1089,86 +995,16 @@ under the License. > <field-to-result field="newEntity.shipmentPackageSeqId" result-name="shipmentPackageSeqId"/> > </simple-method> > > - <!-- ShipmentPackageRouteSeg services --> > - <simple-method method-name="createShipmentPackageRouteSeg" short-description="Create ShipmentPackageRouteSeg"> > - <make-value entity-name="ShipmentPackageRouteSeg" value-field="newEntity"/> > - <set-pk-fields map="parameters" value-field="newEntity"/> > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > - > - <create-value value-field="newEntity"/> > - </simple-method> > - <simple-method method-name="deleteShipmentPackageRouteSeg" short-description="Delete ShipmentPackageRouteSeg"> > - <set value="Delete ShipmentPackageRouteSeg" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - > - <make-value entity-name="ShipmentPackageRouteSeg" value-field="lookupPKMap"/> > - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > - <find-by-primary-key entity-name="ShipmentPackageRouteSeg" map="lookupPKMap" value-field="lookedUpValue"/> > - <remove-value value-field="lookedUpValue"/> > - </simple-method> > - > <!-- ShipmentRouteSegment services --> > - <simple-method method-name="createShipmentRouteSegment" short-description="Create ShipmentRouteSegment"> > - <set value="Create ShipmentRouteSegment" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - > - <make-value entity-name="ShipmentRouteSegment" value-field="newEntity"/> > - <set-pk-fields map="parameters" value-field="newEntity"/> > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > - > - <!-- if no shipmentRouteSegmentSeqId, generate one based on existing items, ie one greater than the current higher number --> > - <make-next-seq-id value-field="newEntity" seq-field-name="shipmentRouteSegmentId"/> > - <field-to-result field="newEntity.shipmentRouteSegmentId" result-name="shipmentRouteSegmentId"/> > - > - <if-empty field="newEntity.carrierServiceStatusId"> > - <set value="SHRSCS_NOT_STARTED" field="newEntity.carrierServiceStatusId"/> > - </if-empty> > - > - <create-value value-field="newEntity"/> > - > - <set from-field="newEntity.shipmentId" field="shipmentId"/> > - <set from-field="newEntity.shipmentRouteSegmentId" field="shipmentRouteSegmentId"/> > - <call-simple-method method-name="ensureRouteSegPackage"/> > - </simple-method> > - <simple-method method-name="updateShipmentRouteSegment" short-description="Update ShipmentRouteSegment"> > - <set value="Update ShipmentRouteSegment" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusDelivered"/> > - <check-errors/> > - > - <entity-one entity-name="ShipmentRouteSegment" value-field="lookedUpValue"/> > - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> > - > - <if-empty field="newEntity.carrierServiceStatusId"> > - <set value="SHRSCS_NOT_STARTED" field="newEntity.carrierServiceStatusId"/> > - </if-empty> > - > - > - <set from-field="userLogin.userLoginId" field="lookedUpValue.updatedByUserLoginId"/> > - <now-timestamp field="lookedUpValue.lastUpdatedDate"/> > - <store-value value-field="lookedUpValue"/> > - > - <set from-field="lookedUpValue.shipmentId" field="shipmentId"/> > - <set from-field="lookedUpValue.shipmentRouteSegmentId" field="shipmentRouteSegmentId"/> > - <call-simple-method method-name="ensureRouteSegPackage"/> > - </simple-method> > - <simple-method method-name="deleteShipmentRouteSegment" short-description="Delete ShipmentRouteSegment"> > - <set value="Delete ShipmentRouteSegment" field="operationName"/> > - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> > - <check-errors/> > - > - <entity-one entity-name="ShipmentRouteSegment" value-field="lookedUpValue"/> > - <remove-value value-field="lookedUpValue"/> > - </simple-method> > <simple-method method-name="ensureRouteSegPackage" short-description="Ensure ShipmentPackageRouteSeg exists for all Packages for this RouteSegment"> > + <entity-one entity-name="ShipmentRouteSegment" value-field="shipmentRouteSegment" use-cache="true"/> > <entity-and entity-name="ShipmentPackage" list="shipmentPackages"> > - <field-map field-name="shipmentId" from-field="shipmentId"/> > + <field-map field-name="shipmentId" from-field="shipmentRouteSegment.shipmentId"/> > </entity-and> > <iterate list="shipmentPackages" entry="shipmentPackage"> > <entity-one entity-name="ShipmentPackageRouteSeg" value-field="checkShipmentPackageRouteSeg" auto-field-map="false"> > - <field-map field-name="shipmentId" from-field="shipmentId"/> > - <field-map field-name="shipmentRouteSegmentId" from-field="shipmentRouteSegmentId"/> > + <field-map field-name="shipmentId" from-field="shipmentRouteSegment.shipmentId"/> > + <field-map field-name="shipmentRouteSegmentId" from-field="shipmentRouteSegment.shipmentRouteSegmentId"/> > <field-map field-name="shipmentPackageSeqId" from-field="shipmentPackage.shipmentPackageSeqId"/> > </entity-one> > <if-empty field="checkShipmentPackageRouteSeg"> > @@ -1194,7 +1030,17 @@ under the License. > <call-simple-method method-name="checkCanChangeShipmentStatusGeneral"/> > </simple-method> > <simple-method method-name="checkCanChangeShipmentStatusGeneral" short-description="Check the Status of a Shipment to see if it can be changed - meant to be called in-line"> > - <entity-one entity-name="Shipment" value-field="testShipment"/> > + <if-empty field="parameters.mainAction"> > + <set field="parameters.mainAction" value="UPDATE"/> > + </if-empty> > + <set-service-fields service-name="facilityGenericPermission" to-map="facilityGenericPermissionMap" map="parameters"/> > + <call-service service-name="facilityGenericPermission" in-map-name="facilityGenericPermissionMap"> > + <result-to-field field="hasPermission" result-name="hasPermission"/> > + </call-service> > + <check-errors/> > + > + <entity-one entity-name="Shipment" value-field="testShipment" use-cache="true"/> > + <set field="fromStatusId" from-field="fromStatusId" default-value="${parameters.fromStatusId}"/> > <if> > <condition> > <or> > @@ -1225,9 +1071,12 @@ under the License. > </condition> > <then> > <get-related-one relation-name="StatusItem" value-field="testShipment" to-value-field="testShipmentStatus"/> > - <string-to-list string="Cannot perform operation ${operationName} when the shipment is in the ${testShipmentStatus.description} [${testShipment.statusId}] status." list="error_list"/> > + <property-to-field resource="ProductErrorUiLabels" property="ShipmentCanChangeStatusPermissionError" field="failMessage"/> > + <set field="hasPermission" type="Boolean" value="false"/> > + <field-to-result field="failMessage"/> > </then> > </if> > + <field-to-result field="hasPermission"/> > </simple-method> > > <!-- quick ship entire order in one package per facility & ship group --> > @@ -1987,23 +1836,5 @@ under the License. > <call-service service-name="cancelOrderItemIssuanceFromSalesShipment" in-map-name="inputMap"/> > </iterate> > </simple-method> > - > - <!-- QuantityBreak services --> > - <!-- create a new QuantityBreak --> > - <simple-method method-name="createQuantityBreak" short-description="Create a QuoteAttribute"> > - <make-value entity-name="QuantityBreak" value-field="quantityBreak"/> > - <set-nonpk-fields map="parameters" value-field="quantityBreak"/> > - <sequenced-id sequence-name="QuantityBreak" field="quantityBreak.quantityBreakId"/> > - <create-value value-field="quantityBreak"/> > - <check-errors/> > - </simple-method> > - > - <!-- remove an existing QuantityBreak --> > - <simple-method method-name="deleteQuantityBreak" short-description="Remove an existing QuantityBreak"> > - <entity-one entity-name="QuantityBreak" value-field="quantityBreak" auto-field-map="true"/> > - <check-errors/> > - <remove-value value-field="quantityBreak"/> > - <check-errors/> > - </simple-method> > </simple-methods> > > > Modified: ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > ============================================================================== > --- ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml (original) > +++ ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml Mon Sep 2 15:13:47 2019 > @@ -151,6 +151,13 @@ under the License. > <action service="updatePurchaseShipmentFromReceipt" mode="sync"/> > </eca> > > + <eca service="createShipmentRouteSegment" event="commit"> > + <action service="ensureRouteSegPackage" mode="sync"/> > + </eca> > + <eca service="updateShipmentRouteSegment" event="commit"> > + <action service="ensureRouteSegPackage" mode="sync"/> > + </eca> > + > <eca service="createShipmentPackageContent" event="in-validate"> > <condition field-name="shipmentPackageSeqId" operator="equals" value="New"/> > <action service="createShipmentPackage" mode="sync"/> > > Modified: ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > ============================================================================== > --- ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml (original) > +++ ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml Mon Sep 2 15:13:47 2019 > @@ -136,7 +136,7 @@ under the License. > <service name="updateShipment" default-entity-name="Shipment" engine="simple" > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="updateShipment" auth="true"> > <description>Update Shipment</description> > - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusDelivered" main-action="UPDATE"/> > <auto-attributes include="pk" mode="INOUT" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"> > <exclude field-name="shipmentTypeId"/> > @@ -152,10 +152,9 @@ under the License. > <attribute name="oldOriginFacilityId" type="String" mode="OUT" optional="true"/> > <attribute name="oldDestinationFacilityId" type="String" mode="OUT" optional="true"/> > </service> > - <service name="deleteShipment" default-entity-name="Shipment" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteShipment" auth="true"> > + <service name="deleteShipment" default-entity-name="Shipment" engine="entity-auto" invoke="delete" auth="true"> > <description>Delete Shipment</description> > - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > </service> > <service name="createShipmentStatus" default-entity-name="ShipmentStatus" engine="entity-auto" invoke="create" auth="true"> > @@ -167,19 +166,13 @@ under the License. > <service name="setShipmentSettingsFromPrimaryOrder" engine="simple" > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="setShipmentSettingsFromPrimaryOrder" auth="true"> > <description>Set Shipment Settings From Primary Order</description> > - <required-permissions join-type="AND"> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> > - </required-permissions> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > <attribute name="shipmentId" type="String" mode="IN" optional="false"/> > </service> > <service name="setShipmentSettingsFromFacilities" engine="simple" > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="setShipmentSettingsFromFacilities" auth="true"> > <description>Set Shipment Settings From Facilities</description> > - <required-permissions join-type="AND"> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> > - </required-permissions> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > <attribute name="shipmentId" type="String" mode="IN" optional="false"/> > </service> > <service name="sendShipmentScheduledNotification" engine="simple" > @@ -220,25 +213,22 @@ under the License. > </service> > > <!-- ShipmentItem Services --> > - <service name="createShipmentItem" default-entity-name="ShipmentItem" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="createShipmentItem" auth="true"> > + <service name="createShipmentItem" default-entity-name="ShipmentItem" engine="entity-auto" invoke="create" auth="true"> > <description>Create ShipmentItem</description> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"/> > <override name="shipmentItemSeqId" mode="INOUT" optional="true"/> > </service> > - <service name="updateShipmentItem" default-entity-name="ShipmentItem" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="updateShipmentItem" auth="true"> > + <service name="updateShipmentItem" default-entity-name="ShipmentItem" engine="entity-auto" invoke="update" auth="true"> > <description>Update ShipmentItem</description> > - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusDelivered" main-action="UPDATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"/> > </service> > - <service name="deleteShipmentItem" default-entity-name="ShipmentItem" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteShipmentItem" auth="true"> > + <service name="deleteShipmentItem" default-entity-name="ShipmentItem" engine="entity-auto" invoke="delete" auth="true"> > <description>Delete ShipmentItem</description> > - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > </service> > > @@ -256,7 +246,7 @@ under the License. > <service name="createShipmentPackage" default-entity-name="ShipmentPackage" engine="simple" > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="createShipmentPackage" auth="true"> > <description>Create ShipmentPackage</description> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"> > <exclude field-name="dateCreated"/> > @@ -266,43 +256,40 @@ under the License. > <service name="updateShipmentPackage" default-entity-name="ShipmentPackage" engine="simple" > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="updateShipmentPackage" auth="true"> > <description>Update ShipmentPackage</description> > - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"/> > </service> > <service name="deleteShipmentPackage" default-entity-name="ShipmentPackage" engine="simple" > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteShipmentPackage" auth="true"> > <description>Delete ShipmentPackage</description> > - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > </service> > > <!-- ShipmentPackageContent Services --> > - <service name="createShipmentPackageContent" default-entity-name="ShipmentPackageContent" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="createShipmentPackageContent" auth="true"> > + <service name="createShipmentPackageContent" default-entity-name="ShipmentPackageContent" engine="entity-auto" invoke="create" auth="true"> > <description>Create ShipmentPackageContent</description> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"/> > <override name="shipmentPackageSeqId" mode="INOUT" optional="false"/> > </service> > - <service name="updateShipmentPackageContent" default-entity-name="ShipmentPackageContent" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="updateShipmentPackageContent" auth="true"> > + <service name="updateShipmentPackageContent" default-entity-name="ShipmentPackageContent" engine="entity-auto" invoke="update" auth="true"> > <description>Update ShipmentPackageContent</description> > - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"/> > </service> > - <service name="deleteShipmentPackageContent" default-entity-name="ShipmentPackageContent" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteShipmentPackageContent" auth="true"> > + <service name="deleteShipmentPackageContent" default-entity-name="ShipmentPackageContent" engine="entity-auto" invoke="delete" auth="true"> > <description>Delete ShipmentPackageContent</description> > - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > </service> > <service name="addShipmentContentToPackage" default-entity-name="ShipmentPackageContent" engine="simple" > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="addShipmentContentToPackage" auth="true"> > <description>Add Shipment Content To Package</description> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"/> > <override name="quantity" mode="IN" optional="false"/> > @@ -310,23 +297,21 @@ under the License. > </service> > > <!-- ShipmentPackageRouteSeg Services --> > - <service name="createShipmentPackageRouteSeg" default-entity-name="ShipmentPackageRouteSeg" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="createShipmentPackageRouteSeg" auth="true"> > + <service name="createShipmentPackageRouteSeg" default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" invoke="create" auth="true"> > <description>Create ShipmentPackageRouteSeg</description> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"/> > </service> > <service name="updateShipmentPackageRouteSeg" default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" invoke="update" auth="true"> > <description>Update ShipmentPackageRouteSeg</description> > - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusDelivered" main-action="UPDATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"/> > </service> > - <service name="deleteShipmentPackageRouteSeg" default-entity-name="ShipmentPackageRouteSeg" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteShipmentPackageRouteSeg" auth="true"> > + <service name="deleteShipmentPackageRouteSeg" default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" invoke="delete" auth="true"> > <description>Delete ShipmentPackageRouteSeg</description> > - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > </service> > > @@ -350,25 +335,23 @@ under the License. > </service> > > <!-- ShipmentRouteSegment Services --> > - <service name="createShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="createShipmentRouteSegment" auth="true"> > + <service name="createShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="entity-auto" invoke="create" auth="true"> > <description>Create ShipmentRouteSegment</description> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"/> > <override name="shipmentRouteSegmentId" mode="INOUT" optional="true"/> > </service> > - <service name="updateShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="updateShipmentRouteSegment" auth="true"> > + <service name="updateShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="entity-auto" invoke="update" auth="true"> > <description>Update ShipmentRouteSegment</description> > - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"/> > + <override name="carrierServiceStatusId" default-value="SHRSCS_NOT_STARTED"/> > </service> > - <service name="deleteShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteShipmentRouteSegment" auth="true"> > + <service name="deleteShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="entity-auto" invoke="delete" auth="true"> > <description>Delete ShipmentRouteSegment</description> > - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > </service> > <service name="duplicateShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="java" > @@ -386,44 +369,46 @@ under the License. > </description> > <auto-attributes include="pk" mode="IN" optional="false"/> > </service> > + <service name="ensureRouteSegPackage" default-entity-name="ShipmentRouteSegment" engine="simple" > + location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="ensureRouteSegPackage" auth="true"> > + <description>Ensure ShipmentPackageRouteSeg exists for all Packages for this RouteSegment</description> > + <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > + <auto-attributes include="pk" mode="IN" optional="false"/> > + </service> > > <!-- ============================================================== --> > <!-- ItemIssuance Services --> > <service name="createItemIssuance" default-entity-name="ItemIssuance" engine="simple" > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="createItemIssuance" auth="true"> > <description>Create ItemIssuance</description> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > <auto-attributes include="pk" mode="OUT" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"/> > <attribute name="affectAccounting" type="Boolean" mode="OUT" optional="true"/> > </service> > - <service name="updateItemIssuance" default-entity-name="ItemIssuance" engine="simple" > - location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="updateItemIssuance" auth="true"> > + <service name="updateItemIssuance" default-entity-name="ItemIssuance" engine="entity-auto" invoke="update" auth="true"> > <description>Update ItemIssuance</description> > - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <auto-attributes include="nonpk" mode="IN" optional="true"/> > </service> > - <service name="deleteItemIssuance" default-entity-name="ItemIssuance" engine="simple" > - location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="deleteItemIssuance" auth="true"> > + <service name="deleteItemIssuance" default-entity-name="ItemIssuance" engine="entity-auto" invoke="delete" auth="true"> > <description>Delete ItemIssuance</description> > - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > </service> > > <!-- ItemIssuanceRole Services --> > - <service name="createItemIssuanceRole" default-entity-name="ItemIssuanceRole" engine="simple" > - location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="createItemIssuanceRole" auth="true"> > + <service name="createItemIssuanceRole" default-entity-name="ItemIssuanceRole" engine="entity-auto" invoke="create" auth="true"> > <description>Create ItemIssuanceRole</description> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <!-- Will check if OK to change status of shipment, so Shipment PK is needed --> > <auto-attributes entity-name="Shipment" include="pk" mode="IN" optional="false"/> > </service> > - <service name="deleteItemIssuanceRole" default-entity-name="ItemIssuanceRole" engine="simple" > - location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="deleteItemIssuanceRole" auth="true"> > + <service name="deleteItemIssuanceRole" default-entity-name="ItemIssuanceRole" engine="entity-auto" invoke="delete" auth="true"> > <description>Delete ItemIssuanceRole</description> > - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > <auto-attributes include="pk" mode="IN" optional="false"/> > <!-- Will check if OK to change status of shipment, so Shipment PK is needed --> > <auto-attributes entity-name="Shipment" include="pk" mode="IN" optional="false"/> > @@ -433,7 +418,7 @@ under the License. > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="issueOrderItemToShipment" auth="true"> > <description>Issue an OrderItem to a Shipment - only for non-sales orders</description> > <required-permissions join-type="AND"> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> > </required-permissions> > <auto-attributes entity-name="Shipment" include="pk" mode="IN" optional="false"/> > @@ -445,7 +430,7 @@ under the License. > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="issueOrderItemShipGrpInvResToShipment" auth="true"> > <description>Add an OrderItemShipGrpInvRes to a Shipment - only for sales orders</description> > <required-permissions join-type="AND"> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> > </required-permissions> > <auto-attributes entity-name="Shipment" include="pk" mode="IN" optional="false"/> > @@ -775,7 +760,7 @@ under the License. > location="component://product/minilang/shipment/receipt/ShipmentReceiptServices.xml" invoke="issueOrderItemToShipmentAndReceiveAgainstPO" auth="true"> > <description>Issues order item quantity specified to the shipment, then receives inventory for that item and quantity</description> > <required-permissions join-type="AND"> > - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> > </required-permissions> > <implements service="issueOrderItemToShipment"/> > @@ -888,11 +873,11 @@ under the License. > </service> > > <!-- QuantityBreak services --> > - <service name="createQuantityBreak" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="createQuantityBreak" auth="true"> > + <service name="createQuantityBreak" default-entity-name="QuantityBreak" engine="entity-auto" invoke="create" auth="true"> > <description>Create a QuantityBreak</description> > <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> > <auto-attributes entity-name="QuantityBreak" include="nonpk" mode="IN" optional="true"/> > + <auto-attributes entity-name="QuantityBreak" include="pk" mode="OUT" optional="false"/> > </service> > <service name="updateQuantityBreak" engine="entity-auto" invoke="update" default-entity-name="QuantityBreak" auth="true"> > <description>Update a QuantityBreak</description> > @@ -900,8 +885,7 @@ under the License. > <auto-attributes entity-name="QuantityBreak" include="pk" mode="IN" optional="false"/> > <auto-attributes entity-name="QuantityBreak" include="nonpk" mode="IN" optional="true"/> > </service> > - <service name="deleteQuantityBreak" engine="simple" > - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteQuantityBreak" auth="true"> > + <service name="deleteQuantityBreak" default-entity-name="QuantityBreak" engine="entity-auto" invoke="delete" auth="true"> > <description>Delete a QuantityBreak</description> > <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> > <auto-attributes entity-name="QuantityBreak" include="pk" mode="IN" optional="false"/> > @@ -1161,4 +1145,27 @@ under the License. > <description>Delete a ShipmentItemBilling</description> > <auto-attributes include="pk" mode="IN" optional="false"/> > </service> > + > + <!-- Permission Services --> > + <service name="checkCanChangeShipmentStatusPacked" engine="simple" > + location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="checkCanChangeShipmentStatusPacked"> > + <description>Check the Status of a Shipment to see if it can be changed for an operation relative to the packed state</description> > + <!-- Info : permission-service service-name="facilityGenericPermission" --> > + <implements service="permissionInterface"/> > + <attribute name="shipmentId" type="String" mode="IN" optional="true"/> > + </service> > + <service name="checkCanChangeShipmentStatusShipped" engine="simple" > + location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="checkCanChangeShipmentStatusShipped"> > + <description>Check the Status of a Shipment to see if it can be changed for an operation relative to the shipped state</description> > + <!-- Info : permission-service service-name="facilityGenericPermission" --> > + <implements service="permissionInterface"/> > + <attribute name="shipmentId" type="String" mode="IN" optional="true"/> > + </service> > + <service name="checkCanChangeShipmentStatusDelivered" engine="simple" > + location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="checkCanChangeShipmentStatusDelivered"> > + <description>Check the Status of a Shipment to see if it can be changed for an operation relative to the delivered state</description> > + <!-- Info : permission-service service-name="facilityGenericPermission" --> > + <implements service="permissionInterface"/> > + <attribute name="shipmentId" type="String" mode="IN" optional="true"/> > + </service> > </services> > > > |
Administrator
|
Congratulations and thanks Nicolas!
Jacques Le 02/09/2019 à 17:24, Nicolas Malin a écrit : > Hi all, > > With this last commit, I think we finish the conversion for CRUD in mini-lang to entity-auto :) > > \o/ > > Now next step mini-lang to groovy ! > > Cheers, > > Nicolas > > On 9/2/19 5:13 PM, [hidden email] wrote: >> Author: nmalin >> Date: Mon Sep 2 15:13:47 2019 >> New Revision: 1866286 >> >> URL: http://svn.apache.org/viewvc?rev=1866286&view=rev >> Log: >> Improved: Convert Shipment Crud simple service to entity-auto >> (OFBIZ-6996) >> I converted all available shipment entities crud currently on simple service to entity-auto service : >> * ItemIssuanceRole >> * ShipmentItem >> * ShipmentPackageContent >> * ShipmentPackageRouteSeg >> * ShipmentRouteSegment >> * QuantityBreak >> >> I also transformed a simple method call to a permission service: checkCanChangeShipmentStatus, who check for a shipment is it on good status for >> the change. >> With this last conversion, the permission control set on the service definition instead of core service >> >> Modified: >> ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml >> ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml >> ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml >> >> Modified: ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml >> URL: >> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml?rev=1866286&r1=1866285&r2=1866286&view=diff >> ============================================================================== >> --- ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml (original) >> +++ ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml Mon Sep 2 15:13:47 2019 >> @@ -1489,6 +1489,10 @@ >> <value xml:lang="zh">å建快éæ·»å ååæ°æ®æ¶åç交æé误ï¼${errMessage}ã</value> >> <value xml:lang="zh-TW">æ°å»ºå¿«éå¢å è®åè³ææç¼ç交æé¯èª¤: ${errMessage}.</value> >> </property> >> + <property key="ShipmentCanChangeStatusPermissionError"> >> + <value xml:lang="en">Cannot perform this operation when the shipment [${testShipment.shipmentId}] is in the >> ${testShipmentStatus.description} [${testShipment.statusId}] status."</value> >> + <value xml:lang="fr">Impossible de réaliser l'opération demandée quand l'expédition [${testShipment.shipmentId}] est dans le statut >> ${testShipmentStatus.description} [${testShipment.statusId}]</value> >> + </property> >> <property key="variantevents.variantProductId_required_but_missing_enter_an_id"> >> <value xml:lang="de">variantProductId wir benötigt, fehlt aber, bitte geben Sie eine ID für die neue Produktvariante an.</value> >> <value xml:lang="en">variantProductId is required but missing, please enter an id for the new variant product.</value> >> >> Modified: ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml >> URL: >> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff >> ============================================================================== >> --- ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml (original) >> +++ ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml Mon Sep 2 15:13:47 2019 >> @@ -22,10 +22,6 @@ under the License. >> xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method >> http://ofbiz.apache.org/dtds/simple-methods.xsd"> >> <!-- ItemIssuance services --> >> <simple-method method-name="createItemIssuance" short-description="Create ItemIssuance"> >> - <set value="Create ItemIssuance" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >> - <check-errors/> >> - >> <make-value entity-name="ItemIssuance" value-field="newEntity"/> >> <sequenced-id sequence-name="ItemIssuance" field="newEntity.itemIssuanceId"/> >> <field-to-result field="newEntity.itemIssuanceId" result-name="itemIssuanceId"/> >> @@ -64,48 +60,9 @@ under the License. >> </if-not-empty> >> <field-to-result field="affectAccounting" result-name="affectAccounting"/> >> </simple-method> >> - <simple-method method-name="updateItemIssuance" short-description="Update ItemIssuance"> >> - <set value="Update ItemIssuance" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >> - <check-errors/> >> - >> - <entity-one entity-name="ItemIssuance" value-field="lookedUpValue"/> >> - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> >> - <store-value value-field="lookedUpValue"/> >> - </simple-method> >> - <simple-method method-name="deleteItemIssuance" short-description="Delete ItemIssuance"> >> - <set value="Delete ItemIssuance" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >> - <check-errors/> >> - >> - <entity-one entity-name="ItemIssuance" value-field="lookedUpValue"/> >> - <remove-value value-field="lookedUpValue"/> >> - </simple-method> >> - >> - <!-- ItemIssuanceRole services --> >> - <simple-method method-name="createItemIssuanceRole" short-description="Create ItemIssuanceRole"> >> - <set value="Create ItemIssuanceRole" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >> - <check-errors/> >> - <make-value entity-name="ItemIssuanceRole" value-field="newEntity"/> >> - <set-pk-fields map="parameters" value-field="newEntity"/> >> - <set-nonpk-fields map="parameters" value-field="newEntity"/> >> - <create-value value-field="newEntity"/> >> - </simple-method> >> - >> - <simple-method method-name="deleteItemIssuanceRole" short-description="Delete ItemIssuanceRole"> >> - <set value="Delete ItemIssuanceRole" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >> - <check-errors/> >> - <entity-one entity-name="ItemIssuanceRole" value-field="lookedUpValue"/> >> - <remove-value value-field="lookedUpValue"/> >> - </simple-method> >> <!-- the actual issuance services --> >> <simple-method method-name="issueOrderItemToShipment" short-description="Issue OrderItem to Shipment"> >> - <set value="Issue OrderItem to Shipment" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >> - <check-errors/> >> <!-- get orderHeader --> >> <entity-one entity-name="OrderHeader" value-field="orderHeader" auto-field-map="true"/> >> @@ -132,9 +89,6 @@ under the License. >> </simple-method> >> <simple-method method-name="issueOrderItemShipGrpInvResToShipment" short-description="Issue OrderItemShipGrpInvRes to Shipment"> >> - <set value="Issue OrderItemShipGrpInvRes to Shipment" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >> - <check-errors/> >> <!-- get orderItemShipGrpInvRes --> >> <make-value entity-name="OrderItemShipGrpInvRes" value-field="OrderItemShipGrpInvResLookupPk"/> >> @@ -464,7 +418,7 @@ under the License. >> <field-to-result field="itemIssuanceId"/> >> </simple-method> >> <simple-method method-name="associateIssueRoles" short-description="Associate Roles for ItemIssuance - meant to be called in-line"> >> - <!-- make sure the party is in the PACKER role --> >> + <!-- make sure the party is in the PACKER role TODO need to replace by ensurePartyRole--> >> <make-value entity-name="PartyRole" value-field="partyRole"/> >> <set field="partyRole.partyId" from-field="userLogin.partyId"/> >> <set field="partyRole.roleTypeId" value="PACKER"/> >> @@ -565,8 +519,9 @@ under the License. >> <!-- issuance can be canceled only if the sales shipment is not packed --> >> <if-compare field="shipment.statusId" operator="not-equals" value="SHIPMENT_CANCELLED"> >> - <set from-field="itemIssuance.shipmentId" field="shipmentId"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >> + <set from-field="itemIssuance.shipmentId" field="checkCanChangeShipmentStatusPackedMap.shipmentId"/> >> + <set value="UPDATE" field="checkCanChangeShipmentStatusPackedMap.mainAction"/> >> + <call-service service-name="checkCanChangeShipmentStatusPacked" in-map-name="checkCanChangeShipmentStatusPackedMap" /> >> <check-errors/> >> </if-compare> >> >> Modified: ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml >> URL: >> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff >> ============================================================================== >> --- ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml (original) >> +++ ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml Mon Sep 2 15:13:47 2019 >> @@ -361,9 +361,6 @@ under the License. >> </simple-method> >> <simple-method method-name="issueOrderItemToShipmentAndReceiveAgainstPO" short-description="Issues order item quantity specified to the >> shipment, then receives inventory for that item and quantity"> >> - <set value="Issue OrderItem to Shipment and Receive against PO" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked" >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >> - <check-errors/> >> <!-- get orderItem --> >> <entity-one entity-name="OrderItem" value-field="orderItem" auto-field-map="true"/> >> >> Modified: ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml >> URL: >> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff >> ============================================================================== >> --- ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml (original) >> +++ ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml Mon Sep 2 15:13:47 2019 >> @@ -112,9 +112,6 @@ under the License. >> </simple-method> >> <simple-method method-name="updateShipment" short-description="Update Shipment"> >> - <set value="Update Shipment" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusDelivered"/> >> - <check-errors/> >> <make-value entity-name="Shipment" value-field="lookupPKMap"/> >> <set-pk-fields map="parameters" value-field="lookupPKMap"/> >> @@ -283,14 +280,6 @@ under the License. >> <store-value value-field="lookedUpValue"/> >> </simple-method> >> - <simple-method method-name="deleteShipment" short-description="Delete Shipment"> >> - <set value="Delete Shipment" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - <entity-one entity-name="Shipment" value-field="lookedUpValue"/> >> - <remove-value value-field="lookedUpValue"/> >> - </simple-method> >> - >> <simple-method method-name="createShipmentForReturn" short-description="Create Shipment based on ReturnHeader"> >> <entity-one entity-name="ReturnHeader" value-field="returnHeader"> >> <field-map field-name="returnId" from-field="parameters.returnId"/> >> @@ -428,10 +417,6 @@ under the License. >> </simple-method> >> <simple-method method-name="setShipmentSettingsFromPrimaryOrder" short-description="Set Shipment Settings From Primary Order"> >> - <set value="Set Shipment Settings From Primary Order" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - >> <!-- on Shipment set partyIdFrom, partyIdTo (vendorPartyId), originContactMechId, destinationContactMechId, estimatedShipCost --> >> <entity-one entity-name="Shipment" value-field="shipment"/> >> @@ -670,12 +655,7 @@ under the License. >> </simple-method> >> <simple-method method-name="setShipmentSettingsFromFacilities" short-description="Set Shipment Settings From Facilities"> >> - <set value="Set Shipment Settings From Facilities" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - >> <entity-one entity-name="Shipment" value-field="shipment"/> >> - >> <clone-value value-field="shipment" new-value-field="shipmentCopy"/> >> <string-to-list string="-fromDate" list="descendingFromDateOrder"/> >> @@ -817,35 +797,8 @@ under the License. >> </simple-method> >> <!-- ShipmentItem services --> >> - <simple-method method-name="createShipmentItem" short-description="Create ShipmentItem"> >> - <set value="Create ShipmentItem" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - >> - <make-value entity-name="ShipmentItem" value-field="newEntity"/> >> - <set-pk-fields map="parameters" value-field="newEntity"/> >> - <set-nonpk-fields map="parameters" value-field="newEntity"/> >> - <!-- if no shipmentItemSeqId, generate one based on existing items, ie one greater than the current higher number --> >> - <make-next-seq-id value-field="newEntity" seq-field-name="shipmentItemSeqId"/> >> - <field-to-result field="newEntity.shipmentItemSeqId" result-name="shipmentItemSeqId"/> >> - <create-value value-field="newEntity"/> >> - </simple-method> >> - <simple-method method-name="updateShipmentItem" short-description="Update ShipmentItem"> >> - <set value="Update ShipmentItem" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - >> - <make-value entity-name="ShipmentItem" value-field="lookupPKMap"/> >> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> >> - <find-by-primary-key entity-name="ShipmentItem" map="lookupPKMap" value-field="lookedUpValue"/> >> - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> >> - <store-value value-field="lookedUpValue"/> >> - </simple-method> >> <simple-method method-name="deleteShipmentItem" short-description="Delete ShipmentItem"> >> - <set value="Delete ShipmentItem" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - <!-- If there is any Shipment Package Content available for this Shipment Item then it cannot be deleted as it require >> + <!-- If there is any Shipment Package Content available for this Shipment Item then it cannot be deleted as it require >> Shipment Package content to be deleted first --> >> <entity-and entity-name="ShipmentPackageContent" list="shipmentPackageContents"> >> <field-map field-name="shipmentId" from-field="parameters.shipmentId"/> >> @@ -946,10 +899,6 @@ under the License. >> <!-- ShipmentPackage services --> >> <simple-method method-name="createShipmentPackage" short-description="Create ShipmentPackage"> >> - <set value="Create ShipmentPackage" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - >> <make-value entity-name="ShipmentPackage" value-field="newEntity"/> >> <set-pk-fields map="parameters" value-field="newEntity"/> >> <set-nonpk-fields map="parameters" value-field="newEntity"/> >> @@ -971,10 +920,6 @@ under the License. >> <call-simple-method method-name="ensurePackageRouteSeg"/> >> </simple-method> >> <simple-method method-name="updateShipmentPackage" short-description="Update ShipmentPackage"> >> - <set value="Update ShipmentPackage" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusShipped"/> >> - <check-errors/> >> - >> <make-value entity-name="ShipmentPackage" value-field="lookupPKMap"/> >> <set-pk-fields map="parameters" value-field="lookupPKMap"/> >> <find-by-primary-key entity-name="ShipmentPackage" map="lookupPKMap" value-field="lookedUpValue"/> >> @@ -986,9 +931,6 @@ under the License. >> <call-simple-method method-name="ensurePackageRouteSeg"/> >> </simple-method> >> <simple-method method-name="deleteShipmentPackage" short-description="Delete ShipmentPackage"> >> - <set value="Delete ShipmentPackage" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> <!-- If there is any Shipment Package Content available for this shipment than Shipment Package cannot be deleted as it require >> Shipment Package Content to be deleted first --> >> <entity-and entity-name="ShipmentPackageContent" list="shipmentPackageContents"> >> @@ -1029,43 +971,7 @@ under the License. >> </simple-method> >> <!-- ShipmentPackageContent services --> >> - <simple-method method-name="createShipmentPackageContent" short-description="Create ShipmentPackageContent"> >> - <set value="Create ShipmentPackageContent" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - >> - <make-value entity-name="ShipmentPackageContent" value-field="newEntity"/> >> - <set-pk-fields map="parameters" value-field="newEntity"/> >> - <set-nonpk-fields map="parameters" value-field="newEntity"/> >> - >> - <create-value value-field="newEntity"/> >> - <field-to-result field="newEntity.shipmentPackageSeqId" result-name="shipmentPackageSeqId"/> >> - </simple-method> >> - <simple-method method-name="updateShipmentPackageContent" short-description="Update ShipmentPackageContent"> >> - <set value="Update ShipmentPackageContent" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - >> - <make-value entity-name="ShipmentPackageContent" value-field="lookupPKMap"/> >> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> >> - <find-by-primary-key entity-name="ShipmentPackageContent" map="lookupPKMap" value-field="lookedUpValue"/> >> - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> >> - <store-value value-field="lookedUpValue"/> >> - </simple-method> >> - <simple-method method-name="deleteShipmentPackageContent" short-description="Delete ShipmentPackageContent"> >> - <set value="Delete ShipmentPackageContent" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - >> - <make-value entity-name="ShipmentPackageContent" value-field="lookupPKMap"/> >> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> >> - <find-by-primary-key entity-name="ShipmentPackageContent" map="lookupPKMap" value-field="lookedUpValue"/> >> - <remove-value value-field="lookedUpValue"/> >> - </simple-method> >> <simple-method method-name="addShipmentContentToPackage" short-description="Add Shipment Content To Package"> >> - <set value="Create ShipmentPackageContent" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> <make-value entity-name="ShipmentPackageContent" value-field="newEntity"/> >> <set-pk-fields map="parameters" value-field="newEntity"/> >> <find-by-primary-key value-field="shipmentPackageContent" map="newEntity"/> >> @@ -1089,86 +995,16 @@ under the License. >> <field-to-result field="newEntity.shipmentPackageSeqId" result-name="shipmentPackageSeqId"/> >> </simple-method> >> - <!-- ShipmentPackageRouteSeg services --> >> - <simple-method method-name="createShipmentPackageRouteSeg" short-description="Create ShipmentPackageRouteSeg"> >> - <make-value entity-name="ShipmentPackageRouteSeg" value-field="newEntity"/> >> - <set-pk-fields map="parameters" value-field="newEntity"/> >> - <set-nonpk-fields map="parameters" value-field="newEntity"/> >> - >> - <create-value value-field="newEntity"/> >> - </simple-method> >> - <simple-method method-name="deleteShipmentPackageRouteSeg" short-description="Delete ShipmentPackageRouteSeg"> >> - <set value="Delete ShipmentPackageRouteSeg" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - >> - <make-value entity-name="ShipmentPackageRouteSeg" value-field="lookupPKMap"/> >> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> >> - <find-by-primary-key entity-name="ShipmentPackageRouteSeg" map="lookupPKMap" value-field="lookedUpValue"/> >> - <remove-value value-field="lookedUpValue"/> >> - </simple-method> >> - >> <!-- ShipmentRouteSegment services --> >> - <simple-method method-name="createShipmentRouteSegment" short-description="Create ShipmentRouteSegment"> >> - <set value="Create ShipmentRouteSegment" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - >> - <make-value entity-name="ShipmentRouteSegment" value-field="newEntity"/> >> - <set-pk-fields map="parameters" value-field="newEntity"/> >> - <set-nonpk-fields map="parameters" value-field="newEntity"/> >> - >> - <!-- if no shipmentRouteSegmentSeqId, generate one based on existing items, ie one greater than the current higher number --> >> - <make-next-seq-id value-field="newEntity" seq-field-name="shipmentRouteSegmentId"/> >> - <field-to-result field="newEntity.shipmentRouteSegmentId" result-name="shipmentRouteSegmentId"/> >> - >> - <if-empty field="newEntity.carrierServiceStatusId"> >> - <set value="SHRSCS_NOT_STARTED" field="newEntity.carrierServiceStatusId"/> >> - </if-empty> >> - >> - <create-value value-field="newEntity"/> >> - >> - <set from-field="newEntity.shipmentId" field="shipmentId"/> >> - <set from-field="newEntity.shipmentRouteSegmentId" field="shipmentRouteSegmentId"/> >> - <call-simple-method method-name="ensureRouteSegPackage"/> >> - </simple-method> >> - <simple-method method-name="updateShipmentRouteSegment" short-description="Update ShipmentRouteSegment"> >> - <set value="Update ShipmentRouteSegment" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusDelivered"/> >> - <check-errors/> >> - >> - <entity-one entity-name="ShipmentRouteSegment" value-field="lookedUpValue"/> >> - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> >> - >> - <if-empty field="newEntity.carrierServiceStatusId"> >> - <set value="SHRSCS_NOT_STARTED" field="newEntity.carrierServiceStatusId"/> >> - </if-empty> >> - >> - >> - <set from-field="userLogin.userLoginId" field="lookedUpValue.updatedByUserLoginId"/> >> - <now-timestamp field="lookedUpValue.lastUpdatedDate"/> >> - <store-value value-field="lookedUpValue"/> >> - >> - <set from-field="lookedUpValue.shipmentId" field="shipmentId"/> >> - <set from-field="lookedUpValue.shipmentRouteSegmentId" field="shipmentRouteSegmentId"/> >> - <call-simple-method method-name="ensureRouteSegPackage"/> >> - </simple-method> >> - <simple-method method-name="deleteShipmentRouteSegment" short-description="Delete ShipmentRouteSegment"> >> - <set value="Delete ShipmentRouteSegment" field="operationName"/> >> - <call-simple-method method-name="checkCanChangeShipmentStatusPacked"/> >> - <check-errors/> >> - >> - <entity-one entity-name="ShipmentRouteSegment" value-field="lookedUpValue"/> >> - <remove-value value-field="lookedUpValue"/> >> - </simple-method> >> <simple-method method-name="ensureRouteSegPackage" short-description="Ensure ShipmentPackageRouteSeg exists for all Packages for this >> RouteSegment"> >> + <entity-one entity-name="ShipmentRouteSegment" value-field="shipmentRouteSegment" use-cache="true"/> >> <entity-and entity-name="ShipmentPackage" list="shipmentPackages"> >> - <field-map field-name="shipmentId" from-field="shipmentId"/> >> + <field-map field-name="shipmentId" from-field="shipmentRouteSegment.shipmentId"/> >> </entity-and> >> <iterate list="shipmentPackages" entry="shipmentPackage"> >> <entity-one entity-name="ShipmentPackageRouteSeg" value-field="checkShipmentPackageRouteSeg" auto-field-map="false"> >> - <field-map field-name="shipmentId" from-field="shipmentId"/> >> - <field-map field-name="shipmentRouteSegmentId" from-field="shipmentRouteSegmentId"/> >> + <field-map field-name="shipmentId" from-field="shipmentRouteSegment.shipmentId"/> >> + <field-map field-name="shipmentRouteSegmentId" from-field="shipmentRouteSegment.shipmentRouteSegmentId"/> >> <field-map field-name="shipmentPackageSeqId" from-field="shipmentPackage.shipmentPackageSeqId"/> >> </entity-one> >> <if-empty field="checkShipmentPackageRouteSeg"> >> @@ -1194,7 +1030,17 @@ under the License. >> <call-simple-method method-name="checkCanChangeShipmentStatusGeneral"/> >> </simple-method> >> <simple-method method-name="checkCanChangeShipmentStatusGeneral" short-description="Check the Status of a Shipment to see if it can be >> changed - meant to be called in-line"> >> - <entity-one entity-name="Shipment" value-field="testShipment"/> >> + <if-empty field="parameters.mainAction"> >> + <set field="parameters.mainAction" value="UPDATE"/> >> + </if-empty> >> + <set-service-fields service-name="facilityGenericPermission" to-map="facilityGenericPermissionMap" map="parameters"/> >> + <call-service service-name="facilityGenericPermission" in-map-name="facilityGenericPermissionMap"> >> + <result-to-field field="hasPermission" result-name="hasPermission"/> >> + </call-service> >> + <check-errors/> >> + >> + <entity-one entity-name="Shipment" value-field="testShipment" use-cache="true"/> >> + <set field="fromStatusId" from-field="fromStatusId" default-value="${parameters.fromStatusId}"/> >> <if> >> <condition> >> <or> >> @@ -1225,9 +1071,12 @@ under the License. >> </condition> >> <then> >> <get-related-one relation-name="StatusItem" value-field="testShipment" to-value-field="testShipmentStatus"/> >> - <string-to-list string="Cannot perform operation ${operationName} when the shipment is in the ${testShipmentStatus.description} >> [${testShipment.statusId}] status." list="error_list"/> >> + <property-to-field resource="ProductErrorUiLabels" property="ShipmentCanChangeStatusPermissionError" field="failMessage"/> >> + <set field="hasPermission" type="Boolean" value="false"/> >> + <field-to-result field="failMessage"/> >> </then> >> </if> >> + <field-to-result field="hasPermission"/> >> </simple-method> >> <!-- quick ship entire order in one package per facility & ship group --> >> @@ -1987,23 +1836,5 @@ under the License. >> <call-service service-name="cancelOrderItemIssuanceFromSalesShipment" in-map-name="inputMap"/> >> </iterate> >> </simple-method> >> - >> - <!-- QuantityBreak services --> >> - <!-- create a new QuantityBreak --> >> - <simple-method method-name="createQuantityBreak" short-description="Create a QuoteAttribute"> >> - <make-value entity-name="QuantityBreak" value-field="quantityBreak"/> >> - <set-nonpk-fields map="parameters" value-field="quantityBreak"/> >> - <sequenced-id sequence-name="QuantityBreak" field="quantityBreak.quantityBreakId"/> >> - <create-value value-field="quantityBreak"/> >> - <check-errors/> >> - </simple-method> >> - >> - <!-- remove an existing QuantityBreak --> >> - <simple-method method-name="deleteQuantityBreak" short-description="Remove an existing QuantityBreak"> >> - <entity-one entity-name="QuantityBreak" value-field="quantityBreak" auto-field-map="true"/> >> - <check-errors/> >> - <remove-value value-field="quantityBreak"/> >> - <check-errors/> >> - </simple-method> >> </simple-methods> >> >> Modified: ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml >> URL: >> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml?rev=1866286&r1=1866285&r2=1866286&view=diff >> ============================================================================== >> --- ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml (original) >> +++ ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml Mon Sep 2 15:13:47 2019 >> @@ -151,6 +151,13 @@ under the License. >> <action service="updatePurchaseShipmentFromReceipt" mode="sync"/> >> </eca> >> + <eca service="createShipmentRouteSegment" event="commit"> >> + <action service="ensureRouteSegPackage" mode="sync"/> >> + </eca> >> + <eca service="updateShipmentRouteSegment" event="commit"> >> + <action service="ensureRouteSegPackage" mode="sync"/> >> + </eca> >> + >> <eca service="createShipmentPackageContent" event="in-validate"> >> <condition field-name="shipmentPackageSeqId" operator="equals" value="New"/> >> <action service="createShipmentPackage" mode="sync"/> >> >> Modified: ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml >> URL: >> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml?rev=1866286&r1=1866285&r2=1866286&view=diff >> ============================================================================== >> --- ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml (original) >> +++ ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml Mon Sep 2 15:13:47 2019 >> @@ -136,7 +136,7 @@ under the License. >> <service name="updateShipment" default-entity-name="Shipment" engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="updateShipment" auth="true"> >> <description>Update Shipment</description> >> - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusDelivered" main-action="UPDATE"/> >> <auto-attributes include="pk" mode="INOUT" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"> >> <exclude field-name="shipmentTypeId"/> >> @@ -152,10 +152,9 @@ under the License. >> <attribute name="oldOriginFacilityId" type="String" mode="OUT" optional="true"/> >> <attribute name="oldDestinationFacilityId" type="String" mode="OUT" optional="true"/> >> </service> >> - <service name="deleteShipment" default-entity-name="Shipment" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteShipment" auth="true"> >> + <service name="deleteShipment" default-entity-name="Shipment" engine="entity-auto" invoke="delete" auth="true"> >> <description>Delete Shipment</description> >> - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> </service> >> <service name="createShipmentStatus" default-entity-name="ShipmentStatus" engine="entity-auto" invoke="create" auth="true"> >> @@ -167,19 +166,13 @@ under the License. >> <service name="setShipmentSettingsFromPrimaryOrder" engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="setShipmentSettingsFromPrimaryOrder" auth="true"> >> <description>Set Shipment Settings From Primary Order</description> >> - <required-permissions join-type="AND"> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> >> - </required-permissions> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> >> <attribute name="shipmentId" type="String" mode="IN" optional="false"/> >> </service> >> <service name="setShipmentSettingsFromFacilities" engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="setShipmentSettingsFromFacilities" auth="true"> >> <description>Set Shipment Settings From Facilities</description> >> - <required-permissions join-type="AND"> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> >> - </required-permissions> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> >> <attribute name="shipmentId" type="String" mode="IN" optional="false"/> >> </service> >> <service name="sendShipmentScheduledNotification" engine="simple" >> @@ -220,25 +213,22 @@ under the License. >> </service> >> <!-- ShipmentItem Services --> >> - <service name="createShipmentItem" default-entity-name="ShipmentItem" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="createShipmentItem" auth="true"> >> + <service name="createShipmentItem" default-entity-name="ShipmentItem" engine="entity-auto" invoke="create" auth="true"> >> <description>Create ShipmentItem</description> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"/> >> <override name="shipmentItemSeqId" mode="INOUT" optional="true"/> >> </service> >> - <service name="updateShipmentItem" default-entity-name="ShipmentItem" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="updateShipmentItem" auth="true"> >> + <service name="updateShipmentItem" default-entity-name="ShipmentItem" engine="entity-auto" invoke="update" auth="true"> >> <description>Update ShipmentItem</description> >> - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusDelivered" main-action="UPDATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"/> >> </service> >> - <service name="deleteShipmentItem" default-entity-name="ShipmentItem" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteShipmentItem" auth="true"> >> + <service name="deleteShipmentItem" default-entity-name="ShipmentItem" engine="entity-auto" invoke="delete" auth="true"> >> <description>Delete ShipmentItem</description> >> - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> </service> >> @@ -256,7 +246,7 @@ under the License. >> <service name="createShipmentPackage" default-entity-name="ShipmentPackage" engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="createShipmentPackage" auth="true"> >> <description>Create ShipmentPackage</description> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"> >> <exclude field-name="dateCreated"/> >> @@ -266,43 +256,40 @@ under the License. >> <service name="updateShipmentPackage" default-entity-name="ShipmentPackage" engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="updateShipmentPackage" auth="true"> >> <description>Update ShipmentPackage</description> >> - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"/> >> </service> >> <service name="deleteShipmentPackage" default-entity-name="ShipmentPackage" engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteShipmentPackage" auth="true"> >> <description>Delete ShipmentPackage</description> >> - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> </service> >> <!-- ShipmentPackageContent Services --> >> - <service name="createShipmentPackageContent" default-entity-name="ShipmentPackageContent" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="createShipmentPackageContent" auth="true"> >> + <service name="createShipmentPackageContent" default-entity-name="ShipmentPackageContent" engine="entity-auto" invoke="create" auth="true"> >> <description>Create ShipmentPackageContent</description> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"/> >> <override name="shipmentPackageSeqId" mode="INOUT" optional="false"/> >> </service> >> - <service name="updateShipmentPackageContent" default-entity-name="ShipmentPackageContent" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="updateShipmentPackageContent" auth="true"> >> + <service name="updateShipmentPackageContent" default-entity-name="ShipmentPackageContent" engine="entity-auto" invoke="update" auth="true"> >> <description>Update ShipmentPackageContent</description> >> - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"/> >> </service> >> - <service name="deleteShipmentPackageContent" default-entity-name="ShipmentPackageContent" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteShipmentPackageContent" auth="true"> >> + <service name="deleteShipmentPackageContent" default-entity-name="ShipmentPackageContent" engine="entity-auto" invoke="delete" auth="true"> >> <description>Delete ShipmentPackageContent</description> >> - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> </service> >> <service name="addShipmentContentToPackage" default-entity-name="ShipmentPackageContent" engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="addShipmentContentToPackage" auth="true"> >> <description>Add Shipment Content To Package</description> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"/> >> <override name="quantity" mode="IN" optional="false"/> >> @@ -310,23 +297,21 @@ under the License. >> </service> >> <!-- ShipmentPackageRouteSeg Services --> >> - <service name="createShipmentPackageRouteSeg" default-entity-name="ShipmentPackageRouteSeg" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="createShipmentPackageRouteSeg" auth="true"> >> + <service name="createShipmentPackageRouteSeg" default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" invoke="create" auth="true"> >> <description>Create ShipmentPackageRouteSeg</description> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"/> >> </service> >> <service name="updateShipmentPackageRouteSeg" default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" invoke="update" auth="true"> >> <description>Update ShipmentPackageRouteSeg</description> >> - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusDelivered" main-action="UPDATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"/> >> </service> >> - <service name="deleteShipmentPackageRouteSeg" default-entity-name="ShipmentPackageRouteSeg" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteShipmentPackageRouteSeg" auth="true"> >> + <service name="deleteShipmentPackageRouteSeg" default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" invoke="delete" auth="true"> >> <description>Delete ShipmentPackageRouteSeg</description> >> - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> </service> >> @@ -350,25 +335,23 @@ under the License. >> </service> >> <!-- ShipmentRouteSegment Services --> >> - <service name="createShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="createShipmentRouteSegment" auth="true"> >> + <service name="createShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="entity-auto" invoke="create" auth="true"> >> <description>Create ShipmentRouteSegment</description> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"/> >> <override name="shipmentRouteSegmentId" mode="INOUT" optional="true"/> >> </service> >> - <service name="updateShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="updateShipmentRouteSegment" auth="true"> >> + <service name="updateShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="entity-auto" invoke="update" auth="true"> >> <description>Update ShipmentRouteSegment</description> >> - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"/> >> + <override name="carrierServiceStatusId" default-value="SHRSCS_NOT_STARTED"/> >> </service> >> - <service name="deleteShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteShipmentRouteSegment" auth="true"> >> + <service name="deleteShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="entity-auto" invoke="delete" auth="true"> >> <description>Delete ShipmentRouteSegment</description> >> - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> </service> >> <service name="duplicateShipmentRouteSegment" default-entity-name="ShipmentRouteSegment" engine="java" >> @@ -386,44 +369,46 @@ under the License. >> </description> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> </service> >> + <service name="ensureRouteSegPackage" default-entity-name="ShipmentRouteSegment" engine="simple" >> + location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="ensureRouteSegPackage" auth="true"> >> + <description>Ensure ShipmentPackageRouteSeg exists for all Packages for this RouteSegment</description> >> + <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> + <auto-attributes include="pk" mode="IN" optional="false"/> >> + </service> >> <!-- ============================================================== --> >> <!-- ItemIssuance Services --> >> <service name="createItemIssuance" default-entity-name="ItemIssuance" engine="simple" >> location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="createItemIssuance" auth="true"> >> <description>Create ItemIssuance</description> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >> <auto-attributes include="pk" mode="OUT" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"/> >> <attribute name="affectAccounting" type="Boolean" mode="OUT" optional="true"/> >> </service> >> - <service name="updateItemIssuance" default-entity-name="ItemIssuance" engine="simple" >> - location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="updateItemIssuance" auth="true"> >> + <service name="updateItemIssuance" default-entity-name="ItemIssuance" engine="entity-auto" invoke="update" auth="true"> >> <description>Update ItemIssuance</description> >> - <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <auto-attributes include="nonpk" mode="IN" optional="true"/> >> </service> >> - <service name="deleteItemIssuance" default-entity-name="ItemIssuance" engine="simple" >> - location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="deleteItemIssuance" auth="true"> >> + <service name="deleteItemIssuance" default-entity-name="ItemIssuance" engine="entity-auto" invoke="delete" auth="true"> >> <description>Delete ItemIssuance</description> >> - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> </service> >> <!-- ItemIssuanceRole Services --> >> - <service name="createItemIssuanceRole" default-entity-name="ItemIssuanceRole" engine="simple" >> - location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="createItemIssuanceRole" auth="true"> >> + <service name="createItemIssuanceRole" default-entity-name="ItemIssuanceRole" engine="entity-auto" invoke="create" auth="true"> >> <description>Create ItemIssuanceRole</description> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <!-- Will check if OK to change status of shipment, so Shipment PK is needed --> >> <auto-attributes entity-name="Shipment" include="pk" mode="IN" optional="false"/> >> </service> >> - <service name="deleteItemIssuanceRole" default-entity-name="ItemIssuanceRole" engine="simple" >> - location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="deleteItemIssuanceRole" auth="true"> >> + <service name="deleteItemIssuanceRole" default-entity-name="ItemIssuanceRole" engine="entity-auto" invoke="delete" auth="true"> >> <description>Delete ItemIssuanceRole</description> >> - <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> <!-- Will check if OK to change status of shipment, so Shipment PK is needed --> >> <auto-attributes entity-name="Shipment" include="pk" mode="IN" optional="false"/> >> @@ -433,7 +418,7 @@ under the License. >> location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="issueOrderItemToShipment" auth="true"> >> <description>Issue an OrderItem to a Shipment - only for non-sales orders</description> >> <required-permissions join-type="AND"> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >> <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> >> </required-permissions> >> <auto-attributes entity-name="Shipment" include="pk" mode="IN" optional="false"/> >> @@ -445,7 +430,7 @@ under the License. >> location="component://product/minilang/shipment/issuance/IssuanceServices.xml" invoke="issueOrderItemShipGrpInvResToShipment" auth="true"> >> <description>Add an OrderItemShipGrpInvRes to a Shipment - only for sales orders</description> >> <required-permissions join-type="AND"> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >> <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> >> </required-permissions> >> <auto-attributes entity-name="Shipment" include="pk" mode="IN" optional="false"/> >> @@ -775,7 +760,7 @@ under the License. >> location="component://product/minilang/shipment/receipt/ShipmentReceiptServices.xml" invoke="issueOrderItemToShipmentAndReceiveAgainstPO" auth="true"> >> <description>Issues order item quantity specified to the shipment, then receives inventory for that item and quantity</description> >> <required-permissions join-type="AND"> >> - <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> + <permission-service service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >> <permission-service service-name="facilityGenericPermission" main-action="UPDATE"/> >> </required-permissions> >> <implements service="issueOrderItemToShipment"/> >> @@ -888,11 +873,11 @@ under the License. >> </service> >> <!-- QuantityBreak services --> >> - <service name="createQuantityBreak" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="createQuantityBreak" auth="true"> >> + <service name="createQuantityBreak" default-entity-name="QuantityBreak" engine="entity-auto" invoke="create" auth="true"> >> <description>Create a QuantityBreak</description> >> <permission-service service-name="facilityGenericPermission" main-action="CREATE"/> >> <auto-attributes entity-name="QuantityBreak" include="nonpk" mode="IN" optional="true"/> >> + <auto-attributes entity-name="QuantityBreak" include="pk" mode="OUT" optional="false"/> >> </service> >> <service name="updateQuantityBreak" engine="entity-auto" invoke="update" default-entity-name="QuantityBreak" auth="true"> >> <description>Update a QuantityBreak</description> >> @@ -900,8 +885,7 @@ under the License. >> <auto-attributes entity-name="QuantityBreak" include="pk" mode="IN" optional="false"/> >> <auto-attributes entity-name="QuantityBreak" include="nonpk" mode="IN" optional="true"/> >> </service> >> - <service name="deleteQuantityBreak" engine="simple" >> - location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="deleteQuantityBreak" auth="true"> >> + <service name="deleteQuantityBreak" default-entity-name="QuantityBreak" engine="entity-auto" invoke="delete" auth="true"> >> <description>Delete a QuantityBreak</description> >> <permission-service service-name="facilityGenericPermission" main-action="DELETE"/> >> <auto-attributes entity-name="QuantityBreak" include="pk" mode="IN" optional="false"/> >> @@ -1161,4 +1145,27 @@ under the License. >> <description>Delete a ShipmentItemBilling</description> >> <auto-attributes include="pk" mode="IN" optional="false"/> >> </service> >> + >> + <!-- Permission Services --> >> + <service name="checkCanChangeShipmentStatusPacked" engine="simple" >> + location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="checkCanChangeShipmentStatusPacked"> >> + <description>Check the Status of a Shipment to see if it can be changed for an operation relative to the packed state</description> >> + <!-- Info : permission-service service-name="facilityGenericPermission" --> >> + <implements service="permissionInterface"/> >> + <attribute name="shipmentId" type="String" mode="IN" optional="true"/> >> + </service> >> + <service name="checkCanChangeShipmentStatusShipped" engine="simple" >> + location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="checkCanChangeShipmentStatusShipped"> >> + <description>Check the Status of a Shipment to see if it can be changed for an operation relative to the shipped state</description> >> + <!-- Info : permission-service service-name="facilityGenericPermission" --> >> + <implements service="permissionInterface"/> >> + <attribute name="shipmentId" type="String" mode="IN" optional="true"/> >> + </service> >> + <service name="checkCanChangeShipmentStatusDelivered" engine="simple" >> + location="component://product/minilang/shipment/shipment/ShipmentServices.xml" invoke="checkCanChangeShipmentStatusDelivered"> >> + <description>Check the Status of a Shipment to see if it can be changed for an operation relative to the delivered state</description> >> + <!-- Info : permission-service service-name="facilityGenericPermission" --> >> + <implements service="permissionInterface"/> >> + <attribute name="shipmentId" type="String" mode="IN" optional="true"/> >> + </service> >> </services> >> >> >> > |
In reply to this post by Nicolas Malin-2
Great, thanks so much Nicolas!
Best regards, Swapnil M Mane, ofbiz.apache.org On Mon, Sep 2, 2019 at 8:54 PM Nicolas Malin <[hidden email]> wrote: > Hi all, > > With this last commit, I think we finish the conversion for CRUD in > mini-lang to entity-auto :) > > \o/ > > Now next step mini-lang to groovy ! > > Cheers, > > Nicolas > > On 9/2/19 5:13 PM, [hidden email] wrote: > > Author: nmalin > > Date: Mon Sep 2 15:13:47 2019 > > New Revision: 1866286 > > > > URL: http://svn.apache.org/viewvc?rev=1866286&view=rev > > Log: > > Improved: Convert Shipment Crud simple service to entity-auto > > (OFBIZ-6996) > > I converted all available shipment entities crud currently on simple > service to entity-auto service : > > * ItemIssuanceRole > > * ShipmentItem > > * ShipmentPackageContent > > * ShipmentPackageRouteSeg > > * ShipmentRouteSegment > > * QuantityBreak > > > > I also transformed a simple method call to a permission service: > checkCanChangeShipmentStatus, who check for a shipment is it on good status > for the change. > > With this last conversion, the permission control set on the service > definition instead of core service > > > > Modified: > > > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > > > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > > > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > > > > Modified: > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > > URL: > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > > > ============================================================================== > > --- > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > (original) > > +++ > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > Mon Sep 2 15:13:47 2019 > > @@ -1489,6 +1489,10 @@ > > <value xml:lang="zh">åˆ›å»ºå¿«é€Ÿæ·»åŠ å ˜åž‹æ•°æ ®æ—¶å > ‘生交易错误:${errMessage}。</value> > > <value > xml:lang="zh-TW">æ–°å»ºå¿«é€Ÿå¢žåŠ è®Šåž‹è³‡æ–™æ™‚ç™¼ç”Ÿäº¤æ˜“éŒ¯èª¤: > ${errMessage}.</value> > > </property> > > + <property key="ShipmentCanChangeStatusPermissionError"> > > + <value xml:lang="en">Cannot perform this operation when the > shipment [${testShipment.shipmentId}] is in the > ${testShipmentStatus.description} [${testShipment.statusId}] > status."</value> > > + <value xml:lang="fr">Impossible de réaliser l'opération > demandée quand l'expédition [${testShipment.shipmentId}] est dans le > statut ${testShipmentStatus.description} [${testShipment.statusId}]</value> > > + </property> > > <property > key="variantevents.variantProductId_required_but_missing_enter_an_id"> > > <value xml:lang="de">variantProductId wir benötigt, fehlt > aber, bitte geben Sie eine ID für die neue Produktvariante an.</value> > > <value xml:lang="en">variantProductId is required but missing, > please enter an id for the new variant product.</value> > > > > Modified: > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > > URL: > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > > > ============================================================================== > > --- > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > (original) > > +++ > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > Mon Sep 2 15:13:47 2019 > > @@ -22,10 +22,6 @@ under the License. > > xmlns="http://ofbiz.apache.org/Simple-Method" > xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method > http://ofbiz.apache.org/dtds/simple-methods.xsd"> > > <!-- ItemIssuance services --> > > <simple-method method-name="createItemIssuance" > short-description="Create ItemIssuance"> > > - <set value="Create ItemIssuance" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked" > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > - <check-errors/> > > - > > <make-value entity-name="ItemIssuance" > value-field="newEntity"/> > > <sequenced-id sequence-name="ItemIssuance" > field="newEntity.itemIssuanceId"/> > > <field-to-result field="newEntity.itemIssuanceId" > result-name="itemIssuanceId"/> > > @@ -64,48 +60,9 @@ under the License. > > </if-not-empty> > > <field-to-result field="affectAccounting" > result-name="affectAccounting"/> > > </simple-method> > > - <simple-method method-name="updateItemIssuance" > short-description="Update ItemIssuance"> > > - <set value="Update ItemIssuance" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked" > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > - <check-errors/> > > - > > - <entity-one entity-name="ItemIssuance" > value-field="lookedUpValue"/> > > - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> > > - <store-value value-field="lookedUpValue"/> > > - </simple-method> > > - <simple-method method-name="deleteItemIssuance" > short-description="Delete ItemIssuance"> > > - <set value="Delete ItemIssuance" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked" > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > - <check-errors/> > > - > > - <entity-one entity-name="ItemIssuance" > value-field="lookedUpValue"/> > > - <remove-value value-field="lookedUpValue"/> > > - </simple-method> > > - > > - <!-- ItemIssuanceRole services --> > > - <simple-method method-name="createItemIssuanceRole" > short-description="Create ItemIssuanceRole"> > > - <set value="Create ItemIssuanceRole" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked" > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > - <check-errors/> > > - <make-value entity-name="ItemIssuanceRole" > value-field="newEntity"/> > > - <set-pk-fields map="parameters" value-field="newEntity"/> > > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > > - <create-value value-field="newEntity"/> > > - </simple-method> > > - > > - <simple-method method-name="deleteItemIssuanceRole" > short-description="Delete ItemIssuanceRole"> > > - <set value="Delete ItemIssuanceRole" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked" > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > - <check-errors/> > > - <entity-one entity-name="ItemIssuanceRole" > value-field="lookedUpValue"/> > > - <remove-value value-field="lookedUpValue"/> > > - </simple-method> > > > > <!-- the actual issuance services --> > > <simple-method method-name="issueOrderItemToShipment" > short-description="Issue OrderItem to Shipment"> > > - <set value="Issue OrderItem to Shipment" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked" > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > - <check-errors/> > > > > <!-- get orderHeader --> > > <entity-one entity-name="OrderHeader" > value-field="orderHeader" auto-field-map="true"/> > > @@ -132,9 +89,6 @@ under the License. > > </simple-method> > > > > <simple-method method-name="issueOrderItemShipGrpInvResToShipment" > short-description="Issue OrderItemShipGrpInvRes to Shipment"> > > - <set value="Issue OrderItemShipGrpInvRes to Shipment" > field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked" > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > - <check-errors/> > > > > <!-- get orderItemShipGrpInvRes --> > > <make-value entity-name="OrderItemShipGrpInvRes" > value-field="OrderItemShipGrpInvResLookupPk"/> > > @@ -464,7 +418,7 @@ under the License. > > <field-to-result field="itemIssuanceId"/> > > </simple-method> > > <simple-method method-name="associateIssueRoles" > short-description="Associate Roles for ItemIssuance - meant to be called > in-line"> > > - <!-- make sure the party is in the PACKER role --> > > + <!-- make sure the party is in the PACKER role TODO need to > replace by ensurePartyRole--> > > <make-value entity-name="PartyRole" value-field="partyRole"/> > > <set field="partyRole.partyId" from-field="userLogin.partyId"/> > > <set field="partyRole.roleTypeId" value="PACKER"/> > > @@ -565,8 +519,9 @@ under the License. > > <!-- issuance can be canceled only if the sales shipment is > not packed --> > > > > <if-compare field="shipment.statusId" operator="not-equals" > value="SHIPMENT_CANCELLED"> > > - <set from-field="itemIssuance.shipmentId" > field="shipmentId"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked" > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > + <set from-field="itemIssuance.shipmentId" > field="checkCanChangeShipmentStatusPackedMap.shipmentId"/> > > + <set value="UPDATE" > field="checkCanChangeShipmentStatusPackedMap.mainAction"/> > > + <call-service > service-name="checkCanChangeShipmentStatusPacked" > in-map-name="checkCanChangeShipmentStatusPackedMap" /> > > <check-errors/> > > </if-compare> > > > > > > Modified: > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > > URL: > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > > > ============================================================================== > > --- > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > (original) > > +++ > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > Mon Sep 2 15:13:47 2019 > > @@ -361,9 +361,6 @@ under the License. > > </simple-method> > > > > <simple-method > method-name="issueOrderItemToShipmentAndReceiveAgainstPO" > short-description="Issues order item quantity specified to the shipment, > then receives inventory for that item and quantity"> > > - <set value="Issue OrderItem to Shipment and Receive against PO" > field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked" > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > - <check-errors/> > > > > <!-- get orderItem --> > > <entity-one entity-name="OrderItem" value-field="orderItem" > auto-field-map="true"/> > > > > Modified: > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > > URL: > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > > > ============================================================================== > > --- > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > (original) > > +++ > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > Mon Sep 2 15:13:47 2019 > > @@ -112,9 +112,6 @@ under the License. > > </simple-method> > > > > <simple-method method-name="updateShipment" > short-description="Update Shipment"> > > - <set value="Update Shipment" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusDelivered"/> > > - <check-errors/> > > > > <make-value entity-name="Shipment" value-field="lookupPKMap"/> > > <set-pk-fields map="parameters" value-field="lookupPKMap"/> > > @@ -283,14 +280,6 @@ under the License. > > <store-value value-field="lookedUpValue"/> > > </simple-method> > > > > - <simple-method method-name="deleteShipment" > short-description="Delete Shipment"> > > - <set value="Delete Shipment" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - <entity-one entity-name="Shipment" value-field="lookedUpValue"/> > > - <remove-value value-field="lookedUpValue"/> > > - </simple-method> > > - > > <simple-method method-name="createShipmentForReturn" > short-description="Create Shipment based on ReturnHeader"> > > <entity-one entity-name="ReturnHeader" > value-field="returnHeader"> > > <field-map field-name="returnId" > from-field="parameters.returnId"/> > > @@ -428,10 +417,6 @@ under the License. > > </simple-method> > > > > <simple-method method-name="setShipmentSettingsFromPrimaryOrder" > short-description="Set Shipment Settings From Primary Order"> > > - <set value="Set Shipment Settings From Primary Order" > field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - > > <!-- on Shipment set partyIdFrom, partyIdTo (vendorPartyId), > originContactMechId, destinationContactMechId, estimatedShipCost --> > > <entity-one entity-name="Shipment" value-field="shipment"/> > > > > @@ -670,12 +655,7 @@ under the License. > > </simple-method> > > > > <simple-method method-name="setShipmentSettingsFromFacilities" > short-description="Set Shipment Settings From Facilities"> > > - <set value="Set Shipment Settings From Facilities" > field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - > > <entity-one entity-name="Shipment" value-field="shipment"/> > > - > > <clone-value value-field="shipment" > new-value-field="shipmentCopy"/> > > > > <string-to-list string="-fromDate" > list="descendingFromDateOrder"/> > > @@ -817,35 +797,8 @@ under the License. > > </simple-method> > > > > <!-- ShipmentItem services --> > > - <simple-method method-name="createShipmentItem" > short-description="Create ShipmentItem"> > > - <set value="Create ShipmentItem" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - > > - <make-value entity-name="ShipmentItem" value-field="newEntity"/> > > - <set-pk-fields map="parameters" value-field="newEntity"/> > > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > > - <!-- if no shipmentItemSeqId, generate one based on existing > items, ie one greater than the current higher number --> > > - <make-next-seq-id value-field="newEntity" > seq-field-name="shipmentItemSeqId"/> > > - <field-to-result field="newEntity.shipmentItemSeqId" > result-name="shipmentItemSeqId"/> > > - <create-value value-field="newEntity"/> > > - </simple-method> > > - <simple-method method-name="updateShipmentItem" > short-description="Update ShipmentItem"> > > - <set value="Update ShipmentItem" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - > > - <make-value entity-name="ShipmentItem" > value-field="lookupPKMap"/> > > - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > > - <find-by-primary-key entity-name="ShipmentItem" > map="lookupPKMap" value-field="lookedUpValue"/> > > - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> > > - <store-value value-field="lookedUpValue"/> > > - </simple-method> > > <simple-method method-name="deleteShipmentItem" > short-description="Delete ShipmentItem"> > > - <set value="Delete ShipmentItem" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - <!-- If there is any Shipment Package Content available for > this Shipment Item then it cannot be deleted as it require > > + <!-- If there is any Shipment Package Content available for > this Shipment Item then it cannot be deleted as it require > > Shipment Package content to be deleted first --> > > <entity-and entity-name="ShipmentPackageContent" > list="shipmentPackageContents"> > > <field-map field-name="shipmentId" > from-field="parameters.shipmentId"/> > > @@ -946,10 +899,6 @@ under the License. > > > > <!-- ShipmentPackage services --> > > <simple-method method-name="createShipmentPackage" > short-description="Create ShipmentPackage"> > > - <set value="Create ShipmentPackage" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - > > <make-value entity-name="ShipmentPackage" > value-field="newEntity"/> > > <set-pk-fields map="parameters" value-field="newEntity"/> > > <set-nonpk-fields map="parameters" value-field="newEntity"/> > > @@ -971,10 +920,6 @@ under the License. > > <call-simple-method method-name="ensurePackageRouteSeg"/> > > </simple-method> > > <simple-method method-name="updateShipmentPackage" > short-description="Update ShipmentPackage"> > > - <set value="Update ShipmentPackage" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusShipped"/> > > - <check-errors/> > > - > > <make-value entity-name="ShipmentPackage" > value-field="lookupPKMap"/> > > <set-pk-fields map="parameters" value-field="lookupPKMap"/> > > <find-by-primary-key entity-name="ShipmentPackage" > map="lookupPKMap" value-field="lookedUpValue"/> > > @@ -986,9 +931,6 @@ under the License. > > <call-simple-method method-name="ensurePackageRouteSeg"/> > > </simple-method> > > <simple-method method-name="deleteShipmentPackage" > short-description="Delete ShipmentPackage"> > > - <set value="Delete ShipmentPackage" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > <!-- If there is any Shipment Package Content available for > this shipment than Shipment Package cannot be deleted as it require > > Shipment Package Content to be deleted first --> > > <entity-and entity-name="ShipmentPackageContent" > list="shipmentPackageContents"> > > @@ -1029,43 +971,7 @@ under the License. > > </simple-method> > > > > <!-- ShipmentPackageContent services --> > > - <simple-method method-name="createShipmentPackageContent" > short-description="Create ShipmentPackageContent"> > > - <set value="Create ShipmentPackageContent" > field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - > > - <make-value entity-name="ShipmentPackageContent" > value-field="newEntity"/> > > - <set-pk-fields map="parameters" value-field="newEntity"/> > > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > > - > > - <create-value value-field="newEntity"/> > > - <field-to-result field="newEntity.shipmentPackageSeqId" > result-name="shipmentPackageSeqId"/> > > - </simple-method> > > - <simple-method method-name="updateShipmentPackageContent" > short-description="Update ShipmentPackageContent"> > > - <set value="Update ShipmentPackageContent" > field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - > > - <make-value entity-name="ShipmentPackageContent" > value-field="lookupPKMap"/> > > - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > > - <find-by-primary-key entity-name="ShipmentPackageContent" > map="lookupPKMap" value-field="lookedUpValue"/> > > - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> > > - <store-value value-field="lookedUpValue"/> > > - </simple-method> > > - <simple-method method-name="deleteShipmentPackageContent" > short-description="Delete ShipmentPackageContent"> > > - <set value="Delete ShipmentPackageContent" > field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - > > - <make-value entity-name="ShipmentPackageContent" > value-field="lookupPKMap"/> > > - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > > - <find-by-primary-key entity-name="ShipmentPackageContent" > map="lookupPKMap" value-field="lookedUpValue"/> > > - <remove-value value-field="lookedUpValue"/> > > - </simple-method> > > <simple-method method-name="addShipmentContentToPackage" > short-description="Add Shipment Content To Package"> > > - <set value="Create ShipmentPackageContent" > field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > <make-value entity-name="ShipmentPackageContent" > value-field="newEntity"/> > > <set-pk-fields map="parameters" value-field="newEntity"/> > > <find-by-primary-key value-field="shipmentPackageContent" > map="newEntity"/> > > @@ -1089,86 +995,16 @@ under the License. > > <field-to-result field="newEntity.shipmentPackageSeqId" > result-name="shipmentPackageSeqId"/> > > </simple-method> > > > > - <!-- ShipmentPackageRouteSeg services --> > > - <simple-method method-name="createShipmentPackageRouteSeg" > short-description="Create ShipmentPackageRouteSeg"> > > - <make-value entity-name="ShipmentPackageRouteSeg" > value-field="newEntity"/> > > - <set-pk-fields map="parameters" value-field="newEntity"/> > > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > > - > > - <create-value value-field="newEntity"/> > > - </simple-method> > > - <simple-method method-name="deleteShipmentPackageRouteSeg" > short-description="Delete ShipmentPackageRouteSeg"> > > - <set value="Delete ShipmentPackageRouteSeg" > field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - > > - <make-value entity-name="ShipmentPackageRouteSeg" > value-field="lookupPKMap"/> > > - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > > - <find-by-primary-key entity-name="ShipmentPackageRouteSeg" > map="lookupPKMap" value-field="lookedUpValue"/> > > - <remove-value value-field="lookedUpValue"/> > > - </simple-method> > > - > > <!-- ShipmentRouteSegment services --> > > - <simple-method method-name="createShipmentRouteSegment" > short-description="Create ShipmentRouteSegment"> > > - <set value="Create ShipmentRouteSegment" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - > > - <make-value entity-name="ShipmentRouteSegment" > value-field="newEntity"/> > > - <set-pk-fields map="parameters" value-field="newEntity"/> > > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > > - > > - <!-- if no shipmentRouteSegmentSeqId, generate one based on > existing items, ie one greater than the current higher number --> > > - <make-next-seq-id value-field="newEntity" > seq-field-name="shipmentRouteSegmentId"/> > > - <field-to-result field="newEntity.shipmentRouteSegmentId" > result-name="shipmentRouteSegmentId"/> > > - > > - <if-empty field="newEntity.carrierServiceStatusId"> > > - <set value="SHRSCS_NOT_STARTED" > field="newEntity.carrierServiceStatusId"/> > > - </if-empty> > > - > > - <create-value value-field="newEntity"/> > > - > > - <set from-field="newEntity.shipmentId" field="shipmentId"/> > > - <set from-field="newEntity.shipmentRouteSegmentId" > field="shipmentRouteSegmentId"/> > > - <call-simple-method method-name="ensureRouteSegPackage"/> > > - </simple-method> > > - <simple-method method-name="updateShipmentRouteSegment" > short-description="Update ShipmentRouteSegment"> > > - <set value="Update ShipmentRouteSegment" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusDelivered"/> > > - <check-errors/> > > - > > - <entity-one entity-name="ShipmentRouteSegment" > value-field="lookedUpValue"/> > > - <set-nonpk-fields map="parameters" value-field="lookedUpValue"/> > > - > > - <if-empty field="newEntity.carrierServiceStatusId"> > > - <set value="SHRSCS_NOT_STARTED" > field="newEntity.carrierServiceStatusId"/> > > - </if-empty> > > - > > - > > - <set from-field="userLogin.userLoginId" > field="lookedUpValue.updatedByUserLoginId"/> > > - <now-timestamp field="lookedUpValue.lastUpdatedDate"/> > > - <store-value value-field="lookedUpValue"/> > > - > > - <set from-field="lookedUpValue.shipmentId" field="shipmentId"/> > > - <set from-field="lookedUpValue.shipmentRouteSegmentId" > field="shipmentRouteSegmentId"/> > > - <call-simple-method method-name="ensureRouteSegPackage"/> > > - </simple-method> > > - <simple-method method-name="deleteShipmentRouteSegment" > short-description="Delete ShipmentRouteSegment"> > > - <set value="Delete ShipmentRouteSegment" field="operationName"/> > > - <call-simple-method > method-name="checkCanChangeShipmentStatusPacked"/> > > - <check-errors/> > > - > > - <entity-one entity-name="ShipmentRouteSegment" > value-field="lookedUpValue"/> > > - <remove-value value-field="lookedUpValue"/> > > - </simple-method> > > <simple-method method-name="ensureRouteSegPackage" > short-description="Ensure ShipmentPackageRouteSeg exists for all Packages > for this RouteSegment"> > > + <entity-one entity-name="ShipmentRouteSegment" > value-field="shipmentRouteSegment" use-cache="true"/> > > <entity-and entity-name="ShipmentPackage" > list="shipmentPackages"> > > - <field-map field-name="shipmentId" from-field="shipmentId"/> > > + <field-map field-name="shipmentId" > from-field="shipmentRouteSegment.shipmentId"/> > > </entity-and> > > <iterate list="shipmentPackages" entry="shipmentPackage"> > > <entity-one entity-name="ShipmentPackageRouteSeg" > value-field="checkShipmentPackageRouteSeg" auto-field-map="false"> > > - <field-map field-name="shipmentId" > from-field="shipmentId"/> > > - <field-map field-name="shipmentRouteSegmentId" > from-field="shipmentRouteSegmentId"/> > > + <field-map field-name="shipmentId" > from-field="shipmentRouteSegment.shipmentId"/> > > + <field-map field-name="shipmentRouteSegmentId" > from-field="shipmentRouteSegment.shipmentRouteSegmentId"/> > > <field-map field-name="shipmentPackageSeqId" > from-field="shipmentPackage.shipmentPackageSeqId"/> > > </entity-one> > > <if-empty field="checkShipmentPackageRouteSeg"> > > @@ -1194,7 +1030,17 @@ under the License. > > <call-simple-method > method-name="checkCanChangeShipmentStatusGeneral"/> > > </simple-method> > > <simple-method method-name="checkCanChangeShipmentStatusGeneral" > short-description="Check the Status of a Shipment to see if it can be > changed - meant to be called in-line"> > > - <entity-one entity-name="Shipment" value-field="testShipment"/> > > + <if-empty field="parameters.mainAction"> > > + <set field="parameters.mainAction" value="UPDATE"/> > > + </if-empty> > > + <set-service-fields service-name="facilityGenericPermission" > to-map="facilityGenericPermissionMap" map="parameters"/> > > + <call-service service-name="facilityGenericPermission" > in-map-name="facilityGenericPermissionMap"> > > + <result-to-field field="hasPermission" > result-name="hasPermission"/> > > + </call-service> > > + <check-errors/> > > + > > + <entity-one entity-name="Shipment" value-field="testShipment" > use-cache="true"/> > > + <set field="fromStatusId" from-field="fromStatusId" > default-value="${parameters.fromStatusId}"/> > > <if> > > <condition> > > <or> > > @@ -1225,9 +1071,12 @@ under the License. > > </condition> > > <then> > > <get-related-one relation-name="StatusItem" > value-field="testShipment" to-value-field="testShipmentStatus"/> > > - <string-to-list string="Cannot perform operation > ${operationName} when the shipment is in the > ${testShipmentStatus.description} [${testShipment.statusId}] status." > list="error_list"/> > > + <property-to-field resource="ProductErrorUiLabels" > property="ShipmentCanChangeStatusPermissionError" field="failMessage"/> > > + <set field="hasPermission" type="Boolean" > value="false"/> > > + <field-to-result field="failMessage"/> > > </then> > > </if> > > + <field-to-result field="hasPermission"/> > > </simple-method> > > > > <!-- quick ship entire order in one package per facility & ship > group --> > > @@ -1987,23 +1836,5 @@ under the License. > > <call-service > service-name="cancelOrderItemIssuanceFromSalesShipment" > in-map-name="inputMap"/> > > </iterate> > > </simple-method> > > - > > - <!-- QuantityBreak services --> > > - <!-- create a new QuantityBreak --> > > - <simple-method method-name="createQuantityBreak" > short-description="Create a QuoteAttribute"> > > - <make-value entity-name="QuantityBreak" > value-field="quantityBreak"/> > > - <set-nonpk-fields map="parameters" value-field="quantityBreak"/> > > - <sequenced-id sequence-name="QuantityBreak" > field="quantityBreak.quantityBreakId"/> > > - <create-value value-field="quantityBreak"/> > > - <check-errors/> > > - </simple-method> > > - > > - <!-- remove an existing QuantityBreak --> > > - <simple-method method-name="deleteQuantityBreak" > short-description="Remove an existing QuantityBreak"> > > - <entity-one entity-name="QuantityBreak" > value-field="quantityBreak" auto-field-map="true"/> > > - <check-errors/> > > - <remove-value value-field="quantityBreak"/> > > - <check-errors/> > > - </simple-method> > > </simple-methods> > > > > > > Modified: > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > > URL: > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > > > ============================================================================== > > --- > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > (original) > > +++ > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > Mon Sep 2 15:13:47 2019 > > @@ -151,6 +151,13 @@ under the License. > > <action service="updatePurchaseShipmentFromReceipt" > mode="sync"/> > > </eca> > > > > + <eca service="createShipmentRouteSegment" event="commit"> > > + <action service="ensureRouteSegPackage" mode="sync"/> > > + </eca> > > + <eca service="updateShipmentRouteSegment" event="commit"> > > + <action service="ensureRouteSegPackage" mode="sync"/> > > + </eca> > > + > > <eca service="createShipmentPackageContent" event="in-validate"> > > <condition field-name="shipmentPackageSeqId" operator="equals" > value="New"/> > > <action service="createShipmentPackage" mode="sync"/> > > > > Modified: > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > > URL: > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > > > ============================================================================== > > --- > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > (original) > > +++ > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > Mon Sep 2 15:13:47 2019 > > @@ -136,7 +136,7 @@ under the License. > > <service name="updateShipment" default-entity-name="Shipment" > engine="simple" > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="updateShipment" auth="true"> > > <description>Update Shipment</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="UPDATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusDelivered" main-action="UPDATE"/> > > <auto-attributes include="pk" mode="INOUT" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"> > > <exclude field-name="shipmentTypeId"/> > > @@ -152,10 +152,9 @@ under the License. > > <attribute name="oldOriginFacilityId" type="String" mode="OUT" > optional="true"/> > > <attribute name="oldDestinationFacilityId" type="String" > mode="OUT" optional="true"/> > > </service> > > - <service name="deleteShipment" default-entity-name="Shipment" > engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="deleteShipment" auth="true"> > > + <service name="deleteShipment" default-entity-name="Shipment" > engine="entity-auto" invoke="delete" auth="true"> > > <description>Delete Shipment</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="DELETE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > </service> > > <service name="createShipmentStatus" > default-entity-name="ShipmentStatus" engine="entity-auto" invoke="create" > auth="true"> > > @@ -167,19 +166,13 @@ under the License. > > <service name="setShipmentSettingsFromPrimaryOrder" engine="simple" > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="setShipmentSettingsFromPrimaryOrder" auth="true"> > > <description>Set Shipment Settings From Primary > Order</description> > > - <required-permissions join-type="AND"> > > - <permission-service > service-name="facilityGenericPermission" main-action="CREATE"/> > > - <permission-service > service-name="facilityGenericPermission" main-action="UPDATE"/> > > - </required-permissions> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > > <attribute name="shipmentId" type="String" mode="IN" > optional="false"/> > > </service> > > <service name="setShipmentSettingsFromFacilities" engine="simple" > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="setShipmentSettingsFromFacilities" auth="true"> > > <description>Set Shipment Settings From > Facilities</description> > > - <required-permissions join-type="AND"> > > - <permission-service > service-name="facilityGenericPermission" main-action="CREATE"/> > > - <permission-service > service-name="facilityGenericPermission" main-action="UPDATE"/> > > - </required-permissions> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > > <attribute name="shipmentId" type="String" mode="IN" > optional="false"/> > > </service> > > <service name="sendShipmentScheduledNotification" engine="simple" > > @@ -220,25 +213,22 @@ under the License. > > </service> > > > > <!-- ShipmentItem Services --> > > - <service name="createShipmentItem" > default-entity-name="ShipmentItem" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="createShipmentItem" auth="true"> > > + <service name="createShipmentItem" > default-entity-name="ShipmentItem" engine="entity-auto" invoke="create" > auth="true"> > > <description>Create ShipmentItem</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="CREATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > <override name="shipmentItemSeqId" mode="INOUT" > optional="true"/> > > </service> > > - <service name="updateShipmentItem" > default-entity-name="ShipmentItem" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="updateShipmentItem" auth="true"> > > + <service name="updateShipmentItem" > default-entity-name="ShipmentItem" engine="entity-auto" invoke="update" > auth="true"> > > <description>Update ShipmentItem</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="UPDATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusDelivered" main-action="UPDATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > </service> > > - <service name="deleteShipmentItem" > default-entity-name="ShipmentItem" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="deleteShipmentItem" auth="true"> > > + <service name="deleteShipmentItem" > default-entity-name="ShipmentItem" engine="entity-auto" invoke="delete" > auth="true"> > > <description>Delete ShipmentItem</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="DELETE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > </service> > > > > @@ -256,7 +246,7 @@ under the License. > > <service name="createShipmentPackage" > default-entity-name="ShipmentPackage" engine="simple" > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="createShipmentPackage" auth="true"> > > <description>Create ShipmentPackage</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="CREATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"> > > <exclude field-name="dateCreated"/> > > @@ -266,43 +256,40 @@ under the License. > > <service name="updateShipmentPackage" > default-entity-name="ShipmentPackage" engine="simple" > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="updateShipmentPackage" auth="true"> > > <description>Update ShipmentPackage</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="UPDATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > </service> > > <service name="deleteShipmentPackage" > default-entity-name="ShipmentPackage" engine="simple" > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="deleteShipmentPackage" auth="true"> > > <description>Delete ShipmentPackage</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="DELETE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > </service> > > > > <!-- ShipmentPackageContent Services --> > > - <service name="createShipmentPackageContent" > default-entity-name="ShipmentPackageContent" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="createShipmentPackageContent" auth="true"> > > + <service name="createShipmentPackageContent" > default-entity-name="ShipmentPackageContent" engine="entity-auto" > invoke="create" auth="true"> > > <description>Create ShipmentPackageContent</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="CREATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > <override name="shipmentPackageSeqId" mode="INOUT" > optional="false"/> > > </service> > > - <service name="updateShipmentPackageContent" > default-entity-name="ShipmentPackageContent" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="updateShipmentPackageContent" auth="true"> > > + <service name="updateShipmentPackageContent" > default-entity-name="ShipmentPackageContent" engine="entity-auto" > invoke="update" auth="true"> > > <description>Update ShipmentPackageContent</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="UPDATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > </service> > > - <service name="deleteShipmentPackageContent" > default-entity-name="ShipmentPackageContent" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="deleteShipmentPackageContent" auth="true"> > > + <service name="deleteShipmentPackageContent" > default-entity-name="ShipmentPackageContent" engine="entity-auto" > invoke="delete" auth="true"> > > <description>Delete ShipmentPackageContent</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="DELETE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > </service> > > <service name="addShipmentContentToPackage" > default-entity-name="ShipmentPackageContent" engine="simple" > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="addShipmentContentToPackage" auth="true"> > > <description>Add Shipment Content To Package</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="CREATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > <override name="quantity" mode="IN" optional="false"/> > > @@ -310,23 +297,21 @@ under the License. > > </service> > > > > <!-- ShipmentPackageRouteSeg Services --> > > - <service name="createShipmentPackageRouteSeg" > default-entity-name="ShipmentPackageRouteSeg" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="createShipmentPackageRouteSeg" auth="true"> > > + <service name="createShipmentPackageRouteSeg" > default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" > invoke="create" auth="true"> > > <description>Create ShipmentPackageRouteSeg</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="CREATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > </service> > > <service name="updateShipmentPackageRouteSeg" > default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" > invoke="update" auth="true"> > > <description>Update ShipmentPackageRouteSeg</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="UPDATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusDelivered" main-action="UPDATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > </service> > > - <service name="deleteShipmentPackageRouteSeg" > default-entity-name="ShipmentPackageRouteSeg" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="deleteShipmentPackageRouteSeg" auth="true"> > > + <service name="deleteShipmentPackageRouteSeg" > default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" > invoke="delete" auth="true"> > > <description>Delete ShipmentPackageRouteSeg</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="DELETE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > </service> > > > > @@ -350,25 +335,23 @@ under the License. > > </service> > > > > <!-- ShipmentRouteSegment Services --> > > - <service name="createShipmentRouteSegment" > default-entity-name="ShipmentRouteSegment" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="createShipmentRouteSegment" auth="true"> > > + <service name="createShipmentRouteSegment" > default-entity-name="ShipmentRouteSegment" engine="entity-auto" > invoke="create" auth="true"> > > <description>Create ShipmentRouteSegment</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="CREATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > <override name="shipmentRouteSegmentId" mode="INOUT" > optional="true"/> > > </service> > > - <service name="updateShipmentRouteSegment" > default-entity-name="ShipmentRouteSegment" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="updateShipmentRouteSegment" auth="true"> > > + <service name="updateShipmentRouteSegment" > default-entity-name="ShipmentRouteSegment" engine="entity-auto" > invoke="update" auth="true"> > > <description>Update ShipmentRouteSegment</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="UPDATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > + <override name="carrierServiceStatusId" > default-value="SHRSCS_NOT_STARTED"/> > > </service> > > - <service name="deleteShipmentRouteSegment" > default-entity-name="ShipmentRouteSegment" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="deleteShipmentRouteSegment" auth="true"> > > + <service name="deleteShipmentRouteSegment" > default-entity-name="ShipmentRouteSegment" engine="entity-auto" > invoke="delete" auth="true"> > > <description>Delete ShipmentRouteSegment</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="DELETE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > </service> > > <service name="duplicateShipmentRouteSegment" > default-entity-name="ShipmentRouteSegment" engine="java" > > @@ -386,44 +369,46 @@ under the License. > > </description> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > </service> > > + <service name="ensureRouteSegPackage" > default-entity-name="ShipmentRouteSegment" engine="simple" > > + > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="ensureRouteSegPackage" auth="true"> > > + <description>Ensure ShipmentPackageRouteSeg exists for all > Packages for this RouteSegment</description> > > + <permission-service service-name="facilityGenericPermission" > main-action="CREATE"/> > > + <auto-attributes include="pk" mode="IN" optional="false"/> > > + </service> > > > > <!-- > ============================================================== --> > > <!-- ItemIssuance Services --> > > <service name="createItemIssuance" > default-entity-name="ItemIssuance" engine="simple" > > > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > invoke="createItemIssuance" auth="true"> > > <description>Create ItemIssuance</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="CREATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > <auto-attributes include="pk" mode="OUT" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > <attribute name="affectAccounting" type="Boolean" mode="OUT" > optional="true"/> > > </service> > > - <service name="updateItemIssuance" > default-entity-name="ItemIssuance" engine="simple" > > - > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > invoke="updateItemIssuance" auth="true"> > > + <service name="updateItemIssuance" > default-entity-name="ItemIssuance" engine="entity-auto" invoke="update" > auth="true"> > > <description>Update ItemIssuance</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="UPDATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > </service> > > - <service name="deleteItemIssuance" > default-entity-name="ItemIssuance" engine="simple" > > - > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > invoke="deleteItemIssuance" auth="true"> > > + <service name="deleteItemIssuance" > default-entity-name="ItemIssuance" engine="entity-auto" invoke="delete" > auth="true"> > > <description>Delete ItemIssuance</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="DELETE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > </service> > > > > <!-- ItemIssuanceRole Services --> > > - <service name="createItemIssuanceRole" > default-entity-name="ItemIssuanceRole" engine="simple" > > - > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > invoke="createItemIssuanceRole" auth="true"> > > + <service name="createItemIssuanceRole" > default-entity-name="ItemIssuanceRole" engine="entity-auto" invoke="create" > auth="true"> > > <description>Create ItemIssuanceRole</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="CREATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <!-- Will check if OK to change status of shipment, so > Shipment PK is needed --> > > <auto-attributes entity-name="Shipment" include="pk" mode="IN" > optional="false"/> > > </service> > > - <service name="deleteItemIssuanceRole" > default-entity-name="ItemIssuanceRole" engine="simple" > > - > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > invoke="deleteItemIssuanceRole" auth="true"> > > + <service name="deleteItemIssuanceRole" > default-entity-name="ItemIssuanceRole" engine="entity-auto" invoke="delete" > auth="true"> > > <description>Delete ItemIssuanceRole</description> > > - <permission-service service-name="facilityGenericPermission" > main-action="DELETE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > <!-- Will check if OK to change status of shipment, so > Shipment PK is needed --> > > <auto-attributes entity-name="Shipment" include="pk" mode="IN" > optional="false"/> > > @@ -433,7 +418,7 @@ under the License. > > > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > invoke="issueOrderItemToShipment" auth="true"> > > <description>Issue an OrderItem to a Shipment - only for > non-sales orders</description> > > <required-permissions join-type="AND"> > > - <permission-service > service-name="facilityGenericPermission" main-action="CREATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > <permission-service > service-name="facilityGenericPermission" main-action="UPDATE"/> > > </required-permissions> > > <auto-attributes entity-name="Shipment" include="pk" mode="IN" > optional="false"/> > > @@ -445,7 +430,7 @@ under the License. > > > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > invoke="issueOrderItemShipGrpInvResToShipment" auth="true"> > > <description>Add an OrderItemShipGrpInvRes to a Shipment - > only for sales orders</description> > > <required-permissions join-type="AND"> > > - <permission-service > service-name="facilityGenericPermission" main-action="CREATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > <permission-service > service-name="facilityGenericPermission" main-action="UPDATE"/> > > </required-permissions> > > <auto-attributes entity-name="Shipment" include="pk" mode="IN" > optional="false"/> > > @@ -775,7 +760,7 @@ under the License. > > > location="component://product/minilang/shipment/receipt/ShipmentReceiptServices.xml" > invoke="issueOrderItemToShipmentAndReceiveAgainstPO" auth="true"> > > <description>Issues order item quantity specified to the > shipment, then receives inventory for that item and quantity</description> > > <required-permissions join-type="AND"> > > - <permission-service > service-name="facilityGenericPermission" main-action="CREATE"/> > > + <permission-service > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > <permission-service > service-name="facilityGenericPermission" main-action="UPDATE"/> > > </required-permissions> > > <implements service="issueOrderItemToShipment"/> > > @@ -888,11 +873,11 @@ under the License. > > </service> > > > > <!-- QuantityBreak services --> > > - <service name="createQuantityBreak" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="createQuantityBreak" auth="true"> > > + <service name="createQuantityBreak" > default-entity-name="QuantityBreak" engine="entity-auto" invoke="create" > auth="true"> > > <description>Create a QuantityBreak</description> > > <permission-service service-name="facilityGenericPermission" > main-action="CREATE"/> > > <auto-attributes entity-name="QuantityBreak" include="nonpk" > mode="IN" optional="true"/> > > + <auto-attributes entity-name="QuantityBreak" include="pk" > mode="OUT" optional="false"/> > > </service> > > <service name="updateQuantityBreak" engine="entity-auto" > invoke="update" default-entity-name="QuantityBreak" auth="true"> > > <description>Update a QuantityBreak</description> > > @@ -900,8 +885,7 @@ under the License. > > <auto-attributes entity-name="QuantityBreak" include="pk" > mode="IN" optional="false"/> > > <auto-attributes entity-name="QuantityBreak" include="nonpk" > mode="IN" optional="true"/> > > </service> > > - <service name="deleteQuantityBreak" engine="simple" > > - > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="deleteQuantityBreak" auth="true"> > > + <service name="deleteQuantityBreak" > default-entity-name="QuantityBreak" engine="entity-auto" invoke="delete" > auth="true"> > > <description>Delete a QuantityBreak</description> > > <permission-service service-name="facilityGenericPermission" > main-action="DELETE"/> > > <auto-attributes entity-name="QuantityBreak" include="pk" > mode="IN" optional="false"/> > > @@ -1161,4 +1145,27 @@ under the License. > > <description>Delete a ShipmentItemBilling</description> > > <auto-attributes include="pk" mode="IN" optional="false"/> > > </service> > > + > > + <!-- Permission Services --> > > + <service name="checkCanChangeShipmentStatusPacked" engine="simple" > > + > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="checkCanChangeShipmentStatusPacked"> > > + <description>Check the Status of a Shipment to see if it can be > changed for an operation relative to the packed state</description> > > + <!-- Info : permission-service > service-name="facilityGenericPermission" --> > > + <implements service="permissionInterface"/> > > + <attribute name="shipmentId" type="String" mode="IN" > optional="true"/> > > + </service> > > + <service name="checkCanChangeShipmentStatusShipped" engine="simple" > > + > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="checkCanChangeShipmentStatusShipped"> > > + <description>Check the Status of a Shipment to see if it can be > changed for an operation relative to the shipped state</description> > > + <!-- Info : permission-service > service-name="facilityGenericPermission" --> > > + <implements service="permissionInterface"/> > > + <attribute name="shipmentId" type="String" mode="IN" > optional="true"/> > > + </service> > > + <service name="checkCanChangeShipmentStatusDelivered" > engine="simple" > > + > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > invoke="checkCanChangeShipmentStatusDelivered"> > > + <description>Check the Status of a Shipment to see if it can be > changed for an operation relative to the delivered state</description> > > + <!-- Info : permission-service > service-name="facilityGenericPermission" --> > > + <implements service="permissionInterface"/> > > + <attribute name="shipmentId" type="String" mode="IN" > optional="true"/> > > + </service> > > </services> > > > > > > > |
Hello folks,
I checked and we have only one ticket remaining in this parent <https://issues.apache.org/jira/browse/OFBIZ-8408> ticket. Also, I converted OFBIZ-6996 into a child of OFBIZ-8408. Cheers, -- Best Regards, Suraj Khurana Technical Consultant HotWax Systems On Mon, Sep 2, 2019 at 10:39 PM Swapnil M Mane <[hidden email]> wrote: > Great, thanks so much Nicolas! > > > Best regards, > Swapnil M Mane, > ofbiz.apache.org > > > > On Mon, Sep 2, 2019 at 8:54 PM Nicolas Malin <[hidden email]> > wrote: > > > Hi all, > > > > With this last commit, I think we finish the conversion for CRUD in > > mini-lang to entity-auto :) > > > > \o/ > > > > Now next step mini-lang to groovy ! > > > > Cheers, > > > > Nicolas > > > > On 9/2/19 5:13 PM, [hidden email] wrote: > > > Author: nmalin > > > Date: Mon Sep 2 15:13:47 2019 > > > New Revision: 1866286 > > > > > > URL: http://svn.apache.org/viewvc?rev=1866286&view=rev > > > Log: > > > Improved: Convert Shipment Crud simple service to entity-auto > > > (OFBIZ-6996) > > > I converted all available shipment entities crud currently on simple > > service to entity-auto service : > > > * ItemIssuanceRole > > > * ShipmentItem > > > * ShipmentPackageContent > > > * ShipmentPackageRouteSeg > > > * ShipmentRouteSegment > > > * QuantityBreak > > > > > > I also transformed a simple method call to a permission service: > > checkCanChangeShipmentStatus, who check for a shipment is it on good > status > > for the change. > > > With this last conversion, the permission control set on the service > > definition instead of core service > > > > > > Modified: > > > > > > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > > > > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > > > > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > > > > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > > > > > > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > > > > > > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > > > > > > Modified: > > > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > > > URL: > > > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > > > > > > ============================================================================== > > > --- > > > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > > (original) > > > +++ > > > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > > Mon Sep 2 15:13:47 2019 > > > @@ -1489,6 +1489,10 @@ > > > <value xml:lang="zh">åˆ›å»ºå¿«é€Ÿæ·»åŠ å ˜åž‹æ•°æ ®æ—¶å > > ‘生交易错误:${errMessage}。</value> > > > <value > > xml:lang="zh-TW">æ–°å»ºå¿«é€Ÿå¢žåŠ è®Šåž‹è³‡æ–™æ™‚ç™¼ç”Ÿäº¤æ˜“éŒ¯èª¤: > > ${errMessage}.</value> > > > </property> > > > + <property key="ShipmentCanChangeStatusPermissionError"> > > > + <value xml:lang="en">Cannot perform this operation when the > > shipment [${testShipment.shipmentId}] is in the > > ${testShipmentStatus.description} [${testShipment.statusId}] > > status."</value> > > > + <value xml:lang="fr">Impossible de réaliser l'opération > > demandée quand l'expédition [${testShipment.shipmentId}] est dans le > > statut ${testShipmentStatus.description} > [${testShipment.statusId}]</value> > > > + </property> > > > <property > > key="variantevents.variantProductId_required_but_missing_enter_an_id"> > > > <value xml:lang="de">variantProductId wir benötigt, fehlt > > aber, bitte geben Sie eine ID für die neue Produktvariante an.</value> > > > <value xml:lang="en">variantProductId is required but > missing, > > please enter an id for the new variant product.</value> > > > > > > Modified: > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > > > URL: > > > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > > > > > > ============================================================================== > > > --- > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > > (original) > > > +++ > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > > Mon Sep 2 15:13:47 2019 > > > @@ -22,10 +22,6 @@ under the License. > > > xmlns="http://ofbiz.apache.org/Simple-Method" > > xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method > > http://ofbiz.apache.org/dtds/simple-methods.xsd"> > > > <!-- ItemIssuance services --> > > > <simple-method method-name="createItemIssuance" > > short-description="Create ItemIssuance"> > > > - <set value="Create ItemIssuance" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked" > > > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > > - <check-errors/> > > > - > > > <make-value entity-name="ItemIssuance" > > value-field="newEntity"/> > > > <sequenced-id sequence-name="ItemIssuance" > > field="newEntity.itemIssuanceId"/> > > > <field-to-result field="newEntity.itemIssuanceId" > > result-name="itemIssuanceId"/> > > > @@ -64,48 +60,9 @@ under the License. > > > </if-not-empty> > > > <field-to-result field="affectAccounting" > > result-name="affectAccounting"/> > > > </simple-method> > > > - <simple-method method-name="updateItemIssuance" > > short-description="Update ItemIssuance"> > > > - <set value="Update ItemIssuance" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked" > > > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > > - <check-errors/> > > > - > > > - <entity-one entity-name="ItemIssuance" > > value-field="lookedUpValue"/> > > > - <set-nonpk-fields map="parameters" > value-field="lookedUpValue"/> > > > - <store-value value-field="lookedUpValue"/> > > > - </simple-method> > > > - <simple-method method-name="deleteItemIssuance" > > short-description="Delete ItemIssuance"> > > > - <set value="Delete ItemIssuance" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked" > > > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > > - <check-errors/> > > > - > > > - <entity-one entity-name="ItemIssuance" > > value-field="lookedUpValue"/> > > > - <remove-value value-field="lookedUpValue"/> > > > - </simple-method> > > > - > > > - <!-- ItemIssuanceRole services --> > > > - <simple-method method-name="createItemIssuanceRole" > > short-description="Create ItemIssuanceRole"> > > > - <set value="Create ItemIssuanceRole" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked" > > > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > > - <check-errors/> > > > - <make-value entity-name="ItemIssuanceRole" > > value-field="newEntity"/> > > > - <set-pk-fields map="parameters" value-field="newEntity"/> > > > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > > > - <create-value value-field="newEntity"/> > > > - </simple-method> > > > - > > > - <simple-method method-name="deleteItemIssuanceRole" > > short-description="Delete ItemIssuanceRole"> > > > - <set value="Delete ItemIssuanceRole" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked" > > > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > > - <check-errors/> > > > - <entity-one entity-name="ItemIssuanceRole" > > value-field="lookedUpValue"/> > > > - <remove-value value-field="lookedUpValue"/> > > > - </simple-method> > > > > > > <!-- the actual issuance services --> > > > <simple-method method-name="issueOrderItemToShipment" > > short-description="Issue OrderItem to Shipment"> > > > - <set value="Issue OrderItem to Shipment" > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked" > > > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > > - <check-errors/> > > > > > > <!-- get orderHeader --> > > > <entity-one entity-name="OrderHeader" > > value-field="orderHeader" auto-field-map="true"/> > > > @@ -132,9 +89,6 @@ under the License. > > > </simple-method> > > > > > > <simple-method > method-name="issueOrderItemShipGrpInvResToShipment" > > short-description="Issue OrderItemShipGrpInvRes to Shipment"> > > > - <set value="Issue OrderItemShipGrpInvRes to Shipment" > > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked" > > > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > > - <check-errors/> > > > > > > <!-- get orderItemShipGrpInvRes --> > > > <make-value entity-name="OrderItemShipGrpInvRes" > > value-field="OrderItemShipGrpInvResLookupPk"/> > > > @@ -464,7 +418,7 @@ under the License. > > > <field-to-result field="itemIssuanceId"/> > > > </simple-method> > > > <simple-method method-name="associateIssueRoles" > > short-description="Associate Roles for ItemIssuance - meant to be called > > in-line"> > > > - <!-- make sure the party is in the PACKER role --> > > > + <!-- make sure the party is in the PACKER role TODO need to > > replace by ensurePartyRole--> > > > <make-value entity-name="PartyRole" value-field="partyRole"/> > > > <set field="partyRole.partyId" > from-field="userLogin.partyId"/> > > > <set field="partyRole.roleTypeId" value="PACKER"/> > > > @@ -565,8 +519,9 @@ under the License. > > > <!-- issuance can be canceled only if the sales shipment is > > not packed --> > > > > > > <if-compare field="shipment.statusId" operator="not-equals" > > value="SHIPMENT_CANCELLED"> > > > - <set from-field="itemIssuance.shipmentId" > > field="shipmentId"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked" > > > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > > + <set from-field="itemIssuance.shipmentId" > > field="checkCanChangeShipmentStatusPackedMap.shipmentId"/> > > > + <set value="UPDATE" > > field="checkCanChangeShipmentStatusPackedMap.mainAction"/> > > > + <call-service > > service-name="checkCanChangeShipmentStatusPacked" > > in-map-name="checkCanChangeShipmentStatusPackedMap" /> > > > <check-errors/> > > > </if-compare> > > > > > > > > > Modified: > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > > > URL: > > > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > > > > > > ============================================================================== > > > --- > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > > (original) > > > +++ > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > > Mon Sep 2 15:13:47 2019 > > > @@ -361,9 +361,6 @@ under the License. > > > </simple-method> > > > > > > <simple-method > > method-name="issueOrderItemToShipmentAndReceiveAgainstPO" > > short-description="Issues order item quantity specified to the shipment, > > then receives inventory for that item and quantity"> > > > - <set value="Issue OrderItem to Shipment and Receive against > PO" > > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked" > > > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > > > - <check-errors/> > > > > > > <!-- get orderItem --> > > > <entity-one entity-name="OrderItem" value-field="orderItem" > > auto-field-map="true"/> > > > > > > Modified: > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > > > URL: > > > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > > > > > > ============================================================================== > > > --- > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > > (original) > > > +++ > > > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > > Mon Sep 2 15:13:47 2019 > > > @@ -112,9 +112,6 @@ under the License. > > > </simple-method> > > > > > > <simple-method method-name="updateShipment" > > short-description="Update Shipment"> > > > - <set value="Update Shipment" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusDelivered"/> > > > - <check-errors/> > > > > > > <make-value entity-name="Shipment" > value-field="lookupPKMap"/> > > > <set-pk-fields map="parameters" value-field="lookupPKMap"/> > > > @@ -283,14 +280,6 @@ under the License. > > > <store-value value-field="lookedUpValue"/> > > > </simple-method> > > > > > > - <simple-method method-name="deleteShipment" > > short-description="Delete Shipment"> > > > - <set value="Delete Shipment" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - <entity-one entity-name="Shipment" > value-field="lookedUpValue"/> > > > - <remove-value value-field="lookedUpValue"/> > > > - </simple-method> > > > - > > > <simple-method method-name="createShipmentForReturn" > > short-description="Create Shipment based on ReturnHeader"> > > > <entity-one entity-name="ReturnHeader" > > value-field="returnHeader"> > > > <field-map field-name="returnId" > > from-field="parameters.returnId"/> > > > @@ -428,10 +417,6 @@ under the License. > > > </simple-method> > > > > > > <simple-method method-name="setShipmentSettingsFromPrimaryOrder" > > short-description="Set Shipment Settings From Primary Order"> > > > - <set value="Set Shipment Settings From Primary Order" > > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - > > > <!-- on Shipment set partyIdFrom, partyIdTo (vendorPartyId), > > originContactMechId, destinationContactMechId, estimatedShipCost --> > > > <entity-one entity-name="Shipment" value-field="shipment"/> > > > > > > @@ -670,12 +655,7 @@ under the License. > > > </simple-method> > > > > > > <simple-method method-name="setShipmentSettingsFromFacilities" > > short-description="Set Shipment Settings From Facilities"> > > > - <set value="Set Shipment Settings From Facilities" > > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - > > > <entity-one entity-name="Shipment" value-field="shipment"/> > > > - > > > <clone-value value-field="shipment" > > new-value-field="shipmentCopy"/> > > > > > > <string-to-list string="-fromDate" > > list="descendingFromDateOrder"/> > > > @@ -817,35 +797,8 @@ under the License. > > > </simple-method> > > > > > > <!-- ShipmentItem services --> > > > - <simple-method method-name="createShipmentItem" > > short-description="Create ShipmentItem"> > > > - <set value="Create ShipmentItem" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - > > > - <make-value entity-name="ShipmentItem" > value-field="newEntity"/> > > > - <set-pk-fields map="parameters" value-field="newEntity"/> > > > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > > > - <!-- if no shipmentItemSeqId, generate one based on existing > > items, ie one greater than the current higher number --> > > > - <make-next-seq-id value-field="newEntity" > > seq-field-name="shipmentItemSeqId"/> > > > - <field-to-result field="newEntity.shipmentItemSeqId" > > result-name="shipmentItemSeqId"/> > > > - <create-value value-field="newEntity"/> > > > - </simple-method> > > > - <simple-method method-name="updateShipmentItem" > > short-description="Update ShipmentItem"> > > > - <set value="Update ShipmentItem" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - > > > - <make-value entity-name="ShipmentItem" > > value-field="lookupPKMap"/> > > > - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > > > - <find-by-primary-key entity-name="ShipmentItem" > > map="lookupPKMap" value-field="lookedUpValue"/> > > > - <set-nonpk-fields map="parameters" > value-field="lookedUpValue"/> > > > - <store-value value-field="lookedUpValue"/> > > > - </simple-method> > > > <simple-method method-name="deleteShipmentItem" > > short-description="Delete ShipmentItem"> > > > - <set value="Delete ShipmentItem" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - <!-- If there is any Shipment Package Content available for > > this Shipment Item then it cannot be deleted as it require > > > + <!-- If there is any Shipment Package Content available for > > this Shipment Item then it cannot be deleted as it require > > > Shipment Package content to be deleted first --> > > > <entity-and entity-name="ShipmentPackageContent" > > list="shipmentPackageContents"> > > > <field-map field-name="shipmentId" > > from-field="parameters.shipmentId"/> > > > @@ -946,10 +899,6 @@ under the License. > > > > > > <!-- ShipmentPackage services --> > > > <simple-method method-name="createShipmentPackage" > > short-description="Create ShipmentPackage"> > > > - <set value="Create ShipmentPackage" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - > > > <make-value entity-name="ShipmentPackage" > > value-field="newEntity"/> > > > <set-pk-fields map="parameters" value-field="newEntity"/> > > > <set-nonpk-fields map="parameters" value-field="newEntity"/> > > > @@ -971,10 +920,6 @@ under the License. > > > <call-simple-method method-name="ensurePackageRouteSeg"/> > > > </simple-method> > > > <simple-method method-name="updateShipmentPackage" > > short-description="Update ShipmentPackage"> > > > - <set value="Update ShipmentPackage" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusShipped"/> > > > - <check-errors/> > > > - > > > <make-value entity-name="ShipmentPackage" > > value-field="lookupPKMap"/> > > > <set-pk-fields map="parameters" value-field="lookupPKMap"/> > > > <find-by-primary-key entity-name="ShipmentPackage" > > map="lookupPKMap" value-field="lookedUpValue"/> > > > @@ -986,9 +931,6 @@ under the License. > > > <call-simple-method method-name="ensurePackageRouteSeg"/> > > > </simple-method> > > > <simple-method method-name="deleteShipmentPackage" > > short-description="Delete ShipmentPackage"> > > > - <set value="Delete ShipmentPackage" field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > <!-- If there is any Shipment Package Content available for > > this shipment than Shipment Package cannot be deleted as it require > > > Shipment Package Content to be deleted first --> > > > <entity-and entity-name="ShipmentPackageContent" > > list="shipmentPackageContents"> > > > @@ -1029,43 +971,7 @@ under the License. > > > </simple-method> > > > > > > <!-- ShipmentPackageContent services --> > > > - <simple-method method-name="createShipmentPackageContent" > > short-description="Create ShipmentPackageContent"> > > > - <set value="Create ShipmentPackageContent" > > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - > > > - <make-value entity-name="ShipmentPackageContent" > > value-field="newEntity"/> > > > - <set-pk-fields map="parameters" value-field="newEntity"/> > > > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > > > - > > > - <create-value value-field="newEntity"/> > > > - <field-to-result field="newEntity.shipmentPackageSeqId" > > result-name="shipmentPackageSeqId"/> > > > - </simple-method> > > > - <simple-method method-name="updateShipmentPackageContent" > > short-description="Update ShipmentPackageContent"> > > > - <set value="Update ShipmentPackageContent" > > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - > > > - <make-value entity-name="ShipmentPackageContent" > > value-field="lookupPKMap"/> > > > - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > > > - <find-by-primary-key entity-name="ShipmentPackageContent" > > map="lookupPKMap" value-field="lookedUpValue"/> > > > - <set-nonpk-fields map="parameters" > value-field="lookedUpValue"/> > > > - <store-value value-field="lookedUpValue"/> > > > - </simple-method> > > > - <simple-method method-name="deleteShipmentPackageContent" > > short-description="Delete ShipmentPackageContent"> > > > - <set value="Delete ShipmentPackageContent" > > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - > > > - <make-value entity-name="ShipmentPackageContent" > > value-field="lookupPKMap"/> > > > - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > > > - <find-by-primary-key entity-name="ShipmentPackageContent" > > map="lookupPKMap" value-field="lookedUpValue"/> > > > - <remove-value value-field="lookedUpValue"/> > > > - </simple-method> > > > <simple-method method-name="addShipmentContentToPackage" > > short-description="Add Shipment Content To Package"> > > > - <set value="Create ShipmentPackageContent" > > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > <make-value entity-name="ShipmentPackageContent" > > value-field="newEntity"/> > > > <set-pk-fields map="parameters" value-field="newEntity"/> > > > <find-by-primary-key value-field="shipmentPackageContent" > > map="newEntity"/> > > > @@ -1089,86 +995,16 @@ under the License. > > > <field-to-result field="newEntity.shipmentPackageSeqId" > > result-name="shipmentPackageSeqId"/> > > > </simple-method> > > > > > > - <!-- ShipmentPackageRouteSeg services --> > > > - <simple-method method-name="createShipmentPackageRouteSeg" > > short-description="Create ShipmentPackageRouteSeg"> > > > - <make-value entity-name="ShipmentPackageRouteSeg" > > value-field="newEntity"/> > > > - <set-pk-fields map="parameters" value-field="newEntity"/> > > > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > > > - > > > - <create-value value-field="newEntity"/> > > > - </simple-method> > > > - <simple-method method-name="deleteShipmentPackageRouteSeg" > > short-description="Delete ShipmentPackageRouteSeg"> > > > - <set value="Delete ShipmentPackageRouteSeg" > > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - > > > - <make-value entity-name="ShipmentPackageRouteSeg" > > value-field="lookupPKMap"/> > > > - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > > > - <find-by-primary-key entity-name="ShipmentPackageRouteSeg" > > map="lookupPKMap" value-field="lookedUpValue"/> > > > - <remove-value value-field="lookedUpValue"/> > > > - </simple-method> > > > - > > > <!-- ShipmentRouteSegment services --> > > > - <simple-method method-name="createShipmentRouteSegment" > > short-description="Create ShipmentRouteSegment"> > > > - <set value="Create ShipmentRouteSegment" > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - > > > - <make-value entity-name="ShipmentRouteSegment" > > value-field="newEntity"/> > > > - <set-pk-fields map="parameters" value-field="newEntity"/> > > > - <set-nonpk-fields map="parameters" value-field="newEntity"/> > > > - > > > - <!-- if no shipmentRouteSegmentSeqId, generate one based on > > existing items, ie one greater than the current higher number --> > > > - <make-next-seq-id value-field="newEntity" > > seq-field-name="shipmentRouteSegmentId"/> > > > - <field-to-result field="newEntity.shipmentRouteSegmentId" > > result-name="shipmentRouteSegmentId"/> > > > - > > > - <if-empty field="newEntity.carrierServiceStatusId"> > > > - <set value="SHRSCS_NOT_STARTED" > > field="newEntity.carrierServiceStatusId"/> > > > - </if-empty> > > > - > > > - <create-value value-field="newEntity"/> > > > - > > > - <set from-field="newEntity.shipmentId" field="shipmentId"/> > > > - <set from-field="newEntity.shipmentRouteSegmentId" > > field="shipmentRouteSegmentId"/> > > > - <call-simple-method method-name="ensureRouteSegPackage"/> > > > - </simple-method> > > > - <simple-method method-name="updateShipmentRouteSegment" > > short-description="Update ShipmentRouteSegment"> > > > - <set value="Update ShipmentRouteSegment" > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusDelivered"/> > > > - <check-errors/> > > > - > > > - <entity-one entity-name="ShipmentRouteSegment" > > value-field="lookedUpValue"/> > > > - <set-nonpk-fields map="parameters" > value-field="lookedUpValue"/> > > > - > > > - <if-empty field="newEntity.carrierServiceStatusId"> > > > - <set value="SHRSCS_NOT_STARTED" > > field="newEntity.carrierServiceStatusId"/> > > > - </if-empty> > > > - > > > - > > > - <set from-field="userLogin.userLoginId" > > field="lookedUpValue.updatedByUserLoginId"/> > > > - <now-timestamp field="lookedUpValue.lastUpdatedDate"/> > > > - <store-value value-field="lookedUpValue"/> > > > - > > > - <set from-field="lookedUpValue.shipmentId" > field="shipmentId"/> > > > - <set from-field="lookedUpValue.shipmentRouteSegmentId" > > field="shipmentRouteSegmentId"/> > > > - <call-simple-method method-name="ensureRouteSegPackage"/> > > > - </simple-method> > > > - <simple-method method-name="deleteShipmentRouteSegment" > > short-description="Delete ShipmentRouteSegment"> > > > - <set value="Delete ShipmentRouteSegment" > field="operationName"/> > > > - <call-simple-method > > method-name="checkCanChangeShipmentStatusPacked"/> > > > - <check-errors/> > > > - > > > - <entity-one entity-name="ShipmentRouteSegment" > > value-field="lookedUpValue"/> > > > - <remove-value value-field="lookedUpValue"/> > > > - </simple-method> > > > <simple-method method-name="ensureRouteSegPackage" > > short-description="Ensure ShipmentPackageRouteSeg exists for all Packages > > for this RouteSegment"> > > > + <entity-one entity-name="ShipmentRouteSegment" > > value-field="shipmentRouteSegment" use-cache="true"/> > > > <entity-and entity-name="ShipmentPackage" > > list="shipmentPackages"> > > > - <field-map field-name="shipmentId" > from-field="shipmentId"/> > > > + <field-map field-name="shipmentId" > > from-field="shipmentRouteSegment.shipmentId"/> > > > </entity-and> > > > <iterate list="shipmentPackages" entry="shipmentPackage"> > > > <entity-one entity-name="ShipmentPackageRouteSeg" > > value-field="checkShipmentPackageRouteSeg" auto-field-map="false"> > > > - <field-map field-name="shipmentId" > > from-field="shipmentId"/> > > > - <field-map field-name="shipmentRouteSegmentId" > > from-field="shipmentRouteSegmentId"/> > > > + <field-map field-name="shipmentId" > > from-field="shipmentRouteSegment.shipmentId"/> > > > + <field-map field-name="shipmentRouteSegmentId" > > from-field="shipmentRouteSegment.shipmentRouteSegmentId"/> > > > <field-map field-name="shipmentPackageSeqId" > > from-field="shipmentPackage.shipmentPackageSeqId"/> > > > </entity-one> > > > <if-empty field="checkShipmentPackageRouteSeg"> > > > @@ -1194,7 +1030,17 @@ under the License. > > > <call-simple-method > > method-name="checkCanChangeShipmentStatusGeneral"/> > > > </simple-method> > > > <simple-method method-name="checkCanChangeShipmentStatusGeneral" > > short-description="Check the Status of a Shipment to see if it can be > > changed - meant to be called in-line"> > > > - <entity-one entity-name="Shipment" > value-field="testShipment"/> > > > + <if-empty field="parameters.mainAction"> > > > + <set field="parameters.mainAction" value="UPDATE"/> > > > + </if-empty> > > > + <set-service-fields service-name="facilityGenericPermission" > > to-map="facilityGenericPermissionMap" map="parameters"/> > > > + <call-service service-name="facilityGenericPermission" > > in-map-name="facilityGenericPermissionMap"> > > > + <result-to-field field="hasPermission" > > result-name="hasPermission"/> > > > + </call-service> > > > + <check-errors/> > > > + > > > + <entity-one entity-name="Shipment" value-field="testShipment" > > use-cache="true"/> > > > + <set field="fromStatusId" from-field="fromStatusId" > > default-value="${parameters.fromStatusId}"/> > > > <if> > > > <condition> > > > <or> > > > @@ -1225,9 +1071,12 @@ under the License. > > > </condition> > > > <then> > > > <get-related-one relation-name="StatusItem" > > value-field="testShipment" to-value-field="testShipmentStatus"/> > > > - <string-to-list string="Cannot perform operation > > ${operationName} when the shipment is in the > > ${testShipmentStatus.description} [${testShipment.statusId}] status." > > list="error_list"/> > > > + <property-to-field resource="ProductErrorUiLabels" > > property="ShipmentCanChangeStatusPermissionError" field="failMessage"/> > > > + <set field="hasPermission" type="Boolean" > > value="false"/> > > > + <field-to-result field="failMessage"/> > > > </then> > > > </if> > > > + <field-to-result field="hasPermission"/> > > > </simple-method> > > > > > > <!-- quick ship entire order in one package per facility & ship > > group --> > > > @@ -1987,23 +1836,5 @@ under the License. > > > <call-service > > service-name="cancelOrderItemIssuanceFromSalesShipment" > > in-map-name="inputMap"/> > > > </iterate> > > > </simple-method> > > > - > > > - <!-- QuantityBreak services --> > > > - <!-- create a new QuantityBreak --> > > > - <simple-method method-name="createQuantityBreak" > > short-description="Create a QuoteAttribute"> > > > - <make-value entity-name="QuantityBreak" > > value-field="quantityBreak"/> > > > - <set-nonpk-fields map="parameters" > value-field="quantityBreak"/> > > > - <sequenced-id sequence-name="QuantityBreak" > > field="quantityBreak.quantityBreakId"/> > > > - <create-value value-field="quantityBreak"/> > > > - <check-errors/> > > > - </simple-method> > > > - > > > - <!-- remove an existing QuantityBreak --> > > > - <simple-method method-name="deleteQuantityBreak" > > short-description="Remove an existing QuantityBreak"> > > > - <entity-one entity-name="QuantityBreak" > > value-field="quantityBreak" auto-field-map="true"/> > > > - <check-errors/> > > > - <remove-value value-field="quantityBreak"/> > > > - <check-errors/> > > > - </simple-method> > > > </simple-methods> > > > > > > > > > Modified: > > > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > > > URL: > > > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > > > > > > ============================================================================== > > > --- > > > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > > (original) > > > +++ > > > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > > Mon Sep 2 15:13:47 2019 > > > @@ -151,6 +151,13 @@ under the License. > > > <action service="updatePurchaseShipmentFromReceipt" > > mode="sync"/> > > > </eca> > > > > > > + <eca service="createShipmentRouteSegment" event="commit"> > > > + <action service="ensureRouteSegPackage" mode="sync"/> > > > + </eca> > > > + <eca service="updateShipmentRouteSegment" event="commit"> > > > + <action service="ensureRouteSegPackage" mode="sync"/> > > > + </eca> > > > + > > > <eca service="createShipmentPackageContent" event="in-validate"> > > > <condition field-name="shipmentPackageSeqId" > operator="equals" > > value="New"/> > > > <action service="createShipmentPackage" mode="sync"/> > > > > > > Modified: > > > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > > > URL: > > > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > > > > > > ============================================================================== > > > --- > > > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > > (original) > > > +++ > > > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > > Mon Sep 2 15:13:47 2019 > > > @@ -136,7 +136,7 @@ under the License. > > > <service name="updateShipment" default-entity-name="Shipment" > > engine="simple" > > > > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="updateShipment" auth="true"> > > > <description>Update Shipment</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="UPDATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusDelivered" > main-action="UPDATE"/> > > > <auto-attributes include="pk" mode="INOUT" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"> > > > <exclude field-name="shipmentTypeId"/> > > > @@ -152,10 +152,9 @@ under the License. > > > <attribute name="oldOriginFacilityId" type="String" > mode="OUT" > > optional="true"/> > > > <attribute name="oldDestinationFacilityId" type="String" > > mode="OUT" optional="true"/> > > > </service> > > > - <service name="deleteShipment" default-entity-name="Shipment" > > engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="deleteShipment" auth="true"> > > > + <service name="deleteShipment" default-entity-name="Shipment" > > engine="entity-auto" invoke="delete" auth="true"> > > > <description>Delete Shipment</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="DELETE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > </service> > > > <service name="createShipmentStatus" > > default-entity-name="ShipmentStatus" engine="entity-auto" invoke="create" > > auth="true"> > > > @@ -167,19 +166,13 @@ under the License. > > > <service name="setShipmentSettingsFromPrimaryOrder" > engine="simple" > > > > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="setShipmentSettingsFromPrimaryOrder" auth="true"> > > > <description>Set Shipment Settings From Primary > > Order</description> > > > - <required-permissions join-type="AND"> > > > - <permission-service > > service-name="facilityGenericPermission" main-action="CREATE"/> > > > - <permission-service > > service-name="facilityGenericPermission" main-action="UPDATE"/> > > > - </required-permissions> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > > > <attribute name="shipmentId" type="String" mode="IN" > > optional="false"/> > > > </service> > > > <service name="setShipmentSettingsFromFacilities" engine="simple" > > > > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="setShipmentSettingsFromFacilities" auth="true"> > > > <description>Set Shipment Settings From > > Facilities</description> > > > - <required-permissions join-type="AND"> > > > - <permission-service > > service-name="facilityGenericPermission" main-action="CREATE"/> > > > - <permission-service > > service-name="facilityGenericPermission" main-action="UPDATE"/> > > > - </required-permissions> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > > > <attribute name="shipmentId" type="String" mode="IN" > > optional="false"/> > > > </service> > > > <service name="sendShipmentScheduledNotification" engine="simple" > > > @@ -220,25 +213,22 @@ under the License. > > > </service> > > > > > > <!-- ShipmentItem Services --> > > > - <service name="createShipmentItem" > > default-entity-name="ShipmentItem" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="createShipmentItem" auth="true"> > > > + <service name="createShipmentItem" > > default-entity-name="ShipmentItem" engine="entity-auto" invoke="create" > > auth="true"> > > > <description>Create ShipmentItem</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="CREATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > > <override name="shipmentItemSeqId" mode="INOUT" > > optional="true"/> > > > </service> > > > - <service name="updateShipmentItem" > > default-entity-name="ShipmentItem" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="updateShipmentItem" auth="true"> > > > + <service name="updateShipmentItem" > > default-entity-name="ShipmentItem" engine="entity-auto" invoke="update" > > auth="true"> > > > <description>Update ShipmentItem</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="UPDATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusDelivered" > main-action="UPDATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > > </service> > > > - <service name="deleteShipmentItem" > > default-entity-name="ShipmentItem" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="deleteShipmentItem" auth="true"> > > > + <service name="deleteShipmentItem" > > default-entity-name="ShipmentItem" engine="entity-auto" invoke="delete" > > auth="true"> > > > <description>Delete ShipmentItem</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="DELETE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > </service> > > > > > > @@ -256,7 +246,7 @@ under the License. > > > <service name="createShipmentPackage" > > default-entity-name="ShipmentPackage" engine="simple" > > > > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="createShipmentPackage" auth="true"> > > > <description>Create ShipmentPackage</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="CREATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"> > > > <exclude field-name="dateCreated"/> > > > @@ -266,43 +256,40 @@ under the License. > > > <service name="updateShipmentPackage" > > default-entity-name="ShipmentPackage" engine="simple" > > > > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="updateShipmentPackage" auth="true"> > > > <description>Update ShipmentPackage</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="UPDATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > > </service> > > > <service name="deleteShipmentPackage" > > default-entity-name="ShipmentPackage" engine="simple" > > > > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="deleteShipmentPackage" auth="true"> > > > <description>Delete ShipmentPackage</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="DELETE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > </service> > > > > > > <!-- ShipmentPackageContent Services --> > > > - <service name="createShipmentPackageContent" > > default-entity-name="ShipmentPackageContent" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="createShipmentPackageContent" auth="true"> > > > + <service name="createShipmentPackageContent" > > default-entity-name="ShipmentPackageContent" engine="entity-auto" > > invoke="create" auth="true"> > > > <description>Create ShipmentPackageContent</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="CREATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > > <override name="shipmentPackageSeqId" mode="INOUT" > > optional="false"/> > > > </service> > > > - <service name="updateShipmentPackageContent" > > default-entity-name="ShipmentPackageContent" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="updateShipmentPackageContent" auth="true"> > > > + <service name="updateShipmentPackageContent" > > default-entity-name="ShipmentPackageContent" engine="entity-auto" > > invoke="update" auth="true"> > > > <description>Update ShipmentPackageContent</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="UPDATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > > </service> > > > - <service name="deleteShipmentPackageContent" > > default-entity-name="ShipmentPackageContent" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="deleteShipmentPackageContent" auth="true"> > > > + <service name="deleteShipmentPackageContent" > > default-entity-name="ShipmentPackageContent" engine="entity-auto" > > invoke="delete" auth="true"> > > > <description>Delete ShipmentPackageContent</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="DELETE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > </service> > > > <service name="addShipmentContentToPackage" > > default-entity-name="ShipmentPackageContent" engine="simple" > > > > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="addShipmentContentToPackage" auth="true"> > > > <description>Add Shipment Content To Package</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="CREATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > > <override name="quantity" mode="IN" optional="false"/> > > > @@ -310,23 +297,21 @@ under the License. > > > </service> > > > > > > <!-- ShipmentPackageRouteSeg Services --> > > > - <service name="createShipmentPackageRouteSeg" > > default-entity-name="ShipmentPackageRouteSeg" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="createShipmentPackageRouteSeg" auth="true"> > > > + <service name="createShipmentPackageRouteSeg" > > default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" > > invoke="create" auth="true"> > > > <description>Create ShipmentPackageRouteSeg</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="CREATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > > </service> > > > <service name="updateShipmentPackageRouteSeg" > > default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" > > invoke="update" auth="true"> > > > <description>Update ShipmentPackageRouteSeg</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="UPDATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusDelivered" > main-action="UPDATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > > </service> > > > - <service name="deleteShipmentPackageRouteSeg" > > default-entity-name="ShipmentPackageRouteSeg" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="deleteShipmentPackageRouteSeg" auth="true"> > > > + <service name="deleteShipmentPackageRouteSeg" > > default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" > > invoke="delete" auth="true"> > > > <description>Delete ShipmentPackageRouteSeg</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="DELETE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > </service> > > > > > > @@ -350,25 +335,23 @@ under the License. > > > </service> > > > > > > <!-- ShipmentRouteSegment Services --> > > > - <service name="createShipmentRouteSegment" > > default-entity-name="ShipmentRouteSegment" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="createShipmentRouteSegment" auth="true"> > > > + <service name="createShipmentRouteSegment" > > default-entity-name="ShipmentRouteSegment" engine="entity-auto" > > invoke="create" auth="true"> > > > <description>Create ShipmentRouteSegment</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="CREATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > > <override name="shipmentRouteSegmentId" mode="INOUT" > > optional="true"/> > > > </service> > > > - <service name="updateShipmentRouteSegment" > > default-entity-name="ShipmentRouteSegment" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="updateShipmentRouteSegment" auth="true"> > > > + <service name="updateShipmentRouteSegment" > > default-entity-name="ShipmentRouteSegment" engine="entity-auto" > > invoke="update" auth="true"> > > > <description>Update ShipmentRouteSegment</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="UPDATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > > + <override name="carrierServiceStatusId" > > default-value="SHRSCS_NOT_STARTED"/> > > > </service> > > > - <service name="deleteShipmentRouteSegment" > > default-entity-name="ShipmentRouteSegment" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="deleteShipmentRouteSegment" auth="true"> > > > + <service name="deleteShipmentRouteSegment" > > default-entity-name="ShipmentRouteSegment" engine="entity-auto" > > invoke="delete" auth="true"> > > > <description>Delete ShipmentRouteSegment</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="DELETE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > </service> > > > <service name="duplicateShipmentRouteSegment" > > default-entity-name="ShipmentRouteSegment" engine="java" > > > @@ -386,44 +369,46 @@ under the License. > > > </description> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > </service> > > > + <service name="ensureRouteSegPackage" > > default-entity-name="ShipmentRouteSegment" engine="simple" > > > + > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="ensureRouteSegPackage" auth="true"> > > > + <description>Ensure ShipmentPackageRouteSeg exists for all > > Packages for this RouteSegment</description> > > > + <permission-service service-name="facilityGenericPermission" > > main-action="CREATE"/> > > > + <auto-attributes include="pk" mode="IN" optional="false"/> > > > + </service> > > > > > > <!-- > > ============================================================== --> > > > <!-- ItemIssuance Services --> > > > <service name="createItemIssuance" > > default-entity-name="ItemIssuance" engine="simple" > > > > > > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > > invoke="createItemIssuance" auth="true"> > > > <description>Create ItemIssuance</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="CREATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > > <auto-attributes include="pk" mode="OUT" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > > <attribute name="affectAccounting" type="Boolean" mode="OUT" > > optional="true"/> > > > </service> > > > - <service name="updateItemIssuance" > > default-entity-name="ItemIssuance" engine="simple" > > > - > > > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > > invoke="updateItemIssuance" auth="true"> > > > + <service name="updateItemIssuance" > > default-entity-name="ItemIssuance" engine="entity-auto" invoke="update" > > auth="true"> > > > <description>Update ItemIssuance</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="UPDATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <auto-attributes include="nonpk" mode="IN" optional="true"/> > > > </service> > > > - <service name="deleteItemIssuance" > > default-entity-name="ItemIssuance" engine="simple" > > > - > > > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > > invoke="deleteItemIssuance" auth="true"> > > > + <service name="deleteItemIssuance" > > default-entity-name="ItemIssuance" engine="entity-auto" invoke="delete" > > auth="true"> > > > <description>Delete ItemIssuance</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="DELETE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > </service> > > > > > > <!-- ItemIssuanceRole Services --> > > > - <service name="createItemIssuanceRole" > > default-entity-name="ItemIssuanceRole" engine="simple" > > > - > > > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > > invoke="createItemIssuanceRole" auth="true"> > > > + <service name="createItemIssuanceRole" > > default-entity-name="ItemIssuanceRole" engine="entity-auto" > invoke="create" > > auth="true"> > > > <description>Create ItemIssuanceRole</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="CREATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <!-- Will check if OK to change status of shipment, so > > Shipment PK is needed --> > > > <auto-attributes entity-name="Shipment" include="pk" > mode="IN" > > optional="false"/> > > > </service> > > > - <service name="deleteItemIssuanceRole" > > default-entity-name="ItemIssuanceRole" engine="simple" > > > - > > > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > > invoke="deleteItemIssuanceRole" auth="true"> > > > + <service name="deleteItemIssuanceRole" > > default-entity-name="ItemIssuanceRole" engine="entity-auto" > invoke="delete" > > auth="true"> > > > <description>Delete ItemIssuanceRole</description> > > > - <permission-service service-name="facilityGenericPermission" > > main-action="DELETE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > <!-- Will check if OK to change status of shipment, so > > Shipment PK is needed --> > > > <auto-attributes entity-name="Shipment" include="pk" > mode="IN" > > optional="false"/> > > > @@ -433,7 +418,7 @@ under the License. > > > > > > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > > invoke="issueOrderItemToShipment" auth="true"> > > > <description>Issue an OrderItem to a Shipment - only for > > non-sales orders</description> > > > <required-permissions join-type="AND"> > > > - <permission-service > > service-name="facilityGenericPermission" main-action="CREATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > > <permission-service > > service-name="facilityGenericPermission" main-action="UPDATE"/> > > > </required-permissions> > > > <auto-attributes entity-name="Shipment" include="pk" > mode="IN" > > optional="false"/> > > > @@ -445,7 +430,7 @@ under the License. > > > > > > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > > invoke="issueOrderItemShipGrpInvResToShipment" auth="true"> > > > <description>Add an OrderItemShipGrpInvRes to a Shipment - > > only for sales orders</description> > > > <required-permissions join-type="AND"> > > > - <permission-service > > service-name="facilityGenericPermission" main-action="CREATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > > <permission-service > > service-name="facilityGenericPermission" main-action="UPDATE"/> > > > </required-permissions> > > > <auto-attributes entity-name="Shipment" include="pk" > mode="IN" > > optional="false"/> > > > @@ -775,7 +760,7 @@ under the License. > > > > > > location="component://product/minilang/shipment/receipt/ShipmentReceiptServices.xml" > > invoke="issueOrderItemToShipmentAndReceiveAgainstPO" auth="true"> > > > <description>Issues order item quantity specified to the > > shipment, then receives inventory for that item and > quantity</description> > > > <required-permissions join-type="AND"> > > > - <permission-service > > service-name="facilityGenericPermission" main-action="CREATE"/> > > > + <permission-service > > service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> > > > <permission-service > > service-name="facilityGenericPermission" main-action="UPDATE"/> > > > </required-permissions> > > > <implements service="issueOrderItemToShipment"/> > > > @@ -888,11 +873,11 @@ under the License. > > > </service> > > > > > > <!-- QuantityBreak services --> > > > - <service name="createQuantityBreak" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="createQuantityBreak" auth="true"> > > > + <service name="createQuantityBreak" > > default-entity-name="QuantityBreak" engine="entity-auto" invoke="create" > > auth="true"> > > > <description>Create a QuantityBreak</description> > > > <permission-service service-name="facilityGenericPermission" > > main-action="CREATE"/> > > > <auto-attributes entity-name="QuantityBreak" include="nonpk" > > mode="IN" optional="true"/> > > > + <auto-attributes entity-name="QuantityBreak" include="pk" > > mode="OUT" optional="false"/> > > > </service> > > > <service name="updateQuantityBreak" engine="entity-auto" > > invoke="update" default-entity-name="QuantityBreak" auth="true"> > > > <description>Update a QuantityBreak</description> > > > @@ -900,8 +885,7 @@ under the License. > > > <auto-attributes entity-name="QuantityBreak" include="pk" > > mode="IN" optional="false"/> > > > <auto-attributes entity-name="QuantityBreak" include="nonpk" > > mode="IN" optional="true"/> > > > </service> > > > - <service name="deleteQuantityBreak" engine="simple" > > > - > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="deleteQuantityBreak" auth="true"> > > > + <service name="deleteQuantityBreak" > > default-entity-name="QuantityBreak" engine="entity-auto" invoke="delete" > > auth="true"> > > > <description>Delete a QuantityBreak</description> > > > <permission-service service-name="facilityGenericPermission" > > main-action="DELETE"/> > > > <auto-attributes entity-name="QuantityBreak" include="pk" > > mode="IN" optional="false"/> > > > @@ -1161,4 +1145,27 @@ under the License. > > > <description>Delete a ShipmentItemBilling</description> > > > <auto-attributes include="pk" mode="IN" optional="false"/> > > > </service> > > > + > > > + <!-- Permission Services --> > > > + <service name="checkCanChangeShipmentStatusPacked" engine="simple" > > > + > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="checkCanChangeShipmentStatusPacked"> > > > + <description>Check the Status of a Shipment to see if it can > be > > changed for an operation relative to the packed state</description> > > > + <!-- Info : permission-service > > service-name="facilityGenericPermission" --> > > > + <implements service="permissionInterface"/> > > > + <attribute name="shipmentId" type="String" mode="IN" > > optional="true"/> > > > + </service> > > > + <service name="checkCanChangeShipmentStatusShipped" > engine="simple" > > > + > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="checkCanChangeShipmentStatusShipped"> > > > + <description>Check the Status of a Shipment to see if it can > be > > changed for an operation relative to the shipped state</description> > > > + <!-- Info : permission-service > > service-name="facilityGenericPermission" --> > > > + <implements service="permissionInterface"/> > > > + <attribute name="shipmentId" type="String" mode="IN" > > optional="true"/> > > > + </service> > > > + <service name="checkCanChangeShipmentStatusDelivered" > > engine="simple" > > > + > > > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > > invoke="checkCanChangeShipmentStatusDelivered"> > > > + <description>Check the Status of a Shipment to see if it can > be > > changed for an operation relative to the delivered state</description> > > > + <!-- Info : permission-service > > service-name="facilityGenericPermission" --> > > > + <implements service="permissionInterface"/> > > > + <attribute name="shipmentId" type="String" mode="IN" > > optional="true"/> > > > + </service> > > > </services> > > > > > > > > > > > > |
-_-' ...
Suraj, you blur my sunny day, but it's a good motivation to finish it ;) I worked on this last forgot issue [1], and it's hard part ! But I finalized it and I updated it with 3 dependencies [2] that contains framework improvements. If some people have some time to spend, it's would be nice if we can close this subject this week :) Cheers, Nicolas [1] https://issues.apache.org/jira/browse/OFBIZ-10636 [2] https://issues.apache.org/jira/browse/OFBIZ-11180 https://issues.apache.org/jira/browse/OFBIZ-11182 https://issues.apache.org/jira/browse/OFBIZ-11183 On 9/3/19 8:29 AM, Suraj Khurana wrote: > Hello folks, > > I checked and we have only one ticket remaining in this parent > <https://issues.apache.org/jira/browse/OFBIZ-8408> ticket. > Also, I converted OFBIZ-6996 into a child of OFBIZ-8408. > > Cheers, > -- > Best Regards, > Suraj Khurana > Technical Consultant > HotWax Systems > > > > > > > > On Mon, Sep 2, 2019 at 10:39 PM Swapnil M Mane <[hidden email]> > wrote: > >> Great, thanks so much Nicolas! >> >> >> Best regards, >> Swapnil M Mane, >> ofbiz.apache.org >> >> >> >> On Mon, Sep 2, 2019 at 8:54 PM Nicolas Malin <[hidden email]> >> wrote: >> >>> Hi all, >>> >>> With this last commit, I think we finish the conversion for CRUD in >>> mini-lang to entity-auto :) >>> >>> \o/ >>> >>> Now next step mini-lang to groovy ! >>> >>> Cheers, >>> >>> Nicolas >>> >>> On 9/2/19 5:13 PM, [hidden email] wrote: >>>> Author: nmalin >>>> Date: Mon Sep 2 15:13:47 2019 >>>> New Revision: 1866286 >>>> >>>> URL: http://svn.apache.org/viewvc?rev=1866286&view=rev >>>> Log: >>>> Improved: Convert Shipment Crud simple service to entity-auto >>>> (OFBIZ-6996) >>>> I converted all available shipment entities crud currently on simple >>> service to entity-auto service : >>>> * ItemIssuanceRole >>>> * ShipmentItem >>>> * ShipmentPackageContent >>>> * ShipmentPackageRouteSeg >>>> * ShipmentRouteSegment >>>> * QuantityBreak >>>> >>>> I also transformed a simple method call to a permission service: >>> checkCanChangeShipmentStatus, who check for a shipment is it on good >> status >>> for the change. >>>> With this last conversion, the permission control set on the service >>> definition instead of core service >>>> Modified: >>>> >> ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml >> ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml >> ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml >>>> Modified: >> ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml >>>> URL: >> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml?rev=1866286&r1=1866285&r2=1866286&view=diff >> ============================================================================== >>>> --- >> ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml >>> (original) >>>> +++ >> ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml >>> Mon Sep 2 15:13:47 2019 >>>> @@ -1489,6 +1489,10 @@ >>>> <value xml:lang="zh">åˆ›å»ºå¿«é€Ÿæ·»åŠ å ˜åž‹æ•°æ ®æ—¶å >>> ‘生交易错误:${errMessage}。</value> >>>> <value >>> xml:lang="zh-TW">æ–°å»ºå¿«é€Ÿå¢žåŠ è®Šåž‹è³‡æ–™æ™‚ç™¼ç”Ÿäº¤æ˜“éŒ¯èª¤: >>> ${errMessage}.</value> >>>> </property> >>>> + <property key="ShipmentCanChangeStatusPermissionError"> >>>> + <value xml:lang="en">Cannot perform this operation when the >>> shipment [${testShipment.shipmentId}] is in the >>> ${testShipmentStatus.description} [${testShipment.statusId}] >>> status."</value> >>>> + <value xml:lang="fr">Impossible de réaliser l'opération >>> demandée quand l'expédition [${testShipment.shipmentId}] est dans le >>> statut ${testShipmentStatus.description} >> [${testShipment.statusId}]</value> >>>> + </property> >>>> <property >>> key="variantevents.variantProductId_required_but_missing_enter_an_id"> >>>> <value xml:lang="de">variantProductId wir benötigt, fehlt >>> aber, bitte geben Sie eine ID für die neue Produktvariante an.</value> >>>> <value xml:lang="en">variantProductId is required but >> missing, >>> please enter an id for the new variant product.</value> >>>> Modified: >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml >>>> URL: >> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff >> ============================================================================== >>>> --- >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml >>> (original) >>>> +++ >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml >>> Mon Sep 2 15:13:47 2019 >>>> @@ -22,10 +22,6 @@ under the License. >>>> xmlns="http://ofbiz.apache.org/Simple-Method" >>> xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method >>> http://ofbiz.apache.org/dtds/simple-methods.xsd"> >>>> <!-- ItemIssuance services --> >>>> <simple-method method-name="createItemIssuance" >>> short-description="Create ItemIssuance"> >>>> - <set value="Create ItemIssuance" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked" >>> >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >>>> - <check-errors/> >>>> - >>>> <make-value entity-name="ItemIssuance" >>> value-field="newEntity"/> >>>> <sequenced-id sequence-name="ItemIssuance" >>> field="newEntity.itemIssuanceId"/> >>>> <field-to-result field="newEntity.itemIssuanceId" >>> result-name="itemIssuanceId"/> >>>> @@ -64,48 +60,9 @@ under the License. >>>> </if-not-empty> >>>> <field-to-result field="affectAccounting" >>> result-name="affectAccounting"/> >>>> </simple-method> >>>> - <simple-method method-name="updateItemIssuance" >>> short-description="Update ItemIssuance"> >>>> - <set value="Update ItemIssuance" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked" >>> >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >>>> - <check-errors/> >>>> - >>>> - <entity-one entity-name="ItemIssuance" >>> value-field="lookedUpValue"/> >>>> - <set-nonpk-fields map="parameters" >> value-field="lookedUpValue"/> >>>> - <store-value value-field="lookedUpValue"/> >>>> - </simple-method> >>>> - <simple-method method-name="deleteItemIssuance" >>> short-description="Delete ItemIssuance"> >>>> - <set value="Delete ItemIssuance" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked" >>> >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >>>> - <check-errors/> >>>> - >>>> - <entity-one entity-name="ItemIssuance" >>> value-field="lookedUpValue"/> >>>> - <remove-value value-field="lookedUpValue"/> >>>> - </simple-method> >>>> - >>>> - <!-- ItemIssuanceRole services --> >>>> - <simple-method method-name="createItemIssuanceRole" >>> short-description="Create ItemIssuanceRole"> >>>> - <set value="Create ItemIssuanceRole" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked" >>> >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >>>> - <check-errors/> >>>> - <make-value entity-name="ItemIssuanceRole" >>> value-field="newEntity"/> >>>> - <set-pk-fields map="parameters" value-field="newEntity"/> >>>> - <set-nonpk-fields map="parameters" value-field="newEntity"/> >>>> - <create-value value-field="newEntity"/> >>>> - </simple-method> >>>> - >>>> - <simple-method method-name="deleteItemIssuanceRole" >>> short-description="Delete ItemIssuanceRole"> >>>> - <set value="Delete ItemIssuanceRole" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked" >>> >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >>>> - <check-errors/> >>>> - <entity-one entity-name="ItemIssuanceRole" >>> value-field="lookedUpValue"/> >>>> - <remove-value value-field="lookedUpValue"/> >>>> - </simple-method> >>>> >>>> <!-- the actual issuance services --> >>>> <simple-method method-name="issueOrderItemToShipment" >>> short-description="Issue OrderItem to Shipment"> >>>> - <set value="Issue OrderItem to Shipment" >> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked" >>> >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >>>> - <check-errors/> >>>> >>>> <!-- get orderHeader --> >>>> <entity-one entity-name="OrderHeader" >>> value-field="orderHeader" auto-field-map="true"/> >>>> @@ -132,9 +89,6 @@ under the License. >>>> </simple-method> >>>> >>>> <simple-method >> method-name="issueOrderItemShipGrpInvResToShipment" >>> short-description="Issue OrderItemShipGrpInvRes to Shipment"> >>>> - <set value="Issue OrderItemShipGrpInvRes to Shipment" >>> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked" >>> >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >>>> - <check-errors/> >>>> >>>> <!-- get orderItemShipGrpInvRes --> >>>> <make-value entity-name="OrderItemShipGrpInvRes" >>> value-field="OrderItemShipGrpInvResLookupPk"/> >>>> @@ -464,7 +418,7 @@ under the License. >>>> <field-to-result field="itemIssuanceId"/> >>>> </simple-method> >>>> <simple-method method-name="associateIssueRoles" >>> short-description="Associate Roles for ItemIssuance - meant to be called >>> in-line"> >>>> - <!-- make sure the party is in the PACKER role --> >>>> + <!-- make sure the party is in the PACKER role TODO need to >>> replace by ensurePartyRole--> >>>> <make-value entity-name="PartyRole" value-field="partyRole"/> >>>> <set field="partyRole.partyId" >> from-field="userLogin.partyId"/> >>>> <set field="partyRole.roleTypeId" value="PACKER"/> >>>> @@ -565,8 +519,9 @@ under the License. >>>> <!-- issuance can be canceled only if the sales shipment is >>> not packed --> >>>> <if-compare field="shipment.statusId" operator="not-equals" >>> value="SHIPMENT_CANCELLED"> >>>> - <set from-field="itemIssuance.shipmentId" >>> field="shipmentId"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked" >>> >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >>>> + <set from-field="itemIssuance.shipmentId" >>> field="checkCanChangeShipmentStatusPackedMap.shipmentId"/> >>>> + <set value="UPDATE" >>> field="checkCanChangeShipmentStatusPackedMap.mainAction"/> >>>> + <call-service >>> service-name="checkCanChangeShipmentStatusPacked" >>> in-map-name="checkCanChangeShipmentStatusPackedMap" /> >>>> <check-errors/> >>>> </if-compare> >>>> >>>> >>>> Modified: >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml >>>> URL: >> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff >> ============================================================================== >>>> --- >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml >>> (original) >>>> +++ >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml >>> Mon Sep 2 15:13:47 2019 >>>> @@ -361,9 +361,6 @@ under the License. >>>> </simple-method> >>>> >>>> <simple-method >>> method-name="issueOrderItemToShipmentAndReceiveAgainstPO" >>> short-description="Issues order item quantity specified to the shipment, >>> then receives inventory for that item and quantity"> >>>> - <set value="Issue OrderItem to Shipment and Receive against >> PO" >>> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked" >>> >> xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> >>>> - <check-errors/> >>>> >>>> <!-- get orderItem --> >>>> <entity-one entity-name="OrderItem" value-field="orderItem" >>> auto-field-map="true"/> >>>> Modified: >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml >>>> URL: >> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff >> ============================================================================== >>>> --- >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml >>> (original) >>>> +++ >> ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml >>> Mon Sep 2 15:13:47 2019 >>>> @@ -112,9 +112,6 @@ under the License. >>>> </simple-method> >>>> >>>> <simple-method method-name="updateShipment" >>> short-description="Update Shipment"> >>>> - <set value="Update Shipment" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusDelivered"/> >>>> - <check-errors/> >>>> >>>> <make-value entity-name="Shipment" >> value-field="lookupPKMap"/> >>>> <set-pk-fields map="parameters" value-field="lookupPKMap"/> >>>> @@ -283,14 +280,6 @@ under the License. >>>> <store-value value-field="lookedUpValue"/> >>>> </simple-method> >>>> >>>> - <simple-method method-name="deleteShipment" >>> short-description="Delete Shipment"> >>>> - <set value="Delete Shipment" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - <entity-one entity-name="Shipment" >> value-field="lookedUpValue"/> >>>> - <remove-value value-field="lookedUpValue"/> >>>> - </simple-method> >>>> - >>>> <simple-method method-name="createShipmentForReturn" >>> short-description="Create Shipment based on ReturnHeader"> >>>> <entity-one entity-name="ReturnHeader" >>> value-field="returnHeader"> >>>> <field-map field-name="returnId" >>> from-field="parameters.returnId"/> >>>> @@ -428,10 +417,6 @@ under the License. >>>> </simple-method> >>>> >>>> <simple-method method-name="setShipmentSettingsFromPrimaryOrder" >>> short-description="Set Shipment Settings From Primary Order"> >>>> - <set value="Set Shipment Settings From Primary Order" >>> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - >>>> <!-- on Shipment set partyIdFrom, partyIdTo (vendorPartyId), >>> originContactMechId, destinationContactMechId, estimatedShipCost --> >>>> <entity-one entity-name="Shipment" value-field="shipment"/> >>>> >>>> @@ -670,12 +655,7 @@ under the License. >>>> </simple-method> >>>> >>>> <simple-method method-name="setShipmentSettingsFromFacilities" >>> short-description="Set Shipment Settings From Facilities"> >>>> - <set value="Set Shipment Settings From Facilities" >>> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - >>>> <entity-one entity-name="Shipment" value-field="shipment"/> >>>> - >>>> <clone-value value-field="shipment" >>> new-value-field="shipmentCopy"/> >>>> <string-to-list string="-fromDate" >>> list="descendingFromDateOrder"/> >>>> @@ -817,35 +797,8 @@ under the License. >>>> </simple-method> >>>> >>>> <!-- ShipmentItem services --> >>>> - <simple-method method-name="createShipmentItem" >>> short-description="Create ShipmentItem"> >>>> - <set value="Create ShipmentItem" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - >>>> - <make-value entity-name="ShipmentItem" >> value-field="newEntity"/> >>>> - <set-pk-fields map="parameters" value-field="newEntity"/> >>>> - <set-nonpk-fields map="parameters" value-field="newEntity"/> >>>> - <!-- if no shipmentItemSeqId, generate one based on existing >>> items, ie one greater than the current higher number --> >>>> - <make-next-seq-id value-field="newEntity" >>> seq-field-name="shipmentItemSeqId"/> >>>> - <field-to-result field="newEntity.shipmentItemSeqId" >>> result-name="shipmentItemSeqId"/> >>>> - <create-value value-field="newEntity"/> >>>> - </simple-method> >>>> - <simple-method method-name="updateShipmentItem" >>> short-description="Update ShipmentItem"> >>>> - <set value="Update ShipmentItem" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - >>>> - <make-value entity-name="ShipmentItem" >>> value-field="lookupPKMap"/> >>>> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> >>>> - <find-by-primary-key entity-name="ShipmentItem" >>> map="lookupPKMap" value-field="lookedUpValue"/> >>>> - <set-nonpk-fields map="parameters" >> value-field="lookedUpValue"/> >>>> - <store-value value-field="lookedUpValue"/> >>>> - </simple-method> >>>> <simple-method method-name="deleteShipmentItem" >>> short-description="Delete ShipmentItem"> >>>> - <set value="Delete ShipmentItem" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - <!-- If there is any Shipment Package Content available for >>> this Shipment Item then it cannot be deleted as it require >>>> + <!-- If there is any Shipment Package Content available for >>> this Shipment Item then it cannot be deleted as it require >>>> Shipment Package content to be deleted first --> >>>> <entity-and entity-name="ShipmentPackageContent" >>> list="shipmentPackageContents"> >>>> <field-map field-name="shipmentId" >>> from-field="parameters.shipmentId"/> >>>> @@ -946,10 +899,6 @@ under the License. >>>> >>>> <!-- ShipmentPackage services --> >>>> <simple-method method-name="createShipmentPackage" >>> short-description="Create ShipmentPackage"> >>>> - <set value="Create ShipmentPackage" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - >>>> <make-value entity-name="ShipmentPackage" >>> value-field="newEntity"/> >>>> <set-pk-fields map="parameters" value-field="newEntity"/> >>>> <set-nonpk-fields map="parameters" value-field="newEntity"/> >>>> @@ -971,10 +920,6 @@ under the License. >>>> <call-simple-method method-name="ensurePackageRouteSeg"/> >>>> </simple-method> >>>> <simple-method method-name="updateShipmentPackage" >>> short-description="Update ShipmentPackage"> >>>> - <set value="Update ShipmentPackage" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusShipped"/> >>>> - <check-errors/> >>>> - >>>> <make-value entity-name="ShipmentPackage" >>> value-field="lookupPKMap"/> >>>> <set-pk-fields map="parameters" value-field="lookupPKMap"/> >>>> <find-by-primary-key entity-name="ShipmentPackage" >>> map="lookupPKMap" value-field="lookedUpValue"/> >>>> @@ -986,9 +931,6 @@ under the License. >>>> <call-simple-method method-name="ensurePackageRouteSeg"/> >>>> </simple-method> >>>> <simple-method method-name="deleteShipmentPackage" >>> short-description="Delete ShipmentPackage"> >>>> - <set value="Delete ShipmentPackage" field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> <!-- If there is any Shipment Package Content available for >>> this shipment than Shipment Package cannot be deleted as it require >>>> Shipment Package Content to be deleted first --> >>>> <entity-and entity-name="ShipmentPackageContent" >>> list="shipmentPackageContents"> >>>> @@ -1029,43 +971,7 @@ under the License. >>>> </simple-method> >>>> >>>> <!-- ShipmentPackageContent services --> >>>> - <simple-method method-name="createShipmentPackageContent" >>> short-description="Create ShipmentPackageContent"> >>>> - <set value="Create ShipmentPackageContent" >>> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - >>>> - <make-value entity-name="ShipmentPackageContent" >>> value-field="newEntity"/> >>>> - <set-pk-fields map="parameters" value-field="newEntity"/> >>>> - <set-nonpk-fields map="parameters" value-field="newEntity"/> >>>> - >>>> - <create-value value-field="newEntity"/> >>>> - <field-to-result field="newEntity.shipmentPackageSeqId" >>> result-name="shipmentPackageSeqId"/> >>>> - </simple-method> >>>> - <simple-method method-name="updateShipmentPackageContent" >>> short-description="Update ShipmentPackageContent"> >>>> - <set value="Update ShipmentPackageContent" >>> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - >>>> - <make-value entity-name="ShipmentPackageContent" >>> value-field="lookupPKMap"/> >>>> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> >>>> - <find-by-primary-key entity-name="ShipmentPackageContent" >>> map="lookupPKMap" value-field="lookedUpValue"/> >>>> - <set-nonpk-fields map="parameters" >> value-field="lookedUpValue"/> >>>> - <store-value value-field="lookedUpValue"/> >>>> - </simple-method> >>>> - <simple-method method-name="deleteShipmentPackageContent" >>> short-description="Delete ShipmentPackageContent"> >>>> - <set value="Delete ShipmentPackageContent" >>> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - >>>> - <make-value entity-name="ShipmentPackageContent" >>> value-field="lookupPKMap"/> >>>> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> >>>> - <find-by-primary-key entity-name="ShipmentPackageContent" >>> map="lookupPKMap" value-field="lookedUpValue"/> >>>> - <remove-value value-field="lookedUpValue"/> >>>> - </simple-method> >>>> <simple-method method-name="addShipmentContentToPackage" >>> short-description="Add Shipment Content To Package"> >>>> - <set value="Create ShipmentPackageContent" >>> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> <make-value entity-name="ShipmentPackageContent" >>> value-field="newEntity"/> >>>> <set-pk-fields map="parameters" value-field="newEntity"/> >>>> <find-by-primary-key value-field="shipmentPackageContent" >>> map="newEntity"/> >>>> @@ -1089,86 +995,16 @@ under the License. >>>> <field-to-result field="newEntity.shipmentPackageSeqId" >>> result-name="shipmentPackageSeqId"/> >>>> </simple-method> >>>> >>>> - <!-- ShipmentPackageRouteSeg services --> >>>> - <simple-method method-name="createShipmentPackageRouteSeg" >>> short-description="Create ShipmentPackageRouteSeg"> >>>> - <make-value entity-name="ShipmentPackageRouteSeg" >>> value-field="newEntity"/> >>>> - <set-pk-fields map="parameters" value-field="newEntity"/> >>>> - <set-nonpk-fields map="parameters" value-field="newEntity"/> >>>> - >>>> - <create-value value-field="newEntity"/> >>>> - </simple-method> >>>> - <simple-method method-name="deleteShipmentPackageRouteSeg" >>> short-description="Delete ShipmentPackageRouteSeg"> >>>> - <set value="Delete ShipmentPackageRouteSeg" >>> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - >>>> - <make-value entity-name="ShipmentPackageRouteSeg" >>> value-field="lookupPKMap"/> >>>> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> >>>> - <find-by-primary-key entity-name="ShipmentPackageRouteSeg" >>> map="lookupPKMap" value-field="lookedUpValue"/> >>>> - <remove-value value-field="lookedUpValue"/> >>>> - </simple-method> >>>> - >>>> <!-- ShipmentRouteSegment services --> >>>> - <simple-method method-name="createShipmentRouteSegment" >>> short-description="Create ShipmentRouteSegment"> >>>> - <set value="Create ShipmentRouteSegment" >> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - >>>> - <make-value entity-name="ShipmentRouteSegment" >>> value-field="newEntity"/> >>>> - <set-pk-fields map="parameters" value-field="newEntity"/> >>>> - <set-nonpk-fields map="parameters" value-field="newEntity"/> >>>> - >>>> - <!-- if no shipmentRouteSegmentSeqId, generate one based on >>> existing items, ie one greater than the current higher number --> >>>> - <make-next-seq-id value-field="newEntity" >>> seq-field-name="shipmentRouteSegmentId"/> >>>> - <field-to-result field="newEntity.shipmentRouteSegmentId" >>> result-name="shipmentRouteSegmentId"/> >>>> - >>>> - <if-empty field="newEntity.carrierServiceStatusId"> >>>> - <set value="SHRSCS_NOT_STARTED" >>> field="newEntity.carrierServiceStatusId"/> >>>> - </if-empty> >>>> - >>>> - <create-value value-field="newEntity"/> >>>> - >>>> - <set from-field="newEntity.shipmentId" field="shipmentId"/> >>>> - <set from-field="newEntity.shipmentRouteSegmentId" >>> field="shipmentRouteSegmentId"/> >>>> - <call-simple-method method-name="ensureRouteSegPackage"/> >>>> - </simple-method> >>>> - <simple-method method-name="updateShipmentRouteSegment" >>> short-description="Update ShipmentRouteSegment"> >>>> - <set value="Update ShipmentRouteSegment" >> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusDelivered"/> >>>> - <check-errors/> >>>> - >>>> - <entity-one entity-name="ShipmentRouteSegment" >>> value-field="lookedUpValue"/> >>>> - <set-nonpk-fields map="parameters" >> value-field="lookedUpValue"/> >>>> - >>>> - <if-empty field="newEntity.carrierServiceStatusId"> >>>> - <set value="SHRSCS_NOT_STARTED" >>> field="newEntity.carrierServiceStatusId"/> >>>> - </if-empty> >>>> - >>>> - >>>> - <set from-field="userLogin.userLoginId" >>> field="lookedUpValue.updatedByUserLoginId"/> >>>> - <now-timestamp field="lookedUpValue.lastUpdatedDate"/> >>>> - <store-value value-field="lookedUpValue"/> >>>> - >>>> - <set from-field="lookedUpValue.shipmentId" >> field="shipmentId"/> >>>> - <set from-field="lookedUpValue.shipmentRouteSegmentId" >>> field="shipmentRouteSegmentId"/> >>>> - <call-simple-method method-name="ensureRouteSegPackage"/> >>>> - </simple-method> >>>> - <simple-method method-name="deleteShipmentRouteSegment" >>> short-description="Delete ShipmentRouteSegment"> >>>> - <set value="Delete ShipmentRouteSegment" >> field="operationName"/> >>>> - <call-simple-method >>> method-name="checkCanChangeShipmentStatusPacked"/> >>>> - <check-errors/> >>>> - >>>> - <entity-one entity-name="ShipmentRouteSegment" >>> value-field="lookedUpValue"/> >>>> - <remove-value value-field="lookedUpValue"/> >>>> - </simple-method> >>>> <simple-method method-name="ensureRouteSegPackage" >>> short-description="Ensure ShipmentPackageRouteSeg exists for all Packages >>> for this RouteSegment"> >>>> + <entity-one entity-name="ShipmentRouteSegment" >>> value-field="shipmentRouteSegment" use-cache="true"/> >>>> <entity-and entity-name="ShipmentPackage" >>> list="shipmentPackages"> >>>> - <field-map field-name="shipmentId" >> from-field="shipmentId"/> >>>> + <field-map field-name="shipmentId" >>> from-field="shipmentRouteSegment.shipmentId"/> >>>> </entity-and> >>>> <iterate list="shipmentPackages" entry="shipmentPackage"> >>>> <entity-one entity-name="ShipmentPackageRouteSeg" >>> value-field="checkShipmentPackageRouteSeg" auto-field-map="false"> >>>> - <field-map field-name="shipmentId" >>> from-field="shipmentId"/> >>>> - <field-map field-name="shipmentRouteSegmentId" >>> from-field="shipmentRouteSegmentId"/> >>>> + <field-map field-name="shipmentId" >>> from-field="shipmentRouteSegment.shipmentId"/> >>>> + <field-map field-name="shipmentRouteSegmentId" >>> from-field="shipmentRouteSegment.shipmentRouteSegmentId"/> >>>> <field-map field-name="shipmentPackageSeqId" >>> from-field="shipmentPackage.shipmentPackageSeqId"/> >>>> </entity-one> >>>> <if-empty field="checkShipmentPackageRouteSeg"> >>>> @@ -1194,7 +1030,17 @@ under the License. >>>> <call-simple-method >>> method-name="checkCanChangeShipmentStatusGeneral"/> >>>> </simple-method> >>>> <simple-method method-name="checkCanChangeShipmentStatusGeneral" >>> short-description="Check the Status of a Shipment to see if it can be >>> changed - meant to be called in-line"> >>>> - <entity-one entity-name="Shipment" >> value-field="testShipment"/> >>>> + <if-empty field="parameters.mainAction"> >>>> + <set field="parameters.mainAction" value="UPDATE"/> >>>> + </if-empty> >>>> + <set-service-fields service-name="facilityGenericPermission" >>> to-map="facilityGenericPermissionMap" map="parameters"/> >>>> + <call-service service-name="facilityGenericPermission" >>> in-map-name="facilityGenericPermissionMap"> >>>> + <result-to-field field="hasPermission" >>> result-name="hasPermission"/> >>>> + </call-service> >>>> + <check-errors/> >>>> + >>>> + <entity-one entity-name="Shipment" value-field="testShipment" >>> use-cache="true"/> >>>> + <set field="fromStatusId" from-field="fromStatusId" >>> default-value="${parameters.fromStatusId}"/> >>>> <if> >>>> <condition> >>>> <or> >>>> @@ -1225,9 +1071,12 @@ under the License. >>>> </condition> >>>> <then> >>>> <get-related-one relation-name="StatusItem" >>> value-field="testShipment" to-value-field="testShipmentStatus"/> >>>> - <string-to-list string="Cannot perform operation >>> ${operationName} when the shipment is in the >>> ${testShipmentStatus.description} [${testShipment.statusId}] status." >>> list="error_list"/> >>>> + <property-to-field resource="ProductErrorUiLabels" >>> property="ShipmentCanChangeStatusPermissionError" field="failMessage"/> >>>> + <set field="hasPermission" type="Boolean" >>> value="false"/> >>>> + <field-to-result field="failMessage"/> >>>> </then> >>>> </if> >>>> + <field-to-result field="hasPermission"/> >>>> </simple-method> >>>> >>>> <!-- quick ship entire order in one package per facility & ship >>> group --> >>>> @@ -1987,23 +1836,5 @@ under the License. >>>> <call-service >>> service-name="cancelOrderItemIssuanceFromSalesShipment" >>> in-map-name="inputMap"/> >>>> </iterate> >>>> </simple-method> >>>> - >>>> - <!-- QuantityBreak services --> >>>> - <!-- create a new QuantityBreak --> >>>> - <simple-method method-name="createQuantityBreak" >>> short-description="Create a QuoteAttribute"> >>>> - <make-value entity-name="QuantityBreak" >>> value-field="quantityBreak"/> >>>> - <set-nonpk-fields map="parameters" >> value-field="quantityBreak"/> >>>> - <sequenced-id sequence-name="QuantityBreak" >>> field="quantityBreak.quantityBreakId"/> >>>> - <create-value value-field="quantityBreak"/> >>>> - <check-errors/> >>>> - </simple-method> >>>> - >>>> - <!-- remove an existing QuantityBreak --> >>>> - <simple-method method-name="deleteQuantityBreak" >>> short-description="Remove an existing QuantityBreak"> >>>> - <entity-one entity-name="QuantityBreak" >>> value-field="quantityBreak" auto-field-map="true"/> >>>> - <check-errors/> >>>> - <remove-value value-field="quantityBreak"/> >>>> - <check-errors/> >>>> - </simple-method> >>>> </simple-methods> >>>> >>>> >>>> Modified: >> ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml >>>> URL: >> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml?rev=1866286&r1=1866285&r2=1866286&view=diff >> ============================================================================== >>>> --- >> ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml >>> (original) >>>> +++ >> ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml >>> Mon Sep 2 15:13:47 2019 >>>> @@ -151,6 +151,13 @@ under the License. >>>> <action service="updatePurchaseShipmentFromReceipt" >>> mode="sync"/> >>>> </eca> >>>> >>>> + <eca service="createShipmentRouteSegment" event="commit"> >>>> + <action service="ensureRouteSegPackage" mode="sync"/> >>>> + </eca> >>>> + <eca service="updateShipmentRouteSegment" event="commit"> >>>> + <action service="ensureRouteSegPackage" mode="sync"/> >>>> + </eca> >>>> + >>>> <eca service="createShipmentPackageContent" event="in-validate"> >>>> <condition field-name="shipmentPackageSeqId" >> operator="equals" >>> value="New"/> >>>> <action service="createShipmentPackage" mode="sync"/> >>>> >>>> Modified: >> ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml >>>> URL: >> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml?rev=1866286&r1=1866285&r2=1866286&view=diff >> ============================================================================== >>>> --- >> ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml >>> (original) >>>> +++ >> ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml >>> Mon Sep 2 15:13:47 2019 >>>> @@ -136,7 +136,7 @@ under the License. >>>> <service name="updateShipment" default-entity-name="Shipment" >>> engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="updateShipment" auth="true"> >>>> <description>Update Shipment</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="UPDATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusDelivered" >> main-action="UPDATE"/> >>>> <auto-attributes include="pk" mode="INOUT" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"> >>>> <exclude field-name="shipmentTypeId"/> >>>> @@ -152,10 +152,9 @@ under the License. >>>> <attribute name="oldOriginFacilityId" type="String" >> mode="OUT" >>> optional="true"/> >>>> <attribute name="oldDestinationFacilityId" type="String" >>> mode="OUT" optional="true"/> >>>> </service> >>>> - <service name="deleteShipment" default-entity-name="Shipment" >>> engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="deleteShipment" auth="true"> >>>> + <service name="deleteShipment" default-entity-name="Shipment" >>> engine="entity-auto" invoke="delete" auth="true"> >>>> <description>Delete Shipment</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="DELETE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> </service> >>>> <service name="createShipmentStatus" >>> default-entity-name="ShipmentStatus" engine="entity-auto" invoke="create" >>> auth="true"> >>>> @@ -167,19 +166,13 @@ under the License. >>>> <service name="setShipmentSettingsFromPrimaryOrder" >> engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="setShipmentSettingsFromPrimaryOrder" auth="true"> >>>> <description>Set Shipment Settings From Primary >>> Order</description> >>>> - <required-permissions join-type="AND"> >>>> - <permission-service >>> service-name="facilityGenericPermission" main-action="CREATE"/> >>>> - <permission-service >>> service-name="facilityGenericPermission" main-action="UPDATE"/> >>>> - </required-permissions> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> >>>> <attribute name="shipmentId" type="String" mode="IN" >>> optional="false"/> >>>> </service> >>>> <service name="setShipmentSettingsFromFacilities" engine="simple" >>>> >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="setShipmentSettingsFromFacilities" auth="true"> >>>> <description>Set Shipment Settings From >>> Facilities</description> >>>> - <required-permissions join-type="AND"> >>>> - <permission-service >>> service-name="facilityGenericPermission" main-action="CREATE"/> >>>> - <permission-service >>> service-name="facilityGenericPermission" main-action="UPDATE"/> >>>> - </required-permissions> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> >>>> <attribute name="shipmentId" type="String" mode="IN" >>> optional="false"/> >>>> </service> >>>> <service name="sendShipmentScheduledNotification" engine="simple" >>>> @@ -220,25 +213,22 @@ under the License. >>>> </service> >>>> >>>> <!-- ShipmentItem Services --> >>>> - <service name="createShipmentItem" >>> default-entity-name="ShipmentItem" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="createShipmentItem" auth="true"> >>>> + <service name="createShipmentItem" >>> default-entity-name="ShipmentItem" engine="entity-auto" invoke="create" >>> auth="true"> >>>> <description>Create ShipmentItem</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="CREATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"/> >>>> <override name="shipmentItemSeqId" mode="INOUT" >>> optional="true"/> >>>> </service> >>>> - <service name="updateShipmentItem" >>> default-entity-name="ShipmentItem" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="updateShipmentItem" auth="true"> >>>> + <service name="updateShipmentItem" >>> default-entity-name="ShipmentItem" engine="entity-auto" invoke="update" >>> auth="true"> >>>> <description>Update ShipmentItem</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="UPDATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusDelivered" >> main-action="UPDATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"/> >>>> </service> >>>> - <service name="deleteShipmentItem" >>> default-entity-name="ShipmentItem" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="deleteShipmentItem" auth="true"> >>>> + <service name="deleteShipmentItem" >>> default-entity-name="ShipmentItem" engine="entity-auto" invoke="delete" >>> auth="true"> >>>> <description>Delete ShipmentItem</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="DELETE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> </service> >>>> >>>> @@ -256,7 +246,7 @@ under the License. >>>> <service name="createShipmentPackage" >>> default-entity-name="ShipmentPackage" engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="createShipmentPackage" auth="true"> >>>> <description>Create ShipmentPackage</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="CREATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"> >>>> <exclude field-name="dateCreated"/> >>>> @@ -266,43 +256,40 @@ under the License. >>>> <service name="updateShipmentPackage" >>> default-entity-name="ShipmentPackage" engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="updateShipmentPackage" auth="true"> >>>> <description>Update ShipmentPackage</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="UPDATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"/> >>>> </service> >>>> <service name="deleteShipmentPackage" >>> default-entity-name="ShipmentPackage" engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="deleteShipmentPackage" auth="true"> >>>> <description>Delete ShipmentPackage</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="DELETE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> </service> >>>> >>>> <!-- ShipmentPackageContent Services --> >>>> - <service name="createShipmentPackageContent" >>> default-entity-name="ShipmentPackageContent" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="createShipmentPackageContent" auth="true"> >>>> + <service name="createShipmentPackageContent" >>> default-entity-name="ShipmentPackageContent" engine="entity-auto" >>> invoke="create" auth="true"> >>>> <description>Create ShipmentPackageContent</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="CREATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"/> >>>> <override name="shipmentPackageSeqId" mode="INOUT" >>> optional="false"/> >>>> </service> >>>> - <service name="updateShipmentPackageContent" >>> default-entity-name="ShipmentPackageContent" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="updateShipmentPackageContent" auth="true"> >>>> + <service name="updateShipmentPackageContent" >>> default-entity-name="ShipmentPackageContent" engine="entity-auto" >>> invoke="update" auth="true"> >>>> <description>Update ShipmentPackageContent</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="UPDATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"/> >>>> </service> >>>> - <service name="deleteShipmentPackageContent" >>> default-entity-name="ShipmentPackageContent" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="deleteShipmentPackageContent" auth="true"> >>>> + <service name="deleteShipmentPackageContent" >>> default-entity-name="ShipmentPackageContent" engine="entity-auto" >>> invoke="delete" auth="true"> >>>> <description>Delete ShipmentPackageContent</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="DELETE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> </service> >>>> <service name="addShipmentContentToPackage" >>> default-entity-name="ShipmentPackageContent" engine="simple" >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="addShipmentContentToPackage" auth="true"> >>>> <description>Add Shipment Content To Package</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="CREATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"/> >>>> <override name="quantity" mode="IN" optional="false"/> >>>> @@ -310,23 +297,21 @@ under the License. >>>> </service> >>>> >>>> <!-- ShipmentPackageRouteSeg Services --> >>>> - <service name="createShipmentPackageRouteSeg" >>> default-entity-name="ShipmentPackageRouteSeg" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="createShipmentPackageRouteSeg" auth="true"> >>>> + <service name="createShipmentPackageRouteSeg" >>> default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" >>> invoke="create" auth="true"> >>>> <description>Create ShipmentPackageRouteSeg</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="CREATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"/> >>>> </service> >>>> <service name="updateShipmentPackageRouteSeg" >>> default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" >>> invoke="update" auth="true"> >>>> <description>Update ShipmentPackageRouteSeg</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="UPDATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusDelivered" >> main-action="UPDATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"/> >>>> </service> >>>> - <service name="deleteShipmentPackageRouteSeg" >>> default-entity-name="ShipmentPackageRouteSeg" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="deleteShipmentPackageRouteSeg" auth="true"> >>>> + <service name="deleteShipmentPackageRouteSeg" >>> default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" >>> invoke="delete" auth="true"> >>>> <description>Delete ShipmentPackageRouteSeg</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="DELETE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> </service> >>>> >>>> @@ -350,25 +335,23 @@ under the License. >>>> </service> >>>> >>>> <!-- ShipmentRouteSegment Services --> >>>> - <service name="createShipmentRouteSegment" >>> default-entity-name="ShipmentRouteSegment" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="createShipmentRouteSegment" auth="true"> >>>> + <service name="createShipmentRouteSegment" >>> default-entity-name="ShipmentRouteSegment" engine="entity-auto" >>> invoke="create" auth="true"> >>>> <description>Create ShipmentRouteSegment</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="CREATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"/> >>>> <override name="shipmentRouteSegmentId" mode="INOUT" >>> optional="true"/> >>>> </service> >>>> - <service name="updateShipmentRouteSegment" >>> default-entity-name="ShipmentRouteSegment" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="updateShipmentRouteSegment" auth="true"> >>>> + <service name="updateShipmentRouteSegment" >>> default-entity-name="ShipmentRouteSegment" engine="entity-auto" >>> invoke="update" auth="true"> >>>> <description>Update ShipmentRouteSegment</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="UPDATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"/> >>>> + <override name="carrierServiceStatusId" >>> default-value="SHRSCS_NOT_STARTED"/> >>>> </service> >>>> - <service name="deleteShipmentRouteSegment" >>> default-entity-name="ShipmentRouteSegment" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="deleteShipmentRouteSegment" auth="true"> >>>> + <service name="deleteShipmentRouteSegment" >>> default-entity-name="ShipmentRouteSegment" engine="entity-auto" >>> invoke="delete" auth="true"> >>>> <description>Delete ShipmentRouteSegment</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="DELETE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> </service> >>>> <service name="duplicateShipmentRouteSegment" >>> default-entity-name="ShipmentRouteSegment" engine="java" >>>> @@ -386,44 +369,46 @@ under the License. >>>> </description> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> </service> >>>> + <service name="ensureRouteSegPackage" >>> default-entity-name="ShipmentRouteSegment" engine="simple" >>>> + >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="ensureRouteSegPackage" auth="true"> >>>> + <description>Ensure ShipmentPackageRouteSeg exists for all >>> Packages for this RouteSegment</description> >>>> + <permission-service service-name="facilityGenericPermission" >>> main-action="CREATE"/> >>>> + <auto-attributes include="pk" mode="IN" optional="false"/> >>>> + </service> >>>> >>>> <!-- >>> ============================================================== --> >>>> <!-- ItemIssuance Services --> >>>> <service name="createItemIssuance" >>> default-entity-name="ItemIssuance" engine="simple" >> location="component://product/minilang/shipment/issuance/IssuanceServices.xml" >>> invoke="createItemIssuance" auth="true"> >>>> <description>Create ItemIssuance</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="CREATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >>>> <auto-attributes include="pk" mode="OUT" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"/> >>>> <attribute name="affectAccounting" type="Boolean" mode="OUT" >>> optional="true"/> >>>> </service> >>>> - <service name="updateItemIssuance" >>> default-entity-name="ItemIssuance" engine="simple" >>>> - >> location="component://product/minilang/shipment/issuance/IssuanceServices.xml" >>> invoke="updateItemIssuance" auth="true"> >>>> + <service name="updateItemIssuance" >>> default-entity-name="ItemIssuance" engine="entity-auto" invoke="update" >>> auth="true"> >>>> <description>Update ItemIssuance</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="UPDATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="UPDATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <auto-attributes include="nonpk" mode="IN" optional="true"/> >>>> </service> >>>> - <service name="deleteItemIssuance" >>> default-entity-name="ItemIssuance" engine="simple" >>>> - >> location="component://product/minilang/shipment/issuance/IssuanceServices.xml" >>> invoke="deleteItemIssuance" auth="true"> >>>> + <service name="deleteItemIssuance" >>> default-entity-name="ItemIssuance" engine="entity-auto" invoke="delete" >>> auth="true"> >>>> <description>Delete ItemIssuance</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="DELETE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> </service> >>>> >>>> <!-- ItemIssuanceRole Services --> >>>> - <service name="createItemIssuanceRole" >>> default-entity-name="ItemIssuanceRole" engine="simple" >>>> - >> location="component://product/minilang/shipment/issuance/IssuanceServices.xml" >>> invoke="createItemIssuanceRole" auth="true"> >>>> + <service name="createItemIssuanceRole" >>> default-entity-name="ItemIssuanceRole" engine="entity-auto" >> invoke="create" >>> auth="true"> >>>> <description>Create ItemIssuanceRole</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="CREATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <!-- Will check if OK to change status of shipment, so >>> Shipment PK is needed --> >>>> <auto-attributes entity-name="Shipment" include="pk" >> mode="IN" >>> optional="false"/> >>>> </service> >>>> - <service name="deleteItemIssuanceRole" >>> default-entity-name="ItemIssuanceRole" engine="simple" >>>> - >> location="component://product/minilang/shipment/issuance/IssuanceServices.xml" >>> invoke="deleteItemIssuanceRole" auth="true"> >>>> + <service name="deleteItemIssuanceRole" >>> default-entity-name="ItemIssuanceRole" engine="entity-auto" >> invoke="delete" >>> auth="true"> >>>> <description>Delete ItemIssuanceRole</description> >>>> - <permission-service service-name="facilityGenericPermission" >>> main-action="DELETE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="DELETE"/> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> <!-- Will check if OK to change status of shipment, so >>> Shipment PK is needed --> >>>> <auto-attributes entity-name="Shipment" include="pk" >> mode="IN" >>> optional="false"/> >>>> @@ -433,7 +418,7 @@ under the License. >>>> >> location="component://product/minilang/shipment/issuance/IssuanceServices.xml" >>> invoke="issueOrderItemToShipment" auth="true"> >>>> <description>Issue an OrderItem to a Shipment - only for >>> non-sales orders</description> >>>> <required-permissions join-type="AND"> >>>> - <permission-service >>> service-name="facilityGenericPermission" main-action="CREATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >>>> <permission-service >>> service-name="facilityGenericPermission" main-action="UPDATE"/> >>>> </required-permissions> >>>> <auto-attributes entity-name="Shipment" include="pk" >> mode="IN" >>> optional="false"/> >>>> @@ -445,7 +430,7 @@ under the License. >>>> >> location="component://product/minilang/shipment/issuance/IssuanceServices.xml" >>> invoke="issueOrderItemShipGrpInvResToShipment" auth="true"> >>>> <description>Add an OrderItemShipGrpInvRes to a Shipment - >>> only for sales orders</description> >>>> <required-permissions join-type="AND"> >>>> - <permission-service >>> service-name="facilityGenericPermission" main-action="CREATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >>>> <permission-service >>> service-name="facilityGenericPermission" main-action="UPDATE"/> >>>> </required-permissions> >>>> <auto-attributes entity-name="Shipment" include="pk" >> mode="IN" >>> optional="false"/> >>>> @@ -775,7 +760,7 @@ under the License. >>>> >> location="component://product/minilang/shipment/receipt/ShipmentReceiptServices.xml" >>> invoke="issueOrderItemToShipmentAndReceiveAgainstPO" auth="true"> >>>> <description>Issues order item quantity specified to the >>> shipment, then receives inventory for that item and >> quantity</description> >>>> <required-permissions join-type="AND"> >>>> - <permission-service >>> service-name="facilityGenericPermission" main-action="CREATE"/> >>>> + <permission-service >>> service-name="checkCanChangeShipmentStatusPacked" main-action="CREATE"/> >>>> <permission-service >>> service-name="facilityGenericPermission" main-action="UPDATE"/> >>>> </required-permissions> >>>> <implements service="issueOrderItemToShipment"/> >>>> @@ -888,11 +873,11 @@ under the License. >>>> </service> >>>> >>>> <!-- QuantityBreak services --> >>>> - <service name="createQuantityBreak" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="createQuantityBreak" auth="true"> >>>> + <service name="createQuantityBreak" >>> default-entity-name="QuantityBreak" engine="entity-auto" invoke="create" >>> auth="true"> >>>> <description>Create a QuantityBreak</description> >>>> <permission-service service-name="facilityGenericPermission" >>> main-action="CREATE"/> >>>> <auto-attributes entity-name="QuantityBreak" include="nonpk" >>> mode="IN" optional="true"/> >>>> + <auto-attributes entity-name="QuantityBreak" include="pk" >>> mode="OUT" optional="false"/> >>>> </service> >>>> <service name="updateQuantityBreak" engine="entity-auto" >>> invoke="update" default-entity-name="QuantityBreak" auth="true"> >>>> <description>Update a QuantityBreak</description> >>>> @@ -900,8 +885,7 @@ under the License. >>>> <auto-attributes entity-name="QuantityBreak" include="pk" >>> mode="IN" optional="false"/> >>>> <auto-attributes entity-name="QuantityBreak" include="nonpk" >>> mode="IN" optional="true"/> >>>> </service> >>>> - <service name="deleteQuantityBreak" engine="simple" >>>> - >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="deleteQuantityBreak" auth="true"> >>>> + <service name="deleteQuantityBreak" >>> default-entity-name="QuantityBreak" engine="entity-auto" invoke="delete" >>> auth="true"> >>>> <description>Delete a QuantityBreak</description> >>>> <permission-service service-name="facilityGenericPermission" >>> main-action="DELETE"/> >>>> <auto-attributes entity-name="QuantityBreak" include="pk" >>> mode="IN" optional="false"/> >>>> @@ -1161,4 +1145,27 @@ under the License. >>>> <description>Delete a ShipmentItemBilling</description> >>>> <auto-attributes include="pk" mode="IN" optional="false"/> >>>> </service> >>>> + >>>> + <!-- Permission Services --> >>>> + <service name="checkCanChangeShipmentStatusPacked" engine="simple" >>>> + >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="checkCanChangeShipmentStatusPacked"> >>>> + <description>Check the Status of a Shipment to see if it can >> be >>> changed for an operation relative to the packed state</description> >>>> + <!-- Info : permission-service >>> service-name="facilityGenericPermission" --> >>>> + <implements service="permissionInterface"/> >>>> + <attribute name="shipmentId" type="String" mode="IN" >>> optional="true"/> >>>> + </service> >>>> + <service name="checkCanChangeShipmentStatusShipped" >> engine="simple" >>>> + >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="checkCanChangeShipmentStatusShipped"> >>>> + <description>Check the Status of a Shipment to see if it can >> be >>> changed for an operation relative to the shipped state</description> >>>> + <!-- Info : permission-service >>> service-name="facilityGenericPermission" --> >>>> + <implements service="permissionInterface"/> >>>> + <attribute name="shipmentId" type="String" mode="IN" >>> optional="true"/> >>>> + </service> >>>> + <service name="checkCanChangeShipmentStatusDelivered" >>> engine="simple" >>>> + >> location="component://product/minilang/shipment/shipment/ShipmentServices.xml" >>> invoke="checkCanChangeShipmentStatusDelivered"> >>>> + <description>Check the Status of a Shipment to see if it can >> be >>> changed for an operation relative to the delivered state</description> >>>> + <!-- Info : permission-service >>> service-name="facilityGenericPermission" --> >>>> + <implements service="permissionInterface"/> >>>> + <attribute name="shipmentId" type="String" mode="IN" >>> optional="true"/> >>>> + </service> >>>> </services> >>>> >>>> >>>> |
Thanks a lot Nicolas for your contribution.
Cheers !! -- Best Regards, Suraj Khurana Technical Consultant HotWax Systems On Tue, Sep 3, 2019 at 8:15 PM Nicolas Malin <[hidden email]> wrote: > -_-' ... > > Suraj, you blur my sunny day, but it's a good motivation to finish it ;) > > I worked on this last forgot issue [1], and it's hard part ! But I > finalized it and I updated it with 3 dependencies [2] that contains > framework improvements. > > If some people have some time to spend, it's would be nice if we can > close this subject this week :) > > Cheers, > > Nicolas > > [1] https://issues.apache.org/jira/browse/OFBIZ-10636 > [2] https://issues.apache.org/jira/browse/OFBIZ-11180 > https://issues.apache.org/jira/browse/OFBIZ-11182 > https://issues.apache.org/jira/browse/OFBIZ-11183 > > On 9/3/19 8:29 AM, Suraj Khurana wrote: > > Hello folks, > > > > I checked and we have only one ticket remaining in this parent > > <https://issues.apache.org/jira/browse/OFBIZ-8408> ticket. > > Also, I converted OFBIZ-6996 into a child of OFBIZ-8408. > > > > Cheers, > > -- > > Best Regards, > > Suraj Khurana > > Technical Consultant > > HotWax Systems > > > > > > > > > > > > > > > > On Mon, Sep 2, 2019 at 10:39 PM Swapnil M Mane <[hidden email]> > > wrote: > > > >> Great, thanks so much Nicolas! > >> > >> > >> Best regards, > >> Swapnil M Mane, > >> ofbiz.apache.org > >> > >> > >> > >> On Mon, Sep 2, 2019 at 8:54 PM Nicolas Malin <[hidden email]> > >> wrote: > >> > >>> Hi all, > >>> > >>> With this last commit, I think we finish the conversion for CRUD in > >>> mini-lang to entity-auto :) > >>> > >>> \o/ > >>> > >>> Now next step mini-lang to groovy ! > >>> > >>> Cheers, > >>> > >>> Nicolas > >>> > >>> On 9/2/19 5:13 PM, [hidden email] wrote: > >>>> Author: nmalin > >>>> Date: Mon Sep 2 15:13:47 2019 > >>>> New Revision: 1866286 > >>>> > >>>> URL: http://svn.apache.org/viewvc?rev=1866286&view=rev > >>>> Log: > >>>> Improved: Convert Shipment Crud simple service to entity-auto > >>>> (OFBIZ-6996) > >>>> I converted all available shipment entities crud currently on simple > >>> service to entity-auto service : > >>>> * ItemIssuanceRole > >>>> * ShipmentItem > >>>> * ShipmentPackageContent > >>>> * ShipmentPackageRouteSeg > >>>> * ShipmentRouteSegment > >>>> * QuantityBreak > >>>> > >>>> I also transformed a simple method call to a permission service: > >>> checkCanChangeShipmentStatus, who check for a shipment is it on good > >> status > >>> for the change. > >>>> With this last conversion, the permission control set on the service > >>> definition instead of core service > >>>> Modified: > >>>> > >> > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > >> > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > >> > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > >> > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > >> > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > >> > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > >>>> Modified: > >> > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > >>>> URL: > >> > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > >> > ============================================================================== > >>>> --- > >> > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > >>> (original) > >>>> +++ > >> > ofbiz/ofbiz-framework/trunk/applications/product/config/ProductErrorUiLabels.xml > >>> Mon Sep 2 15:13:47 2019 > >>>> @@ -1489,6 +1489,10 @@ > >>>> <value xml:lang="zh">åˆ›å»ºå¿«é€Ÿæ·»åŠ å ˜åž‹æ•°æ ®æ—¶å > >>> ‘生交易错误:${errMessage}。</value> > >>>> <value > >>> xml:lang="zh-TW">æ–°å»ºå¿«é€Ÿå¢žåŠ è®Šåž‹è³‡æ–™æ™‚ç™¼ç”Ÿäº¤æ˜“éŒ¯èª¤: > >>> ${errMessage}.</value> > >>>> </property> > >>>> + <property key="ShipmentCanChangeStatusPermissionError"> > >>>> + <value xml:lang="en">Cannot perform this operation when the > >>> shipment [${testShipment.shipmentId}] is in the > >>> ${testShipmentStatus.description} [${testShipment.statusId}] > >>> status."</value> > >>>> + <value xml:lang="fr">Impossible de réaliser l'opération > >>> demandée quand l'expédition [${testShipment.shipmentId}] est dans le > >>> statut ${testShipmentStatus.description} > >> [${testShipment.statusId}]</value> > >>>> + </property> > >>>> <property > >>> key="variantevents.variantProductId_required_but_missing_enter_an_id"> > >>>> <value xml:lang="de">variantProductId wir benötigt, fehlt > >>> aber, bitte geben Sie eine ID für die neue Produktvariante an.</value> > >>>> <value xml:lang="en">variantProductId is required but > >> missing, > >>> please enter an id for the new variant product.</value> > >>>> Modified: > >> > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > >>>> URL: > >> > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > >> > ============================================================================== > >>>> --- > >> > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > >>> (original) > >>>> +++ > >> > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/issuance/IssuanceServices.xml > >>> Mon Sep 2 15:13:47 2019 > >>>> @@ -22,10 +22,6 @@ under the License. > >>>> xmlns="http://ofbiz.apache.org/Simple-Method" > >>> xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method > >>> http://ofbiz.apache.org/dtds/simple-methods.xsd"> > >>>> <!-- ItemIssuance services --> > >>>> <simple-method method-name="createItemIssuance" > >>> short-description="Create ItemIssuance"> > >>>> - <set value="Create ItemIssuance" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked" > >>> > >> > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > >>>> - <check-errors/> > >>>> - > >>>> <make-value entity-name="ItemIssuance" > >>> value-field="newEntity"/> > >>>> <sequenced-id sequence-name="ItemIssuance" > >>> field="newEntity.itemIssuanceId"/> > >>>> <field-to-result field="newEntity.itemIssuanceId" > >>> result-name="itemIssuanceId"/> > >>>> @@ -64,48 +60,9 @@ under the License. > >>>> </if-not-empty> > >>>> <field-to-result field="affectAccounting" > >>> result-name="affectAccounting"/> > >>>> </simple-method> > >>>> - <simple-method method-name="updateItemIssuance" > >>> short-description="Update ItemIssuance"> > >>>> - <set value="Update ItemIssuance" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked" > >>> > >> > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > >>>> - <check-errors/> > >>>> - > >>>> - <entity-one entity-name="ItemIssuance" > >>> value-field="lookedUpValue"/> > >>>> - <set-nonpk-fields map="parameters" > >> value-field="lookedUpValue"/> > >>>> - <store-value value-field="lookedUpValue"/> > >>>> - </simple-method> > >>>> - <simple-method method-name="deleteItemIssuance" > >>> short-description="Delete ItemIssuance"> > >>>> - <set value="Delete ItemIssuance" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked" > >>> > >> > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > >>>> - <check-errors/> > >>>> - > >>>> - <entity-one entity-name="ItemIssuance" > >>> value-field="lookedUpValue"/> > >>>> - <remove-value value-field="lookedUpValue"/> > >>>> - </simple-method> > >>>> - > >>>> - <!-- ItemIssuanceRole services --> > >>>> - <simple-method method-name="createItemIssuanceRole" > >>> short-description="Create ItemIssuanceRole"> > >>>> - <set value="Create ItemIssuanceRole" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked" > >>> > >> > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > >>>> - <check-errors/> > >>>> - <make-value entity-name="ItemIssuanceRole" > >>> value-field="newEntity"/> > >>>> - <set-pk-fields map="parameters" value-field="newEntity"/> > >>>> - <set-nonpk-fields map="parameters" value-field="newEntity"/> > >>>> - <create-value value-field="newEntity"/> > >>>> - </simple-method> > >>>> - > >>>> - <simple-method method-name="deleteItemIssuanceRole" > >>> short-description="Delete ItemIssuanceRole"> > >>>> - <set value="Delete ItemIssuanceRole" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked" > >>> > >> > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > >>>> - <check-errors/> > >>>> - <entity-one entity-name="ItemIssuanceRole" > >>> value-field="lookedUpValue"/> > >>>> - <remove-value value-field="lookedUpValue"/> > >>>> - </simple-method> > >>>> > >>>> <!-- the actual issuance services --> > >>>> <simple-method method-name="issueOrderItemToShipment" > >>> short-description="Issue OrderItem to Shipment"> > >>>> - <set value="Issue OrderItem to Shipment" > >> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked" > >>> > >> > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > >>>> - <check-errors/> > >>>> > >>>> <!-- get orderHeader --> > >>>> <entity-one entity-name="OrderHeader" > >>> value-field="orderHeader" auto-field-map="true"/> > >>>> @@ -132,9 +89,6 @@ under the License. > >>>> </simple-method> > >>>> > >>>> <simple-method > >> method-name="issueOrderItemShipGrpInvResToShipment" > >>> short-description="Issue OrderItemShipGrpInvRes to Shipment"> > >>>> - <set value="Issue OrderItemShipGrpInvRes to Shipment" > >>> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked" > >>> > >> > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > >>>> - <check-errors/> > >>>> > >>>> <!-- get orderItemShipGrpInvRes --> > >>>> <make-value entity-name="OrderItemShipGrpInvRes" > >>> value-field="OrderItemShipGrpInvResLookupPk"/> > >>>> @@ -464,7 +418,7 @@ under the License. > >>>> <field-to-result field="itemIssuanceId"/> > >>>> </simple-method> > >>>> <simple-method method-name="associateIssueRoles" > >>> short-description="Associate Roles for ItemIssuance - meant to be > called > >>> in-line"> > >>>> - <!-- make sure the party is in the PACKER role --> > >>>> + <!-- make sure the party is in the PACKER role TODO need to > >>> replace by ensurePartyRole--> > >>>> <make-value entity-name="PartyRole" > value-field="partyRole"/> > >>>> <set field="partyRole.partyId" > >> from-field="userLogin.partyId"/> > >>>> <set field="partyRole.roleTypeId" value="PACKER"/> > >>>> @@ -565,8 +519,9 @@ under the License. > >>>> <!-- issuance can be canceled only if the sales shipment is > >>> not packed --> > >>>> <if-compare field="shipment.statusId" operator="not-equals" > >>> value="SHIPMENT_CANCELLED"> > >>>> - <set from-field="itemIssuance.shipmentId" > >>> field="shipmentId"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked" > >>> > >> > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > >>>> + <set from-field="itemIssuance.shipmentId" > >>> field="checkCanChangeShipmentStatusPackedMap.shipmentId"/> > >>>> + <set value="UPDATE" > >>> field="checkCanChangeShipmentStatusPackedMap.mainAction"/> > >>>> + <call-service > >>> service-name="checkCanChangeShipmentStatusPacked" > >>> in-map-name="checkCanChangeShipmentStatusPackedMap" /> > >>>> <check-errors/> > >>>> </if-compare> > >>>> > >>>> > >>>> Modified: > >> > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > >>>> URL: > >> > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > >> > ============================================================================== > >>>> --- > >> > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > >>> (original) > >>>> +++ > >> > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/receipt/ShipmentReceiptServices.xml > >>> Mon Sep 2 15:13:47 2019 > >>>> @@ -361,9 +361,6 @@ under the License. > >>>> </simple-method> > >>>> > >>>> <simple-method > >>> method-name="issueOrderItemToShipmentAndReceiveAgainstPO" > >>> short-description="Issues order item quantity specified to the > shipment, > >>> then receives inventory for that item and quantity"> > >>>> - <set value="Issue OrderItem to Shipment and Receive against > >> PO" > >>> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked" > >>> > >> > xml-resource="component://product/minilang/shipment/shipment/ShipmentServices.xml"/> > >>>> - <check-errors/> > >>>> > >>>> <!-- get orderItem --> > >>>> <entity-one entity-name="OrderItem" value-field="orderItem" > >>> auto-field-map="true"/> > >>>> Modified: > >> > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > >>>> URL: > >> > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > >> > ============================================================================== > >>>> --- > >> > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > >>> (original) > >>>> +++ > >> > ofbiz/ofbiz-framework/trunk/applications/product/minilang/shipment/shipment/ShipmentServices.xml > >>> Mon Sep 2 15:13:47 2019 > >>>> @@ -112,9 +112,6 @@ under the License. > >>>> </simple-method> > >>>> > >>>> <simple-method method-name="updateShipment" > >>> short-description="Update Shipment"> > >>>> - <set value="Update Shipment" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusDelivered"/> > >>>> - <check-errors/> > >>>> > >>>> <make-value entity-name="Shipment" > >> value-field="lookupPKMap"/> > >>>> <set-pk-fields map="parameters" value-field="lookupPKMap"/> > >>>> @@ -283,14 +280,6 @@ under the License. > >>>> <store-value value-field="lookedUpValue"/> > >>>> </simple-method> > >>>> > >>>> - <simple-method method-name="deleteShipment" > >>> short-description="Delete Shipment"> > >>>> - <set value="Delete Shipment" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - <entity-one entity-name="Shipment" > >> value-field="lookedUpValue"/> > >>>> - <remove-value value-field="lookedUpValue"/> > >>>> - </simple-method> > >>>> - > >>>> <simple-method method-name="createShipmentForReturn" > >>> short-description="Create Shipment based on ReturnHeader"> > >>>> <entity-one entity-name="ReturnHeader" > >>> value-field="returnHeader"> > >>>> <field-map field-name="returnId" > >>> from-field="parameters.returnId"/> > >>>> @@ -428,10 +417,6 @@ under the License. > >>>> </simple-method> > >>>> > >>>> <simple-method > method-name="setShipmentSettingsFromPrimaryOrder" > >>> short-description="Set Shipment Settings From Primary Order"> > >>>> - <set value="Set Shipment Settings From Primary Order" > >>> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - > >>>> <!-- on Shipment set partyIdFrom, partyIdTo > (vendorPartyId), > >>> originContactMechId, destinationContactMechId, estimatedShipCost --> > >>>> <entity-one entity-name="Shipment" value-field="shipment"/> > >>>> > >>>> @@ -670,12 +655,7 @@ under the License. > >>>> </simple-method> > >>>> > >>>> <simple-method method-name="setShipmentSettingsFromFacilities" > >>> short-description="Set Shipment Settings From Facilities"> > >>>> - <set value="Set Shipment Settings From Facilities" > >>> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - > >>>> <entity-one entity-name="Shipment" value-field="shipment"/> > >>>> - > >>>> <clone-value value-field="shipment" > >>> new-value-field="shipmentCopy"/> > >>>> <string-to-list string="-fromDate" > >>> list="descendingFromDateOrder"/> > >>>> @@ -817,35 +797,8 @@ under the License. > >>>> </simple-method> > >>>> > >>>> <!-- ShipmentItem services --> > >>>> - <simple-method method-name="createShipmentItem" > >>> short-description="Create ShipmentItem"> > >>>> - <set value="Create ShipmentItem" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - > >>>> - <make-value entity-name="ShipmentItem" > >> value-field="newEntity"/> > >>>> - <set-pk-fields map="parameters" value-field="newEntity"/> > >>>> - <set-nonpk-fields map="parameters" value-field="newEntity"/> > >>>> - <!-- if no shipmentItemSeqId, generate one based on existing > >>> items, ie one greater than the current higher number --> > >>>> - <make-next-seq-id value-field="newEntity" > >>> seq-field-name="shipmentItemSeqId"/> > >>>> - <field-to-result field="newEntity.shipmentItemSeqId" > >>> result-name="shipmentItemSeqId"/> > >>>> - <create-value value-field="newEntity"/> > >>>> - </simple-method> > >>>> - <simple-method method-name="updateShipmentItem" > >>> short-description="Update ShipmentItem"> > >>>> - <set value="Update ShipmentItem" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - > >>>> - <make-value entity-name="ShipmentItem" > >>> value-field="lookupPKMap"/> > >>>> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > >>>> - <find-by-primary-key entity-name="ShipmentItem" > >>> map="lookupPKMap" value-field="lookedUpValue"/> > >>>> - <set-nonpk-fields map="parameters" > >> value-field="lookedUpValue"/> > >>>> - <store-value value-field="lookedUpValue"/> > >>>> - </simple-method> > >>>> <simple-method method-name="deleteShipmentItem" > >>> short-description="Delete ShipmentItem"> > >>>> - <set value="Delete ShipmentItem" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - <!-- If there is any Shipment Package Content available for > >>> this Shipment Item then it cannot be deleted as it require > >>>> + <!-- If there is any Shipment Package Content available for > >>> this Shipment Item then it cannot be deleted as it require > >>>> Shipment Package content to be deleted first --> > >>>> <entity-and entity-name="ShipmentPackageContent" > >>> list="shipmentPackageContents"> > >>>> <field-map field-name="shipmentId" > >>> from-field="parameters.shipmentId"/> > >>>> @@ -946,10 +899,6 @@ under the License. > >>>> > >>>> <!-- ShipmentPackage services --> > >>>> <simple-method method-name="createShipmentPackage" > >>> short-description="Create ShipmentPackage"> > >>>> - <set value="Create ShipmentPackage" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - > >>>> <make-value entity-name="ShipmentPackage" > >>> value-field="newEntity"/> > >>>> <set-pk-fields map="parameters" value-field="newEntity"/> > >>>> <set-nonpk-fields map="parameters" > value-field="newEntity"/> > >>>> @@ -971,10 +920,6 @@ under the License. > >>>> <call-simple-method method-name="ensurePackageRouteSeg"/> > >>>> </simple-method> > >>>> <simple-method method-name="updateShipmentPackage" > >>> short-description="Update ShipmentPackage"> > >>>> - <set value="Update ShipmentPackage" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusShipped"/> > >>>> - <check-errors/> > >>>> - > >>>> <make-value entity-name="ShipmentPackage" > >>> value-field="lookupPKMap"/> > >>>> <set-pk-fields map="parameters" value-field="lookupPKMap"/> > >>>> <find-by-primary-key entity-name="ShipmentPackage" > >>> map="lookupPKMap" value-field="lookedUpValue"/> > >>>> @@ -986,9 +931,6 @@ under the License. > >>>> <call-simple-method method-name="ensurePackageRouteSeg"/> > >>>> </simple-method> > >>>> <simple-method method-name="deleteShipmentPackage" > >>> short-description="Delete ShipmentPackage"> > >>>> - <set value="Delete ShipmentPackage" field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> <!-- If there is any Shipment Package Content available for > >>> this shipment than Shipment Package cannot be deleted as it require > >>>> Shipment Package Content to be deleted first --> > >>>> <entity-and entity-name="ShipmentPackageContent" > >>> list="shipmentPackageContents"> > >>>> @@ -1029,43 +971,7 @@ under the License. > >>>> </simple-method> > >>>> > >>>> <!-- ShipmentPackageContent services --> > >>>> - <simple-method method-name="createShipmentPackageContent" > >>> short-description="Create ShipmentPackageContent"> > >>>> - <set value="Create ShipmentPackageContent" > >>> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - > >>>> - <make-value entity-name="ShipmentPackageContent" > >>> value-field="newEntity"/> > >>>> - <set-pk-fields map="parameters" value-field="newEntity"/> > >>>> - <set-nonpk-fields map="parameters" value-field="newEntity"/> > >>>> - > >>>> - <create-value value-field="newEntity"/> > >>>> - <field-to-result field="newEntity.shipmentPackageSeqId" > >>> result-name="shipmentPackageSeqId"/> > >>>> - </simple-method> > >>>> - <simple-method method-name="updateShipmentPackageContent" > >>> short-description="Update ShipmentPackageContent"> > >>>> - <set value="Update ShipmentPackageContent" > >>> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - > >>>> - <make-value entity-name="ShipmentPackageContent" > >>> value-field="lookupPKMap"/> > >>>> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > >>>> - <find-by-primary-key entity-name="ShipmentPackageContent" > >>> map="lookupPKMap" value-field="lookedUpValue"/> > >>>> - <set-nonpk-fields map="parameters" > >> value-field="lookedUpValue"/> > >>>> - <store-value value-field="lookedUpValue"/> > >>>> - </simple-method> > >>>> - <simple-method method-name="deleteShipmentPackageContent" > >>> short-description="Delete ShipmentPackageContent"> > >>>> - <set value="Delete ShipmentPackageContent" > >>> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - > >>>> - <make-value entity-name="ShipmentPackageContent" > >>> value-field="lookupPKMap"/> > >>>> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > >>>> - <find-by-primary-key entity-name="ShipmentPackageContent" > >>> map="lookupPKMap" value-field="lookedUpValue"/> > >>>> - <remove-value value-field="lookedUpValue"/> > >>>> - </simple-method> > >>>> <simple-method method-name="addShipmentContentToPackage" > >>> short-description="Add Shipment Content To Package"> > >>>> - <set value="Create ShipmentPackageContent" > >>> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> <make-value entity-name="ShipmentPackageContent" > >>> value-field="newEntity"/> > >>>> <set-pk-fields map="parameters" value-field="newEntity"/> > >>>> <find-by-primary-key value-field="shipmentPackageContent" > >>> map="newEntity"/> > >>>> @@ -1089,86 +995,16 @@ under the License. > >>>> <field-to-result field="newEntity.shipmentPackageSeqId" > >>> result-name="shipmentPackageSeqId"/> > >>>> </simple-method> > >>>> > >>>> - <!-- ShipmentPackageRouteSeg services --> > >>>> - <simple-method method-name="createShipmentPackageRouteSeg" > >>> short-description="Create ShipmentPackageRouteSeg"> > >>>> - <make-value entity-name="ShipmentPackageRouteSeg" > >>> value-field="newEntity"/> > >>>> - <set-pk-fields map="parameters" value-field="newEntity"/> > >>>> - <set-nonpk-fields map="parameters" value-field="newEntity"/> > >>>> - > >>>> - <create-value value-field="newEntity"/> > >>>> - </simple-method> > >>>> - <simple-method method-name="deleteShipmentPackageRouteSeg" > >>> short-description="Delete ShipmentPackageRouteSeg"> > >>>> - <set value="Delete ShipmentPackageRouteSeg" > >>> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - > >>>> - <make-value entity-name="ShipmentPackageRouteSeg" > >>> value-field="lookupPKMap"/> > >>>> - <set-pk-fields map="parameters" value-field="lookupPKMap"/> > >>>> - <find-by-primary-key entity-name="ShipmentPackageRouteSeg" > >>> map="lookupPKMap" value-field="lookedUpValue"/> > >>>> - <remove-value value-field="lookedUpValue"/> > >>>> - </simple-method> > >>>> - > >>>> <!-- ShipmentRouteSegment services --> > >>>> - <simple-method method-name="createShipmentRouteSegment" > >>> short-description="Create ShipmentRouteSegment"> > >>>> - <set value="Create ShipmentRouteSegment" > >> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - > >>>> - <make-value entity-name="ShipmentRouteSegment" > >>> value-field="newEntity"/> > >>>> - <set-pk-fields map="parameters" value-field="newEntity"/> > >>>> - <set-nonpk-fields map="parameters" value-field="newEntity"/> > >>>> - > >>>> - <!-- if no shipmentRouteSegmentSeqId, generate one based on > >>> existing items, ie one greater than the current higher number --> > >>>> - <make-next-seq-id value-field="newEntity" > >>> seq-field-name="shipmentRouteSegmentId"/> > >>>> - <field-to-result field="newEntity.shipmentRouteSegmentId" > >>> result-name="shipmentRouteSegmentId"/> > >>>> - > >>>> - <if-empty field="newEntity.carrierServiceStatusId"> > >>>> - <set value="SHRSCS_NOT_STARTED" > >>> field="newEntity.carrierServiceStatusId"/> > >>>> - </if-empty> > >>>> - > >>>> - <create-value value-field="newEntity"/> > >>>> - > >>>> - <set from-field="newEntity.shipmentId" field="shipmentId"/> > >>>> - <set from-field="newEntity.shipmentRouteSegmentId" > >>> field="shipmentRouteSegmentId"/> > >>>> - <call-simple-method method-name="ensureRouteSegPackage"/> > >>>> - </simple-method> > >>>> - <simple-method method-name="updateShipmentRouteSegment" > >>> short-description="Update ShipmentRouteSegment"> > >>>> - <set value="Update ShipmentRouteSegment" > >> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusDelivered"/> > >>>> - <check-errors/> > >>>> - > >>>> - <entity-one entity-name="ShipmentRouteSegment" > >>> value-field="lookedUpValue"/> > >>>> - <set-nonpk-fields map="parameters" > >> value-field="lookedUpValue"/> > >>>> - > >>>> - <if-empty field="newEntity.carrierServiceStatusId"> > >>>> - <set value="SHRSCS_NOT_STARTED" > >>> field="newEntity.carrierServiceStatusId"/> > >>>> - </if-empty> > >>>> - > >>>> - > >>>> - <set from-field="userLogin.userLoginId" > >>> field="lookedUpValue.updatedByUserLoginId"/> > >>>> - <now-timestamp field="lookedUpValue.lastUpdatedDate"/> > >>>> - <store-value value-field="lookedUpValue"/> > >>>> - > >>>> - <set from-field="lookedUpValue.shipmentId" > >> field="shipmentId"/> > >>>> - <set from-field="lookedUpValue.shipmentRouteSegmentId" > >>> field="shipmentRouteSegmentId"/> > >>>> - <call-simple-method method-name="ensureRouteSegPackage"/> > >>>> - </simple-method> > >>>> - <simple-method method-name="deleteShipmentRouteSegment" > >>> short-description="Delete ShipmentRouteSegment"> > >>>> - <set value="Delete ShipmentRouteSegment" > >> field="operationName"/> > >>>> - <call-simple-method > >>> method-name="checkCanChangeShipmentStatusPacked"/> > >>>> - <check-errors/> > >>>> - > >>>> - <entity-one entity-name="ShipmentRouteSegment" > >>> value-field="lookedUpValue"/> > >>>> - <remove-value value-field="lookedUpValue"/> > >>>> - </simple-method> > >>>> <simple-method method-name="ensureRouteSegPackage" > >>> short-description="Ensure ShipmentPackageRouteSeg exists for all > Packages > >>> for this RouteSegment"> > >>>> + <entity-one entity-name="ShipmentRouteSegment" > >>> value-field="shipmentRouteSegment" use-cache="true"/> > >>>> <entity-and entity-name="ShipmentPackage" > >>> list="shipmentPackages"> > >>>> - <field-map field-name="shipmentId" > >> from-field="shipmentId"/> > >>>> + <field-map field-name="shipmentId" > >>> from-field="shipmentRouteSegment.shipmentId"/> > >>>> </entity-and> > >>>> <iterate list="shipmentPackages" entry="shipmentPackage"> > >>>> <entity-one entity-name="ShipmentPackageRouteSeg" > >>> value-field="checkShipmentPackageRouteSeg" auto-field-map="false"> > >>>> - <field-map field-name="shipmentId" > >>> from-field="shipmentId"/> > >>>> - <field-map field-name="shipmentRouteSegmentId" > >>> from-field="shipmentRouteSegmentId"/> > >>>> + <field-map field-name="shipmentId" > >>> from-field="shipmentRouteSegment.shipmentId"/> > >>>> + <field-map field-name="shipmentRouteSegmentId" > >>> from-field="shipmentRouteSegment.shipmentRouteSegmentId"/> > >>>> <field-map field-name="shipmentPackageSeqId" > >>> from-field="shipmentPackage.shipmentPackageSeqId"/> > >>>> </entity-one> > >>>> <if-empty field="checkShipmentPackageRouteSeg"> > >>>> @@ -1194,7 +1030,17 @@ under the License. > >>>> <call-simple-method > >>> method-name="checkCanChangeShipmentStatusGeneral"/> > >>>> </simple-method> > >>>> <simple-method > method-name="checkCanChangeShipmentStatusGeneral" > >>> short-description="Check the Status of a Shipment to see if it can be > >>> changed - meant to be called in-line"> > >>>> - <entity-one entity-name="Shipment" > >> value-field="testShipment"/> > >>>> + <if-empty field="parameters.mainAction"> > >>>> + <set field="parameters.mainAction" value="UPDATE"/> > >>>> + </if-empty> > >>>> + <set-service-fields service-name="facilityGenericPermission" > >>> to-map="facilityGenericPermissionMap" map="parameters"/> > >>>> + <call-service service-name="facilityGenericPermission" > >>> in-map-name="facilityGenericPermissionMap"> > >>>> + <result-to-field field="hasPermission" > >>> result-name="hasPermission"/> > >>>> + </call-service> > >>>> + <check-errors/> > >>>> + > >>>> + <entity-one entity-name="Shipment" value-field="testShipment" > >>> use-cache="true"/> > >>>> + <set field="fromStatusId" from-field="fromStatusId" > >>> default-value="${parameters.fromStatusId}"/> > >>>> <if> > >>>> <condition> > >>>> <or> > >>>> @@ -1225,9 +1071,12 @@ under the License. > >>>> </condition> > >>>> <then> > >>>> <get-related-one relation-name="StatusItem" > >>> value-field="testShipment" to-value-field="testShipmentStatus"/> > >>>> - <string-to-list string="Cannot perform operation > >>> ${operationName} when the shipment is in the > >>> ${testShipmentStatus.description} [${testShipment.statusId}] status." > >>> list="error_list"/> > >>>> + <property-to-field resource="ProductErrorUiLabels" > >>> property="ShipmentCanChangeStatusPermissionError" field="failMessage"/> > >>>> + <set field="hasPermission" type="Boolean" > >>> value="false"/> > >>>> + <field-to-result field="failMessage"/> > >>>> </then> > >>>> </if> > >>>> + <field-to-result field="hasPermission"/> > >>>> </simple-method> > >>>> > >>>> <!-- quick ship entire order in one package per facility & ship > >>> group --> > >>>> @@ -1987,23 +1836,5 @@ under the License. > >>>> <call-service > >>> service-name="cancelOrderItemIssuanceFromSalesShipment" > >>> in-map-name="inputMap"/> > >>>> </iterate> > >>>> </simple-method> > >>>> - > >>>> - <!-- QuantityBreak services --> > >>>> - <!-- create a new QuantityBreak --> > >>>> - <simple-method method-name="createQuantityBreak" > >>> short-description="Create a QuoteAttribute"> > >>>> - <make-value entity-name="QuantityBreak" > >>> value-field="quantityBreak"/> > >>>> - <set-nonpk-fields map="parameters" > >> value-field="quantityBreak"/> > >>>> - <sequenced-id sequence-name="QuantityBreak" > >>> field="quantityBreak.quantityBreakId"/> > >>>> - <create-value value-field="quantityBreak"/> > >>>> - <check-errors/> > >>>> - </simple-method> > >>>> - > >>>> - <!-- remove an existing QuantityBreak --> > >>>> - <simple-method method-name="deleteQuantityBreak" > >>> short-description="Remove an existing QuantityBreak"> > >>>> - <entity-one entity-name="QuantityBreak" > >>> value-field="quantityBreak" auto-field-map="true"/> > >>>> - <check-errors/> > >>>> - <remove-value value-field="quantityBreak"/> > >>>> - <check-errors/> > >>>> - </simple-method> > >>>> </simple-methods> > >>>> > >>>> > >>>> Modified: > >> > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > >>>> URL: > >> > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > >> > ============================================================================== > >>>> --- > >> > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > >>> (original) > >>>> +++ > >> > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/secas_shipment.xml > >>> Mon Sep 2 15:13:47 2019 > >>>> @@ -151,6 +151,13 @@ under the License. > >>>> <action service="updatePurchaseShipmentFromReceipt" > >>> mode="sync"/> > >>>> </eca> > >>>> > >>>> + <eca service="createShipmentRouteSegment" event="commit"> > >>>> + <action service="ensureRouteSegPackage" mode="sync"/> > >>>> + </eca> > >>>> + <eca service="updateShipmentRouteSegment" event="commit"> > >>>> + <action service="ensureRouteSegPackage" mode="sync"/> > >>>> + </eca> > >>>> + > >>>> <eca service="createShipmentPackageContent" > event="in-validate"> > >>>> <condition field-name="shipmentPackageSeqId" > >> operator="equals" > >>> value="New"/> > >>>> <action service="createShipmentPackage" mode="sync"/> > >>>> > >>>> Modified: > >> > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > >>>> URL: > >> > http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml?rev=1866286&r1=1866285&r2=1866286&view=diff > >> > ============================================================================== > >>>> --- > >> > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > >>> (original) > >>>> +++ > >> > ofbiz/ofbiz-framework/trunk/applications/product/servicedef/services_shipment.xml > >>> Mon Sep 2 15:13:47 2019 > >>>> @@ -136,7 +136,7 @@ under the License. > >>>> <service name="updateShipment" default-entity-name="Shipment" > >>> engine="simple" > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="updateShipment" auth="true"> > >>>> <description>Update Shipment</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="UPDATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusDelivered" > >> main-action="UPDATE"/> > >>>> <auto-attributes include="pk" mode="INOUT" > optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" optional="true"> > >>>> <exclude field-name="shipmentTypeId"/> > >>>> @@ -152,10 +152,9 @@ under the License. > >>>> <attribute name="oldOriginFacilityId" type="String" > >> mode="OUT" > >>> optional="true"/> > >>>> <attribute name="oldDestinationFacilityId" type="String" > >>> mode="OUT" optional="true"/> > >>>> </service> > >>>> - <service name="deleteShipment" default-entity-name="Shipment" > >>> engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="deleteShipment" auth="true"> > >>>> + <service name="deleteShipment" default-entity-name="Shipment" > >>> engine="entity-auto" invoke="delete" auth="true"> > >>>> <description>Delete Shipment</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="DELETE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="DELETE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> </service> > >>>> <service name="createShipmentStatus" > >>> default-entity-name="ShipmentStatus" engine="entity-auto" > invoke="create" > >>> auth="true"> > >>>> @@ -167,19 +166,13 @@ under the License. > >>>> <service name="setShipmentSettingsFromPrimaryOrder" > >> engine="simple" > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="setShipmentSettingsFromPrimaryOrder" auth="true"> > >>>> <description>Set Shipment Settings From Primary > >>> Order</description> > >>>> - <required-permissions join-type="AND"> > >>>> - <permission-service > >>> service-name="facilityGenericPermission" main-action="CREATE"/> > >>>> - <permission-service > >>> service-name="facilityGenericPermission" main-action="UPDATE"/> > >>>> - </required-permissions> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="UPDATE"/> > >>>> <attribute name="shipmentId" type="String" mode="IN" > >>> optional="false"/> > >>>> </service> > >>>> <service name="setShipmentSettingsFromFacilities" > engine="simple" > >>>> > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="setShipmentSettingsFromFacilities" auth="true"> > >>>> <description>Set Shipment Settings From > >>> Facilities</description> > >>>> - <required-permissions join-type="AND"> > >>>> - <permission-service > >>> service-name="facilityGenericPermission" main-action="CREATE"/> > >>>> - <permission-service > >>> service-name="facilityGenericPermission" main-action="UPDATE"/> > >>>> - </required-permissions> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="UPDATE"/> > >>>> <attribute name="shipmentId" type="String" mode="IN" > >>> optional="false"/> > >>>> </service> > >>>> <service name="sendShipmentScheduledNotification" > engine="simple" > >>>> @@ -220,25 +213,22 @@ under the License. > >>>> </service> > >>>> > >>>> <!-- ShipmentItem Services --> > >>>> - <service name="createShipmentItem" > >>> default-entity-name="ShipmentItem" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="createShipmentItem" auth="true"> > >>>> + <service name="createShipmentItem" > >>> default-entity-name="ShipmentItem" engine="entity-auto" invoke="create" > >>> auth="true"> > >>>> <description>Create ShipmentItem</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="CREATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="CREATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" > optional="true"/> > >>>> <override name="shipmentItemSeqId" mode="INOUT" > >>> optional="true"/> > >>>> </service> > >>>> - <service name="updateShipmentItem" > >>> default-entity-name="ShipmentItem" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="updateShipmentItem" auth="true"> > >>>> + <service name="updateShipmentItem" > >>> default-entity-name="ShipmentItem" engine="entity-auto" invoke="update" > >>> auth="true"> > >>>> <description>Update ShipmentItem</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="UPDATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusDelivered" > >> main-action="UPDATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" > optional="true"/> > >>>> </service> > >>>> - <service name="deleteShipmentItem" > >>> default-entity-name="ShipmentItem" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="deleteShipmentItem" auth="true"> > >>>> + <service name="deleteShipmentItem" > >>> default-entity-name="ShipmentItem" engine="entity-auto" invoke="delete" > >>> auth="true"> > >>>> <description>Delete ShipmentItem</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="DELETE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="DELETE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> </service> > >>>> > >>>> @@ -256,7 +246,7 @@ under the License. > >>>> <service name="createShipmentPackage" > >>> default-entity-name="ShipmentPackage" engine="simple" > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="createShipmentPackage" auth="true"> > >>>> <description>Create ShipmentPackage</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="CREATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="CREATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" optional="true"> > >>>> <exclude field-name="dateCreated"/> > >>>> @@ -266,43 +256,40 @@ under the License. > >>>> <service name="updateShipmentPackage" > >>> default-entity-name="ShipmentPackage" engine="simple" > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="updateShipmentPackage" auth="true"> > >>>> <description>Update ShipmentPackage</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="UPDATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="UPDATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" > optional="true"/> > >>>> </service> > >>>> <service name="deleteShipmentPackage" > >>> default-entity-name="ShipmentPackage" engine="simple" > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="deleteShipmentPackage" auth="true"> > >>>> <description>Delete ShipmentPackage</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="DELETE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="DELETE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> </service> > >>>> > >>>> <!-- ShipmentPackageContent Services --> > >>>> - <service name="createShipmentPackageContent" > >>> default-entity-name="ShipmentPackageContent" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="createShipmentPackageContent" auth="true"> > >>>> + <service name="createShipmentPackageContent" > >>> default-entity-name="ShipmentPackageContent" engine="entity-auto" > >>> invoke="create" auth="true"> > >>>> <description>Create ShipmentPackageContent</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="CREATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="CREATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" > optional="true"/> > >>>> <override name="shipmentPackageSeqId" mode="INOUT" > >>> optional="false"/> > >>>> </service> > >>>> - <service name="updateShipmentPackageContent" > >>> default-entity-name="ShipmentPackageContent" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="updateShipmentPackageContent" auth="true"> > >>>> + <service name="updateShipmentPackageContent" > >>> default-entity-name="ShipmentPackageContent" engine="entity-auto" > >>> invoke="update" auth="true"> > >>>> <description>Update ShipmentPackageContent</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="UPDATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="UPDATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" > optional="true"/> > >>>> </service> > >>>> - <service name="deleteShipmentPackageContent" > >>> default-entity-name="ShipmentPackageContent" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="deleteShipmentPackageContent" auth="true"> > >>>> + <service name="deleteShipmentPackageContent" > >>> default-entity-name="ShipmentPackageContent" engine="entity-auto" > >>> invoke="delete" auth="true"> > >>>> <description>Delete ShipmentPackageContent</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="DELETE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="DELETE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> </service> > >>>> <service name="addShipmentContentToPackage" > >>> default-entity-name="ShipmentPackageContent" engine="simple" > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="addShipmentContentToPackage" auth="true"> > >>>> <description>Add Shipment Content To Package</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="CREATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="CREATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" > optional="true"/> > >>>> <override name="quantity" mode="IN" optional="false"/> > >>>> @@ -310,23 +297,21 @@ under the License. > >>>> </service> > >>>> > >>>> <!-- ShipmentPackageRouteSeg Services --> > >>>> - <service name="createShipmentPackageRouteSeg" > >>> default-entity-name="ShipmentPackageRouteSeg" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="createShipmentPackageRouteSeg" auth="true"> > >>>> + <service name="createShipmentPackageRouteSeg" > >>> default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" > >>> invoke="create" auth="true"> > >>>> <description>Create ShipmentPackageRouteSeg</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="CREATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="CREATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" > optional="true"/> > >>>> </service> > >>>> <service name="updateShipmentPackageRouteSeg" > >>> default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" > >>> invoke="update" auth="true"> > >>>> <description>Update ShipmentPackageRouteSeg</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="UPDATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusDelivered" > >> main-action="UPDATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" > optional="true"/> > >>>> </service> > >>>> - <service name="deleteShipmentPackageRouteSeg" > >>> default-entity-name="ShipmentPackageRouteSeg" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="deleteShipmentPackageRouteSeg" auth="true"> > >>>> + <service name="deleteShipmentPackageRouteSeg" > >>> default-entity-name="ShipmentPackageRouteSeg" engine="entity-auto" > >>> invoke="delete" auth="true"> > >>>> <description>Delete ShipmentPackageRouteSeg</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="DELETE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="DELETE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> </service> > >>>> > >>>> @@ -350,25 +335,23 @@ under the License. > >>>> </service> > >>>> > >>>> <!-- ShipmentRouteSegment Services --> > >>>> - <service name="createShipmentRouteSegment" > >>> default-entity-name="ShipmentRouteSegment" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="createShipmentRouteSegment" auth="true"> > >>>> + <service name="createShipmentRouteSegment" > >>> default-entity-name="ShipmentRouteSegment" engine="entity-auto" > >>> invoke="create" auth="true"> > >>>> <description>Create ShipmentRouteSegment</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="CREATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="CREATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" > optional="true"/> > >>>> <override name="shipmentRouteSegmentId" mode="INOUT" > >>> optional="true"/> > >>>> </service> > >>>> - <service name="updateShipmentRouteSegment" > >>> default-entity-name="ShipmentRouteSegment" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="updateShipmentRouteSegment" auth="true"> > >>>> + <service name="updateShipmentRouteSegment" > >>> default-entity-name="ShipmentRouteSegment" engine="entity-auto" > >>> invoke="update" auth="true"> > >>>> <description>Update ShipmentRouteSegment</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="UPDATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="UPDATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" > optional="true"/> > >>>> + <override name="carrierServiceStatusId" > >>> default-value="SHRSCS_NOT_STARTED"/> > >>>> </service> > >>>> - <service name="deleteShipmentRouteSegment" > >>> default-entity-name="ShipmentRouteSegment" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="deleteShipmentRouteSegment" auth="true"> > >>>> + <service name="deleteShipmentRouteSegment" > >>> default-entity-name="ShipmentRouteSegment" engine="entity-auto" > >>> invoke="delete" auth="true"> > >>>> <description>Delete ShipmentRouteSegment</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="DELETE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="DELETE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> </service> > >>>> <service name="duplicateShipmentRouteSegment" > >>> default-entity-name="ShipmentRouteSegment" engine="java" > >>>> @@ -386,44 +369,46 @@ under the License. > >>>> </description> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> </service> > >>>> + <service name="ensureRouteSegPackage" > >>> default-entity-name="ShipmentRouteSegment" engine="simple" > >>>> + > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="ensureRouteSegPackage" auth="true"> > >>>> + <description>Ensure ShipmentPackageRouteSeg exists for all > >>> Packages for this RouteSegment</description> > >>>> + <permission-service service-name="facilityGenericPermission" > >>> main-action="CREATE"/> > >>>> + <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> + </service> > >>>> > >>>> <!-- > >>> ============================================================== --> > >>>> <!-- ItemIssuance Services --> > >>>> <service name="createItemIssuance" > >>> default-entity-name="ItemIssuance" engine="simple" > >> > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > >>> invoke="createItemIssuance" auth="true"> > >>>> <description>Create ItemIssuance</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="CREATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="CREATE"/> > >>>> <auto-attributes include="pk" mode="OUT" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" > optional="true"/> > >>>> <attribute name="affectAccounting" type="Boolean" > mode="OUT" > >>> optional="true"/> > >>>> </service> > >>>> - <service name="updateItemIssuance" > >>> default-entity-name="ItemIssuance" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > >>> invoke="updateItemIssuance" auth="true"> > >>>> + <service name="updateItemIssuance" > >>> default-entity-name="ItemIssuance" engine="entity-auto" invoke="update" > >>> auth="true"> > >>>> <description>Update ItemIssuance</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="UPDATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="UPDATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <auto-attributes include="nonpk" mode="IN" > optional="true"/> > >>>> </service> > >>>> - <service name="deleteItemIssuance" > >>> default-entity-name="ItemIssuance" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > >>> invoke="deleteItemIssuance" auth="true"> > >>>> + <service name="deleteItemIssuance" > >>> default-entity-name="ItemIssuance" engine="entity-auto" invoke="delete" > >>> auth="true"> > >>>> <description>Delete ItemIssuance</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="DELETE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="DELETE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> </service> > >>>> > >>>> <!-- ItemIssuanceRole Services --> > >>>> - <service name="createItemIssuanceRole" > >>> default-entity-name="ItemIssuanceRole" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > >>> invoke="createItemIssuanceRole" auth="true"> > >>>> + <service name="createItemIssuanceRole" > >>> default-entity-name="ItemIssuanceRole" engine="entity-auto" > >> invoke="create" > >>> auth="true"> > >>>> <description>Create ItemIssuanceRole</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="CREATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="CREATE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <!-- Will check if OK to change status of shipment, so > >>> Shipment PK is needed --> > >>>> <auto-attributes entity-name="Shipment" include="pk" > >> mode="IN" > >>> optional="false"/> > >>>> </service> > >>>> - <service name="deleteItemIssuanceRole" > >>> default-entity-name="ItemIssuanceRole" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > >>> invoke="deleteItemIssuanceRole" auth="true"> > >>>> + <service name="deleteItemIssuanceRole" > >>> default-entity-name="ItemIssuanceRole" engine="entity-auto" > >> invoke="delete" > >>> auth="true"> > >>>> <description>Delete ItemIssuanceRole</description> > >>>> - <permission-service service-name="facilityGenericPermission" > >>> main-action="DELETE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="DELETE"/> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> <!-- Will check if OK to change status of shipment, so > >>> Shipment PK is needed --> > >>>> <auto-attributes entity-name="Shipment" include="pk" > >> mode="IN" > >>> optional="false"/> > >>>> @@ -433,7 +418,7 @@ under the License. > >>>> > >> > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > >>> invoke="issueOrderItemToShipment" auth="true"> > >>>> <description>Issue an OrderItem to a Shipment - only for > >>> non-sales orders</description> > >>>> <required-permissions join-type="AND"> > >>>> - <permission-service > >>> service-name="facilityGenericPermission" main-action="CREATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="CREATE"/> > >>>> <permission-service > >>> service-name="facilityGenericPermission" main-action="UPDATE"/> > >>>> </required-permissions> > >>>> <auto-attributes entity-name="Shipment" include="pk" > >> mode="IN" > >>> optional="false"/> > >>>> @@ -445,7 +430,7 @@ under the License. > >>>> > >> > location="component://product/minilang/shipment/issuance/IssuanceServices.xml" > >>> invoke="issueOrderItemShipGrpInvResToShipment" auth="true"> > >>>> <description>Add an OrderItemShipGrpInvRes to a Shipment - > >>> only for sales orders</description> > >>>> <required-permissions join-type="AND"> > >>>> - <permission-service > >>> service-name="facilityGenericPermission" main-action="CREATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="CREATE"/> > >>>> <permission-service > >>> service-name="facilityGenericPermission" main-action="UPDATE"/> > >>>> </required-permissions> > >>>> <auto-attributes entity-name="Shipment" include="pk" > >> mode="IN" > >>> optional="false"/> > >>>> @@ -775,7 +760,7 @@ under the License. > >>>> > >> > location="component://product/minilang/shipment/receipt/ShipmentReceiptServices.xml" > >>> invoke="issueOrderItemToShipmentAndReceiveAgainstPO" auth="true"> > >>>> <description>Issues order item quantity specified to the > >>> shipment, then receives inventory for that item and > >> quantity</description> > >>>> <required-permissions join-type="AND"> > >>>> - <permission-service > >>> service-name="facilityGenericPermission" main-action="CREATE"/> > >>>> + <permission-service > >>> service-name="checkCanChangeShipmentStatusPacked" > main-action="CREATE"/> > >>>> <permission-service > >>> service-name="facilityGenericPermission" main-action="UPDATE"/> > >>>> </required-permissions> > >>>> <implements service="issueOrderItemToShipment"/> > >>>> @@ -888,11 +873,11 @@ under the License. > >>>> </service> > >>>> > >>>> <!-- QuantityBreak services --> > >>>> - <service name="createQuantityBreak" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="createQuantityBreak" auth="true"> > >>>> + <service name="createQuantityBreak" > >>> default-entity-name="QuantityBreak" engine="entity-auto" > invoke="create" > >>> auth="true"> > >>>> <description>Create a QuantityBreak</description> > >>>> <permission-service > service-name="facilityGenericPermission" > >>> main-action="CREATE"/> > >>>> <auto-attributes entity-name="QuantityBreak" > include="nonpk" > >>> mode="IN" optional="true"/> > >>>> + <auto-attributes entity-name="QuantityBreak" include="pk" > >>> mode="OUT" optional="false"/> > >>>> </service> > >>>> <service name="updateQuantityBreak" engine="entity-auto" > >>> invoke="update" default-entity-name="QuantityBreak" auth="true"> > >>>> <description>Update a QuantityBreak</description> > >>>> @@ -900,8 +885,7 @@ under the License. > >>>> <auto-attributes entity-name="QuantityBreak" include="pk" > >>> mode="IN" optional="false"/> > >>>> <auto-attributes entity-name="QuantityBreak" > include="nonpk" > >>> mode="IN" optional="true"/> > >>>> </service> > >>>> - <service name="deleteQuantityBreak" engine="simple" > >>>> - > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="deleteQuantityBreak" auth="true"> > >>>> + <service name="deleteQuantityBreak" > >>> default-entity-name="QuantityBreak" engine="entity-auto" > invoke="delete" > >>> auth="true"> > >>>> <description>Delete a QuantityBreak</description> > >>>> <permission-service > service-name="facilityGenericPermission" > >>> main-action="DELETE"/> > >>>> <auto-attributes entity-name="QuantityBreak" include="pk" > >>> mode="IN" optional="false"/> > >>>> @@ -1161,4 +1145,27 @@ under the License. > >>>> <description>Delete a ShipmentItemBilling</description> > >>>> <auto-attributes include="pk" mode="IN" optional="false"/> > >>>> </service> > >>>> + > >>>> + <!-- Permission Services --> > >>>> + <service name="checkCanChangeShipmentStatusPacked" > engine="simple" > >>>> + > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="checkCanChangeShipmentStatusPacked"> > >>>> + <description>Check the Status of a Shipment to see if it can > >> be > >>> changed for an operation relative to the packed state</description> > >>>> + <!-- Info : permission-service > >>> service-name="facilityGenericPermission" --> > >>>> + <implements service="permissionInterface"/> > >>>> + <attribute name="shipmentId" type="String" mode="IN" > >>> optional="true"/> > >>>> + </service> > >>>> + <service name="checkCanChangeShipmentStatusShipped" > >> engine="simple" > >>>> + > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="checkCanChangeShipmentStatusShipped"> > >>>> + <description>Check the Status of a Shipment to see if it can > >> be > >>> changed for an operation relative to the shipped state</description> > >>>> + <!-- Info : permission-service > >>> service-name="facilityGenericPermission" --> > >>>> + <implements service="permissionInterface"/> > >>>> + <attribute name="shipmentId" type="String" mode="IN" > >>> optional="true"/> > >>>> + </service> > >>>> + <service name="checkCanChangeShipmentStatusDelivered" > >>> engine="simple" > >>>> + > >> > location="component://product/minilang/shipment/shipment/ShipmentServices.xml" > >>> invoke="checkCanChangeShipmentStatusDelivered"> > >>>> + <description>Check the Status of a Shipment to see if it can > >> be > >>> changed for an operation relative to the delivered state</description> > >>>> + <!-- Info : permission-service > >>> service-name="facilityGenericPermission" --> > >>>> + <implements service="permissionInterface"/> > >>>> + <attribute name="shipmentId" type="String" mode="IN" > >>> optional="true"/> > >>>> + </service> > >>>> </services> > >>>> > >>>> > >>>> > |
Free forum by Nabble | Edit this page |