| | |
| | | // 待付款金额 |
| | | private BigDecimal unPaymentAmount; |
| | | |
| | | // 付款金额 |
| | | // 已入库/未入库金额 |
| | | private BigDecimal paymentAmount; |
| | | |
| | | // 应付金额 |
| | | // 未入库/入库金额 |
| | | private BigDecimal payableAmount; |
| | | |
| | | // 税率 |
| | |
| | | T1.supplier_name, |
| | | T1.invoiceAmount, |
| | | IFNULL(T2.paymentAmount, 0) AS paymentAmount, |
| | | (T1.invoiceAmount - IFNULL(T2.paymentAmount, 0)) AS payableAmount |
| | | IFNULL(T2.payableAmount, 0) AS payableAmount |
| | | FROM ( |
| | | SELECT |
| | | supplier_id, |
| | |
| | | ) T1 |
| | | LEFT JOIN ( |
| | | SELECT |
| | | supplier_id, |
| | | SUM(current_payment_amount) AS paymentAmount |
| | | FROM payment_registration |
| | | GROUP BY supplier_id |
| | | pl.supplier_id, |
| | | SUM(IFNULL(slp.stocked_quantity, 0) * IFNULL(slp.tax_inclusive_unit_price, 0)) AS paymentAmount, |
| | | SUM((IFNULL(slp.quantity, 0) - IFNULL(slp.stocked_quantity, 0)) * IFNULL(slp.tax_inclusive_unit_price, 0)) AS payableAmount |
| | | FROM purchase_ledger pl |
| | | JOIN sales_ledger_product slp ON pl.id = slp.sales_ledger_id AND slp.type = 2 |
| | | GROUP BY pl.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(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 |
| | | pl.id, |
| | | pl.purchase_contract_number, |
| | | pl.contract_amount AS invoiceAmount, |
| | | pl.entry_date AS payment_date, |
| | | IFNULL(T2.payableAmount, 0) AS paymentAmount, |
| | | IFNULL(T2.paymentAmount, 0) AS payableAmount |
| | | FROM purchase_ledger pl |
| | | LEFT JOIN ( |
| | | SELECT |
| | | sales_ledger_id, |
| | | SUM(IFNULL(stocked_quantity, 0) * IFNULL(tax_inclusive_unit_price, 0)) AS paymentAmount, |
| | | SUM((IFNULL(quantity, 0) - IFNULL(stocked_quantity, 0)) * IFNULL(tax_inclusive_unit_price, 0)) AS payableAmount |
| | | FROM sales_ledger_product |
| | | WHERE type = 2 |
| | | GROUP BY sales_ledger_id |
| | | ) T2 ON pl.id = T2.sales_ledger_id |
| | | <where> |
| | | T1.supplier_id = #{req.supplierId} |
| | | pl.supplier_id = #{req.supplierId} |
| | | <if test="req.supplierName != null and req.supplierName != '' "> |
| | | AND T1.supplier_name LIKE CONCAT ('%', #{req.supplierName}, '%') |
| | | AND pl.supplier_name LIKE CONCAT ('%', #{req.supplierName}, '%') |
| | | </if> |
| | | </where> |
| | | ORDER BY T2.payment_date ASC, T2.id ASC |
| | | |
| | | ORDER BY pl.entry_date ASC, pl.id ASC |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | T1.customer_name, |
| | | T1.invoice_total, |
| | | IFNULL(T2.receipt_payment_amount, 0) AS receipt_payment_amount, |
| | | IFNULL(T1.invoice_total - IFNULL(T2.receipt_payment_amount, 0), 0) AS unReceipt_payment_amount |
| | | IFNULL(T2.unReceipt_payment_amount, 0) AS unReceipt_payment_amount |
| | | FROM ( |
| | | SELECT |
| | | customer_id, |
| | |
| | | ) T1 |
| | | LEFT JOIN ( |
| | | SELECT |
| | | T3.customer_id, |
| | | SUM(T2.receipt_payment_amount) AS receipt_payment_amount |
| | | FROM receipt_payment T2 |
| | | LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id |
| | | GROUP BY T3.customer_id |
| | | sl.customer_id, |
| | | SUM(IFNULL(slp.shipped_quantity, 0) * IFNULL(slp.tax_inclusive_unit_price, 0)) AS receipt_payment_amount, |
| | | SUM((IFNULL(slp.stocked_quantity, 0) - IFNULL(slp.shipped_quantity, 0)) * IFNULL(slp.tax_inclusive_unit_price, 0)) AS unReceipt_payment_amount |
| | | FROM sales_ledger sl |
| | | JOIN sales_ledger_product slp ON sl.id = slp.sales_ledger_id AND slp.type = 1 |
| | | GROUP BY sl.customer_id |
| | | ) T2 ON T1.customer_id = T2.customer_id |
| | | <where> |
| | | <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != '' "> |
| | |
| | | |
| | | <select id="invoiceLedgerSalesAccount" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto"> |
| | | SELECT |
| | | T2.id, |
| | | T1.sales_contract_no, |
| | | T1.contract_amount AS invoice_total, |
| | | sl.id, |
| | | sl.sales_contract_no, |
| | | sl.contract_amount AS invoice_total, |
| | | sl.entry_date AS receipt_payment_date, |
| | | IFNULL(T2.receipt_payment_amount, 0) AS receipt_payment_amount, |
| | | IFNULL(( |
| | | T1.contract_amount - IFNULL(( |
| | | SELECT SUM(T3.receipt_payment_amount) |
| | | FROM receipt_payment T3 |
| | | WHERE T3.sales_ledger_id = T1.id |
| | | AND ( |
| | | T3.receipt_payment_date < T2.receipt_payment_date |
| | | OR (T3.receipt_payment_date = T2.receipt_payment_date AND T3.id <= T2.id) |
| | | ) |
| | | ), 0) |
| | | ), 0) AS unReceipt_payment_amount, |
| | | T2.receipt_payment_date |
| | | FROM sales_ledger T1 |
| | | INNER JOIN receipt_payment T2 ON T1.id = T2.sales_ledger_id |
| | | IFNULL(T2.unReceipt_payment_amount, 0) AS unReceipt_payment_amount |
| | | FROM sales_ledger sl |
| | | LEFT JOIN ( |
| | | SELECT |
| | | sales_ledger_id, |
| | | SUM(IFNULL(shipped_quantity, 0) * IFNULL(tax_inclusive_unit_price, 0)) AS receipt_payment_amount, |
| | | SUM((IFNULL(stocked_quantity, 0) - IFNULL(shipped_quantity, 0)) * IFNULL(tax_inclusive_unit_price, 0)) AS unReceipt_payment_amount |
| | | FROM sales_ledger_product |
| | | WHERE type = 1 |
| | | GROUP BY sales_ledger_id |
| | | ) T2 ON sl.id = T2.sales_ledger_id |
| | | <where> |
| | | T1.customer_id = #{invoiceLedgerDto.customerId} |
| | | sl.customer_id = #{invoiceLedgerDto.customerId} |
| | | <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != '' "> |
| | | AND T1.customer_name LIKE CONCAT ('%', #{invoiceLedgerDto.searchText}, '%') |
| | | AND sl.customer_name LIKE CONCAT ('%', #{invoiceLedgerDto.searchText}, '%') |
| | | </if> |
| | | </where> |
| | | ORDER BY T2.receipt_payment_date ASC, T2.id ASC |
| | | ORDER BY sl.entry_date ASC, sl.id ASC |
| | | </select> |
| | | |
| | | </mapper> |