-- 销售/采购相关页面金额、单价、数量、总价统一保留 6 位小数
-- 涉及页面：销售报价、销售台账、客户退货、客户往来、采购台账、供应商往来、采购退货、采购报表
-- 统一使用 decimal(18, 6)：整数位保留 12 位，避免由 decimal(10, 2) 直接改小数位导致的溢出

-- ----------------------------
-- 销售报价（sales_quotation / sales_quotation_product）
-- ----------------------------
ALTER TABLE `sales_quotation`
    MODIFY COLUMN `total_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '报价金额';

ALTER TABLE `sales_quotation_product`
    MODIFY COLUMN `quantity` decimal(18, 6) NULL DEFAULT NULL COMMENT '数量',
    MODIFY COLUMN `unit_price` decimal(18, 6) NULL DEFAULT NULL COMMENT '单价',
    MODIFY COLUMN `amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '金额';

-- ----------------------------
-- 销售台账（sales_ledger / sales_ledger_product）
-- ----------------------------
ALTER TABLE `sales_ledger`
    MODIFY COLUMN `contract_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '合同金额（产品含税总价）',
    MODIFY COLUMN `net_contract_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '实际合同金额（扣减退货后）';

ALTER TABLE `sales_ledger_product`
    MODIFY COLUMN `quantity` decimal(18, 6) NOT NULL COMMENT '数量',
    MODIFY COLUMN `min_stock` decimal(18, 6) NULL DEFAULT NULL COMMENT '最低库存',
    MODIFY COLUMN `tax_inclusive_unit_price` decimal(18, 6) NOT NULL COMMENT '含税单价',
    MODIFY COLUMN `tax_inclusive_total_price` decimal(18, 6) NOT NULL COMMENT '含税总价',
    MODIFY COLUMN `tax_exclusive_total_price` decimal(18, 6) NOT NULL COMMENT '不含税总价',
    MODIFY COLUMN `warn_num` decimal(18, 6) NULL DEFAULT NULL COMMENT '预警数量';

-- 台账模板（保存/套用模板时与产品表结构保持一致）
ALTER TABLE `sales_ledger_product_template`
    MODIFY COLUMN `quantity` decimal(18, 6) NULL DEFAULT NULL COMMENT '数量',
    MODIFY COLUMN `min_stock` decimal(18, 6) NULL DEFAULT NULL COMMENT '最低库存',
    MODIFY COLUMN `tax_inclusive_unit_price` decimal(18, 6) NULL DEFAULT NULL COMMENT '含税单价',
    MODIFY COLUMN `tax_inclusive_total_price` decimal(18, 6) NULL DEFAULT NULL COMMENT '含税总价',
    MODIFY COLUMN `tax_exclusive_total_price` decimal(18, 6) NULL DEFAULT NULL COMMENT '不含税总价',
    MODIFY COLUMN `warn_num` decimal(18, 6) NULL DEFAULT NULL COMMENT '预警数量';

-- ----------------------------
-- 客户退货（return_management / return_sale_product / sales_refund_amount_order）
-- ----------------------------
ALTER TABLE `return_management`
    MODIFY COLUMN `refund_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '退款总额';

ALTER TABLE `return_sale_product`
    MODIFY COLUMN `num` decimal(18, 6) NOT NULL COMMENT '退货产品数量',
    MODIFY COLUMN `price` decimal(18, 6) NULL DEFAULT NULL COMMENT '单价',
    MODIFY COLUMN `amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '金额';

ALTER TABLE `sales_refund_amount_order`
    MODIFY COLUMN `refund_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '应退款金额',
    MODIFY COLUMN `refunded_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '已退款金额',
    MODIFY COLUMN `not_refunded_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '未退款金额';

-- ----------------------------
-- 客户往来（回款金额来源：account_sales_collection、receipt_payment）
-- ----------------------------
ALTER TABLE `account_sales_collection`
    MODIFY COLUMN `collection_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '收款金额';

ALTER TABLE `receipt_payment`
    MODIFY COLUMN `receipt_payment_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '回款金额';

-- ----------------------------
-- 采购台账（purchase_ledger / purchase_ledger_template）
-- ----------------------------
ALTER TABLE `purchase_ledger`
    MODIFY COLUMN `contract_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '合同金额',
    MODIFY COLUMN `net_contract_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '实际合同金额（扣减退货后）';

ALTER TABLE `purchase_ledger_template`
    MODIFY COLUMN `contract_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '合同金额';

-- ----------------------------
-- 供应商往来（付款金额来源：account_purchase_payment）
-- ----------------------------
ALTER TABLE `account_purchase_payment`
    MODIFY COLUMN `payment_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '付款金额';

-- ----------------------------
-- 采购退货（purchase_return_orders / purchase_return_order_products）
-- ----------------------------
ALTER TABLE `purchase_return_orders`
    MODIFY COLUMN `total_discount_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '整单折扣额',
    MODIFY COLUMN `total_discount_rate` decimal(18, 6) NULL DEFAULT NULL COMMENT '整单折扣率',
    MODIFY COLUMN `total_amount` decimal(18, 6) NULL DEFAULT NULL COMMENT '成交金额';

ALTER TABLE `purchase_return_order_products`
    MODIFY COLUMN `return_quantity` decimal(18, 6) NOT NULL DEFAULT 0.000000 COMMENT '退货数量';
