调整业务问题
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
-- 开票申请商品行补齐不含税金额与含税合计字段。
|
||||
-- 使用 information_schema 判断字段是否存在,重复执行不会报重复列错误。
|
||||
SET @invoice_line_schema = DATABASE();
|
||||
|
||||
SET @invoice_line_sql = (
|
||||
SELECT IF(
|
||||
COUNT(*) > 0,
|
||||
'ALTER TABLE `blade_invoice_application_line` MODIFY COLUMN `unit_price_no_tax` decimal(18,2) DEFAULT NULL',
|
||||
'SELECT 1'
|
||||
)
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = @invoice_line_schema
|
||||
AND table_name = 'blade_invoice_application_line'
|
||||
AND column_name = 'unit_price_no_tax'
|
||||
AND (numeric_precision <> 18 OR numeric_scale <> 2)
|
||||
);
|
||||
PREPARE invoice_line_stmt FROM @invoice_line_sql;
|
||||
EXECUTE invoice_line_stmt;
|
||||
DEALLOCATE PREPARE invoice_line_stmt;
|
||||
|
||||
SET @invoice_line_sql = (
|
||||
SELECT IF(
|
||||
COUNT(*) = 0,
|
||||
'ALTER TABLE `blade_invoice_application_line` ADD COLUMN `amount_no_tax` decimal(18,2) NOT NULL DEFAULT ''0.00'' COMMENT ''不含税金额'' AFTER `unit_price_no_tax`',
|
||||
'SELECT 1'
|
||||
)
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = @invoice_line_schema
|
||||
AND table_name = 'blade_invoice_application_line'
|
||||
AND column_name = 'amount_no_tax'
|
||||
);
|
||||
PREPARE invoice_line_stmt FROM @invoice_line_sql;
|
||||
EXECUTE invoice_line_stmt;
|
||||
DEALLOCATE PREPARE invoice_line_stmt;
|
||||
|
||||
SET @invoice_line_sql = (
|
||||
SELECT IF(
|
||||
COUNT(*) = 0,
|
||||
'ALTER TABLE `blade_invoice_application_line` ADD COLUMN `total_amount` decimal(18,2) NOT NULL DEFAULT ''0.00'' COMMENT ''含税合计'' AFTER `tax_amount`',
|
||||
'SELECT 1'
|
||||
)
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = @invoice_line_schema
|
||||
AND table_name = 'blade_invoice_application_line'
|
||||
AND column_name = 'total_amount'
|
||||
);
|
||||
PREPARE invoice_line_stmt FROM @invoice_line_sql;
|
||||
EXECUTE invoice_line_stmt;
|
||||
DEALLOCATE PREPARE invoice_line_stmt;
|
||||
|
||||
UPDATE `blade_invoice_application_line`
|
||||
SET `amount_no_tax` = ROUND(
|
||||
`amount_with_tax` / (1 + `tax_rate` / 100),
|
||||
2
|
||||
)
|
||||
WHERE `amount_no_tax` = 0
|
||||
AND `amount_with_tax` > 0;
|
||||
|
||||
UPDATE `blade_invoice_application_line`
|
||||
SET `total_amount` = ROUND(`amount_no_tax` + `tax_amount`, 2),
|
||||
`amount_with_tax` = ROUND(`amount_no_tax` + `tax_amount`, 2);
|
||||
Reference in New Issue
Block a user