This merge adds a real view of invoices on customer portal. It is based
on the invoice report layout and replaces the pdf-only support of current
customer portal. Future commits will add payment means notably in invoice
portal and therefore further enhance the feature.
Closes#19015.
This commit adds a page view for invoices on the customer portal. Layout
is based on the invoice report to closely match what is already done in
Odoo. It replaces the old controller that returned only the pdf.
Customers should now be able to receive both.
Future commits will improve invoice page view notably in account_payment
while adding payment options in account customer portal.
Purpose is to allow customers to access their invoice without having an
user account created. Using an access token they will be able to see
their invoice on the customer portal, like what is already done for
quotations for example.
Invoices now inherit from portal.mixin. This means they have a share url
and a method that generates correctly the /mail/view url using the
access token and signup parameters. This url is used in the email template
used to send email in the invoicing flow.
Purpose is to have methods on transactions can be called and that handle
correctly transactions linked to a sale order, but also in a near future
to an invoice, a subscription, several of them, none of them, ...
This commit already checks that sale order related code for payment
transactions is run only when a sale order is linked to a transaction.
Commit 3cfd64f63f moved the frontend chatter from a website-based module
website_mail to portal. Purpose was to allow its use in customer
portal independently from the website.
However some renaming done during the move was not properly propagated
resulting in the chatter not being loaded. This commit fixes that by
correctly using the new class node as well as widget name when
instantiating the widget.
* rename some files according to guidelines;
* clean template name to clean their ordering and ease template browsing;
* use html type for mail templates body instead of cdata;
* clean html for mail templates introduced at 96da10de6cc20486b3e37fd4c6c88eb61cbb919c;
No horse has been harmed and no functional change performed.
Integration in customer portal of this module has not been updated with
last changes done in customer portal. This commit fixes that.
* update breadcrumb use;
* update titles;
- Replace 'Use Cash Basis' checkbox by 'Tax Due' having two radio buttons,
- Based on Invoice (default)
- Based on Payment
- "Tax received account" display only when we select "Based on Payment"
- Changed the field name 'use_cash_basis' into 'tax_exigibility'.
Was PR #17326
that button was not useful: the only way to cancel a bank statement is to unreconcile the entries. And to unreconcile the entries you have to set your bank statement back to draft. Was PR #16632
When deliver all at once on a picking the expected date for it
was the minimum expected date between the stock move
for this picking. (same behavior as partial delivery)
This commit merge both min_date and max_date field in a single
field named shceduled_date. It replace min_date in views by
sheduled date that varies following picking move_type.
Original commit e38de9dfa4 is about CSS classes and state code
update. It is not clear why hiding Your Details in some cases improve the
state code update. Forward port 017ee5eab3 broke the customer portal
display using this condition. This commit fixes the customer portal by
removing the condition.
Second part of the original fix that was about using a correct base layout
to render the your details page is already done in master since the
customer portal cleaning.
Two things happen in this commit
* move portal less from web to portal. This code has been wrongly
moved to web when moving the customer portal and should be in
portal module;
* merge customer portal generic less and customer portal chatter
specific less into the same file;
We should now have only one less file for customer portal less and
located in the right addon.
Currently the image field rendering in QWeb using the /web/image
controller is done in web_editor. However there is no link between
the web editor and the rendering. The rendering can therefore be moved
directly in web.
During the move two options have been added to the rendering of image
field :
* qweb_img_raw_data: fallback on standard base64 behavior that is
otherwise impossible to achieve;
* qweb_img_responsive: True by default, add the img-responsive
class that is not always requested;
Thanks.
Show details view should directly relfect the stock move line
related to a move. However the user was not able to update
locations and it still exists a button that allow to edit
the move line. Since the move line is the final object everything
should be directly editable and the button should not exist
This commit update the view in order to be able to edit information
directly on it.
This commit correct some variables renaming forgot in
the stock refactoring introduced by commit 0a76e158e1
It also add a invisible field for active_move_line_ids in order
to pass them to the create and avoid the error about uom_id.
The function action assign on stock move try to comprare
moves origin and moves dest in order to guess the available quanity.
However with return it happens that the group by method could return
twice the same key.
The method sorted was not correctly used because it used recordset
comparator instead of their id. Sorted on recordset use set comparaison
(superset, subset,..) as defined in models.py with method __gt__, __lt__,...
This commit change the function used on sort in order to use id but
keep the old way on groupby so that we are able to get back recordset.
This will avoid useless warning when the file does not exists and
possible false positive errors in case of invalid config in this file.
Also strip output
Cherry-pick of c955c3051c
When a picking is done and the quantity done of a move is update, the
delivered quantity of the linked sale order is not updated because it's
only updated on action_done of a move.
To fix this we override the write function of stock move in the
sale_stock module to update the delivered quantity of the corresponding
sale order line
When a picking is edited in done state, the related purchase order line
received quantity is not updated.
To fix this, we add a depends on the product_uom_qty of its stock moves
which is changed when a move is edited in 'done' state
Did you know that if you iterate on an OrderedDict in Python 2 and add
to the dict during iteration, the new items will be iterated? No? Me
neither.
And did you know that that does not work in Python 3 likely because
OrderedDict's implementation details changed? Why the fuck would
anyone do that and thus why would we care you ask?
WELL WE FUCKING DO IT TURNS OUT and that breaks
test_partial_reconcile_currencies on Python 3...
Fix it, try to make it more obvious that we're doing weird crap
instead of abusing OrderedDict in ways it was never meant to be used.