Commit Graph
453 Commits
Author SHA1 Message Date
Odoo's Mergebot ba2b68940c [MERGE] sale: files & xml cleanup
COM PR: odoo/odoo#82070
ENT PR: odoo/enterprise#23183
UPGRADE PR: odoo/upgrade#3135

task - 2692296

--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2022-01-11 15:26:55 +01:00
Laurent Stukkens (LTU) dd493cd6c4 [IMP] sales: add _create_invoices hook in sale.advance.payment.inv
Prior to this commit it was not possible to get a hook from
sale.advance.payment.inv in order to get the created invoices.

The create_invoices def returns either an action or an ir.actions.act_window_close

The introduction of the _create_invoices def will allow to get the created invoices
from the wizzard.

task-2608812
Closes: #79926
2022-01-03 18:11:00 +00:00
roen-odoo 7167961fbf [FIX] sale: Payment had wrong sales team
Current behavior :
When creating payment from invoice, the payment had the wrong sales team id

Steps to reproduce :
- Create atleast 2 invoices with different sales team and same partner
- Register payments for every invoice
- Go in payments list view
- Filter on partner and group by sales team
- All the payments are grouped in the same sales team

opw-2681041

closes odoo/odoo#82114

X-original-commit: 2f3ebe86b2d520dd9c7570f60056f200bb091aab
Signed-off-by: Engels Robin (roen) <roen@odoo.com>
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-01-03 11:43:42 +00:00
Victor Feyens ee0d28ef2b [MOV] sale: rename payment link wizard model & views 2022-01-03 12:22:47 +01:00
Victor Feyens f1e60818b1 [MOV] sale: move wizard related views into dedicated folder 2022-01-03 12:22:46 +01:00
Yannick Tivisse b9194406ec [IMP] account: Avoid multiple rebrowse in get_fiscal_position
+ Make it private, as it is not supposed to be called from the
webclient.
2021-12-02 12:12:01 +01:00
Adrien Minet 2a090cbb9b [FIX] sale: down payment invoice has correct company
How to reproduce:

- Have a databas with 2 companies (A and B)
- Create and confirm a sale with company A
- Switch to company B
- Create a down payment invoice.

Bug:

When generating an invoice from a sale, the company of the invoice
should always be the one from the sale.

closes odoo/odoo#80523

Opw: 2631354
X-original-commit: a345d2f4a45179b1c3cecb5be983d3ef2435d0f8
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2021-11-29 13:09:55 +00:00
Valentin Chevalier 46be53f2c1 [FIX] payment,sale: access error in payment link
When a user was opening the payment_link_wizard and tried to select a
preferred payment acquirer, he was getting an AccessError telling that
he was not allowed to access 'payment.acquirer' records.

Fix PR #69334 (task-2504225)

task-2666881

closes odoo/odoo#80005

X-original-commit: 2ff580c073ac105219582dbf2108a1437645c9b5
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2021-11-18 18:45:11 +00:00
Thibault Delavallée e9af609616 [IMP] mail, various: reorganize and lint composer action name
In this commit some reorganization is performed within mail compose message
code. Purpose is to reorder a bit methods by main usage: onchange, CRUD,
actions, values generation with rendering and template management.

Some renaming is performed on action methods, notably send_mail that has some
impact on sub-addons. Finally we also set onchange and sub-onchange methods
private.

No functional change should be implied by this commit.

LINKS

Task ID-2377974
Community PR odoo/odoo#61467
Enterprise PR odoo/enterprise#14633
2021-08-18 13:35:07 +00:00
Kevin Baptiste 86aa7b78aa [IMP] *: introduce data-hotkey on form and modal views
Define `data-hotkey` on most used action buttons.

For the modals, the following keys are dedicated for "special"
actions:
 - Alt+G: add
 - Alt+V: save
 - Alt+Z: cancel

closes odoo/odoo#73275

Taskid: 2588233
Related: odoo/enterprise#19464
Signed-off-by: Kevin Baptiste <kba@odoo.com>
2021-07-15 08:39:49 +00:00
Florent de Labarre d1a8dfeaec [FIX] sale: impossible to generate link if there are an cancel invoice
closes odoo/odoo#72449

X-original-commit: ea08c5a5f077ea991dfe6026f348434873b47bcd
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2021-06-21 14:20:07 +00:00
Victor Feyens 2d43dc2afd [IMP] account,*: clean map_tax definition
product and partner parameters are leftovers of an older definition of
map_tax, and can now be safely removed.
2021-06-17 12:14:36 +00:00
Morgane DemesmaekerandValentin Chevalier 41b13d530f [IMP] payment, sale: add an acquirer dropdown when generating payment link
Actually, salesmen have to add manually the acquirer_id to the link, and it isn't user-friendly. The dropdown will show the possibility to add the acquirer_id.

Task #2504225

closes odoo/odoo#69334

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Co-authored-by: Valentin Chevalier <vcr@odoo.com>
2021-05-28 09:24:57 +00:00
Victor Feyens f437f4a03d [MOV] sale: wizard to wizard directory 2021-05-20 14:27:31 +00:00
Antoine Vandevenne (anv)andVictor Feyens 573ed74c12 [REF] payment, *: refactor online payments API
This commit replaces the old online payments API of the `payment`
module with the new one and adapts to it all the implementing modules.

See the merge commit for more details.

task-2085989
task-2119838
task-2165982
task-2289255

Co-authored-by: Victor Feyens <vfe@odoo.com>
2021-03-30 09:25:51 +02:00
nie e8fac631c8 [FIX] payment,sale: Use record website domain in links
Steps:
- Go to Settings > Users & Companies > Companies
- Create a new company (1)
- Install a payment acquirer and Website
- Go to Website > Configuration > Settings:
- Select "My Website 2"
- Assign it to company (1)
- Add a custom domain
- Save
- Switch to company (1)
- Go to Invoicing
- Create a new Invoice:
  - Add a product line
- Post it
- Click Action > Generate a Payment Link

Bug:
The base domain is used instead of the domain of the website linked to
the invoicing company.

Explanation:
The app only uses the URL on which the user has logged in to generate a
payment link. If the user has multiple companies, this can confuse
customers if they land on another domain than the one they are used to.
This commit makes the app use the domain of the website of the record
linked to the payment if it has one.

opw:2440251

closes odoo/odoo#65938

X-original-commit: 700dba53843e71f5f34c86305cc658d9273914aa
Signed-off-by: backspac <backspac@users.noreply.github.com>
2021-02-11 10:08:25 +00:00
Nicolas Martinelli 39ab53a4d6 [FIX] sale: down payment translation
- Set a customer language to a different language, e.g. French
- Create a SO, add a product and validate
- Create a down payment

The down payment invoice is partially translated in French.

This was first solved in fc659d3f78 but broken in
0e73eca1364c8e0df93cd.

opw-2365982

closes odoo/odoo#61207

X-original-commit: f10b98d1776659f291b2f7f8a4a2111e4f106667
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-11-02 17:10:14 +00:00
Martin Trigaux c59c10f1bc [FIX] *: correct typos and bad English
Courtesy of translators
Reexport .pot of modified modules

closes odoo/odoo#61010

X-original-commit: 62a18bdb372e234107fd2099a2df5f9e3a442c96
Related: odoo/enterprise#14489
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-10-29 19:23:41 +00:00
Xavier Morel 6835aeb0de [REM] core, *: deprecate <act_window> and <report>
Convert deprecated tags through the codebase.
2020-07-28 13:03:13 +00:00
Damien Bouvy 34867df728 [FIX] payment,sale: company information in payment wizard link
When generating a payment link through the payment link wizard, the
company was previously not included. This could cause accounting issues
if the acquirer displayed to the customer were not part of the same
company as the underlying document that generated the link.

This commit add a new computed field 'company_id' on the wizard model
that gets computed based on the underlying model; this field will be
included in links generated by the wizard to limit the acquirers
displayed to those of the that company, preventing extra acocunting
steps (interco reconciliation).

opw-2254011

closes odoo/odoo#51441

X-original-commit: a6fcd7e0cfec8d4c62620a53b5fa806561e239af
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
2020-05-18 12:07:34 +00:00
Damien Bouvy 59c075b461 [FIX] sale: don't include order_id for payment links other than quotes
X-original-commit: 9b9f85745386e171eaad0995753188cc40098fee
2020-05-18 12:07:34 +00:00
Laurent Stukkens (LTU) 557582e88b [IMP] sale: Improve the onboarding tours
* The first tour is starting in the sale app dashboard and ensures
  the user goes through the needed configuration steps

* The second tour starts in the new Quote form and shows the flow to
  send a quote to a customer

TaskID: 2187222
Closes: #46167
2020-05-07 13:23:07 +00:00
Laurent Smet caeb782841 [IMP] account,*: Improve bank statements/payments workflow
- Create journal entries as soon as bank/cash statement lines are created, temporary booked on a suspense account set on the journal.
- Simplify the management of "blue" lines in the reconciliation widget. A "blue" line is now a journal item using a temporary liquidity account (outstanding payment/receipt accounts, set on the journal).
- Adapt and simplify the bank reconciliation report.
- Remove the bank reconciliation threshold date. The reconciliation report will show the not already reconciled journal entries using a liquidity account and the not already reconciled journal entries using a temporary liquidity account. Without accounting, an account.payment will involve directly the liquidity account and then, will be considered as a statement line directly.
- Remove the post_at bank reconciliation feature. The "paid" state will be set on the invoices only if reconciled with a journal entry involving the journal's liquidity account.
    With invoicing, the payment will do that so the "in_payment" state should never be shown up.
    With accounting, only the statement lines have the power to move an invoice to the "paid" state.
- Fix various corner cases about the management of multi-currency in bank statement lines.
- Fix the conversion dates in multi-currency: Since the bank/cash is always used on the statement lines, it will use always the real "bank" date instead of the fictive payment one.
- Ensure the 'reconcile' method will raise an error if the involved moves are not posted.

related enterprise PR odoo/enterprise#7019

closes odoo/odoo#41301

--task: 2092096
Related: odoo/upgrade#1018
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
2020-04-10 09:47:24 +00:00
Nicolas Martinelli 186733686f [FIX] sale: reference in down payment
Make the reference at down payment creation in line with regular invoice
creation as done in:

https://github.com/odoo/odoo/blob/387969f16a60c72d2a85a6df1aea7a04acda5c9f/addons/sale/models/sale.py#L526-L547

opw-2215124

closes odoo/odoo#47633

X-original-commit: aa98750fa4f9b1278eaf7d656c0c1a8c81f86325
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-03-16 08:26:57 +00:00
Swapnesh Shah cf42c2e27c [FIX] sale,payment: Encode Payment URL correctly
Before this commit, Payment URL was not encoded correctly which can compute Payment refernece Wrongly on website.

Eg,
  Enter Description which contains Special Characters
  Go to Payment Page using Computed URL.
  There will be wrong Payment Reference on Payment page.

With this commit, We encode Payment reference before generating Payment URL.

closes odoo/odoo#47387

X-original-commit: 6ebcc43d177b9333afa73ee90e976d57111aaf3d
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-03-11 12:25:06 +00:00
Ankita Raval d675dbaa4c [IMP] account,* : Change type field to move_type in account.move
task-id: 2028z813
2020-02-19 09:09:20 +00:00
Goffin Simon 260b6f0731 [FIX] sale: Default Downpayment on Invoice
Steps to reproduce the bug:

- In debug mode, create a SO
- Confirm the SO
- Click on "Create invoice"
- In the wizard, click on the debug logo
- Set a User default value V for Downpayment amount
- Close the wizard
- Re-click on "Create invoice"

Bug:

The default value V was not suggested.

Fine tuning of c258b8a0427bd5aface891ed1f4420174f4afde4

opw:2184367

closes odoo/odoo#45512

X-original-commit: f95550d59ddeb8a77cb7b72592cc4aafb210aa25
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2020-02-17 14:17:07 +00:00
Arnaud Joset aaf5504373 [FIX] sale: prevent trackback when makeing an SO line without product
Before this fix, an empty sale order produced a traceback when the invoice was created.

closes odoo/odoo#42750

Taskid: 1997415
Related: odoo/enterprise#7540
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
2020-02-06 07:21:44 +00:00
Krupal Oza 90053ca72f [FIX] sale: fix traceback when creating an INV for an empty SO
Currently when creating an SO without any products and creating
down payment for that creates a traceback.

so Fix traceback when creating an invoice for sale order with an empty
product. when there is no orderline then do not get the sequence in down
payment line to make down payment line at last in sales order.

Task-2181464

closes odoo/odoo#44645

Closes: #44491
X-original-commit: 5e3e127187130a3d6dac98920564598a05d9c627
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-02-05 11:13:32 +00:00
Martin Trigaux 65530dfd6a [ADD] *: add ir.model.access on all transient models
Following changes needing ir.model.access on transient models too.
Remove groups declaration on the action to move it to ir.model.access
when possible.
Rules are strict by default with no unlink access by default and high
priviledge asked. Adaptations may be needed later.
Write access is given as a wizard may need to be modified in case the
action triggers an error and the user has to correct a value

account*: use account.group_account_user for all transient by default
	  remove account.print.journal relic
stock*: use stock.group_stock_user by default
survey: survey user can send invitations
mail: allow any employee to execute wizards
      additional verifications are made to ensure they are executed
      only on the documents the user has access to you
      give portal access to mail.compose.message as portal still does
      some actions like posting messages on the forum
      add ir.rule to avoid reading somebody else messages
      increase the query count because of undeterminist count
crm: saleman for lead2opp, manager for massmailing
     partner manager for actions linked to partners
     avoid a write in test_lead_lost
sms: any employee can send sms
mrp: mrp user can execute wizards
     give unlink access as making write during do_produce operation
base_import: employees can import files
delivery: stock user can deliver
event_sale: sale user can configure the wizards
	    event user inherit from  sale rights
gamification: employee can give badge
google_service: resolve FIXME
hr: add specific rights
    manager can set a plan according to group on button
    anyone who can write on an employee can register a departure
hr_expense: set rights based on buttons
hr_holidays: an approver can make a summary report
hr_recruitment: recruiter can refuse a candidate
hr_timesheet: can use the wizard if can create a timesheet
l10n_eu_service: managers can create fiscal positions
mass_mailing: same group as on mass.mailing.list
membership: accountant can create invoice from membership
payment: accountant can create a link
	 as the source is an account.move
	 keep the payment.acquirer.onboarding.wizard to system user
	 only as it is called during company configuration
point_of_sale: PoS manager only can use wizards
	       never create closing_balance_confirm_wizard records
product_expiry: stock user has rights on stock.picking
product_margin: access from accounting menus
repair: same rules as for above models
sale: set ir.rule for self wizard only
      add rule from model introduced in payment to add salesman group
sale_crm: saleman can create a quotation from a lead
sale_coupon: any saleman can generate coupon
	     add self ir.rule
sale_product_configurator: salesman can select product variants
snailmail: employee can send letters
website: designers can write on website
website_crm_partner_assign: same rule as group on action
website_sale: sale ACL as for payment.acquirer.onboarding.wizard
website_slides: anyone can send invitation

base: base.language.*: allow employee (cf lang_install)
      change.password.user: can not read change password wizard of
      other users
      test.*: no access is needed

Courtesy of Damien Bouvy, William Andre and Antoine Prieëls for review
of acl
2020-02-04 17:54:18 +01:00
Andrea Grazioso (agr-odoo) 6dc3386c34 [FIX] sale: propagate bank account infos to invoice
Fill bank account information for the current company
Create an Invoice by hand, under "Other info" tab the Bank Account
section is filled.
Now create a Sale order, confirm it and create the invoice.

The invoice created from the sale order is missing the Bank Account
section, this in turn disable the QR code generation. Adding th
erequired information when creating the invoice from the sale
order fix the issue

opw-2181580

closes odoo/odoo#44353

X-original-commit: bea0ee1f484bd25fab1ed4170d88629c4fb2709c
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-01-31 08:23:36 +00:00
Yenthe666 e93eaa8efa [IMP] sale: set IDs on elements for easier xpaths
Before this commit there were two buttons on this wizard with the same name 'create_invoices' that do different things. One creates the invoice and the other one creates and opens the invoices. By setting an unique ID on both buttons we can do a clean and easy xpath. Something like button[@id='create_invoice_open'] instead of having to use indexes or dangerous behaviours

closes odoo/odoo#44072

Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
2020-01-28 10:46:54 +00:00
Yenthe666 65fd8e4602 [FIX] sale: allow inheriting and modifying function values
closes odoo/odoo#44069

X-original-commit: 14a12ced1d5cb79b9ec8b9df926a12330aa34cf1
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
2020-01-28 09:56:51 +00:00
Sylvain LE GAL 1e1e511cea [FIX] call _get_product_accounts() everywhere
closes odoo/odoo#41632

Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2020-01-23 14:29:45 +00:00
Nicolas Seinlet 3900619fdb [FIX] sale: "see own leads" user can invoice his sale order
closes odoo/odoo#43035

X-original-commit: f2231b3047f4c3a9ad3e481133fca62f9d056354
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
2020-01-09 12:08:32 +00:00
Iván Todorovich 7869979591 [FIX] *: use sudo() to call set_onboarding_step_done
This method makes a write on res.company but many people do not have
access to the company

closes odoo/odoo#42644

X-original-commit: 130f08f13b49a529c1da0e1dc603c62337842f45
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-01-02 17:38:05 +00:00
Andrea Grazioso (agr-odoo) c30fb23f7b [FIX] sale: add bank information on down payment
On a Sale order having customer with bank information available create
an invoice (down payment).

Bank information will not be available.

This append because the company_id is not provided to the create and
bank information will not be available
https://github.com/odoo/odoo/blob/12.0/addons/account/models/account_invoice.py#L549

opw-2153810

closes odoo/odoo#41902

X-original-commit: 097db42b0302c769a6584004d7a9cbbc03856de7
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-12-13 11:43:43 +00:00
Victor Feyens 600d0707ae [IMP] *: use get_fiscal_position and not property_account_position_id.
And adapt to get_fiscal_position changes

closes odoo/odoo#40336

Related: odoo/enterprise#6840
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
2019-11-20 14:42:07 +00:00
Victor Feyens 1197821583 [IMP] account: fiscal position little cleanup
* No api model for methods using self
* Use new orm abilities to cleanup map_tax method
2019-11-20 11:40:28 +00:00
Xavier-Do eb2f0aabcf [FIX] *: various fixes in xml views 2019-11-13 11:05:14 +00:00
Hetashree ChauhanandHiral Bhavsar 4c36a35bf1 [IMP] sale(_stock): add wizard to cancel the confirmed SO
Purpose of the task is be able to cancel an order if the products have
been delivered or if an invoice has already been confirmed

-the remaining pickings (back orders) should be cancelled.
-the draft invoices should be cancelled too.

[IMP] product_expiry: compute method should iterate on self

task-1919761
Closes #29920

Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
Co-authored-by: Hiral Bhavsar <hbh@odoo.com>
2019-11-06 13:19:40 +00:00
Shreya Modi 945a94a152 [FIX] sale: show down payment at the end of sale order
Purpose of the commit is if sales order is very long, the down payment
gets lost in the middle of it and will be best to make it appear
systematically at the end of it.

currently the sales order line is order by the sequence and while
creating the down payment it takes the default sequence of the line
so adding sequence by +1 will show the down payment at the end.

task-2025709

closes odoo/odoo#34404

Closes: #34404
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
2019-11-04 13:22:15 +00:00
jvm-odoo a7bf579008 [FIX] sale: fix down payment missing tax and product UoM
In the sales modules, set a down payment product with a different UoM
than the default one.

If you create an invoice, select the down payment option, click on
create and view.

Before this commit:

    - The down payment tax & UoM are not on the invoice line

After this commit:

    - They are on the invoice line, like in V12

OPW-2086146

closes odoo/odoo#39569

X-original-commit: 06db4135d4aabaa7cb2a0d593be2dff11f8c4617
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-10-30 12:05:31 +00:00
Naglis Jonaitis 6404fc80b2 [IMP] point_of_sale, sale: remove digits attribute from monetary fields
Follow-up of #35336

closes odoo/odoo#36047

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-10-03 14:51:01 +00:00
mcm-odoo 9bfab43d92 [IMP] payment,sale: clean Payment Method in onboarding
The modifications are applied in account, sale and website_sale
- Changed description to "Choose your default customer payment method."
- Removed the "Pay with" from labels in Modal
- In sale: Renamed "Confirmation & Payment" to "Payment Method"

task-2032586
2019-08-29 14:14:50 +00:00
jbm-odoo 9cc67ea77b [FIX] ir_ui_view: Inconsistent filters on m2o
Inconsistent filters on the product_id many2one fields.

We should never use a "search_default_*" on a many2one field,
because this will only apply in the Search More popup and not
on the auto-completion.
We should always use a domain, as it will apply in both cases.

id=1944237

closes odoo/odoo#36009

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-08-23 09:23:25 +00:00
Damien Bouvy 1f8b2c5a1b [IMP] payment, sale: access token for payment link wizard
When generating a link for a payment through the website_payment/pay
route, including the partner_id 'blindly' is somewhat of a security
issue since it means you could potentially create payments for any
partner of your choosing.

This commit instead introduces an access token mechanism where the
partner_id, amount and currency_id are used to generate a unique access
token that can be checked upon accessing the payment page. This token
is only checked if the partner_id field is set (otherwise this is just
an anonymous payment like any other).
2019-08-23 14:23:32 +00:00
Barad Mahendraandsza-odoo bea0967114 [IMP] payment, sale: allow to generate payment link from order and invoice
Purpose of the task is, there is no easy way to request custom online
payments on sales orders or invoices. The only way is to create an
URL manually: /website_payment/pay?reference=inv-008&amount=123&currency_id=1

So added menu 'Generate payment link' in action in sales order and invoice.
while making payment pass the partner so reconcilation account flow should not
break as partner_id on account payment is reauired to reconcile.

co-authored-by: sza-odoo <sza@odoo.com>

Task-1938635
Closes: #31575
2019-08-23 14:23:32 +00:00
Raphael Collet 1d2bccd0db [IMP] fields: stricter rules on selection fields overridings
One cannot override the attribute `selection`, and list selections can only be
extended with `selection_add`.

Adapt the bad extensions to be consistent with the new warnings

closes odoo/odoo#35663

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-08-21 14:36:19 +00:00
Parth Choksi 9dde9ff29d [IMP] sale: added currency field for fixed amount in invoice
While creating the invoice order, if you choose the radio button of
Down Payment(Fixed amount) then the field with currency will be shown
and if you choose the Down Payment(Percentage) then the field with
percentage symbol will be shown and evaluated respectively.

task-2033229
2019-08-08 07:54:10 +00:00