| | |
| | | </where> |
| | | </select> |
| | | |
| | | </mapper> |
| | | <select id="supplierTransactions" resultType="com.ruoyi.purchase.vo.SupplierTransactionsVo"> |
| | | SELECT T1.supplier_id, |
| | | sm.supplier_name, |
| | | T1.contractAmounts, |
| | | IFNULL(T3.InboundAmount, 0) AS shippedAmount, |
| | | T1.contractAmounts - IFNULL(T3.InboundAmount, 0) AS unshippedAmount |
| | | FROM (SELECT supplier_id, SUM(contract_amount) AS contractAmounts FROM purchase_ledger GROUP BY supplier_id) T1 |
| | | LEFT JOIN ( |
| | | SELECT t.supplier_id, |
| | | SUM(t.inbound_amount) AS InboundAmount |
| | | FROM ( |
| | | SELECT sir.stock_in_num * slp.tax_inclusive_unit_price AS inbound_amount, pl.supplier_id |
| | | FROM stock_in_record sir |
| | | INNER JOIN sales_ledger_product slp ON slp.id = sir.record_id |
| | | INNER JOIN purchase_ledger pl ON pl.id = slp.sales_ledger_id |
| | | WHERE sir.approval_status = 1 AND sir.record_type = 7 AND slp.type = 2 |
| | | UNION ALL |
| | | SELECT |
| | | sir.stock_in_num * slp_agg.tax_inclusive_unit_price AS inbound_amount, |
| | | pl2.supplier_id |
| | | FROM stock_in_record sir |
| | | INNER JOIN quality_inspect qi |
| | | ON qi.id = sir.record_id |
| | | INNER JOIN purchase_ledger pl2 |
| | | ON pl2.id = qi.purchase_ledger_id |
| | | INNER JOIN ( |
| | | SELECT |
| | | sales_ledger_id, |
| | | product_model_id, |
| | | MIN(tax_inclusive_unit_price) AS tax_inclusive_unit_price |
| | | FROM sales_ledger_product |
| | | WHERE type = 2 |
| | | GROUP BY sales_ledger_id, product_model_id |
| | | ) slp_agg |
| | | ON slp_agg.sales_ledger_id = pl2.id |
| | | AND slp_agg.product_model_id = sir.product_model_id |
| | | WHERE sir.approval_status = 1 AND sir.record_type = 10 |
| | | ) t |
| | | GROUP BY t.supplier_id |
| | | ) T3 ON T3.supplier_id = T1.supplier_id |
| | | LEFT JOIN supplier_manage sm ON T1.supplier_id = sm.id |
| | | <where> |
| | | <if test="supplierName!=null and supplierName!=''"> |
| | | AND sm.supplier_name LIKE CONCAT('%',#{supplierName},'%') |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | <select id="supplierTransactionsDetails" |
| | | resultType="com.ruoyi.purchase.vo.SupplierTransactionsDetailsVo"> |
| | | SELECT pl.id purchaseLedgerId, |
| | | pl.purchase_contract_number, |
| | | pl.execution_date, |
| | | pl.contract_amount, |
| | | IFNULL(T2.InboundAmount, 0) AS shippedAmount, |
| | | pl.contract_amount - IFNULL(T2.InboundAmount, 0) AS unshippedAmount |
| | | FROM purchase_ledger pl |
| | | LEFT JOIN ( |
| | | SELECT t.sales_ledger_id, |
| | | SUM(t.inbound_amount) AS InboundAmount |
| | | FROM ( |
| | | SELECT sir.stock_in_num * slp.tax_inclusive_unit_price AS inbound_amount, slp.sales_ledger_id |
| | | FROM stock_in_record sir |
| | | INNER JOIN sales_ledger_product slp ON slp.id = sir.record_id |
| | | WHERE sir.approval_status = 1 AND sir.record_type = 7 AND slp.type = 2 |
| | | UNION ALL |
| | | SELECT |
| | | sir.stock_in_num * slp_agg.tax_inclusive_unit_price AS inbound_amount, |
| | | slp_agg.sales_ledger_id |
| | | FROM stock_in_record sir |
| | | INNER JOIN quality_inspect qi |
| | | ON qi.id = sir.record_id |
| | | INNER JOIN purchase_ledger pl2 |
| | | ON pl2.id = qi.purchase_ledger_id |
| | | INNER JOIN ( |
| | | SELECT |
| | | sales_ledger_id, |
| | | product_model_id, |
| | | MIN(tax_inclusive_unit_price) AS tax_inclusive_unit_price |
| | | FROM sales_ledger_product |
| | | WHERE type = 2 |
| | | GROUP BY sales_ledger_id, product_model_id |
| | | ) slp_agg |
| | | ON slp_agg.sales_ledger_id = pl2.id |
| | | AND slp_agg.product_model_id = sir.product_model_id |
| | | WHERE sir.approval_status = 1 AND sir.record_type = 10 |
| | | ) t |
| | | GROUP BY t.sales_ledger_id |
| | | ) T2 ON T2.sales_ledger_id = pl.id |
| | | WHERE pl.supplier_id = #{supplierId} |
| | | </select> |
| | | |
| | | </mapper> |