Можно сделать так:
1. устанавливаем dblink:
Система -> Администрирование -> Менеджер пакетов Synaptic
вводим пароль
в поле быстрого поиска вводим dblink
отмечаем пакет postgresql-contrib-8.4
жмем кнопку Применить
Перезагружаем PostgreSQL-сервер:
sudo /etc/init.d/postgresql restart
В терминале набираем:
kassir@kassa1:~$ psql -U kassir -h 127.0.0.1 LinCash < /usr/share/postgresql/8.4/contrib/dblink.sql
2. создаем представление transaction_explain, выполнив команду в терминале:
- Код: Выделить всё
psql Transaction -c "CREATE OR REPLACE VIEW transaction_explain AS (SELECT a.n_transaction, a.tr_date_time, a.tr_type, b.name, a.check_type, a.code, a.code_tax_group, a.code_tax_rate, a.payment_type, a.card_code, a.value_1, a.value_2, a.reduction_type, a.reduction_info, a.auto_scheme_id, a.gain, a.barcode, a.protokol_type, a.round_sum, a.manager, a.n_pc, a.n_kkm, a.seller, a.n_session, a.n_check, a.n_doc FROM transaction a, transaction_type b WHERE (a.tr_type = b.tr_type));"
3. создаем представление kassa_transactions, выполнив команду в терминале:
- Код: Выделить всё
psql LinCash -c "CREATE OR REPLACE VIEW kassa_transactions AS (SELECT a.n_transaction, a.tr_date_time, a.tr_type, a.name, a.check_type, a.code, a.code_tax_group, a.code_tax_rate, a.payment_type, a.card_code, a.value_1, a.value_2, a.reduction_type, a.reduction_info, a.auto_scheme_id, a.gain, a.barcode, a.protokol_type, a.round_sum, a.manager, a.n_pc, a.n_kkm, a.seller, a.n_session, a.n_check, a.n_doc FROM dblink('hostaddr=127.0.0.1 port=5432 dbname=Transaction user=kassir'::text, 'SELECT * FROM transaction_explain '::text) a(n_transaction integer, tr_date_time timestamp without time zone, tr_type integer, name text, check_type integer, code text, code_tax_group integer, code_tax_rate integer, payment_type integer, card_code text, value_1 numeric(15,3), value_2 numeric(15,3), reduction_type integer, reduction_info text, auto_scheme_id integer, gain text, barcode text, protokol_type integer, round_sum numeric(15,3), manager integer, n_pc integer, n_kkm integer, seller integer, n_session integer, n_check integer, n_doc integer));"
4. создаем представление sales_11_55, выполнив команду в терминале:
- Код: Выделить всё
psql LinCash -c "CREATE OR REPLACE VIEW sales_11_55 AS (SELECT a.n_transaction, to_char(a.tr_date_time,'DD-MM-YYYY')AS salesdate, to_char(a.tr_date_time,'HH24:MI') as salestime, a.tr_type, a.name, a.check_type, a.code, b.longtitle, a.code_tax_group, a.code_tax_rate, a.payment_type, a.card_code, a.value_2 as amount, a.value_1 as price, a.value_2*a.value_1 as summa, a.reduction_type, a.reduction_info, a.auto_scheme_id, a.gain, a.barcode, a.protokol_type, a.round_sum, a.manager, a.n_pc, a.n_kkm, a.seller, a.n_session, a.n_check, a.n_doc FROM kassa_transactions a LEFT JOIN ware b ON a.code = b.internal_id WHERE (a.tr_type = 11 OR a.tr_type = 55));"
пункты 1. - 4. делаем один раз
5. теперь для получения отчета за текущий день по чекам выполняем команду
- Код: Выделить всё
psql LinCash -c "SELECT CASE WHEN tr_type = 11 THEN salesdate ELSE '----------' END as Дата, CASE WHEN tr_type = 11 THEN salestime ELSE '-----' END as Время, CASE WHEN tr_type = 11 AND check_type = 0 THEN 'Продажа' WHEN tr_type = 11 AND check_type = 1 THEN 'Возврат' ELSE '-------' END as Вид_чека, CASE WHEN tr_type = 11 THEN longtitle ELSE '---------------------------------------------------------------------------------' END as Товар, CASE WHEN tr_type = 11 THEN to_char(amount,'99D999') ELSE '-------' END as Кол_во, CASE WHEN tr_type = 11 THEN to_char(price,'9999D99') ELSE '--------' END as Цена, CASE WHEN tr_type = 11 THEN to_char(summa,'"_"99999D99') WHEN tr_type = 55 THEN to_char(amount,'"+"99999D99') ELSE NULL END as Сумма FROM sales_11_55 WHERE salesdate=to_char(now(),'DD-MM-YYYY') ORDER by n_transaction;" > DayReport.txt && gedit DayReport.txt
последнюю команду мы повесили на кнопку, которую создали на панели рядом с меню.
Ubuntu 10.10 \ Дэнси-Касса 1.2.6.p.8\ 1С v7.7\ протокол обмена Атол\ Без ФР \ сканер Metrologic Orbit 7120