Страница 1 из 2

Слабо?

Добавлено: 24 сен 2019, 11:30
imamverdiyeveldar
Приветствую всех.

Помогите реализовать/сделать следующий шаг.

Есть сущность
Контрагенты
Товары
Приходы (поле контрагент: сущность (Контрагенты), поле сумма: Сумма из дочерней сущности (функция)
(у нас есть отправитель с суммой его накладной, а при нажатии на заголовок мы видим саму приходную накладную от него)
-Приходная накладная (Поле товар: сущность (Товары), кол-во, цена, сумма)
(у нас есть накладная если нажать на заголовок из родительской. а если нажать просто из бокового меню у нас список всех оприходованных товаров)

Продажа (поле контрагент: сущность (контрагенты), поле сумма: Сумма из дочерней сущности (функция)
(у нас есть покупатель с суммой его накладной, а при нажатии на заголовок мы видим саму накладную продажи)
-Расходная накладная (поле товар: сущность (Приходная накладная, выпадающ.ajax (мы же не можем продать товар который еще не оприходован)), поле кол-во, поле цена, поле сумма)
(у нас есть расходная накладная, если нажать на заголовок из родительской, а если нажать с бокового меню список всех проданных товаров.)

Чтобы я хотел видеть не только во сне:
Сущность или подсущность (записи которой формируются автоматически):
Взаиморасчеты
Поле контрагент (люди которые совершали покупки и поставки) , поле сальдо (Допустим у Вас купили 3 яблока по 5 рублей, стали должны 15 руб. потом продали этому же Васе 2 апельсина по 20 руб. он стал должен 40. Сальдо: 25 руб.
Подсущность акт сверки: (при нажатии на заголовок во взаиморасчетах) поле дата, поле тип документа (приходная накладная/накладная продажи) Сумма прихода, Сумма Расхода, Сальдо.
В нашем примере будет так
Открываем взаиморасчеты:
Контрагент - Сальдо
Вася - 25 руб
При нажатии на Вася :
Дата Тип документа Сумма прихода Сумма расхода Сальдо
23.09.19 Приходная накладная 15 руб, -----руб. 15 руб.
24.09.19 Расходная накладная, -----руб. 40руб, 25 руб.

Да есть всякие программы учета, но хочется реализовать именно в руководителе...(есть нюансы)

Доступ для всех открыт:
test
test123

Re: Слабо?

Добавлено: 24 сен 2019, 13:30
remchik
Доступ куда ?

Re: Слабо?

Добавлено: 24 сен 2019, 13:38
imamverdiyeveldar
remchik писал(а): 24 сен 2019, 13:30 Доступ куда ?
Сори, забыл
elita.spb.ru/sklad

Re: Слабо?

Добавлено: 24 сен 2019, 14:46
remchik
Что то в структуре намудрено :)
Контрагент - Накладная - товар
Все что нужно.
Контрагент (Фио, шмио, + поле сальдо как раз вычисляемое SQL)
Накладная тип (Приход/расход)
Товар как есть

В Сущности 2 поля
с типом sql запрос
Всегда считаете сумму - SUM[fields_200]
а в фильтре ставите [fields_199] = 'Приход' + id контрагента = id контрагента в накладной

По аналогии наоборот

На выходе 2 поля = Приход/расход
Ну и считаете разницу

Не надо разные объекты юзать отдельно для прихода/расхода при одинаковой структуре - много гемороя
******
ПЫСЫ: У нас есть понятие "Поставка", это в логике 1С РК, так вот поставки просто делятся по типам: Реализация и возврат например. Следовательно разницу посчитать легко. Связей минимум.
ПЫСЫ2:
Пример из рабочей базы такой логики:

Select
(
(select SUM(Amount) from [order] where DeliveryTypeId = 'E2ADD07D-50B2-4AE7-B758-6807B1D90DD7') - (select SUM(Amount) from [order] where DeliveryTypeId = 'FBD800A9-7FD4-49E0-93D6-3AD7E7796F82')
)

Re: Слабо?

Добавлено: 24 сен 2019, 19:32
remchik
Трабла вышла с загрузкой бекапа, т.к. софтина сама все удаляет за собой как я понимаю при бекапе.
(сорян)

Вот то что можно на серваке SQL создать, и будет робить
CREATE VIEW `app_entity_126` AS select `ap25`.`id` AS `id`,`ap25`.`date_added` AS `date_added`,`ap25`.`date_updated` AS `date_updated`,`ap25`.`created_by` AS `created_by`,`ap25`.`field_213` AS `field_1220`,sum(`ap86`.`field_833` * `ap86`.`field_832`) AS `field_1221`,sum(`ap88`.`field_861` * `ap88`.`field_862`) AS `field_1222`,sum(`ap86`.`field_833` * `ap86`.`field_832`) - sum(`ap88`.`field_861` * `ap88`.`field_862`) AS `field_1223` from ((((`app_entity_25` `ap25` left join `app_entity_85` `ap85` on(`ap25`.`id` = `ap85`.`field_823`)) left join `app_entity_87` `ap87` on(`ap25`.`id` = `ap87`.`field_843`)) left join `app_entity_86` `ap86` on(`ap86`.`parent_item_id` = `ap85`.`id`)) left join `app_entity_88` `ap88` on(`ap88`.`parent_item_id` = `ap87`.`id`)) where `ap86`.`field_833` > 0 or `ap88`.`field_861` > 0 group by `ap25`.`id`,`ap25`.`date_added`,`ap25`.`date_updated`,`ap25`.`created_by`,`ap25`.`field_213`;

А таблицу app_entity_126 переименовать например в app_entity_126_old

Re: Слабо?

Добавлено: 24 сен 2019, 19:37
imamverdiyeveldar
Вы снесли приложение чтоле :lol: ниче страшного. Там важного ничего не было. Завтра заново построю и посмотрим как быть

Re: Слабо?

Добавлено: 24 сен 2019, 19:43
imamverdiyeveldar
remchik писал(а): 24 сен 2019, 19:32 Трабла вышла с загрузкой бекапа, т.к. софтина сама все удаляет за собой как я понимаю при бекапе.
(сорян)

Вот то что можно на серваке SQL создать, и будет робить
CREATE VIEW `app_entity_126` AS select `ap25`.`id` AS `id`,`ap25`.`date_added` AS `date_added`,`ap25`.`date_updated` AS `date_updated`,`ap25`.`created_by` AS `created_by`,`ap25`.`field_213` AS `field_1220`,sum(`ap86`.`field_833` * `ap86`.`field_832`) AS `field_1221`,sum(`ap88`.`field_861` * `ap88`.`field_862`) AS `field_1222`,sum(`ap86`.`field_833` * `ap86`.`field_832`) - sum(`ap88`.`field_861` * `ap88`.`field_862`) AS `field_1223` from ((((`app_entity_25` `ap25` left join `app_entity_85` `ap85` on(`ap25`.`id` = `ap85`.`field_823`)) left join `app_entity_87` `ap87` on(`ap25`.`id` = `ap87`.`field_843`)) left join `app_entity_86` `ap86` on(`ap86`.`parent_item_id` = `ap85`.`id`)) left join `app_entity_88` `ap88` on(`ap88`.`parent_item_id` = `ap87`.`id`)) where `ap86`.`field_833` > 0 or `ap88`.`field_861` > 0 group by `ap25`.`id`,`ap25`.`date_added`,`ap25`.`date_updated`,`ap25`.`created_by`,`ap25`.`field_213`;

А таблицу app_entity_126 переименовать например в app_entity_126_old

Восстановил)

Re: Слабо?

Добавлено: 24 сен 2019, 19:46
remchik
да, я там Вам бекапчик клал
желательно его поднять
а то даже пароль не подходит.

Re: Слабо?

Добавлено: 24 сен 2019, 19:53
imamverdiyeveldar
remchik писал(а): 24 сен 2019, 19:46 да, я там Вам бекапчик клал
желательно его поднять
а то даже пароль не подходит.
Восстановил)

Re: Слабо?

Добавлено: 24 сен 2019, 20:02
remchik
теперь переименовать 1 таблу, и скриптом создать вьюху:
Вот то что можно на серваке SQL создать, и будет робить
(phpMyAdmin)
CREATE VIEW `app_entity_126` AS select `ap25`.`id` AS `id`,`ap25`.`date_added` AS `date_added`,`ap25`.`date_updated` AS `date_updated`,`ap25`.`created_by` AS `created_by`,`ap25`.`field_213` AS `field_1220`,sum(`ap86`.`field_833` * `ap86`.`field_832`) AS `field_1221`,sum(`ap88`.`field_861` * `ap88`.`field_862`) AS `field_1222`,sum(`ap86`.`field_833` * `ap86`.`field_832`) - sum(`ap88`.`field_861` * `ap88`.`field_862`) AS `field_1223` from ((((`app_entity_25` `ap25` left join `app_entity_85` `ap85` on(`ap25`.`id` = `ap85`.`field_823`)) left join `app_entity_87` `ap87` on(`ap25`.`id` = `ap87`.`field_843`)) left join `app_entity_86` `ap86` on(`ap86`.`parent_item_id` = `ap85`.`id`)) left join `app_entity_88` `ap88` on(`ap88`.`parent_item_id` = `ap87`.`id`)) where `ap86`.`field_833` > 0 or `ap88`.`field_861` > 0 group by `ap25`.`id`,`ap25`.`date_added`,`ap25`.`date_updated`,`ap25`.`created_by`,`ap25`.`field_213`;

А таблицу app_entity_126 переименовать например в app_entity_126_old