Commit Graph
102590 Commits
Author SHA1 Message Date
Nicolas Martinelli 11321b09fb [FIX] point_of_sale: PoS journal
complement of commit e99e0d6922, to make it work in multi-company
environments.

opw-691771
2016-11-08 10:07:27 +01:00
Goffin Simon dfe12d20df [FIX] account_asset: context in open_entries
The function open_entries doesn't have to propagate the context
because it propagated group_by from other models.
Example:
- Click on Accounting > Adviser > Assets
- Click on Group by > Category
- Click on an asset
- Click Entries

The group by "category_id" was propagated on the model "account.move"
and it led to a traceback.

opw:692888
2016-11-08 09:27:44 +01:00
Christophe Matthieu af865c2e9e [FIX] web_editor: widget html preview doesn't match wysiwig editor (widget html iframe)
The widget html is used for plain text and html content.
Need to check if the content is a valid html code, if is not wrap with p tag every lines.

opw-692158
2016-11-07 12:02:13 +01:00
Nicolas Martinelli 62b3de52dc [FIX] account: write-off currency
In a multi-currency environment, company currency is USD
- Create an invoice of 100 EUR, corresponding to 65 USD
- Register a payment directly from the invoice (button "Register
  Payment") of 60 USD. Choose "Mark invoice as fully paid".
- The write-off line contains the amount in the invoice currency (field
  `amount_currency` filled in.

This was introduced in commit 003f2ee9b.

On the other hand:
- Create an invoice of 100 EUR, corresponding to 65 USD
- Create a bank statement of 60 USD.
- Proceed to reconciliation, and create a write-off line of 5 USD.
- In this case, the write-off line does not contain the amount in the
  invoice currency.

The user expects the same behavior in both cases, so we introduce the
amount currency in the second case.

opw-690784
2016-11-07 09:13:25 +01:00
Odoo Translation Bot ac1c9b6cb4 [I18N] Update translation terms from Transifex 2016-11-06 00:36:01 +01:00
Joren Van Onder 0be279174d [FIX] point_of_sale: split up validate_order for easier customization
Certain localities (eg. Colombia, but South America in general) legally
require somewhat complex behavior when validating a POS order.

It was difficult to implement this behavior in the POS. The
validate_order function did way too much and was way too large. If a
user wanted to add an additional check that an order has to pass before
allowing validation the user would probably have to copy all the
validate_order code.

To solve these issues we split the functionality of validate_order into
two functions:

order_is_valid: returns true or false depending on the validity of the
order

finalize_validation: finalizes the order by sending it to the backend
etc.

Fixes #13142
Closes #13994
2016-11-04 17:49:50 -07:00
Christophe Matthieu 2c1bcc5b11 [FIX] web: display error when js modules fails
Up to this commit, the JS module system only notified failed modules as
an 'information' instead of an 'error'.  This was annoying, since the
runbot takes the result into account, and might be green even though a
module failed to load.
2016-11-04 16:40:58 +01:00
Christophe Matthieu 5f16a6f8ab [FIX] web_kanban: display kanban tooltip
Fixes opw-687563
2016-11-04 16:34:20 +01:00
Christophe Matthieu a8e79e960a [FIX] bus,im_odoo_support, web*: fix various memory leaks
* Tip are never destroyed when change view mode
* unbind methods
* mail: memory leak with unbind methods
* web: memory leak because 'ui-autocomplete' is never destroyed
* web_editor: memory leak for wrong unbind on destroy
* web: memory leak: must remove fileupload handler
* bus: memory leak: correctly debind handlers on window in bus.Bus
* remove handlers on switch buttons and views $buttons
* remove handlers on breadcrumbs
* web: memory leak: correctly debind handlers
* im_odoo_support: memory leak: remove fileupload handler odoo_support

Note: part of this commit was actually authored by aab
2016-11-04 14:07:35 +01:00
Josse Colpaert 3cb3379456 [FIX] point_of_sale -> stock: handling of lots/serial numbers
Before, the quantities on the pack operations were set also for the
pack operations that should have lots and had not, which is an inconsistency.
As at the end of the PoS, errors are not shown and not rollbacked, this
created really nasty situations.  With this code, it was never meant to
use lots in the PoS, but as the picking was not validated (but existed, because
not rollbacked) some people thought it as a wanted feature.

In the mean time, we had commit fafc048d02, but it will give
problems as it will not automatically create a backorder.  It is
better not to do anything when lots are involved somewhere in the picking
as then the user will see the open pickings in the PoS Orders picking type.
It is also important to not do anything when it is a move without a picking.

Needs to be forward ported to saas-11, where the file structure changed.

opw: 692045
2016-11-04 10:22:46 +01:00
qdp-odoo a0e0e14b70 [FIX] account: fix manual reconciliation with a writeoff that includes a tax.
The tax has to be only on the second line because otherwise the accounting entry is not correct. Note that I'm not sure it is a usefull use case, but at least the accounting entry of the w/o is now logical and corresponds to what you expect (and what you see on screen). OPW 689806
2016-11-04 10:13:39 +01:00
Nicolas Martinelli 30a3c05975 [FIX] product, stock_account: fields in product view
Previous commit b6cbc36f9 hides volume, weight and standard price in the
product view if a product has variants. The use case was the following:
- Create a product (template)
- Give a value to these fields
- Add attributes to the product (this creates variants)

The values were reset to zero. This is a normal behavior since the
relevant values are now on the product (product).

This reverts commit b6cbc36f9a.

opw-692833
2016-11-04 08:10:33 +01:00
Joren Van Onder fafc048d02 [FIX] point_of_sale: only set qty_done on non-tracked products
The POS attempts to auto-validate pickings and so it sets qty_done of
the pack operations to equal product_qty. In the case of a pack
operation about a tracked product this doesn't make much sense, as in
that case auto-validation will fail and serial/lot numbers have to be
manually specified by the user. Without this patch you end up with pack
operations that look like they're done, but still need to have
serial/lot numbers set.

opw-690516
2016-11-03 14:14:40 -07:00
qdp-odoo 5a77ff6f30 [FIX] stock_dropshipping: fix dropship accounting entries to avoid interim account never cleared.
This effectively reverts the patch 7bdd4de that was made on 8.0 then reverted by 001610e (in 8.0 too) but each of them manually forward ported to 9.0, except that the forward port of the last one forgot to remove the faulty commit.
2016-11-03 19:55:23 +01:00
Goffin Simon 5f0bbe797f [FIX] sale: product_id_change with different unit of measure
When changing the product of SO line if the uom_id is different,
the uom of the product must be changed and quantity ordered is set
to 1.0.

opw:692556
2016-11-03 10:39:53 +01:00
qsm-odoo a545eb3919 [FIX] website: update gallery snippet thumbnails once an image is changed 2016-11-03 09:57:22 +01:00
qsm-odoo d632236c9c [FIX] mail: open follower menu to the right to prevent screen overflow 2016-11-03 09:54:29 +01:00
Nicolas Martinelli 0a3899b72c [FIX] account_asset: first depreciation amount
When an asset is set as Prorata Temporis, with a one month period, the
first depreciation amount is computed on the basis of the remaining days
in the purchase year. This doesn't make sense for a monthly
depreciation.

This commit makes the distinction between a monthly and a yearly
depreciation. In the case of a monthly depreciation, the remaining days
in the purchase month are taken into account.

opw-690034
2016-11-03 09:08:09 +01:00
Christophe Simonis 92c81dc440 [MERGE] forward port branch saas-6 up to ab8d07c 2016-11-02 17:26:05 +01:00
Christophe Simonis ab8d07cf1f [MERGE] forward port branch 8.0 up to 86a9b78 2016-11-02 16:50:10 +01:00
Christophe Simonis 86a9b7893e [IMP] tests: use long message in case of error 2016-11-02 11:45:29 +01:00
qdp-odoo 9542924b94 [FIX] account: fix the bank statement reconciliation that wasn't proposing antthing for credits on liquidity accounts because of a wrong sql query (looking on negative values in credit columns 2016-10-31 17:37:18 +01:00
Goffin Simon ef78955c32 [FIX] stock: name_search on stock.picking.type
Before the fix,  the search was made on the picking_type.name
instead of the picking_type.warehouse_id.name

opw:692256
2016-10-31 14:17:23 +01:00
Nicolas Lempereur d05136a0b2 [IMP] website: use default language for some bots
Currently when using a language on the website, the following is done in
this order to choose which one will be used:

1) use a language code if present in the url (eg. /fr_BE/),
2) use a language similar to the one in the url,
3) use a previously choosed language (saved in cookie),
4) use the browser language if available on website,
5) use a language similar to the browser language,
6) use the default website language

When a bot is requesting a page, he could either not specify a browser
language (en_US is set as default) or sometimes specify english
erroneously.

In these instance, we will then never use the default website language
if an english language is installed.

This fix changes this behaviour so if a bot is visiting a page, the 4th
and 5th steps are skipped and the default website language is used
instead of using the browser language.

closes #14033
opw-690910
2016-10-31 13:43:01 +01:00
Goffin Simon d406314638 [FIX] account_voucher: Wrong reconciliation of customer payments
Steps to reproduce :

1. Create a new customer
2. Create an invoice with an amount of 50.- for this new customer and validate it
3. Create a refund with an amount of 70.- for the same customer and validate it
4. Create a Customer Payment for this customer and validate it. The Invoice will be paid with 50.- of the refund. 20.- are still on residual in the refund.
5. Create a new invoice with an amount of 50.- for the same customer.
6. Create a new Customer Payment for the same Customer and validate it.

The Full Reconcile Boolean stays checked inspite of "Open Balance" of Refund amount is less than the Invoice amount.

After the fix:
Full Reconciliation Boolean doesn't get checked and Allocation amount on invoice journal item line should be same
as Open balance of the Refund Journal Item. So Invoice stays open with Balance amount.

opw:691577
2016-10-31 11:55:49 +01:00
Damien Bouvy 002d7a342a [FIX] website_event: display location name in frontend
opw-692655
2016-10-31 11:20:04 +01:00
Odoo Translation Bot c340284a60 [I18N] Update translation terms from Transifex 2016-10-30 02:56:40 +02:00
Odoo Translation Bot 27413feac8 [I18N] Update translation terms from Transifex 2016-10-30 00:34:38 +02:00
Christophe Simonis f76f456019 [MERGE] forward port branch saas-6 up to 4f462f9 2016-10-28 15:38:03 +02:00
Christophe Simonis 4f462f92f3 [MERGE] forward port branch 8.0 up to c39ca45 2016-10-28 15:35:07 +02:00
Wolfgang Taferner c39ca45c6d [FIX] config: avoid to accept server-wide-modules with None as a module
Fixes #14048
Fixes #14045
Closes #14051
2016-10-28 15:02:52 +02:00
Raphael Collet eb326e669e [FIX] fields: prevent base setup on fields shared across registries
A field shared across registries is normally never setup from scratch, except
when its full setup cannot complete.  This happens when a registry reuses that
field but fails to load, because the base and full setup of fields look like:

    def setup_base(self, model, name):
        if self.setup_full_done:
            # optimization: keep base setup (1)
            self.setup_full_done = False
        else:
            # do the base setup from scratch (2)
            ...

    def setup_full(self, model):
        if not self.setup_full_done:
            # complete full setup (3)
            self.setup_full_done = True

When the field is reused for the first time, its setup state `setup_full_done`
is reset to `False` (1), and it should be set to `True` again after completion
of full setup (3).  However, because the full setup fails, the field remains
with `setup_full_done` equal to `False`.

In that situation, when the same field is reused again, it base setup will be
done from scratch (2), and therefore some attributes (like `column`) are reset
to their initial value.  Because the full setup fails again, those attributes
are lost for other registries that share the field.

Fix this crap by precising the setup states: `None`, `'base'` and `'full'`.
When a field is reused, its setup state is reset to `'base'` instead of `None`,
and consequently it will never be setup from scratch again.
2016-10-28 13:29:53 +02:00
Martin Geubelle 9f09c625f5 [FIX] calendar: rule._bynweekday can be a set
Depending on the version of dateutil, rule._bynweekday can either be
a tuple or a set (see https://github.com/dateutil/dateutil/pull/54), which,
in the case of a set, breaks the access by index (see related issue:
https://github.com/dateutil/dateutil/issues/24).

By casting it into a list, we make sure that we can access [0] in both case.

Credits to jke ; closes opw-690761.
2016-10-28 11:26:23 +02:00
Nicolas Lempereur 25616b9f2b [FIX] web: repair length field in view list
Underscore method _.each expects an array like object when a "length"
property is present.

This was an issue with a record having a numeric "length" field set to a
non-negative value. When changing a line the change would not appear on
blur.

This issue was fixed with 0e664c9e9 but introduced back with f0e331e00.

opw-691070

Forward-port of 5d17749ff4 which has been
forgotten during previous forward-port.
2016-10-27 14:46:08 +02:00
Christophe Simonis 477e69d850 [MERGE] forward port branch saas-6 up to 3c3ce75 2016-10-27 14:42:57 +02:00
Christophe Simonis 3c3ce750f7 [MERGE] forward port branch 8.0 up to 5ee4344 2016-10-27 14:11:46 +02:00
David Arnold 179f7c0767 [FIX] account: missing data in hook function
Oversight of commit 7e58821a9f

Closes #13998
2016-10-27 14:09:18 +02:00
David Arnold d3de63ec3f [FIX] account: nested group of taxes
When a group of tax is nested inside another group of taxes, the tax
amount and base are wrongly calculated. It is also the case when a tax
is applied after a group of taxes.

This is because the recursive call doesn't reuse the previously
calculated tax amounts and base, but always use the same entry amounts.

The fix introduces this behavior, and moreover makes sure to include the
tax group in the base amount only if it should.

Closes #13995
2016-10-27 14:09:18 +02:00
Christophe Simonis 147db011c7 [FIX] web: deactivate unreliable test 2016-10-27 14:05:16 +02:00
Goffin Simon 10e9aed584 [FIX] account: reconciliation_widget_auto_reconcile
The ids returned in notifications must be ids of account move.

opw:690621
2016-10-27 13:09:34 +02:00
Nicolas Lempereur b4d5246545 [IMP] mail: no jump for chatter show older messages
When clicking on "Show older messages" in the bottom of the chatter, the
page would jump to the top when the additional messages are loaded.

There is already a functionality in a discuss channel to stay at the
previous scrolling position (related to the content) :

 https://github.com/odoo/odoo/blob/ffe0db0d/addons/mail/static/src/js/client_action.js#L506-L521

This fix does the same steps for the chatter.

opw-692010
2016-10-27 10:31:48 +02:00
Raphael Collet ea9ef7c39d [FIX] base: prevent deletion of custom fields when other fields depend on them (#13978)
Consider that you have a custom one2many field based on a custom many2one
field, and that you delete the many2one field.  From that point on, it is
impossible to load the registry of the corresponding database.  To prevent this
from happening, we add a check before modifying or deleting custom fields.
2016-10-26 14:25:17 +02:00
Goffin Simon 69c41c7e3c [FIX] account: invoices on unmatched payment
When unreconciling a payment from an invoice, the link between
the payment and the invoice (in many2many invoice_ids)was kept
and then the invoice still appeared when clicking on the button
invoices in the payment form view.

The invoice must be removed from invoice_ids.

opw:691692
2016-10-26 13:50:55 +02:00
Aaron Bohy 1f06cc4168 [FIX] web: list editable: traceback when removing a row in edition
When clicking on the trash to remove a line (e.g. a sale order line
in a quotation form view) while editing another line, it produces a
traceback (in most cases), or behaves randomly (less frequently)
like removing both lines, or one of them, or maybe none of them.

Anyway, this feature doesn't work at all, so this commit simply disables
it when we are in edition mode.

In a perfect world, we would fix the feature instead of disabling it,
but the code of the list editable is so instable that it would most
certainly break something else.

Closes #13778
2016-10-26 13:38:57 +02:00
Aaron Bohy 5591a44e0f [FIX] board: traceback when removing calendar from dashboard
The dashboard instantiates an action manager for each view it contains.
When removing a view from the dashboard, the $el of its action manager
is simply removed from the DOM, unbinding all DOM event handlers
attached on it and its children, but the action manager isn't destroyed.
It means that Odoo event handlers (like core.bus.on(...)) aren't unbound.

This causes a traceback when removing a calendar view from the dashboard,
because such an Odoo handler is defined, and tries to access some
autocomplete stuff that doesn't exist anymore since the element has been
removed.

This commit ensures to destroy the action_manager.

Closes #13858
2016-10-26 13:38:47 +02:00
Nicolas Martinelli e99e0d6922 [FIX] point_of_sale: journal of closing entries
- Invoice a POS order => the invoice number is for example 0001
- Close the POS session
- Invoice another POS order => the invoice number is 0003

This is because the journal used for the POS closing entries is the same
than the journal used for the customer invoices. Therefore, the closing
entry consumes a sequence number of the invoices.

This affects POS orders, but potentially SO as well if they use the same
journal.

This is fixed in v10 from commit b5b0d36b31. In v9, we use a workaround
by looking first if a `ir.config_parameter` named
`pos.closing.journal_id` exists. We use this journal for the session
closing.

opw-691771
2016-10-26 10:57:16 +02:00
Leonardo Rochael Almeida 5ee4344efd [IMP] Allow configuration of server_wide_modules from file
Allow reading and saving the value of `server_wide_modules` from the
configuration file, instead of just the command line.
2016-10-25 15:23:41 +02:00
Wolfgang Taferner 19cca50e7c [FIX] point_of_sale: create two pickings for one POS order when required
We support 'returns' in the POS frontend by allowing the user to
specify a negative quantity. Before this patch however, the backend
would always generate a single picking per pos.order. This is
problematic when a pos.order contains both lines with a positive and
negative quantity. The generated move lines would not all have the same
source and destination location and so could not be added to the same
picking.

This commit creates an extra 'return' picking when required and assigns
the generated moves to the correct picking.

Closes #13699
Closes #13762

opw-690812
2016-10-24 17:25:15 -07:00
qsm-odoo 389574e550 [FIX] website: make the 'include assets bundle' option of ace editor work
Commit which added summernote broke the ace editor with a strange
change: https://github.com/odoo/odoo/commit/9069d0127c176317436b67b23ae5677dd9d53de7#diff-e9d66a1b466f404be082fa00519eafa5L140.

With this change instead of not including the assets bundles in the ace
editor and allowing to see them by checking the option, the assets
bundles were included when NOT in debug mode and not included when in
debug mode.
2016-10-24 17:22:05 +02:00
Simon Lejeune 097f46e09a [REF] packaging: debian: depend on python-babel
Before this patch, the debian package depends on `python-pybabel`.
According to the documentation, this is a dummy package for transition
from `python-pybabel` to `python-babel`[1].

This dummy package has thus been removed in debian stretch in favor of
`python-babel`, and the odoo package is thus not installable in debian
stretch.

To fix this, we depend directly on `python-babel`, which is available in
all debian releases[2].

Closes #13905

[1] https://packages.debian.org/jessie/python-pybabel
[2] https://packages.debian.org/jessie/python-babel
2016-10-24 16:22:17 +02:00