Установка.


Требования.


Быстрый старт

Предполагается, что perl и ie есть.

Создайте директорию c:\tmp\DO

Скопируйте в нее DIST/bin и DIST/home

Скопируйте все директории из DIST/perl_lib в директорию в которой perl ищет свои библиотеки

Запустите в ie c:\tmp\DO\bin\index.html


Подготовка к работе.

  1. Установить Perl

  2. Установить ( обновить ) IE до 5.5

  3. Разрешить поддержку PerlScript, JavaScript ( по умолчанию включено )

  4. Во всех скриптах ( *.pl ) заменить пути к БД. По умолчанию прописано, что главная база лежит на машине buh2 ( $SMB_HOST_NAME ), в директориях DO\home\* ( $ROOT_DIR ).

    !!!

    ( после наложения некоторых патчей пути могут иметь вид:

    SMB_HOST_NAME => undef,

    ROOT_DIR => 'c:\\tmp\\DO\\home\....' )

    Далее все пути прописаны относительно этого ( $SMB_HOST_NAME + $ROOT_DIR ) пути. Эта процедура проделывается любым текстовым редактором. Если компов больше 1, то база может лежать на одной машине, а на остальные надо поставить только perl, ie и библиотеки ( perl_lib ), и прописать правильные пути. На win flock не работает, так, что...

  5. Из директории DIST ( после запуска create_dist.sh ) надо скопировать все что лежит в директории perl_lib, в директорию с библиотеками perl'а. ( cp DIST/perl_lib/* PATH_TO_SITE_PERL_LIB/ )

  6. Остальные файлы, директории ( директории DIST/bin и DIST/home ) положить в $ROOT_DIR.

  7. Запустить {INSTALL_PATH}/bin/index.html, от туда можно изменить настройки данных об организации и партнерах.


Тонкости настройки.


Назначение файлов используемых документом.

$HOME_DIR/csv/const.csv

Файл описания данных об организации, по умолчанию. Для всех документов в настоящий момент, const.csv лежит в каталоге share_csv, как это прописано с.м. например в schet.pl ( $OBJ = DO::Core->init, ключ CONST_FILE )... Закоментировав этот ключ можно сделать так, что для каждого документа будут свои настройки ( правда в этом случае не будет работать конфигурация данных 'об организации' ).

$HOME_DIR/csv/customers.csv

Файл описания данных о постоянных клиентах, по умолчанию. В текущей конфигурации также находится в директории share_scv. ( Ключ VARS_FILE )

$HOME_DIR/scv/content.csv

Архив всех созданных документов, из этого файла осуществляется импорт данных.

$HOME_DIR/scv/content.csv.ind

Файл в котором хранится индекс создаваемого документа, после каждого созданного документа значение в этом файле увеличивается на 1. В документах используется как номер документа.

$HOME_DIR/scv/obligatory_var.csv

Описание всех полей которые могут использоваться в html форме и потом передаются в шаблоны, а также используются при расчетах... Описание этого файла было приведено выше.

!!!

Во всех .csv файлах первая строка считается заголовком, т.е. в ней находятся наименования полей данного файла.

$HOME_DIR/tmpl/XXXX.tmpl

Шаблон использующийся при создании документа для печати, и для помещения в архив.

$HOME_DIR/tmpl/XXXX_html.tmpl

Шаблон использующийся при создании документа ввода данных, но с заполненными формами ( для архива ).

$HOME_DIR/log/index.html

Список всех документов находящихся в архиве.

$HOME_DIR/log/src-AAAAAA-BB-CC-DDDD-EEEEEEEEEE.html

Формы с заполненными полями. Имя файла расшифровывается так:

AAAAAA - Номер документа

BB - Число создания

CC - Месяц создания

DDDD - Год создания

EEEEEEEEEE - Время в unix like формате.

$HOME_DIR/log/AAAAAA-BB-CC-DDDD-EEEEEEEEEE.html

Копии документов созданных для печати. Имя файла расшифровывается так:

AAAAAA - Номер документа

BB - Число создания

CC - Месяц создания

DDDD - Год создания

EEEEEEEEEE - Время в unix like формате.


Пользователю.


Поддерживаемые документы.

schet

Предварительный счет.

Домашняя директория относительно DIST/home: schet/

Необходимые поля для заполнения:

- 'Наименование покупателя'

- Первая строка из формы ввода `табличных' данных.

При незаполненных колонках 'Количество' и 'Цена с НДС' строка считается пустой.

faktura

Счет-Фактура.

Домашняя директория относительно DIST/home: faktura/

Необходимые поля для заполнения:

- 'Наименование покупателя'

- 'Адрес покупателя'

- Первая строка из формы ввода `табличных' данных.

При незаполненных колонках 'Количество' и 'Цена' строка считается пустой.

nakladnaya

Накладная.

Домашняя директория относительно DIST/home: nakladnaya/

Необходимые поля для заполнения:

- 'Наименование покупателя'

- 'Основание'

- 'Через кого'

- Первая строка из формы ввода `табличных' данных.

При незаполненных колонках 'Количество' и 'Цена' строка считается пустой.


Кнопки в формах.

[ Форма 2 ]

Нажатие на данную кнопку делает активным ввод 'табличных' данных...

[ Форма 1 ]

Нажатие на данную кнопку делает активным ввод 'шапки' документа с такими данными как 'покупатель', 'адрес покупателя', 'ИНН' и пр...

[ Просмотреть ]

Нажатие на данную кнопку приводит к генерации документа на основании заполненных полей ввода данных, но не сохраняет данные в архиве. !!! При просмотре номер документа всегда равен 0 ( нулю ) так как этот режим предназначен для контроля заполнения формы так сказать...

[ Очистить ]

Нажатие на данную кнопку приводит к очистке данных в форме которая отображена на экране в данный момент...

[ Создать ]

Нажатие данной кнопки приводит к созданию документа для печати и сохранение его копии в архиве. Для печати документа нужно выбрать в меню 'file' броузера 'print page' предварительно задав ориентацию документа на листе ( 'альбом', или 'книга' )

[ Импорт ]

После нажатия на данную кнопку появляется форма для ввода. Заполнив форму Вы можите произвести импорт данных из других документов. Т.е. например если был выписан предварительный счет, и в дальнейшем Вам нужно напечатать Счет-Фактуру с такими же данными, то повторное заполнение данных необязательно, Вам нужно выбрать в выпадающем списке 'Предварительный счет' ввести его номер и нажать кнопку 'Импортировать'. Импортируются все данные о покупателе, а также табличные данные 'Наименование товаров/услуг', 'Единица измерения', 'Количество', 'Цена за ед/изм', 'Налог'. После импортирования данных Вы можете вернутся ( кнопка 'Вернутся' ) к заполнению полей формы уникальных для данного документа.


Хитрости.

Для ввода произвольного номера документа можно использовать поле 'Номер документа', при отсутствии данных в данном поле номер генерируется автоматически. ( значение берется из файла content.csv.ind [ для каждого документа свое ] и прибавляется 1 ).

Для ввода произвольной даты создания документа можно использовать поле 'Дата выписки' вписав туда необходимую дату. При отсутствии данных в этом поле дата генерируется автоматически на основании системного времени компьютера.

В каждой форме имеется выпадающий список в котором находятся наименования клиентов с которыми приходится чаще всего работать. Он служит для быстрого заполнения данных о постоянных клиентах. Чтобы добавить в этот список клиента можно воспользоваться кнопкой 'сохранить покупателя', нажатие на данную кнопку сохранит данные о клиенте которые Вы ввели в текущей форме. !!! В каждом документе количество данных о клиенте различается поэтому для ввода более полных данных которыми можно быдет пользоваться во всех документах можно воспользоваться специальной формой, которая доступна на первой по ссылки 'о партнерах'. Чтобы удалить какого либо покупателя из данного списка нужно выбрать в выпадающем списке его наименование после чего очистить поле 'Организация' и нажать кнопку 'Сохранить данные'.

Изменение данных об организации доступно с первой страницы по ссылке 'об организации'.

При заполнении поля 'Наименование товара', если строка слишком длинная то ее можно разбить на несколько, просто перенеся продолжение строки 'наименование' на следующую строку ввода данных при этом заполнять остальные графы таблицы нужно только в строке в которой начинается наименование... При этом уменьшается реальная длина таблицы, например при максимальной длине таблицы в 8 строк и записи наименования какого либо товара/услуги в 3 строки в таблице уместится только 5 _разных_ товаров/услуг... Уфф. Хотя, так как используется html формат выходных данных, то строки в таблицах сделаны `резиновыми' по высоте, так, что можно специально ничего не переносить, но есть шанс вылезти за границу бумажного листа.


Использование архива.

Для каждого документа предусмотрено ( по умолчанию ) хранение электронной копии в архиве. В архив попадает копия документа для печати и форма для заполнения данных данного документа с заполненными полями. В архиве может производится поиск 'Перейти к...'. При успешном поиске найденные строки выделяются другим цветом, если документ не найден то появляется сообщение об ошибке. Для составления нового документа на основе данных хранящихся в архиве в 'формах с заполненными полями' необходимо очистить поля 'Номер ....' и 'Время создания'.


Баги.

При импорте в schet ( 'Цена без НДС в цену с НДС' ) иногда получаются расхождения с данными из импортируемого документа ( 1 копейка на каждую строку ) Это связано с промежуточными округления чисел, так, что стоит подумать прежде чем этим пользоваться...


Прочее.

Доков мало так как там вроде все просто, да и в коде много комментариев.

В Patchs/ лежат несколько патчей, для чего они написано в самих файлах в самом верху :) . Версии могут не совпадать но они проверены и должны работать...

Все формулы для расчета, и необходимые поля для заполнения описаны исходя из требований конкретной организации.


Ссылки


Автор

 Okunev Igor V.  mailto:igor@prv.mts-nn.ru
                 http://www.mts-nn.ru/~gosha