blob: f5495ece90c66f7c05e4f8376af50d6ccf87c01c [file] [log] [blame]
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<#escape x as x?xml>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="main" page-height="11in" page-width="8.5in"
margin-top="0.5in" margin-bottom="1in" margin-left=".5in" margin-right="1in">
<fo:region-body margin-top="1in"/>
<fo:region-before extent="1in"/>
<fo:region-after extent="1in"/>
</fo:simple-page-master>
</fo:layout-master-set>
<#list orderHeaderList as order>
<fo:page-sequence master-reference="main">
<fo:flow flow-name="xsl-region-body" font-family="Helvetica">
<#include "component://order/webapp/ordermgr/order/companyHeader.fo.ftl"/>
<#assign orderId = order.orderId>
<#assign orderDate = order.orderDate>
<#list orderInfoList as orderInfo>
<#if orderInfo.get("${orderId}")??>
<#assign orderDetail = orderInfo.get("${orderId}")>
<#assign orderDate = orderDetail.orderDate>
<#if orderDetail.billingAddress??>
<#assign billAddress = orderDetail.billingAddress>
</#if>
<#assign shipAddress = orderDetail.shippingAddress>
<#assign shipmentMethodType = orderDetail.shipmentMethodType>
<#assign carrierPartyId = orderDetail.carrierPartyId>
<#assign shipGroupSeqId = orderDetail.shipGroupSeqId>
<fo:block text-align="right">
<fo:instream-foreign-object>
<barcode:barcode xmlns:barcode="http://barcode4j.krysalis.org/ns"
message="${orderId}/${shipGroupSeqId}">
<barcode:code39>
<barcode:height>8mm</barcode:height>
</barcode:code39>
</barcode:barcode>
</fo:instream-foreign-object>
</fo:block>
<fo:table>
<fo:table-column column-width="200pt"/>
<fo:table-column column-width="200pt"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block font-weight="bold">${uiLabelMap.OrderOrderId}:</fo:block><fo:block> ${orderId} (${shipGroupSeqId})</fo:block>
<fo:block font-weight="bold">${uiLabelMap.OrderOrderDate}:</fo:block><fo:block> ${orderDate}</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:table>
<fo:table-column column-width="200pt"/>
<fo:table-column column-width="200pt"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block font-weight="bold">${uiLabelMap.OrderShipToParty}:</fo:block>
<fo:block>${shipAddress.toName!}</fo:block>
<fo:block> ${shipAddress.address1!}</fo:block>
<fo:block> ${shipAddress.city!}</fo:block>
<fo:block> ${shipAddress.countryGeoId!}</fo:block>
<fo:block> ${shipAddress.postalCode!}</fo:block>
<fo:block> ${shipAddress.stateProvinceGeoId!}</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:table>
<fo:table-column column-width="200pt"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<#if billAddress?has_content>
<fo:block font-weight="bold">${uiLabelMap.OrderOrderBillToParty}:</fo:block>
<fo:block> ${billAddress.toName!}</fo:block>
<fo:block> ${billAddress.address1!}</fo:block>
<fo:block> ${billAddress.city!}</fo:block>
<fo:block> ${billAddress.countryGeoId!}</fo:block>
<fo:block> ${billAddress.postalCode!}</fo:block>
<fo:block> ${billAddress.stateProvinceGeoId!}</fo:block>
</#if>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
<fo:block space-after.optimum="10pt" font-size="14pt">
<fo:table>
<fo:table-column column-width="50pt"/>
<fo:table-column column-width="400pt"/>
<fo:table-column column-width="50pt"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell></fo:table-cell>
<fo:table-cell padding="2pt">
<fo:table border-width="1pt" border-style="solid">
<fo:table-column column-width="150pt"/>
<fo:table-column column-width="250pt"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block>${uiLabelMap.ProductShipmentMethod}:</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block font-weight="bold">${carrierPartyId!}-${shipmentMethodType!}</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>
</#if>
</#list>
<fo:block space-after.optimum="10pt" font-size="12pt">
<fo:table border-width="1pt" border-style="solid">
<fo:table-column column-width="90pt"/>
<fo:table-column column-width="90pt"/>
<fo:table-column column-width="110pt"/>
<fo:table-column column-width="140pt"/>
<fo:table-column column-width="40pt"/>
<fo:table-column column-width="70pt"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell><fo:block>${uiLabelMap.ProductLocation}</fo:block></fo:table-cell>
<fo:table-cell><fo:block>${uiLabelMap.ProductItemId}</fo:block></fo:table-cell>
<fo:table-cell><fo:block>${uiLabelMap.ProductProductName}</fo:block></fo:table-cell>
<fo:table-cell><fo:block>${uiLabelMap.FormFieldTitle_supplierProductId}</fo:block></fo:table-cell>
<fo:table-cell><fo:block>${uiLabelMap.OrderQty}</fo:block></fo:table-cell>
<fo:table-cell><fo:block>${uiLabelMap.OrderUnitPrice}</fo:block></fo:table-cell>
</fo:table-row >
<#assign totalQty = 0>
<#assign rowColor = "#D4D0C8"/>
<#list itemInfoList as itemInfo>
<#if itemInfo.get("${orderId}")?? >
<#assign infoItems = itemInfo.get("${orderId}")>
<#list infoItems as infoItem>
<#assign orderItemShipGrpInvRes = infoItem.orderItemShipGrpInvRes>
<#assign quantityToPick = Static["java.lang.Integer"].parseInt("${orderItemShipGrpInvRes.quantity}") >
<#if orderItemShipGrpInvRes.quantityNotAvailable?? >
<#assign quantityToPick = quantityToPick - Static["java.lang.Integer"].parseInt("${orderItemShipGrpInvRes.quantityNotAvailable}")>
</#if>
<#assign orderItem = orderItemShipGrpInvRes.getRelatedOne("OrderItem", false)>
<#assign product = orderItem.getRelatedOne("Product", false)>
<#assign supplierProduct = Static["org.ofbiz.entity.util.EntityUtil"].getFirst(product.getRelated("SupplierProduct", null, null, false))!>
<#assign inventoryItem = infoItem.inventoryItem>
<#if (quantityToPick > 0)>
<fo:table-row background-color="${rowColor}">
<#if infoItem.facilityLocation?has_content>
<#assign facilityLocation = infoItem.facilityLocation>
<fo:table-cell><fo:block font-size="10pt">${facilityLocation.locationSeqId?default("_NA_")}</fo:block></fo:table-cell>
<#else>
<fo:table-cell><fo:block font-size="10pt">_NA_</fo:block></fo:table-cell>
</#if>
<fo:table-cell><fo:block font-size="10pt">${product.productId} </fo:block></fo:table-cell>
<fo:table-cell><fo:block font-size="10pt">${product.internalName!} </fo:block></fo:table-cell>
<#if supplierProduct?has_content >
<fo:table-cell><fo:block font-size="10pt">${supplierProduct.supplierProductId!} </fo:block></fo:table-cell>
<#else>
<fo:table-cell><fo:block font-size="10pt"> </fo:block></fo:table-cell>
</#if>
<#assign totalQty = totalQty + quantityToPick>
<fo:table-cell><fo:block font-size="10pt">${quantityToPick!} </fo:block></fo:table-cell>
<fo:table-cell><fo:block font-size="10pt"><@ofbizCurrency amount=orderItem.unitPrice isoCode=currencyUomId/></fo:block></fo:table-cell>
</fo:table-row>
</#if>
<#if product.productTypeId == "MARKETING_PKG_AUTO">
<fo:table-row background-color="${rowColor}">
<fo:table-cell number-columns-spanned="6">
<fo:block text-align="left" font-weight="bold">
${uiLabelMap.OrderMarketingPackageComposedBy}
</fo:block>
</fo:table-cell>
</fo:table-row>
<#assign workOrderItemFulfillments = orderItem.getRelated("WorkOrderItemFulfillment", null, null, false)>
<#if workOrderItemFulfillments?has_content>
<#assign workOrderItemFulfillment = Static["org.ofbiz.entity.util.EntityUtil"].getFirst(workOrderItemFulfillments)/>
<#if workOrderItemFulfillment?has_content>
<#assign workEffort = workOrderItemFulfillment.getRelatedOne("WorkEffort", false)/>
<#if workEffort?has_content>
<#assign workEffortTask = Static["org.ofbiz.entity.util.EntityUtil"].getFirst(delegator.findByAnd("WorkEffort", {"workEffortParentId" : workEffort.workEffortId}, null, false))/>
<#if workEffortTask?has_content>
<#assign workEffortInventoryAssigns = workEffortTask.getRelated("WorkEffortInventoryAssign", null, null, false)/>
<#if workEffortInventoryAssigns?has_content>
<#list workEffortInventoryAssigns as workEffortInventoryAssign>
<#assign inventoryItem = workEffortInventoryAssign.getRelatedOne("InventoryItem", false)/>
<#assign product = inventoryItem.getRelatedOne("Product", false)/>
<fo:table-row background-color="${rowColor}">
<#-- bin location -->
<fo:table-cell ><fo:block font-size="10pt"><#if inventoryItem??>${inventoryItem.locationSeqId?default("_NA_")}</#if></fo:block></fo:table-cell>
<#-- product ID -->
<#if product?has_content>
<fo:table-cell ><fo:block font-size="10pt">${product.productId}</fo:block></fo:table-cell>
<#else>
<fo:table-cell ><fo:block font-size="10pt">[N/A]</fo:block></fo:table-cell>
</#if>
<#-- product name -->
<#if product?has_content>
<fo:table-cell ><fo:block font-size="10pt">${product.productName?default(product.internalName?default("[Not Internal Name Set!]"))?xml}</fo:block></fo:table-cell>
<#else>
<fo:table-cell ><fo:block font-size="10pt">[N/A]</fo:block></fo:table-cell>
</#if>
<#-- supplier -->
<#if vendor?has_content >
<fo:table-cell><fo:block font-size="10pt">${vendor.supplierProductId!}</fo:block></fo:table-cell>
<#else>
<fo:table-cell><fo:block font-size="10pt"> </fo:block></fo:table-cell>
</#if>
<#-- quantity -->
<fo:table-cell><fo:block font-size="10pt">${workEffortInventoryAssign.quantity!}</fo:block></fo:table-cell>
<#-- unit price -->
<fo:table-cell ><fo:block></fo:block></fo:table-cell>
</fo:table-row>
</#list>
</#if>
</#if>
</#if>
</#if>
</#if>
</#if>
<#if rowColor == "#D4D0C8">
<#assign rowColor = "white"/>
<#else>
<#assign rowColor = "#D4D0C8"/>
</#if>
</#list>
</#if>
</#list>
</fo:table-body>
</fo:table>
</fo:block>
<fo:block text-align="right">
<fo:table>
<fo:table-column column-width="425pt"/>
<fo:table-column column-width="100pt"/>
<fo:table-body>
<#list orderHeaderAdjustments as orderHeaderAdjustment>
<#assign adjustmentType = orderHeaderAdjustment.getRelatedOne("OrderAdjustmentType", false)>
<#assign adjustmentAmount = Static["org.ofbiz.order.order.OrderReadHelper"].calcOrderAdjustment(orderHeaderAdjustment, orderSubTotal)>
<#if adjustmentAmount != 0>
<fo:table-row>
<fo:table-cell><fo:block>${adjustmentType.get("description",locale)}:</fo:block></fo:table-cell>
<fo:table-cell><fo:block><@ofbizCurrency amount=adjustmentAmount isoCode=currencyUomId/></fo:block></fo:table-cell>
</fo:table-row>
</#if>
</#list>
<#list orderChargeList as orderCharge>
<#if orderCharge.get("${orderId}")?? >
<#assign charges = orderCharge.get("${orderId}")>
<fo:table-row>
<fo:table-cell><fo:block>${uiLabelMap.OrderSubTotal}:</fo:block></fo:table-cell>
<fo:table-cell><fo:block><@ofbizCurrency amount=charges.orderSubTotal isoCode=currencyUomId/></fo:block></fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell><fo:block>${uiLabelMap.OrderTotalSalesTax}:</fo:block></fo:table-cell>
<fo:table-cell><fo:block><@ofbizCurrency amount=charges.taxAmount isoCode=currencyUomId/></fo:block></fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell><fo:block>${uiLabelMap.OrderTotalShippingAndHandling}:</fo:block></fo:table-cell>
<fo:table-cell><fo:block><@ofbizCurrency amount=charges.shippingAmount isoCode=currencyUomId/></fo:block></fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell><fo:block>${uiLabelMap.OrderTotalOtherOrderAdjustments}:</fo:block></fo:table-cell>
<fo:table-cell><fo:block><@ofbizCurrency amount=charges.otherAdjAmount isoCode=currencyUomId/></fo:block></fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell><fo:block>${uiLabelMap.OrderGrandTotal}:</fo:block></fo:table-cell>
<fo:table-cell><fo:block><@ofbizCurrency amount=charges.grandTotal isoCode=currencyUomId/></fo:block></fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell><fo:block text-align="left"> ${uiLabelMap.OrderPickedBy}: ______________</fo:block></fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell><fo:block text-align="center"> ${uiLabelMap.OrderTotalNoOfItems}: ${totalQty}</fo:block></fo:table-cell>
</fo:table-row>
</#if>
</#list>
</fo:table-body>
</fo:table>
</fo:block>
</fo:flow>
</fo:page-sequence>
</#list>
</fo:root>
</#escape>