File: /www/exchange2/sql/archive/2016-11-14-759.sql
DELETE invoice_margin_calls
FROM manual_transactions
LEFT JOIN invoice_margin_calls ON manual_transactions.manual_transaction_id IN (invoice_margin_calls.is_rtrade, invoice_margin_calls.is_drp)
WHERE manual_transactions.transaction_date='2016-10-28' AND manual_transactions.notes='Margin Call';
DELETE FROM manual_transactions WHERE manual_transactions.transaction_date='2016-10-28' AND manual_transactions.notes='Margin Call';
DELETE
FROM invoice_margin_calls
WHERE invoice_margin_calls.is_rtrade IN (51841,51842,51843,51844,51845,51846,51847,51848,51849,51850,51851,51852,51853,51854,51855,51856,51857,51858,51859,51860,51861,51862,51863,51864,51865,51866,51867,51868,51869,51870,51871,51872,51873,51874,51875,51876,51877,51878,51879,51880,51881,51882,51883,51884,51885,51886,51887,51888,51889,51890,51891,51892) OR invoice_margin_calls.is_drp IN (51841,51842,51843,51844,51845,51846,51847,51848,51849,51850,51851,51852,51853,51854,51855,51856,51857,51858,51859,51860,51861,51862,51863,51864,51865,51866,51867,51868,51869,51870,51871,51872,51873,51874,51875,51876,51877,51878,51879,51880,51881,51882,51883,51884,51885,51886,51887,51888,51889,51890,51891,51892);
ALTER TABLE `invoice_margin_calls`
ADD COLUMN `rtrade_value` DOUBLE UNSIGNED NULL DEFAULT NULL AFTER `engine_id`,
ADD COLUMN `drp_value` DOUBLE UNSIGNED NULL DEFAULT NULL AFTER `rtrade_value`;
INSERT INTO invoice_margin_calls
SELECT invoice_master.invoice_id, 0,0,2 as engine_id,NULL,NULL
FROM invoice_master
LEFT JOIN debtors_detail ON debtors_detail.debtor_id = invoice_master.debtor_id
LEFT JOIN invoice_margin_calls ON invoice_margin_calls.invoice_id = invoice_master.invoice_id
LEFT JOIN manual_transactions ON manual_transactions.manual_transaction_id = invoice_master.manual_transaction_id
WHERE invoice_master.root_invoice_id>0 AND invoice_master.invoice_status=3 AND debtors_detail.`type`="debtor" AND invoice_margin_calls.invoice_id IS NULL AND debtors_detail.currency_id IN (2,3) AND invoice_master.manual_transaction_id>0;
SET @edso=0,@rdso=0,@adso=0,@sell_rate=0.000,@purchase_discount=0.00000,@system_date=DATE(CURDATE()),
@face_value=0.00,
@drp_rate=0.0000,
@traded_rate=0.0000,
@payment_rate=0.0000;
CREATE TEMPORARY TABLE IF NOT EXISTS margin_calls_values (
SELECT T.debtor_id,T.user_id, T.transaction_date,
(IF(T.traded_rate>T.payment_rate,T.face_value * (T.traded_rate - T.payment_rate),0)/T.payment_rate) as rtrade_value,
(IF(T.reserve_on>0,IF(T.traded_rate<T.drp_rate,IF(adso>=180,adso_reserve,IF(adso<=edso,ldc+day_1_reserve,ldc+adso_reserve))*(T.drp_rate - T.traded_rate),0)/T.drp_rate,NULL)) as drp_value, T.invoice_id
FROM (
SELECT
@edso:=IFNULL(DATEDIFF(DATE(expected_date), DATE(actual_date)),0) as edso,
@sell_rate:=(invoice_master.max_thirty_day_reserve/100) as sell_rate,
@purchase_discount:=(IFNULL(invoice_closed_attributes.purchase_discount,0)/100) as purchase_discount,
@face_value:=invoice_master.face_value as face_value,
@rdso:=DATEDIFF(IF(main_trans.transaction_type=6 AND payment_trans.transaction_date<=@system_date,payment_trans.transaction_date,@system_date),DATE(actual_date)) as rdso,
@adso:=IF(@edso>@rdso,@edso,@rdso) as adso,
currencies.currency_code,
@traded_rate:=IF(currencies.currency_code="EUR",1,IFNULL(traded_rates.currency_rate,currencies.currency_rate)) as traded_rate,
@payment_rate:=IF(currencies.currency_code="EUR",1,IFNULL(payment_rates.currency_rate,currencies.currency_rate)) as payment_rate,
@drp_rate:=IF(currencies.currency_code="EUR",1,IFNULL(drp_rates.currency_rate,currencies.currency_rate)) as drp_rate,
invoice_master.user_id,
invoice_master.debtor_id,
@face_value*@sell_rate*12*(180-@edso)/360 as day_1_reserve,
@face_value*@sell_rate*12*(180-@adso)/360 as adso_reserve,
@face_value-@face_value*@sell_rate*12*180/360-@face_value*@purchase_discount as ldc,
invoice_master.reserve_on,
DATE_FORMAT(IF(invoice_master.reserve_on=0 OR invoice_margin_calls.invoice_id IS NULL,main_trans.created_at,drp_trans.created_at),"%Y-%m") as transaction_date,
invoice_margin_calls.is_rtrade,
invoice_master.invoice_id
FROM invoice_margin_calls
LEFT JOIN invoice_master ON invoice_margin_calls.invoice_id = invoice_master.invoice_id
LEFT JOIN debtors_detail ON debtors_detail.debtor_id = invoice_master.debtor_id
LEFT JOIN invoice_closed_attributes ON invoice_closed_attributes.invoice_id = invoice_master.invoice_id
LEFT JOIN manual_transactions as main_trans ON main_trans.manual_transaction_id = invoice_master.manual_transaction_id AND main_trans.status=1
LEFT JOIN manual_transactions as payment_trans ON main_trans.reconcile_payment = payment_trans.manual_transaction_id AND payment_trans.status=1
LEFT JOIN manual_transactions as drp_trans ON drp_trans.manual_transaction_id = invoice_master.drp_id AND drp_trans.status=1
LEFT JOIN currencies ON currencies.currency_id = debtors_detail.currency_id
LEFT JOIN currency_rates as payment_rates ON payment_rates.currency_id = debtors_detail.currency_id AND payment_rates.currency_date = payment_trans.transaction_date
LEFT JOIN currency_rates as traded_rates ON traded_rates.currency_id = debtors_detail.currency_id AND traded_rates.currency_date = DATE(invoice_master.logapprove_date)
LEFT JOIN currency_rates as drp_rates ON drp_rates.currency_id = debtors_detail.currency_id AND drp_rates.currency_date = drp_trans.transaction_date
WHERE invoice_master.manual_transaction_id > 0 AND invoice_master.invoice_status = 3 AND debtors_detail.type="debtor" AND debtors_detail.currency_id IN (2,3)
) AS T
);
UPDATE invoice_margin_calls
LEFT JOIN margin_calls_values ON margin_calls_values.invoice_id = invoice_margin_calls.invoice_id
SET invoice_margin_calls.rtrade_value = ROUND(margin_calls_values.rtrade_value,2), invoice_margin_calls.drp_value = ROUND(margin_calls_values.drp_value,2);
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48005;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48007;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48008;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48009;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48010;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48011;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48012;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48013;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48014;
UPDATE `manual_transactions` SET `amount`=241.02 WHERE `manual_transaction_id`=48014;
UPDATE `invoice_margin_calls` SET `rtrade_value`=0 WHERE `invoice_id`=53603 AND `is_rtrade`=48014 AND `is_drp`=0 AND `engine_id`=2 AND `rtrade_value`=40.46 AND `drp_value` IS NULL LIMIT 1;
DELETE FROM `invoice_margin_calls` WHERE `invoice_id`=51381 AND `is_rtrade`=48014 AND `is_drp`=0 AND `engine_id`=2 AND `rtrade_value` IS NULL AND `drp_value` IS NULL LIMIT 1;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48015;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48016;
DELETE FROM `invoice_margin_calls` WHERE `invoice_id`=53229;
DELETE FROM `invoice_margin_calls` WHERE `invoice_id`=55881;
DELETE FROM `invoice_margin_calls` WHERE `invoice_id`=55882;
DELETE FROM `invoice_margin_calls` WHERE `invoice_id`=55883;
DELETE FROM `invoice_margin_calls` WHERE `invoice_id`=48267;
UPDATE `manual_transactions` SET `amount`=1143.12 WHERE `manual_transaction_id`=48016;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48017;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48018;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48019;
DELETE FROM invoice_margin_calls WHERE invoice_margin_calls.invoice_id IN (46808,49289,49337,49338,49339,49341,49342,56153,49340);
UPDATE `manual_transactions` SET `amount`=757.10 WHERE `manual_transaction_id`=48019;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48020;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48021;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48023;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48024;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48025;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48029;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48030;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48031;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48032;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48033;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48034;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48035;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48036;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48037;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48038;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48039;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48041;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48043;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48044;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48045;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=49074;
DELETE FROM `manual_transactions` WHERE `manual_transaction_id`=45956;
UPDATE manual_transactions SET amount=108.26 WHERE manual_transaction_id=45968;
UPDATE manual_transactions SET amount=0 WHERE manual_transaction_id=45988;
UPDATE manual_transactions SET amount=80.74 WHERE manual_transaction_id=45958;
UPDATE `manual_transactions` SET `amount`=108.50 WHERE `manual_transaction_id`=45968;
DELETE FROM `invoice_margin_calls` WHERE `invoice_id` IN (46818,46820,47229,49293,49295,49310,49331,49334,49335);
DELETE FROM `invoice_margin_calls` WHERE `invoice_id` IN (55875);
UPDATE `manual_transactions` SET `amount`=1140.73 WHERE `manual_transaction_id`=48016;
INSERT INTO `manual_transactions` (`manual_transaction_id`, `transaction_type`, `debtor_id`, `originator_id`, `currency_id`, `amount`, `reference_to`, `specific_allocation`, `notes`, `transaction_file`, `specific_deductible`, `deductible_amount`, `trailing_balance`, `trailing_balance_amt`, `transref_list`, `reconcile_payment`, `reconcile_ref`, `payment_return`, `false_payment`, `amendment_id`, `status`, `reconcile_status`, `reconcile_credit`, `multiple_payments`, `multiple_status`, `interface`, `paid_status`, `transaction_date`, `notification_title`, `transaction_name`, `issue_date`, `created_at`, `created_by`, `modified_at`, `modified_by`, `authorised_at`, `authorised_by`, `reserve_on`, `rerouted`, `spooled`, `orpa_id`, `fees_commissions`)
SELECT NULL,transaction_type,debtor_id,originator_id,currency_id,710.74,reference_to,`specific_allocation`, `notes`, `transaction_file`, `specific_deductible`, `deductible_amount`, `trailing_balance`, `trailing_balance_amt`, `transref_list`, `reconcile_payment`, `reconcile_ref`, `payment_return`, `false_payment`, `amendment_id`, `status`, `reconcile_status`, `reconcile_credit`, `multiple_payments`, `multiple_status`, `interface`, `paid_status`, `transaction_date`, `notification_title`, `transaction_name`, `issue_date`, NOW(), -1, `modified_at`, `modified_by`, NOW(), -1, 0, `rerouted`, `spooled`, `orpa_id`, `fees_commissions`
FROM manual_transactions
WHERE manual_transactions.manual_transaction_id = 48022;
UPDATE `manual_transactions` SET `amount`=751.16 WHERE `manual_transaction_id`=48023;
UPDATE invoice_margin_calls SET
invoice_margin_calls.is_drp=0, invoice_margin_calls.drp_value=NULL
WHERE invoice_margin_calls.is_drp=48042;
UPDATE `manual_transactions` SET `amount`=129.42 WHERE `manual_transaction_id`=48039;
UPDATE `manual_transactions` SET `amount`=76.63 WHERE `manual_transaction_id`=48038;
UPDATE `manual_transactions` SET `amount`=849.95 WHERE `manual_transaction_id`=48029;
UPDATE `manual_transactions` SET `amount`=92.39 WHERE `manual_transaction_id`=48028;
UPDATE `manual_transactions` SET `amount`=1493.66 WHERE `manual_transaction_id`=48026;
UPDATE `manual_transactions` SET `amount`=13.79 WHERE `manual_transaction_id`=48013;
UPDATE `manual_transactions` SET `amount`=5626.89 WHERE `manual_transaction_id`=45881;
UPDATE `manual_transactions` SET `amount`=4501.22 WHERE `manual_transaction_id`=45886;
UPDATE `manual_transactions` SET `amount`=23.79 WHERE `manual_transaction_id`=45948;
UPDATE `manual_transactions` SET `amount`=253.04 WHERE `manual_transaction_id`=45944;
UPDATE `manual_transactions` SET `amount`=228.97 WHERE `manual_transaction_id`=45941;
UPDATE `manual_transactions` SET `amount`=96.57 WHERE `manual_transaction_id`=45987;
UPDATE `manual_transactions` SET `amount`=55.74 WHERE `manual_transaction_id`=46091;
UPDATE `manual_transactions` SET `amount`=5877.01 WHERE `manual_transaction_id`=46094;
UPDATE `manual_transactions` SET `amount`=14.47 WHERE `manual_transaction_id`=46038;
UPDATE `manual_transactions` SET `amount`=368.61 WHERE `manual_transaction_id`=46027;
UPDATE `manual_transactions` SET `amount`=129.88 WHERE `manual_transaction_id`=45996;
UPDATE `manual_transactions` SET `amount`=159.62 WHERE `manual_transaction_id`=45887;
UPDATE `manual_transactions` SET `amount`=6.83 WHERE `manual_transaction_id`=45883;/*6.84*/
UPDATE `manual_transactions` SET `amount`=1199.02 WHERE `manual_transaction_id`=45906;/*1199.03*/
UPDATE `manual_transactions` SET `amount`=611.03 WHERE `manual_transaction_id`=45912;/*611.02*/
UPDATE `manual_transactions` SET `amount`=45.98 WHERE `manual_transaction_id`=45950;/*45.99*/
UPDATE `manual_transactions` SET `amount`=39.02 WHERE `manual_transaction_id`=45960;/*39.03*/
UPDATE `manual_transactions` SET `amount`=226.84 WHERE `manual_transaction_id`=45965;/*226.85*/
UPDATE `manual_transactions` SET `amount`=119.5 WHERE `manual_transaction_id`=45966;/*119.49*/
UPDATE `manual_transactions` SET `amount`=219.99 WHERE `manual_transaction_id`=45971;/*220.00*/
UPDATE `manual_transactions` SET `amount`=240.48 WHERE `manual_transaction_id`=46079;/*240.49*/
UPDATE `manual_transactions` SET `amount`=1023.68 WHERE `manual_transaction_id`=48007;/*1023.66*/
UPDATE `manual_transactions` SET `amount`=3263.19 WHERE `manual_transaction_id`=48046;/*3263.18*/
UPDATE `manual_transactions` SET `amount`=360.55 WHERE `manual_transaction_id`=45979;/*360.56*/
UPDATE `manual_transactions` SET `amount`=776.35 WHERE `manual_transaction_id`=45976;/*776.36*/
UPDATE `manual_transactions` SET `amount`=518.01 WHERE `manual_transaction_id`=45892;/*518.03*/
UPDATE `manual_transactions` SET `amount`=636.78 WHERE `manual_transaction_id`=45885;/*636.80*/
UPDATE `manual_transactions` SET `amount`=484.93 WHERE `manual_transaction_id`=45882;/*484.97*/
UPDATE `manual_transactions` SET `amount`=91.21 WHERE `manual_transaction_id`=46058;/*91.20*/
UPDATE `manual_transactions` SET `amount`=352.31 WHERE `manual_transaction_id`=46052;/*352.30*/
UPDATE `manual_transactions` SET `amount`=69.36 WHERE `manual_transaction_id`=46049;/*69.37*/
UPDATE `manual_transactions` SET `amount`=692.45 WHERE `manual_transaction_id`=46047;/*692.44*/
UPDATE `manual_transactions` SET `amount`=176.78 WHERE `manual_transaction_id`=46030;/*176.77*/
UPDATE `manual_transactions` SET `amount`=310.6 WHERE `manual_transaction_id`=46066;/*310.59*/
UPDATE `manual_transactions` SET `amount`=282.35 WHERE `manual_transaction_id`=46054;/*282.36*/
UPDATE `manual_transactions` SET `amount`=906.71 WHERE `manual_transaction_id`=45903;/*906.73*/
UPDATE `manual_transactions` SET `amount`=250.26 WHERE `manual_transaction_id`=48014;/*241.02*/
UPDATE `invoice_margin_calls` SET `rtrade_value`=1.89 WHERE `invoice_id`=56224;
UPDATE `invoice_margin_calls` SET `drp_value`=3.31 WHERE `invoice_id`=49092;