You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.5 KiB
103 lines
3.5 KiB
# Copyright 2020 Brainbean Apps (https://brainbeanapps.com)
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
|
|
|
from openupgradelib import openupgrade
|
|
|
|
|
|
@openupgrade.migrate()
|
|
def migrate(env, version):
|
|
openupgrade.logged_query(
|
|
env.cr,
|
|
"""
|
|
WITH _mappings AS (
|
|
SELECT
|
|
m.id,
|
|
l.field_to_assign,
|
|
l.name,
|
|
l.date_format
|
|
FROM
|
|
account_bank_statement_import_paypal_map AS m
|
|
RIGHT OUTER JOIN (
|
|
SELECT
|
|
*,
|
|
ROW_NUMBER() OVER (
|
|
PARTITION BY map_parent_id, field_to_assign
|
|
ORDER BY id ASC
|
|
) AS row_number
|
|
FROM account_bank_statement_import_paypal_map_line
|
|
WHERE field_to_assign IS NOT NULL
|
|
) AS l ON m.id = l.map_parent_id AND l.row_number = 1
|
|
)
|
|
|
|
INSERT INTO account_bank_statement_import_paypal_mapping (
|
|
name,
|
|
float_thousands_sep,
|
|
float_decimal_sep,
|
|
date_format,
|
|
time_format,
|
|
date_column,
|
|
time_column,
|
|
tz_column,
|
|
name_column,
|
|
currency_column,
|
|
gross_column,
|
|
fee_column,
|
|
balance_column,
|
|
transaction_id_column,
|
|
description_column,
|
|
from_email_address_column,
|
|
invoice_id_column,
|
|
bank_name_column,
|
|
bank_account_column
|
|
)
|
|
SELECT
|
|
m.name,
|
|
m.float_thousands_sep,
|
|
m.float_decimal_sep,
|
|
COALESCE(_date.date_format, '%m/%d/%Y') AS date_format,
|
|
'%H:%M:%S' AS time_format,
|
|
COALESCE(_date.name, 'Date') AS date_column,
|
|
COALESCE(_time.name, 'Time') AS time_column,
|
|
'Time Zone' AS tz_column,
|
|
COALESCE(_name.name, 'Name') AS name_column,
|
|
COALESCE(_currency.name, 'Currency') AS currency_column,
|
|
COALESCE(_gross.name, 'Gross') AS gross_column,
|
|
COALESCE(_fee.name, 'Fee') AS fee_column,
|
|
COALESCE(_balance.name, 'Balance') AS balance_column,
|
|
COALESCE(_tid.name, 'Transaction ID') AS transaction_id_column,
|
|
COALESCE(_description.name, 'Description') AS description_column,
|
|
COALESCE(_from_email.name, 'From Email Address')
|
|
AS from_email_address_column,
|
|
COALESCE(_invoice.name, 'Invoice ID') AS invoice_id_column,
|
|
COALESCE(_bank_name.name, 'Bank Name') AS bank_name_column,
|
|
COALESCE(_bank_acc.name, 'Bank Account') AS bank_account_column
|
|
FROM
|
|
account_bank_statement_import_paypal_map AS m
|
|
LEFT JOIN _mappings AS _date
|
|
ON m.id = _date.id AND _date.field_to_assign = 'date'
|
|
LEFT JOIN _mappings AS _time
|
|
ON m.id = _time.id AND _time.field_to_assign = 'time'
|
|
LEFT JOIN _mappings AS _name
|
|
ON m.id = _name.id AND _name.field_to_assign = 'partner_name'
|
|
LEFT JOIN _mappings AS _currency
|
|
ON m.id = _currency.id AND _currency.field_to_assign = 'currency'
|
|
LEFT JOIN _mappings AS _gross
|
|
ON m.id = _gross.id AND _gross.field_to_assign = 'amount'
|
|
LEFT JOIN _mappings AS _fee
|
|
ON m.id = _fee.id AND _fee.field_to_assign = 'commission'
|
|
LEFT JOIN _mappings AS _balance
|
|
ON m.id = _balance.id AND _balance.field_to_assign = 'balance'
|
|
LEFT JOIN _mappings AS _tid
|
|
ON m.id = _tid.id AND _tid.field_to_assign = 'transaction_id'
|
|
LEFT JOIN _mappings AS _description
|
|
ON m.id = _description.id AND _description.field_to_assign = 'description'
|
|
LEFT JOIN _mappings AS _from_email
|
|
ON m.id = _from_email.id AND _from_email.field_to_assign = 'email'
|
|
LEFT JOIN _mappings AS _invoice
|
|
ON m.id = _invoice.id AND _invoice.field_to_assign = 'invoice_number'
|
|
LEFT JOIN _mappings AS _bank_name
|
|
ON m.id = _bank_name.id AND _bank_name.field_to_assign = 'bank_name'
|
|
LEFT JOIN _mappings AS _bank_acc
|
|
ON m.id = _bank_acc.id AND _bank_acc.field_to_assign = 'bank_account';
|
|
"""
|
|
)
|