[FIX] sale: fix uneditable "Confirmation Email" template body
Website sale order confirmation email is broken by design. Indeed it has
jinja markers between html elements that do not allow them, like between
table and tr, between tr, ...
In this commit we completely rewrite the structure to correctly include
jinja markers where they are not moved or stripped by standard browsers
and editors.
Translations are updated accordingly as changing a mail template content
imply updating the whole body translation.
Followup of 74c5c00
website_sale: add website on some demo orders
Purpose is to showcase orders using website field, used notably for some
template rendering.
Forward port of afd173652214000ed and f74c86d448246b796d
closes odoo/odoo#48228
X-original-commit: d3bdb0a42eb052281b4652bf78e82b1c6c1c1d24
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
+143
-112
@@ -136,119 +136,150 @@
|
||||
<br/><br/>
|
||||
Do not hesitate to contact us if you have any questions.
|
||||
<br/><br/>
|
||||
% if object.website_id:
|
||||
<table width="100%" style="color: #454748; font-size: 12px; border-collapse: collapse;">
|
||||
<tr style="border-bottom: 2px solid #dee2e6;">
|
||||
<td width="18%"><strong>Products</strong></td>
|
||||
<td></td>
|
||||
<td><strong>Quantity</strong></td>
|
||||
<td width="10%" align="center"><strong>Price</strong></td>
|
||||
</tr>
|
||||
% for line in object.order_line:
|
||||
% if not line.is_delivery:
|
||||
<tr style="${loop.cycle('background-color: #f2f2f2', 'background-color: #ffffff')}">
|
||||
% if line.display_type == 'line_section':
|
||||
<td colspan="4"><strong>${line.name}</strong></td>
|
||||
% elif line.display_type == 'line_note':
|
||||
<td colspan="4"><i>${line.name}</i></td>
|
||||
% else:
|
||||
<td style="width: 150px;">
|
||||
<img src="/web/image/product.product/${line.product_id.id}/image_128" style="width: 64px; height: 64px; object-fit: contain;" alt="Product image"></img>
|
||||
</td>
|
||||
<td align="left">${line.product_id.name}</td>
|
||||
<td>${line.product_uom_qty}</td>
|
||||
% if object.user_id.has_group('account.group_show_line_subtotals_tax_excluded'):
|
||||
<td align="right">${format_amount(line.price_reduce_taxexcl, object.currency_id)}</td>
|
||||
% endif
|
||||
% if object.user_id.has_group('account.group_show_line_subtotals_tax_included'):
|
||||
<td align="right">${format_amount(line.price_reduce_taxinc, object.currency_id)}</td>
|
||||
% endif
|
||||
% endif
|
||||
</tr>
|
||||
% endif
|
||||
% endfor
|
||||
</table>
|
||||
<table width="40%" style="color: #454748; font-size: 12px; border-spacing: 0px 4px;" align="right">
|
||||
% if object.carrier_id:
|
||||
<tr>
|
||||
<td style="border-top: 1px solid #dee2e6;" align="right"><strong>Delivery:</strong></td>
|
||||
<td style="border-top: 1px solid #dee2e6;" align="right">${format_amount(object.amount_delivery, object.currency_id)}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="30%" align="right"><strong>SubTotal:</strong></td>
|
||||
<td align="right">${format_amount(object.amount_untaxed, object.currency_id)}</td>
|
||||
</tr>
|
||||
% else:
|
||||
<tr>
|
||||
<td style="border-top: 1px solid #dee2e6;" width="30%" align="right"><strong>SubTotal:</strong></td>
|
||||
<td style="border-top: 1px solid #dee2e6;" align="right">${format_amount(object.amount_untaxed, object.currency_id)}</td>
|
||||
</tr>
|
||||
% endif
|
||||
<tr>
|
||||
<td align="right"><strong>Taxes:</strong></td>
|
||||
<td align="right">${format_amount(object.amount_tax, object.currency_id)}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border-top: 1px solid #dee2e6;" align="right"><strong>Total:</strong></td>
|
||||
<td style="border-top: 1px solid #dee2e6;" align="right">${format_amount(object.amount_total, object.currency_id)}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br/>
|
||||
<table width="100%" style="color: #454748; font-size: 12px;">
|
||||
% if object.partner_invoice_id:
|
||||
<tr>
|
||||
<td style="padding-top: 10px;">
|
||||
<strong>Bill to:</strong>
|
||||
${object.partner_invoice_id.street or ''}
|
||||
${object.partner_invoice_id.city or ''}
|
||||
${object.partner_invoice_id.state_id.name or ''}
|
||||
${object.partner_invoice_id.zip or ''}
|
||||
${object.partner_invoice_id.country_id.name or ''}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>Payment Method:</strong>
|
||||
% if transaction.payment_token_id:
|
||||
${transaction.payment_token_id.name}
|
||||
% else:
|
||||
${transaction.acquirer_id.name}
|
||||
% endif
|
||||
(${format_amount(transaction.amount, object.currency_id)})
|
||||
</td>
|
||||
</tr>
|
||||
% endif
|
||||
% if object.partner_shipping_id and not object.only_services:
|
||||
<tr>
|
||||
<td>
|
||||
<br/>
|
||||
<strong>Ship to:</strong>
|
||||
${object.partner_shipping_id.street or ''}
|
||||
${object.partner_shipping_id.city or ''}
|
||||
${object.partner_shipping_id.state_id.name or ''}
|
||||
${object.partner_shipping_id.zip or ''}
|
||||
${object.partner_shipping_id.country_id.name or ''}
|
||||
</td>
|
||||
</tr>
|
||||
% if object.carrier_id:
|
||||
<tr>
|
||||
<td>
|
||||
<strong>Shipping Method:</strong>
|
||||
${object.carrier_id.name}
|
||||
% if object.carrier_id.fixed_price == 0.0:
|
||||
(Free)
|
||||
% else:
|
||||
(${format_amount(object.carrier_id.fixed_price, object.currency_id)})
|
||||
% endif
|
||||
</td>
|
||||
</tr>
|
||||
% endif
|
||||
% endif
|
||||
</table>
|
||||
% endif
|
||||
</p>
|
||||
</div>
|
||||
</field>
|
||||
% if object.website_id:
|
||||
<div style="margin: 0px; padding: 0px;">
|
||||
<table width="100%" style="color: #454748; font-size: 12px; border-collapse: collapse;">
|
||||
<tr style="border-bottom: 2px solid #dee2e6;">
|
||||
<td width="18%"><strong>Products</strong></td>
|
||||
<td></td>
|
||||
<td><strong>Quantity</strong></td>
|
||||
<td width="10%" align="center"><strong>Price</strong></td>
|
||||
</tr>
|
||||
</table>
|
||||
% for line in object.order_line:
|
||||
% if not line.is_delivery and line.display_type in ['line_section', 'line_note']:
|
||||
<table width="100%" style="color: #454748; font-size: 12px; border-collapse: collapse;">
|
||||
<tr style="${loop.cycle('background-color: #f2f2f2', 'background-color: #ffffff')}">
|
||||
<td colspan="4">
|
||||
% if line.display_type == 'line_section':
|
||||
<strong>${line.name}</strong>
|
||||
% elif line.display_type == 'line_note':
|
||||
<i>${line.name}</i>
|
||||
% endif
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
% elif not line.is_delivery
|
||||
<table width="100%" style="color: #454748; font-size: 12px; border-collapse: collapse;">
|
||||
<tr style="${loop.cycle('background-color: #f2f2f2', 'background-color: #ffffff')}">
|
||||
<td style="width: 150px;">
|
||||
<img src="/web/image/product.product/${line.product_id.id}/image_128" style="width: 64px; height: 64px; object-fit: contain;" alt="Product image"></img>
|
||||
</td>
|
||||
<td align="left">${line.product_id.name}</td>
|
||||
<td>${line.product_uom_qty}</td>
|
||||
% if object.user_id.has_group('account.group_show_line_subtotals_tax_excluded'):
|
||||
<td align="right">${format_amount(line.price_reduce_taxexcl, object.currency_id)}</td>
|
||||
% endif
|
||||
% if object.user_id.has_group('account.group_show_line_subtotals_tax_included'):
|
||||
<td align="right">${format_amount(line.price_reduce_taxinc, object.currency_id)}</td>
|
||||
% endif
|
||||
</tr>
|
||||
</table>
|
||||
% endif
|
||||
% endfor
|
||||
</div>
|
||||
% if object.carrier_id:
|
||||
<div style="margin: 0px; padding: 0px;">
|
||||
<table width="100%" style="color: #454748; font-size: 12px; border-spacing: 0px 4px;" align="right">
|
||||
<tr>
|
||||
<td style="width: 60%"/>
|
||||
<td style="width: 30%; border-top: 1px solid #dee2e6;" align="right"><strong>Delivery:</strong></td>
|
||||
<td style="width: 10%; border-top: 1px solid #dee2e6;" align="right">${format_amount(object.amount_delivery, object.currency_id)}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 60%"/>
|
||||
<td style="width: 30%;" align="right"><strong>SubTotal:</strong></td>
|
||||
<td style="width: 10%;" align="right">${format_amount(object.amount_untaxed, object.currency_id)}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
% else:
|
||||
<div style="margin: 0px; padding: 0px;">
|
||||
<table width="100%" style="color: #454748; font-size: 12px; border-spacing: 0px 4px;" align="right">
|
||||
<tr>
|
||||
<td style="width: 60%"/>
|
||||
<td style="width: 30%; border-top: 1px solid #dee2e6;" align="right"><strong>SubTotal:</strong></td>
|
||||
<td style="width: 10%; border-top: 1px solid #dee2e6;" align="right">${format_amount(object.amount_untaxed, object.currency_id)}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
% endif
|
||||
<div style="margin: 0px; padding: 0px;">
|
||||
<table width="100%" style="color: #454748; font-size: 12px; border-spacing: 0px 4px;" align="right">
|
||||
<tr>
|
||||
<td style="width: 60%"/>
|
||||
<td style="width: 30%;" align="right"><strong>Taxes:</strong></td>
|
||||
<td style="width: 10%;" align="right">${format_amount(object.amount_tax, object.currency_id)}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 60%"/>
|
||||
<td style="width: 30%; border-top: 1px solid #dee2e6;" align="right"><strong>Total:</strong></td>
|
||||
<td style="width: 10%; border-top: 1px solid #dee2e6;" align="right">${format_amount(object.amount_total, object.currency_id)}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
% if object.partner_invoice_id:
|
||||
<div style="margin: 0px; padding: 0px;">
|
||||
<table width="100%" style="color: #454748; font-size: 12px;">
|
||||
<tr>
|
||||
<td style="padding-top: 10px;">
|
||||
<strong>Bill to:</strong>
|
||||
${object.partner_invoice_id.street or ''}
|
||||
${object.partner_invoice_id.city or ''}
|
||||
${object.partner_invoice_id.state_id.name or ''}
|
||||
${object.partner_invoice_id.zip or ''}
|
||||
${object.partner_invoice_id.country_id.name or ''}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>Payment Method:</strong>
|
||||
% if transaction.payment_token_id:
|
||||
${transaction.payment_token_id.name}
|
||||
% else:
|
||||
${transaction.acquirer_id.name}
|
||||
% endif
|
||||
(${format_amount(transaction.amount, object.currency_id)})
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
% endif
|
||||
% if object.partner_shipping_id and not object.only_services:
|
||||
<div style="margin: 0px; padding: 0px;">
|
||||
<table width="100%" style="color: #454748; font-size: 12px;">
|
||||
<tr>
|
||||
<td>
|
||||
<br/>
|
||||
<strong>Ship to:</strong>
|
||||
${object.partner_shipping_id.street or ''}
|
||||
${object.partner_shipping_id.city or ''}
|
||||
${object.partner_shipping_id.state_id.name or ''}
|
||||
${object.partner_shipping_id.zip or ''}
|
||||
${object.partner_shipping_id.country_id.name or ''}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
% if object.carrier_id:
|
||||
<table width="100%" style="color: #454748; font-size: 12px;">
|
||||
<tr>
|
||||
<td>
|
||||
<strong>Shipping Method:</strong>
|
||||
${object.carrier_id.name}
|
||||
% if object.carrier_id.fixed_price == 0.0:
|
||||
(Free)
|
||||
% else:
|
||||
(${format_amount(object.carrier_id.fixed_price, object.currency_id)})
|
||||
% endif
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
% endif
|
||||
</div>
|
||||
% endif
|
||||
% endif
|
||||
</div></field>
|
||||
<field name="report_template" ref="action_report_saleorder"/>
|
||||
<field name="report_name">${(object.name or '').replace('/','_')}</field>
|
||||
<field name="lang">${object.partner_id.lang}</field>
|
||||
|
||||
+157
-128
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server saas~13.2\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-02-13 08:34+0000\n"
|
||||
"PO-Revision-Date: 2020-02-13 08:34+0000\n"
|
||||
"POT-Creation-Date: 2020-03-24 07:00+0000\n"
|
||||
"PO-Revision-Date: 2020-03-24 07:00+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -95,119 +95,150 @@ msgid ""
|
||||
" <br/><br/>\n"
|
||||
" Do not hesitate to contact us if you have any questions.\n"
|
||||
" <br/><br/>\n"
|
||||
" % if object.website_id:\n"
|
||||
" <table width=\"100%\" style=\"color: #454748; font-size: 12px; border-collapse: collapse;\">\n"
|
||||
" <tr style=\"border-bottom: 2px solid #dee2e6;\">\n"
|
||||
" <td width=\"18%\"><strong>Products</strong></td>\n"
|
||||
" <td/>\n"
|
||||
" <td><strong>Quantity</strong></td>\n"
|
||||
" <td width=\"10%\" align=\"center\"><strong>Price</strong></td>\n"
|
||||
" </tr>\n"
|
||||
" % for line in object.order_line:\n"
|
||||
" % if not line.is_delivery:\n"
|
||||
" <tr style=\"${loop.cycle('background-color: #f2f2f2', 'background-color: #ffffff')}\">\n"
|
||||
" % if line.display_type == 'line_section':\n"
|
||||
" <td colspan=\"4\"><strong>${line.name}</strong></td>\n"
|
||||
" % elif line.display_type == 'line_note':\n"
|
||||
" <td colspan=\"4\"><i>${line.name}</i></td>\n"
|
||||
" % else:\n"
|
||||
" <td style=\"width: 150px;\">\n"
|
||||
" <img src=\"/web/image/product.product/${line.product_id.id}/image_128\" style=\"width: 64px; height: 64px; object-fit: contain;\" alt=\"Product image\"/>\n"
|
||||
" </td>\n"
|
||||
" <td align=\"left\">${line.product_id.name}</td>\n"
|
||||
" <td>${line.product_uom_qty}</td>\n"
|
||||
" % if object.user_id.has_group('account.group_show_line_subtotals_tax_excluded'):\n"
|
||||
" <td align=\"right\">${format_amount(line.price_reduce_taxexcl, object.currency_id)}</td>\n"
|
||||
" % endif\n"
|
||||
" % if object.user_id.has_group('account.group_show_line_subtotals_tax_included'):\n"
|
||||
" <td align=\"right\">${format_amount(line.price_reduce_taxinc, object.currency_id)}</td>\n"
|
||||
" % endif\n"
|
||||
" % endif\n"
|
||||
" </tr>\n"
|
||||
" % endif\n"
|
||||
" % endfor\n"
|
||||
" </table>\n"
|
||||
" <table width=\"40%\" style=\"color: #454748; font-size: 12px; border-spacing: 0px 4px;\" align=\"right\">\n"
|
||||
" % if object.carrier_id:\n"
|
||||
" <tr>\n"
|
||||
" <td style=\"border-top: 1px solid #dee2e6;\" align=\"right\"><strong>Delivery:</strong></td>\n"
|
||||
" <td style=\"border-top: 1px solid #dee2e6;\" align=\"right\">${format_amount(object.amount_delivery, object.currency_id)}</td>\n"
|
||||
" </tr>\n"
|
||||
" <tr>\n"
|
||||
" <td width=\"30%\" align=\"right\"><strong>SubTotal:</strong></td>\n"
|
||||
" <td align=\"right\">${format_amount(object.amount_untaxed, object.currency_id)}</td>\n"
|
||||
" </tr>\n"
|
||||
" % else:\n"
|
||||
" <tr>\n"
|
||||
" <td style=\"border-top: 1px solid #dee2e6;\" width=\"30%\" align=\"right\"><strong>SubTotal:</strong></td>\n"
|
||||
" <td style=\"border-top: 1px solid #dee2e6;\" align=\"right\">${format_amount(object.amount_untaxed, object.currency_id)}</td>\n"
|
||||
" </tr>\n"
|
||||
" % endif\n"
|
||||
" <tr>\n"
|
||||
" <td align=\"right\"><strong>Taxes:</strong></td>\n"
|
||||
" <td align=\"right\">${format_amount(object.amount_tax, object.currency_id)}</td>\n"
|
||||
" </tr>\n"
|
||||
" <tr>\n"
|
||||
" <td style=\"border-top: 1px solid #dee2e6;\" align=\"right\"><strong>Total:</strong></td>\n"
|
||||
" <td style=\"border-top: 1px solid #dee2e6;\" align=\"right\">${format_amount(object.amount_total, object.currency_id)}</td>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
" <br/>\n"
|
||||
" <table width=\"100%\" style=\"color: #454748; font-size: 12px;\">\n"
|
||||
" % if object.partner_invoice_id:\n"
|
||||
" <tr>\n"
|
||||
" <td style=\"padding-top: 10px;\">\n"
|
||||
" <strong>Bill to:</strong>\n"
|
||||
" ${object.partner_invoice_id.street or ''}\n"
|
||||
" ${object.partner_invoice_id.city or ''}\n"
|
||||
" ${object.partner_invoice_id.state_id.name or ''}\n"
|
||||
" ${object.partner_invoice_id.zip or ''}\n"
|
||||
" ${object.partner_invoice_id.country_id.name or ''}\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" <tr>\n"
|
||||
" <td>\n"
|
||||
" <strong>Payment Method:</strong>\n"
|
||||
" % if transaction.payment_token_id:\n"
|
||||
" ${transaction.payment_token_id.name}\n"
|
||||
" % else:\n"
|
||||
" ${transaction.acquirer_id.name}\n"
|
||||
" % endif\n"
|
||||
" (${format_amount(transaction.amount, object.currency_id)})\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" % endif\n"
|
||||
" % if object.partner_shipping_id and not object.only_services:\n"
|
||||
" <tr>\n"
|
||||
" <td>\n"
|
||||
" <br/>\n"
|
||||
" <strong>Ship to:</strong>\n"
|
||||
" ${object.partner_shipping_id.street or ''}\n"
|
||||
" ${object.partner_shipping_id.city or ''}\n"
|
||||
" ${object.partner_shipping_id.state_id.name or ''}\n"
|
||||
" ${object.partner_shipping_id.zip or ''}\n"
|
||||
" ${object.partner_shipping_id.country_id.name or ''}\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" % if object.carrier_id:\n"
|
||||
" <tr>\n"
|
||||
" <td>\n"
|
||||
" <strong>Shipping Method:</strong>\n"
|
||||
" ${object.carrier_id.name}\n"
|
||||
" % if object.carrier_id.fixed_price == 0.0:\n"
|
||||
" (Free)\n"
|
||||
" % else:\n"
|
||||
" (${format_amount(object.carrier_id.fixed_price, object.currency_id)})\n"
|
||||
" % endif\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" % endif\n"
|
||||
" % endif\n"
|
||||
" </table>\n"
|
||||
" % endif\n"
|
||||
" </p>\n"
|
||||
"</div>\n"
|
||||
" "
|
||||
"% if object.website_id:\n"
|
||||
" <div style=\"margin: 0px; padding: 0px;\">\n"
|
||||
" <table width=\"100%\" style=\"color: #454748; font-size: 12px; border-collapse: collapse;\">\n"
|
||||
" <tr style=\"border-bottom: 2px solid #dee2e6;\">\n"
|
||||
" <td width=\"18%\"><strong>Products</strong></td>\n"
|
||||
" <td/>\n"
|
||||
" <td><strong>Quantity</strong></td>\n"
|
||||
" <td width=\"10%\" align=\"center\"><strong>Price</strong></td>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
" % for line in object.order_line:\n"
|
||||
" % if not line.is_delivery and line.display_type in ['line_section', 'line_note']:\n"
|
||||
" <table width=\"100%\" style=\"color: #454748; font-size: 12px; border-collapse: collapse;\">\n"
|
||||
" <tr style=\"${loop.cycle('background-color: #f2f2f2', 'background-color: #ffffff')}\">\n"
|
||||
" <td colspan=\"4\">\n"
|
||||
" % if line.display_type == 'line_section':\n"
|
||||
" <strong>${line.name}</strong>\n"
|
||||
" % elif line.display_type == 'line_note':\n"
|
||||
" <i>${line.name}</i>\n"
|
||||
" % endif\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
" % elif not line.is_delivery\n"
|
||||
" <table width=\"100%\" style=\"color: #454748; font-size: 12px; border-collapse: collapse;\">\n"
|
||||
" <tr style=\"${loop.cycle('background-color: #f2f2f2', 'background-color: #ffffff')}\">\n"
|
||||
" <td style=\"width: 150px;\">\n"
|
||||
" <img src=\"/web/image/product.product/${line.product_id.id}/image_128\" style=\"width: 64px; height: 64px; object-fit: contain;\" alt=\"Product image\"/>\n"
|
||||
" </td>\n"
|
||||
" <td align=\"left\">${line.product_id.name}</td>\n"
|
||||
" <td>${line.product_uom_qty}</td>\n"
|
||||
" % if object.user_id.has_group('account.group_show_line_subtotals_tax_excluded'):\n"
|
||||
" <td align=\"right\">${format_amount(line.price_reduce_taxexcl, object.currency_id)}</td>\n"
|
||||
" % endif\n"
|
||||
" % if object.user_id.has_group('account.group_show_line_subtotals_tax_included'):\n"
|
||||
" <td align=\"right\">${format_amount(line.price_reduce_taxinc, object.currency_id)}</td>\n"
|
||||
" % endif\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
" % endif\n"
|
||||
" % endfor\n"
|
||||
" </div>\n"
|
||||
" % if object.carrier_id:\n"
|
||||
" <div style=\"margin: 0px; padding: 0px;\">\n"
|
||||
" <table width=\"100%\" style=\"color: #454748; font-size: 12px; border-spacing: 0px 4px;\" align=\"right\">\n"
|
||||
" <tr>\n"
|
||||
" <td style=\"width: 60%\"/>\n"
|
||||
" <td style=\"width: 30%; border-top: 1px solid #dee2e6;\" align=\"right\"><strong>Delivery:</strong></td>\n"
|
||||
" <td style=\"width: 10%; border-top: 1px solid #dee2e6;\" align=\"right\">${format_amount(object.amount_delivery, object.currency_id)}</td>\n"
|
||||
" </tr>\n"
|
||||
" <tr>\n"
|
||||
" <td style=\"width: 60%\"/>\n"
|
||||
" <td style=\"width: 30%;\" align=\"right\"><strong>SubTotal:</strong></td>\n"
|
||||
" <td style=\"width: 10%;\" align=\"right\">${format_amount(object.amount_untaxed, object.currency_id)}</td>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
" </div>\n"
|
||||
" % else:\n"
|
||||
" <div style=\"margin: 0px; padding: 0px;\">\n"
|
||||
" <table width=\"100%\" style=\"color: #454748; font-size: 12px; border-spacing: 0px 4px;\" align=\"right\">\n"
|
||||
" <tr>\n"
|
||||
" <td style=\"width: 60%\"/>\n"
|
||||
" <td style=\"width: 30%; border-top: 1px solid #dee2e6;\" align=\"right\"><strong>SubTotal:</strong></td>\n"
|
||||
" <td style=\"width: 10%; border-top: 1px solid #dee2e6;\" align=\"right\">${format_amount(object.amount_untaxed, object.currency_id)}</td>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
" </div>\n"
|
||||
" % endif\n"
|
||||
" <div style=\"margin: 0px; padding: 0px;\">\n"
|
||||
" <table width=\"100%\" style=\"color: #454748; font-size: 12px; border-spacing: 0px 4px;\" align=\"right\">\n"
|
||||
" <tr>\n"
|
||||
" <td style=\"width: 60%\"/>\n"
|
||||
" <td style=\"width: 30%;\" align=\"right\"><strong>Taxes:</strong></td>\n"
|
||||
" <td style=\"width: 10%;\" align=\"right\">${format_amount(object.amount_tax, object.currency_id)}</td>\n"
|
||||
" </tr>\n"
|
||||
" <tr>\n"
|
||||
" <td style=\"width: 60%\"/>\n"
|
||||
" <td style=\"width: 30%; border-top: 1px solid #dee2e6;\" align=\"right\"><strong>Total:</strong></td>\n"
|
||||
" <td style=\"width: 10%; border-top: 1px solid #dee2e6;\" align=\"right\">${format_amount(object.amount_total, object.currency_id)}</td>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
" </div>\n"
|
||||
" % if object.partner_invoice_id:\n"
|
||||
" <div style=\"margin: 0px; padding: 0px;\">\n"
|
||||
" <table width=\"100%\" style=\"color: #454748; font-size: 12px;\">\n"
|
||||
" <tr>\n"
|
||||
" <td style=\"padding-top: 10px;\">\n"
|
||||
" <strong>Bill to:</strong>\n"
|
||||
" ${object.partner_invoice_id.street or ''}\n"
|
||||
" ${object.partner_invoice_id.city or ''}\n"
|
||||
" ${object.partner_invoice_id.state_id.name or ''}\n"
|
||||
" ${object.partner_invoice_id.zip or ''}\n"
|
||||
" ${object.partner_invoice_id.country_id.name or ''}\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" <tr>\n"
|
||||
" <td>\n"
|
||||
" <strong>Payment Method:</strong>\n"
|
||||
" % if transaction.payment_token_id:\n"
|
||||
" ${transaction.payment_token_id.name}\n"
|
||||
" % else:\n"
|
||||
" ${transaction.acquirer_id.name}\n"
|
||||
" % endif\n"
|
||||
" (${format_amount(transaction.amount, object.currency_id)})\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
" </div>\n"
|
||||
" % endif\n"
|
||||
" % if object.partner_shipping_id and not object.only_services:\n"
|
||||
" <div style=\"margin: 0px; padding: 0px;\">\n"
|
||||
" <table width=\"100%\" style=\"color: #454748; font-size: 12px;\">\n"
|
||||
" <tr>\n"
|
||||
" <td>\n"
|
||||
" <br/>\n"
|
||||
" <strong>Ship to:</strong>\n"
|
||||
" ${object.partner_shipping_id.street or ''}\n"
|
||||
" ${object.partner_shipping_id.city or ''}\n"
|
||||
" ${object.partner_shipping_id.state_id.name or ''}\n"
|
||||
" ${object.partner_shipping_id.zip or ''}\n"
|
||||
" ${object.partner_shipping_id.country_id.name or ''}\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
" % if object.carrier_id:\n"
|
||||
" <table width=\"100%\" style=\"color: #454748; font-size: 12px;\">\n"
|
||||
" <tr>\n"
|
||||
" <td>\n"
|
||||
" <strong>Shipping Method:</strong>\n"
|
||||
" ${object.carrier_id.name}\n"
|
||||
" % if object.carrier_id.fixed_price == 0.0:\n"
|
||||
" (Free)\n"
|
||||
" % else:\n"
|
||||
" (${format_amount(object.carrier_id.fixed_price, object.currency_id)})\n"
|
||||
" % endif\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" </table>\n"
|
||||
" % endif\n"
|
||||
" </div>\n"
|
||||
" % endif\n"
|
||||
"% endif\n"
|
||||
"</div>"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale
|
||||
@@ -1280,9 +1311,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,help:sale.field_sale_order__expected_date
|
||||
msgid ""
|
||||
"Delivery date you can promise to the customer, computed from the minimum "
|
||||
"lead time of the order lines in case of Service products. In case of "
|
||||
"shipping, the shipping policy of the order will be taken into account to "
|
||||
"either use the minimum or maximum lead time of the order lines."
|
||||
"lead time of the order lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: sale
|
||||
@@ -2034,6 +2063,11 @@ msgstr ""
|
||||
msgid "Margins"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale
|
||||
#: model:ir.actions.server,name:sale.model_sale_order_action_quotation_sent
|
||||
msgid "Mark Quotation as Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale
|
||||
#: model_terms:ir.ui.view,arch_db:sale.account_invoice_form
|
||||
msgid "Marketing"
|
||||
@@ -2290,6 +2324,12 @@ msgstr ""
|
||||
msgid "Only Integer Value should be valid."
|
||||
msgstr ""
|
||||
|
||||
#. module: sale
|
||||
#: code:addons/sale/models/sale.py:0
|
||||
#, python-format
|
||||
msgid "Only draft orders can be marked as sent directly."
|
||||
msgstr ""
|
||||
|
||||
#. module: sale
|
||||
#: model:ir.model.constraint,message:sale.constraint_product_attribute_custom_value_sol_custom_value_unique
|
||||
msgid ""
|
||||
@@ -4128,14 +4168,3 @@ msgstr ""
|
||||
#: model:ir.model.fields,help:sale.field_sale_order__amount_by_group
|
||||
msgid "type: [(name, amount, base, formated amount, formated base)]"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale
|
||||
#: model:ir.actions.server,name:sale.model_sale_order_action_quotation_sent
|
||||
msgid "Mark Quotation as Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale
|
||||
#: code:addons/sale/models/sale.py:0
|
||||
#, python-format
|
||||
msgid "Only draft orders can be marked as sent directly."
|
||||
msgstr ""
|
||||
|
||||
@@ -410,6 +410,7 @@
|
||||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="(datetime.now()-relativedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
@@ -430,6 +431,7 @@
|
||||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="datetime.now()"/>
|
||||
@@ -450,6 +452,7 @@
|
||||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="(datetime.now()-relativedelta(hours=2)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
@@ -479,6 +482,7 @@
|
||||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="datetime.now()"/>
|
||||
@@ -499,6 +503,7 @@
|
||||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="(datetime.now()-timedelta(hours=1)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
@@ -519,6 +524,7 @@
|
||||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="payment_term_id" ref="account.account_payment_term_immediate"/>
|
||||
@@ -541,6 +547,7 @@
|
||||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
</record>
|
||||
@@ -560,6 +567,7 @@
|
||||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="datetime.now()-relativedelta(months=1)"/>
|
||||
@@ -581,6 +589,7 @@
|
||||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="datetime.now()-relativedelta(months=1, days=2)"/>
|
||||
@@ -602,6 +611,7 @@
|
||||
<field name="partner_invoice_id" ref="base.res_partner_address_25"/>
|
||||
<field name="partner_shipping_id" ref="base.res_partner_address_25"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="website_id" ref="website.default_website"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
<field name="team_id" ref="sales_team.salesteam_website_sales"/>
|
||||
<field name="date_order" eval="datetime.now()-relativedelta(months=2)"/>
|
||||
|
||||
Reference in New Issue
Block a user