logo
logo
отвлекли, продолжу [куверти3 23/03/2012 11:22]
Итак, у нас сформировано отдельным окном поле операций, все классификаторы и суммы расставлены. Пусть это заполняется как отдельная временная таблица в БД (тут САПеры есть, поймут).
Как только нажимаем кнопу "Выполнить проводки", у нас из этой одной таблицы записи так и формируются по одной в БД. Т.е., сама БД так и растёт только по кол-ву строк, но не таблиц.
Вы спросите, а как поднять сплит, если надо будет изменить его, или подсмотреть, или что-то? Делаем скрытое поле с уникальным идентификатором, определяющим данный сплит (формируется либо в начале ввода, либо после кнопки Выполнить). Тогда тут должен быть выбор: мы меняем впоследствии конкретную строку либо только из БД (общего списка операций), либо только при условии редактировании сплита (а это значит, что надо тратить производительность на то, чтобы по скрытому полю "поднять" все строки и зацепить в экранную форму), либо оба варианта (на выбор оператора).
Вывод сплитов может подразумевать одновременный вывод нескольких сплитов для чтения, редактирования на экран в виде экранных форм, возможность копирования и т.п.
Об отражении сплитов в списке операций.
Тут я выше заметил, что т.к. БД и должна быть одна с минимумом изменений структуры, то, если мы пишем операции как раздельные строки в БД, то они так и  отразятся. С Другой стороны, можно чекбоксом или радиокнопкой задавать параметр отображения данного сплита в списке операций: одной строкой, или построчно. Если выбор - первое, то сплит суммируется и общей суммой показывается, но тогда, если там одинаково заполненные классификаторы, то будет полноценная строка, а если разные? Если в строках разные (Статьи, Агенты и т.п.), то по умолчанию сумму можно показывать, заполняя соответствующие строки ничем или значением "Сплит". Также можно отдельную пиктограммку, как для "замочка".
Суммы в сплите могут быть как с плюсом, так и с минусом. Зависит от учетной политики, либо после реализации сплитов необходимо будет сделать отдельные пояснения. Допустим, есть статья Экономия, и я не неё собираю сумму бонусов и скидок. Тогда, при покупке в аптеке по карточке постоянного клиента, скидка отразится отдельной строкой в чеке (как правило), это приведёт к формированию расходных операций по Статье Лекарства и Витамины в основной массе строк сплита, и отдельно - приходная строка по зачислению Экономии.
Также есть над чем подумать в части порядка строк в сплите, после его формирования и записи в БД (тоже м.б. скрытым  полем БД).
Сплитом можно делать и другие сопутствующие операции: если ведётся учёт бензина и километраж (ну а вдруг). Тогда сопутствующие операции могут быть как перевод рублей в валюту Литры на счёт Бензин, и далее, в этом же сплите, перевод Литров в Километры на счёт Пробег. Тогда можно отдельно задействовать дополнительные замудрённые отчетности, если неохота просто списать денег за заправку сразу в рублях в Расход.
Извините, если занудно и долго.