[ 
https://issues.apache.org/jira/browse/OFBIZ-5759?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ingo Wolfmayr updated OFBIZ-5759:
---------------------------------
    Attachment: InvoiceTemplate.patch

> Multiple invoice templates
> --------------------------
>
>                 Key: OFBIZ-5759
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-5759
>             Project: OFBiz
>          Issue Type: New Feature
>          Components: accounting
>    Affects Versions: Trunk, Upcoming Branch
>            Reporter: Nicolas Malin
>            Priority: Minor
>              Labels: invoice, template
>         Attachments: InvoiceTemplate.patch
>
>
> Open this issue behind discussion on user mailing list :
> http://ofbiz.markmail.org/message/rtrxzvlozlnribye?q=multiple+invoice+template
>  to keep in mind and/or if some people is interested to contribute ;)
> {quote} I am looking for a way to add additional invoice templates without 
> changing to much of the original ofbiz code if possible.
> The case: - multiple unrelated companies - multi tenant environment - 
> multiple invoice layouts 
> {quote}
>  When I have this case on a projet, I use the content system to load the 
> template.
> Example : Store a default template for each organization or a template 
> specific by some customer. 
>  * Create PartyContentType : INVOICE_TEMPLATE 
>  * Load your templates en Content 
>  * Associate your content to each organization in ofbiz 
>  * if a customer have a specific template associate it
> On your InvoicePDF screen resolve the template by a groovy script : 
> {code:java}
>  //resolve if customer template is present 
> partyContents = delegator.findByAndCache("PartyContent", [partyId : 
> invoice.partyId]) 
> if (partyContents) partyContents = EntityUtil.filterByDate(partyContents, 
> invoice.invoiceDate) 
> if (partyContents) partyContent = partyContents[0]
> if (!partyContent) { //resolve if organization hasa template 
>     partyContents = delegator.findByAndCache("PartyContent", [partyId : 
> invoice.partyIdFrom]) 
>     if (partyContents) partyContents = EntityUtil.filterByDate(partyContents, 
> invoice.invoiceDate) 
>     if (partyContents) partyContent = partyContents[0]
>  }
>  {code}
>  Warn, I wrote the code on the fly, maybe it doesn't contains the absolute 
> true ;)
> Now you have a content, you can resolve your flow has you want (ftl 
> injection, content service to renderer string), etc .... 



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to