Sp_InsertVoucher.md 2.07 KB

Sp_InsertVoucher (procedure)

  • Type: PROCEDURE
  • Deterministic: NO
  • SQL data access: CONTAINS SQL

Parameters

# Mode Name Type
1 IN sMakePerson_s varchar(100)
2 IN sBrId varchar(100)
3 IN sSuId varchar(100)
4 IN tStartDate datetime
5 IN tEndDate datetime
6 OUT sReturn varchar(1000)
7 OUT sCode int

Body

Body is not pre-cached. To inspect: mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURESpInsertVoucher'._

Narrative

Business context: 财务管理 → 财务凭证 — legacy hard-coded voucher generator for 销售发票 (salsalesinvoicemaster). Predecessor of the Sp_InsertVoucher_Universals* template-driven family. Loops the month's bCheck=1 sales invoices grouped by dCurrencyRate, sAccountNo, sCustomerId, sMReserve1 and writes one udfvouchermaster/udfvoucherslave per group, with the account routing 国内 vs 国外 invoices to different sAccountNo lines (5102.04, etc.) according to hand-coded if-branches.

What it does: Bails out if any udfvouchermaster row already exists for the current YEAR(SYSDATE())/MONTH(SYSDATE()) — the proc is single-run-per-month. Otherwise opens cursor over salsalesinvoicemaster between tStartDate..tEndDate, calls Sp_Sis_GetConst for localised constants and SP_Sis_GetMaxNo for the voucher number, then Insert Into udfvouchermaster/udfvoucherslave for each rate-account-customer-MReserve1 group. Does not back-write to the source invoice.

Invocation: Status: appears orphaned. No gdsmodule hook, no gdsconfigformmaster reference, no Java grep hit anywhere in xly-src/, and the modern path runs through Sp_InsertVoucher_Universals_Pro (dispatched by GenericProcedureCallServiceImpl.doGenericProcedureCall()). One DB caller — Sp_InsertVoucher_salsaleschecking — references the name but is itself a per-form variant in the same legacy family. Candidate for maintainer audit / removal once retention rules confirm no scheduled job calls it.