| | |
| | | T1.attachment_materials, |
| | | T1.tenant_id, |
| | | T1.contract_amount, |
| | | T1.contract_amount as noInvoiceAmountTotal, |
| | | T1.contract_amount AS noInvoiceAmountTotal, |
| | | T1.execution_date, |
| | | T2.nick_name AS entry_person_name, |
| | | T1.payment_method, |
| | | T1.delivery_date, |
| | | DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff, |
| | | CASE |
| | | WHEN shipping_status_counts.total_count = 0 THEN false |
| | | WHEN shipping_status_counts.unshipped_count = 0 THEN true |
| | | ELSE false |
| | | END AS is_fh, |
| | | CASE |
| | | WHEN EXISTS ( |
| | | SELECT 1 |
| | | FROM product_order po2 |
| | | INNER JOIN product_work_order wo2 ON wo2.product_order_id = po2.id |
| | | INNER JOIN production_product_main pm2 ON pm2.work_order_id = wo2.id |
| | | WHERE po2.sales_ledger_id = T1.id |
| | | LIMIT 1 |
| | | ) THEN true |
| | | ELSE false |
| | | END AS has_production_record |
| | | IFNULL(shipping_status_counts.is_all_shipped, FALSE) AS is_fh, |
| | | IFNULL(production_exists.has_production, FALSE) AS has_production_record |
| | | FROM sales_ledger T1 |
| | | LEFT JOIN sys_user T2 ON T1.entry_person = T2.user_id |
| | | LEFT JOIN ( |
| | | SELECT sales_ledger_id, |
| | | COUNT(*) as total_count, |
| | | SUM(CASE WHEN status != '已发货' THEN 1 ELSE 0 END) as unshipped_count |
| | | CASE |
| | | WHEN SUM(CASE WHEN status != '已发货' THEN 1 ELSE 0 END) = 0 THEN TRUE |
| | | ELSE FALSE |
| | | END AS is_all_shipped |
| | | FROM shipping_info |
| | | GROUP BY sales_ledger_id |
| | | ) shipping_status_counts ON T1.id = shipping_status_counts.sales_ledger_id |
| | | |
| | | LEFT JOIN ( |
| | | SELECT DISTINCT po.sales_ledger_id, |
| | | TRUE AS has_production |
| | | FROM product_order po |
| | | INNER JOIN product_work_order wo ON wo.product_order_id = po.id |
| | | INNER JOIN production_product_main pm ON pm.work_order_id = wo.id |
| | | ) production_exists ON T1.id = production_exists.sales_ledger_id |
| | | <where> |
| | | <if test="salesLedgerDto.customerName != null and salesLedgerDto.customerName != '' "> |
| | | AND T1.customer_name LIKE CONCAT('%',#{salesLedgerDto.customerName},'%') |