Вход | Регистрация

1С:Предприятие ::

Метки:Приемы программирования

Разработаем алгоритм расчета схемы оплаты

Я
   Нога судьбы
26.07.04 - 12:21
У фирмы открыты счета в нескольких банках. У каждого банка своя тарифная схема платежей за расчетно-кассовое обслуживание. Например,
Фиксбанк берет 1 уе за проведение платежки независимо от суммы.
Прогрессбанк опустошает наш счет по такой схеме (слева - сумма платежа, справа - оплата услуг банка):
0,01...49,99 уе - 0,50 уе;
50,00...999,99 уе - 1,50 уе;
1000,00...9999,99 уе - 5,00 уе;
10000,00 уе и более - 10,00 уе.
Ващебанк также работает по прогрессивной шкале, но у него другие ориентиры:
0,01...4999,99 уе - 1,00 уе;
5000,00 уе и более - 5,00 уе.
Необходимо разработать алгоритм расчета наиболее выгодной для данной суммы платежа схемы оплаты для использования ее доке ПлатежноеПоручение (с дальнейшей авторазбивкой на части). Т. е., очевидно, что если мы платим из Прогрессбанка сумму 1200,00 уе, то выгоднее разбить ее на две платежки каждая на сумму меньше 1000,00 уе, и тогда мы полиняем не на 5,00 уе, а  всего лишь на 3,00. А еще можно разбить платеж на части, задействуя разные банки, причем банков может быть значительно больше, и у каждого своя тарифная шкала.
У кого какие соображения? Не хотелось бы реализовать решение с помощью тупого перебора вариантов.
 
  Рекламное место пустует
   Gary
 
1 - 26.07.04 - 12:32
Когда коту делать нечего, он ... Кто надоумил на такие расчеты-то ? Копейки высчитываем, мильены теряем :-)
   Нога судьбы
2 - 26.07.04 - 12:42
1. Это не подход программиста. Поставлена задача, ее нужно решить. А если реально, то в месяц фирма с оборотом в 30 000 уе при помощи "правильных" разбивок экономит около 40 уе. Все же чайник в офис... Да даже пусть это и мало, все равно зачем платить, если можно не платить, причем дело лишь в единоразовой разработке алгоритма?
   Gary
 
3 - 26.07.04 - 12:46
Ты прав, на 100%, я не программист, точнее не только программист :-)
Я, скажем так, немного руководитель, потому как вижу такие вопросы, не могу сдержаться. Лучше б для маркетинга думал, как оборот на 5 000 у.е. поднять, а это ... не могу слов подобрать.
   Нога судьбы
4 - 26.07.04 - 12:58
3. Если ты руководитель, тебе должно быть знакомо понятие "оптимизация расходов". Не понимаю твоего негодования, когда часик-другой написания кода даст в год экономию 500 баксов.
   Нога судьбы
5 - 26.07.04 - 13:33
Что, все поддерживают позицию (1)? Неужели никому не интересно плюнуть на количество денег и попытаться решить задачу чисто с точки зрения логики и математики? Помнится, решали на форуме задачу как в лодке перевезти какое-то количество народа. Или задача неинтересна?
   Gary
 
6 - 26.07.04 - 14:03
Да неужели я буду за 500 годовых думать ? Хех.. Смешно, ей-богу ! По мне лучше теория "оптимизации доходов" :-)
   kadr
 
7 - 26.07.04 - 14:07
(2) "Это не подход программиста..." Вот это действительно не подход программиста! Поставлена задача - надо найти оптимальное решение, а не идти на поводу у пользователей (сегодня хочу одно, завтра - другое), которые (в большинстве своем) не имеют понятия об автоматизации.
   insert
8 - 26.07.04 - 14:08
Обратись к NS, он сильный математик, но вообще я согласен с Gary. Я тоже сейчас сижу одну задачку на оптимизацию условий оплаты ковыряю, но скорее как экономист, а не как прог. Только суммы там несколько иные... Собсна, только это и стимулирует.
   Gary
 
9 - 26.07.04 - 14:16
Твоя задача решается не программистом, а финансистом запросто: издается указ для бухгалтерии, что оплата до такой суммы идет  так-то, оплата сверх такой суммы идет так-то... и все... А завтра банк сменит или отменит вообще форму расчета своих услуг, снова на форум пойдешь и программу переписывать ? Не программистское это дело, я вам скажу :-)
   Нога судьбы
10 - 26.07.04 - 14:47
9. Я не буду программу переписывать. Я заведу справочник ТарифныеШкалы, подчиненный справочнику Банки. В нем буде два поля - Порог и СуммаПлатежа. Когда банк поменяет тарифы, любой юзер запросто введет новые. А указы для бухгалтерии... Можно и так. Еще можно указать склад вести на картонных карточках, а расчетно-платежную ведомость на простыне формата А2. С прменением ручек, карандашей и ластиков. 1С нужна для АВТОМАТИЗАЦИИ. В той же платежке ведь удобно подкидывать назначение платежа из справочника, а не ручками каждый раз вводить. Какая тут выгода? Прямой выгоды здесь нет вообще. Зато куча косвенных. А в (0) есть и то, и другое. Ну лана, можно было бы задачу по другому сформулировать, без чисел, тогда решение ее было бы интересно?
Волшебнику. Ты призывал задавать интересные вопросы. Мое имхо таково, что этот вопрос интересен тем, что не прост в решении. Это подтверждается и отсутствием хотя бы одной мысли в тему. Все норовят меня отвести в сторону. Я же пока не решу, не буду спокойно спать. И дело даже не в экономии. Как ты считаешь, место ли этому вопросу на форуме? Если нет, то, пожалуйста,  аргументируй, чтобы в дальнейшем я мог задавать только "правильные" вопросы.
 
 
   Z1
 
11 - 26.07.04 - 15:16
(10) А если у тебя есть несколько  расчет счетов, один из этих счетов не проходит по твоим критериям но там есть деньги, на других расч счетах нет денег
тогда твоя пограмма  не оплатит их.
Далее учти что автоматизацию надо делать  для рутиных, легко формулируемых задач.( у тебя что все другие задачи сделаны?)
Платеж календарь трудноформализуемая задача - слишком много всяких критериев
( пример зашатался банк быстрее выгребаем деньги и пофиг коммисия)
и впервые слышу чтоб коммисию банка рассматривали как критерий - обычно или
соглашаются на условия банка, либо меняют банк, либо высшее руководство само
договаривается о снижении коммисии.
Платеж календарь делают еще вручную, полувручную потому что очень ответсвенно и должен быть человек с кого можно спросить о приоритетах и проплатах.
   Нога судьбы
12 - 26.07.04 - 15:31
11. Это уже конструктив.
Наличие денег на конкретных счетах можно и проверить программно. Насчет объекта автоматизации - здесь могу согласиться, это задача не первоочередной важности, но это все же задача, и решить ее, раз она есть, будет нужно. Даже при условии согласия с тарифной политикой банка, раз есть возможность что-либо оптимизировать, значит к этому нужно стремиться.
   Z1
 
13 - 26.07.04 - 15:42
(13) Вспомни месяц назад что было с банками и динамику этих событий. И если пройдут проплаты не оттуда из-за "твоей программной оптимизации" - получишь по голове мало не покажеться.
Если тебе дали такое задание то делай и возьми писменное подтвержение задания,
если это твоя инициатива то лучше забудь об этом.
Единственное что можно сделать хороший удобный Вашим финансистам  отчет облегчающий видеть реальную картину платежей.
   Gary
 
14 - 27.07.04 - 12:01
Хочешь конструктива, есть оно у меня :-)
Не уверен, что у тебя сделан журнал "Заявки на оплату" с разной аналитикой (в УТ 8 появилось, наконец-то). Вот при подборе Заявок и можно рулить твою задачу. Вообще я давно уж делаю именно так.
   Нога судьбы
15 - 27.07.04 - 14:50
13. А что было с банками месяц назад (мы, судя по всему, живем в разных странах)? Расскажи пожалуйста.
   Нога судьбы
16 - 27.07.04 - 14:53
14. Я с восьмеркой не знаком. Расскажи вкратце суть.
   Gary
 
17 - 27.07.04 - 16:22
Устроено так, что регистрируются счета поставщиков и прочие выплаты в доке "Заявка на оплату", где есть вся необходимая инфа для формирования пл.поручения, а также служебная информация, типа ответственного лица, его е-майла (для уведомления), срока оплаты, категории оплаты и приоритета.
Журнал оформлен таким образом, что в колонке отображается статус заявки (оплачена, неоплачена, частично, снята).
Есть обработка "подбор платежей", которая формирует печатную форму "реестра платежей" и на основании подписанного реестра формируются платежки.
Есть отчеты разные, ну понятно для чего...
   АБОБЕР
18 - 27.07.04 - 17:14
Может, я чего не понимаю, но не сложностей, не красивой математики не вижу.
Допустим есть только Прогрессбанк. Платеж от 50 до 100 бьем на 2 (платим 1 вместо 1.5$) Платеж от 100 до 2100 (2 по 49.99 и 2 по 999,99 уе) По - моему дальнейшее очевидно. Для нескольких банков выбираем самый дешевых транш по дальней границе, пока не наберем всю сумму.
   Aleron
19 - 27.07.04 - 19:01
до 49.9 пользуйся Прогрессом, от 49.9 до .... Ващебанком , а разбивать более чем на две не выгодно, да и решение транспортной задачи при такой постановке даст очевидный результат .


Список тем форума
Рекламное место пустует   Рекламное место пустует
Основная теорема систематики: Новые системы плодят новые проблемы.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует