2026-11-01 20:42:53 -05:00
|
|
|
-- 已核实生成凭证路径:来源单据类型 ARAP01 → GL_SrcVoucherInfo → GL_Doc。
|
|
|
|
|
-- “未审”的总账凭证也可能已经生成,不能用单据已审核/已核销替代本关联。
|
2026-10-27 23:41:38 -04:00
|
|
|
-- SQL Server 2008 R2 语法;主键游标分页,时间水位尚未启用。
|
|
|
|
|
SELECT TOP (:batch_size)
|
|
|
|
|
h.ID AS id,
|
|
|
|
|
h.code AS code,
|
|
|
|
|
h.voucherDate,
|
|
|
|
|
h.auditedDate,
|
|
|
|
|
h.createdTime,
|
|
|
|
|
h.SaleOrderCode,
|
|
|
|
|
h.SaleOrderID,
|
|
|
|
|
h.idpartner,
|
|
|
|
|
h.idperson,
|
|
|
|
|
h.IdSettleStyle,
|
|
|
|
|
h.idvouchertype,
|
|
|
|
|
h.isReceiveFlag,
|
|
|
|
|
h.cancelState,
|
|
|
|
|
h.voucherstate,
|
|
|
|
|
h.amount,
|
|
|
|
|
h.paymentAmount,
|
2026-11-01 20:42:53 -05:00
|
|
|
ISNULL(accounting.accounting_voucher_count, 0) AS accounting_voucher_count,
|
|
|
|
|
ISNULL(accounting.valid_accounting_voucher_count, 0) AS valid_accounting_voucher_count,
|
|
|
|
|
accounting.accounting_voucher_id,
|
|
|
|
|
accounting_doc.code AS accounting_voucher_code,
|
2026-10-27 23:41:38 -04:00
|
|
|
CAST(NULL AS datetime) AS source_updated_at,
|
|
|
|
|
h.ts AS source_rowversion
|
|
|
|
|
FROM dbo.ARAP_ReceivePayment AS h
|
2026-11-01 20:42:53 -05:00
|
|
|
LEFT JOIN (
|
|
|
|
|
SELECT src.srcvoucherid,
|
|
|
|
|
COUNT(*) AS accounting_voucher_count,
|
|
|
|
|
SUM(CASE WHEN doc.id IS NOT NULL AND doc.isinvalidate = 0
|
|
|
|
|
AND make_state.Code = 'Ringht' THEN 1 ELSE 0 END) AS valid_accounting_voucher_count,
|
|
|
|
|
MIN(CASE WHEN doc.id IS NOT NULL AND doc.isinvalidate = 0
|
|
|
|
|
AND make_state.Code = 'Ringht' THEN doc.id ELSE NULL END) AS accounting_voucher_id
|
|
|
|
|
FROM dbo.GL_SrcVoucherInfo AS src
|
|
|
|
|
INNER JOIN dbo.SM_VoucherType AS source_type ON source_type.ID = src.idSrcVoucherType
|
|
|
|
|
LEFT JOIN dbo.GL_Doc AS doc ON doc.id = src.idDocDTO
|
|
|
|
|
LEFT JOIN dbo.eap_EnumItem AS make_state ON make_state.ID = doc.makeErrorState
|
|
|
|
|
WHERE source_type.Code = 'ARAP01'
|
|
|
|
|
GROUP BY src.srcvoucherid
|
|
|
|
|
) AS accounting ON accounting.srcvoucherid = h.ID
|
|
|
|
|
LEFT JOIN dbo.GL_Doc AS accounting_doc ON accounting_doc.id = accounting.accounting_voucher_id
|
2026-10-27 23:41:38 -04:00
|
|
|
WHERE h.id > :after_id
|
|
|
|
|
ORDER BY h.id;
|