Code:
CREATE PROCEDURE MY_PAY ( USER_ID INTEGER, SUMMA NUMERIC(15,2)) AS DECLARE VARIABLE NUMBER VARCHAR(10); DECLARE VARIABLE MONEY NUMERIC(18,0); DECLARE VARIABLE SUMMA_NUM NUMERIC(18,0); DECLARE VARIABLE new_id integer; begin /* пример собственной процедуры для прихода */ --получаем коэф пересчета суммы во внутренний формат бд select vpn_const.const_value from vpn_const where vpn_const.const_id = 1 into :money; /*типы операций в таблице FIN_TYPE ID Имя знак коммент 1 Расход -1 Выставление счета фактуры, сброс кредита в начльное состояние(N=K,K=0) 2 Приход 1 Абонент оплатил деньги или за него оплачены виртуальные деньги D=sum 3 Баланс подвести 0 Остаток увеличить на дебет, сбросить дебет в ноль 4 Обнуление 0 Делаем баланс в ноль тремя операциями: спишем кредит, надбавим дебет, спишем дебет 5 Счет 0 Выставлен счет(Баланс неизменен) 6 Документы 0 Разные документы, Договор с абонентом 7 Услуга -1 Списание доп. услуги Всеже пока хак D=D-sum 100 Отчет за период 0 Отчеты за период типа ведомость 6, 16 , баланс 200 Интернет карты 0 Печать интернет карт */ --получаем номер след операции приход select NUMBER from CLN_FIN_OPER_PREPARE(2/приход/,:USER_ID) into :number; if (number is null) then number='000000'; SUMMA_NUM=SUMMA*money; --выполняем операцию приход execute procedure gln_fin_add_debet(:user_id,'now',:SUMMA_NUM,'Оплата через my_pay',:user_id,:number) returning_values :new_id; /* аналогично работают GLN_FIN_DEC_DEBIT -- разовая услуга, протяжка кабеля и тп не рекомендуется использовать вручную GLN_FIN_MAKE_CREDIT -- формирование акта, выставлятеся автоматом в конце мес GLN_FIN_MAKE_DEBIT -- списывание дебета в остаток автоматом в конце мес p.s если необходимо списывать периодические услуги, то их необходимо сначало создать и потом назначить пользователю это можно делать через CLN_USR_USLUGA_EDIT предварительно требуется авторизация админом через CLN_AUTH_LOGIN для получения SUID. p.p.s. полезная информация http://www.ideco-software.ru/forum3/default.aspx?g=posts&t=1136 */ end
Вызывать процедуры можно
1. Через любую программу которая умеет работать с interbase
2. Через isql
3. Через PHP, через интерфейс кассира или платежных систем.