powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите, как расчитать сумму и хранить цены?
14 сообщений из 14, страница 1 из 1
Помогите, как расчитать сумму и хранить цены?
    #34305567
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фирма занимается изготовлением жалюзи. Всего 175 типов жалюзей (разделённых на 15 категорий) у каждого типа своя цена, причём на каждый тип есть палета цвета (от 15 до 356 цветов) от которого тоже зависит цена.
Сейчас цены в зависимости от типа и цвета подсчитываются вручную по ценникам четырьма способами: за 1м ширины, за 1м высоты, за 1 шт (таблицы, где 1 строчка - ширина, левая колонка - высота), за 1 м2. А сумма в программе по такой простенькой формуле:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Function Suma(Ширина, МинЦенаШирина, Высота, МинЦенаВысота, МинЦенаПлощадь, _
            Количество, Цена, Мера) As String
Dim MyШирина, MyВысота, MyПлощадь As String
MyШирина = IIf(МинЦенаШирина > Ширина /  1000 , МинЦенаШирина, Ширина /  1000 )
MyВысота = IIf(МинЦенаВысота > Высота /  1000 , МинЦенаВысота, Высота /  1000 )
Select Case Мера
 Case "шт"
  Suma = Round(Цена * Количество,  2 )
 Case "kvm"
  If МинЦенаПлощадь > MyШирина * MyВысота Then
   Suma = Round(Цена * Количество * МинЦенаПлощадь,  2 )
  Else
   Suma = Round(Цена * Количество * MyШирина * MyВысота,  2 )
  End If
 Case "Ширина"
  Suma = Round(Цена * Количество * MyШирина,  2 )
 Case "Высота"
  Suma = Round(Цена * Количество * MyВысота,  2 )
End Select
End Function

Каждый клиет (представитель) имеет на определённую категорию определённую скидку. В идеале надо чтобы програма сама после ввода типа, цвета, ширины, высоты, количества и клиента выдавала стоимость.
Или хотя бы надо как-то расчитывать сумму по клиенту - тоесть надо чтобы Suma ещё и както зависила от клиента. Нужен совет по какому принципу и какой схеме это можно организовать и вообще с чего начать.
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34305702
ByKiSФирма занимается изготовлением жалюзи. Всего 175 типов жалюзей (разделённых на 15 категорий) у каждого типа своя цена, причём на каждый тип есть палета цвета (от 15 до 356 цветов) от которого тоже зависит цена.
Сейчас цены в зависимости от типа и цвета подсчитываются вручную по ценникам четырьма способами: за 1м ширины, за 1м высоты, за 1 шт (таблицы, где 1 строчка - ширина, левая колонка - высота), за 1 м2. А сумма в программе по такой простенькой формуле:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Function Suma(Ширина, МинЦенаШирина, Высота, МинЦенаВысота, МинЦенаПлощадь, _
            Количество, Цена, Мера) As String
Dim MyШирина, MyВысота, MyПлощадь As String
MyШирина = IIf(МинЦенаШирина > Ширина /  1000 , МинЦенаШирина, Ширина /  1000 )
MyВысота = IIf(МинЦенаВысота > Высота /  1000 , МинЦенаВысота, Высота /  1000 )
Select Case Мера
 Case "шт"
  Suma = Round(Цена * Количество,  2 )
 Case "kvm"
  If МинЦенаПлощадь > MyШирина * MyВысота Then
   Suma = Round(Цена * Количество * МинЦенаПлощадь,  2 )
  Else
   Suma = Round(Цена * Количество * MyШирина * MyВысота,  2 )
  End If
 Case "Ширина"
  Suma = Round(Цена * Количество * MyШирина,  2 )
 Case "Высота"
  Suma = Round(Цена * Количество * MyВысота,  2 )
End Select
End Function

Каждый клиет (представитель) имеет на определённую категорию определённую скидку. В идеале надо чтобы програма сама после ввода типа, цвета, ширины, высоты, количества и клиента выдавала стоимость.
Или хотя бы надо как-то расчитывать сумму по клиенту - тоесть надо чтобы Suma ещё и както зависила от клиента. Нужен совет по какому принципу и какой схеме это можно организовать и вообще с чего начать.
Мне кажется, что Вы все сильно усложняете...
Скорее всего, цены взаимопреобразуемы. А разделены они для ускорения обслуживания клиентов.
Вам надо узнать у бухгалтера как сформированы цены на 1 м высоты, ширины, 1 шт., 1кв.м. и т.д.

А вообще стоимость складывается из:
- стоимости сырья/комплектующих,
- норм затрат труда на 1 ед.продукции/элемент продукции (деталь),
- стоимости потребляемых энергоресурсов (электроэнергии, тепла),
- стоимости амортизации оборудования и зданий,
- стоимости аренды и т.д.

В общем-то, по-простому, стоимость продукции складывается:
- из постоянных затрат (не зависящих от объема производимой продукции:амортизация, озрана),
- переменных затрат (зависящих от объема производимой продукции: стоимость сырья, энергоресурсов, затраты труда) и
- планируемой прибыли.
Полученная сумма делится на объем выпущенной продукции... И получается цена...

Затем, к базовой цене применяется система скидок. Как правило, применяются:
- скидки на объем (можно автоматизировать),
- скидки имиджевым (=VIP) клиентам (нельзя автоматизировать),
- скидки по рекламным кампаниям/распродажам (можно автоматизировать) и др.

Про применяемую систему скидок надо узнавать у директора по маркетингу...

P.S.: Как я и говорил - вы еще не поняли, с чем Вам пришлось связаться... Поэтому я и говорил, что Акцесс Вам не подойдет - слишком тяжелая получится система....
Вообще-то, производство - огромный "Гордиев узел" проблем: за какой конец не потяни - сразу потянется целый ряд смежных проблем, в которых очень просто запутаться...
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34305752
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав СP.S.: Как я и говорил - вы еще не поняли, с чем Вам пришлось связаться...Вот тут пожалуй небольшое объяснение...

Про цену:
Согласен, но ещё она складывается из "ну это и по такой цене купят, можно подорожить как я там в уголках написал" (Директор) - это в программу не загонишь, потому оптимальный вариант на теперь как-то хранить в программе ценники неизвестно откуда взявшиеся.

Про скидки:
Повторюсь - каждый клиет (представитель) имеет на определённую категорию определённую скидку. Как это реализовать?

ЗЫ: Что значит "цены взаимопреобразуемы"?
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34305756
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав С , мне кажется задача здесь довольно тривиальная и не стоит здесь завязываться на ту калькуляцию стоимости, которую мы привыкли видеть в бухгалтерских системах.
По-простому, я бы начал примерно с такой схемы, как ниже. Потом, подумал бы о том как спроетировать систему скидок (накопительные скидки, пределы и прочее).
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34305771
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наценки на цвет нет... По крайне пока....
Как я понял то что я написал реализовать невозможно и надо пересмотреть саму систему цен и скидок? Чтобы при приёме заказа цены смогла выдавать программа?
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34305773
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наценки на цвет нет... По крайне пока....
Как я понял то что я написал реализовать невозможно и надо пересмотреть саму систему цен и скидок? Чтобы при приёме заказа цены смогла выдавать программа?
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34305805
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ByKiSКак я понял то что я написал реализовать невозможно и надо пересмотреть саму систему цен и скидок
Невозможного ничего нет, если в постановике задачи есть логика.
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34305837
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда такой вопрос - что было бы лучше на Ваш взгляд
1) Брать цены в програму из ценников
или
2) Брать ценники из программы
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34306153
ByKiSТогда такой вопрос - что было бы лучше на Ваш взгляд
1) Брать цены в програму из ценников
или
2) Брать ценники из программы
Конечно же, брать ценники из программы. Возможно, заносить их (ценники=прайс-листы) туда "руками"...
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34306225
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав СВозможно, заносить их (ценники=прайс-листы) туда "руками"...
ну вот и вернулись к началу... По какой схеме и где и их тогда хранить в программе, учитывая все нюансы? Делать 175 * (кол-во цветов) таблиц и лукапить в массивах цены?
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34306945
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ByKiS... вообще с чего начать.

Нужно сделать функцию suma интеллектуальной. Т.е. на входе она должна получать только спецификацию заказа, на выходе возвращать стоимость заказа, а данные для расчёта извлекать из БД. В БД эти данные должны заносить ответственные сотрудники.

Не знаю точно, но могу предположить, что параметры МинЦенаШирина, МинЦенаВысота, МинЦенаПлощадь, Цена, Мера здесь лишние. Т.е. они должны быть указаны в прейскуранте, храниться в БД и функция suma должна сама находить позицию в прейскуранте и из неё получать указанные параметры.

Спецификация заказа должна включать (как ты сам написал) тип, цвет, ширину, высоту, количество и клиента.

В простейшем случае прейскурант выглядит так:

тип, цвет, мин. цена, мера, цена за единицу меры, прочие параметры...

PK - (тип, цвет)

мин. цена может быть выражена как в единицах меры, так и денежном эквиваленте (у тебя это единицы меры).

Зависимость от клиента ты не определил. Если это просто % скидки от прейскуранта, то добавь в таблицу клиентов этот % скидки; ищи и применяй его в функции suma. Но это негибкий и неинформативный подход.

Лучше поделить клиентов на категории, описать параметры каждой категории в БД и в зависимости от категории клиента и её параметров расчитывать персональную стоимость заказа.
Замечу, что клиент может быть классифицирован несколькими способами одновременно.

Можно категорию включить в прейскурант,

тип, цвет, категория клиента, мин. цена, мера, цена за единицу меры, прочие параметры...

PK - (тип, цвет, категория клиента)

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

Нужно учесть, что прейскурант, это компромис между данными и кодом. Код позволяет исключить дублирование данных, но ухудшает управляемость, данные позволяют сделать систему управляемой за счёт того, что правила удаляются из системы и заменяются результатом их применения.
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34307416
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь такой вопрос:
В таблицу прданные изделия пришлось добавить поле - "сумма", значение в которое записывается при вводе нового заказа (т.к. иначе при изменении скидки клиенту все запросы будут отображать действительную стоимость заказа, а не ту которая была, скажем месяц назад).
Во избежания злоупотребления довереем сумма записывается автоматически на закрытие формы "ввод заказа" (в ту же форму вводится информация о монтаже заказа, окончательном расчёте и т.д.).
На что повесить запись суммы, что бы можно было открыть старый заказ ввести какое нибудь Memo и не изменить его стоимость, и в тоже время не делать для редактирования каждого поля отдельную форму?
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34307576
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ByKiSНа что повесить запись суммы, что бы можно было открыть старый заказ ввести какое нибудь Memo и не изменить его стоимость, и в тоже время не делать для редактирования каждого поля отдельную форму?

На шкаф повесь.

Что за проблема? Разве никогда не видел поля "только для чтения"? Запрети в форме ручное изменение поля "Сумма".
...
Рейтинг: 0 / 0
Помогите, как расчитать сумму и хранить цены?
    #34308143
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты не понял (или я не так сказал) - оно и так ридонли... Но проблема уже решена :)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помогите, как расчитать сумму и хранить цены?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]