| | |
| | | </select> |
| | | <select id="supplierNameListPage" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto"> |
| | | SELECT |
| | | T1.supplier_id , |
| | | T1.supplier_name, |
| | | SUM(T1.contract_amount) AS invoiceAmount, |
| | | IFNULL(SUM(T2.current_payment_amount), 0) AS paymentAmount, |
| | | IFNULL(SUM(T1.contract_amount) - IFNULL(SUM(T2.current_payment_amount), 0), 0) AS payableAmount |
| | | FROM ( |
| | | SELECT id,supplier_id, supplier_name, SUM(contract_amount) contract_amount |
| | | FROM purchase_ledger |
| | | GROUP BY supplier_id, supplier_name |
| | | ) T1 |
| | | LEFT JOIN ( |
| | | SELECT purchase_ledger_id, SUM(current_payment_amount) current_payment_amount |
| | | FROM payment_registration |
| | | GROUP BY purchase_ledger_id |
| | | ) T2 ON T1.id = T2.purchase_ledger_id |
| | | <where> |
| | | <if test="req.supplierName != null and req.supplierName != '' "> |
| | | T1.supplier_name LIKE CONCAT ('%',#{req.supplierName},'%') |
| | | </if> |
| | | </where> |
| | | GROUP BY T1.supplier_id, T1.supplier_name |
| | | T1.supplier_id, |
| | | T1.supplier_name, |
| | | T1.invoiceAmount, |
| | | IFNULL(T2.paymentAmount, 0) AS paymentAmount, |
| | | (T1.invoiceAmount - IFNULL(T2.paymentAmount, 0)) AS payableAmount |
| | | FROM ( |
| | | SELECT |
| | | supplier_id, |
| | | supplier_name, |
| | | SUM(contract_amount) AS invoiceAmount |
| | | FROM purchase_ledger |
| | | <where> |
| | | <if test="req.supplierName != null and req.supplierName != '' "> |
| | | AND supplier_name LIKE CONCAT ('%',#{req.supplierName},'%') |
| | | </if> |
| | | </where> |
| | | GROUP BY supplier_id, supplier_name |
| | | ) T1 |
| | | LEFT JOIN ( |
| | | SELECT |
| | | supplier_id, |
| | | SUM(current_payment_amount) AS paymentAmount |
| | | FROM payment_registration |
| | | GROUP BY supplier_id |
| | | ) T2 ON T1.supplier_id = T2.supplier_id |
| | | </select> |
| | | |
| | | <select id="supplierNameListPageDetails" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto"> |
| | | SELECT |
| | | T2.id, |
| | | T1.purchase_contract_number, |
| | | T1.contract_amount AS invoiceAmount, |
| | | IFNULL(SUM(T2.current_payment_amount), 0) AS paymentAmount, |
| | | IFNULL((T1.contract_amount - IFNULL(SUM(T2.current_payment_amount), 0)), 0) AS payableAmount, |
| | | IFNULL(T2.current_payment_amount, 0) AS paymentAmount, |
| | | IFNULL(( |
| | | T1.contract_amount - IFNULL(( |
| | | SELECT SUM(T3.current_payment_amount) |
| | | FROM payment_registration T3 |
| | | WHERE T3.purchase_ledger_id = T1.id |
| | | AND ( |
| | | T3.payment_date < T2.payment_date |
| | | OR (T3.payment_date = T2.payment_date AND T3.id <= T2.id) |
| | | ) |
| | | ), 0) |
| | | ), 0) AS payableAmount, |
| | | T2.payment_date |
| | | FROM purchase_ledger T1 |
| | | INNER JOIN payment_registration T2 ON T1.id = T2.purchase_ledger_id |
| | |
| | | AND T1.supplier_name LIKE CONCAT ('%', #{req.supplierName}, '%') |
| | | </if> |
| | | </where> |
| | | GROUP BY T1.id, T1.purchase_contract_number, T1.contract_amount, T2.payment_date |
| | | ORDER BY T2.payment_date ASC, T2.id ASC |
| | | |
| | | </select> |
| | | |