1
Сообщений в теме: 7
#1
Отправлено 03 Март 2016 - 22:20
стандартный конфиг КБ допиливаем
у таблицы "Счета" есть подтаблица "Платежи"
по одному счету может быть несколько платежей
в "Счетах" есть поле "Дата п/п" (дата получения платежа)
в "Платежах" тоже есть "Дата п/п"
задача при изменении поля "Оплачено" в таблице "Счета"
при условии что в "Счете" поле "Оплачено" = "Сумма к оплате" (т.е. счет полностью оплачен)
брать "Дату п/п" у последнего сделанного платежа именно по данному Счету и записывать ее в такое же поле "Дату п/п" в "Счете"
может есть примеры где нибудь похожие?
у таблицы "Счета" есть подтаблица "Платежи"
по одному счету может быть несколько платежей
в "Счетах" есть поле "Дата п/п" (дата получения платежа)
в "Платежах" тоже есть "Дата п/п"
задача при изменении поля "Оплачено" в таблице "Счета"
при условии что в "Счете" поле "Оплачено" = "Сумма к оплате" (т.е. счет полностью оплачен)
брать "Дату п/п" у последнего сделанного платежа именно по данному Счету и записывать ее в такое же поле "Дату п/п" в "Счете"
может есть примеры где нибудь похожие?
#2
Отправлено 04 Март 2016 - 09:27
Ищите примеры запросов к подтаблицам.
Алгоритм: делаем запрос к подтаблице с условием "поле связи в подтаблице равно id текущей записи" и обратной сортировкой по id.
Алгоритм: делаем запрос к подтаблице с условием "поле связи в подтаблице равно id текущей записи" и обратной сортировкой по id.
#3
Отправлено 04 Март 2016 - 11:15
CbCoder (04 Март 2016 - 09:27) писал:
Алгоритм: делаем запрос к подтаблице с условием "поле связи в подтаблице равно id текущей записи" и обратной сортировкой по id.
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#4
Отправлено 04 Март 2016 - 11:33
andibrag (04 Март 2016 - 11:15) писал:
Лучше с обратной сортировкой по дате платежа. Были случаи, когда сотрудники заносят некорректно данные.
У меня была такая мысль, но у автора написано именно "у последнего сделанного платежа", а не "с максимальной датой платежа". Хотя, конечно смотря как прочитать...
#5
Отправлено 04 Март 2016 - 14:03
по дате платежа надо )
теперь бы найти хоть какие то примеры как нибудь, поиск по форуму не очень то "изобилен", чаще всего я ничего не нахожу (не только по этому запросу), или может я не знаю какие фразы искать? где и как искать что то?
я так понял что надо отсортировать по полю дата платежа, по убыванию и потом взять из первой по счету строки данные из даты платежа?
вот как такое написать? ) и как найти пример что бы посмотреть команды например нужные?
теперь бы найти хоть какие то примеры как нибудь, поиск по форуму не очень то "изобилен", чаще всего я ничего не нахожу (не только по этому запросу), или может я не знаю какие фразы искать? где и как искать что то?
я так понял что надо отсортировать по полю дата платежа, по убыванию и потом взять из первой по счету строки данные из даты платежа?
вот как такое написать? ) и как найти пример что бы посмотреть команды например нужные?
#6
Отправлено 04 Март 2016 - 14:44
1. Да, все правильно поняли. Не забывая про условие отсева по связи с основной записью (иначе будут отсортированы вообще все платежи, а не только по данному счету)
2. Вы не знаете как писать запросы? Запросы в каждой второй теме здесь. Ищите по "data_select".
2. Вы не знаете как писать запросы? Запросы в каждой второй теме здесь. Ищите по "data_select".
#7
Отправлено 06 Май 2016 - 16:44
CbCoder (04 Март 2016 - 14:44) писал:
1. Да, все правильно поняли. Не забывая про условие отсева по связи с основной записью (иначе будут отсортированы вообще все платежи, а не только по данному счету)
2. Вы не знаете как писать запросы? Запросы в каждой второй теме здесь. Ищите по "data_select".
2. Вы не знаете как писать запросы? Запросы в каждой второй теме здесь. Ищите по "data_select".
2. а так сработает?
$sqlQuery = "SELECT max(f6251) FROM ".DATA_TABLE."371 WHERE status=0 and f6231='".$line['ID']."'"; $data_pp = sql_query($sqlQuery); $line['Счет']['Дата п/п']=$data_pp;
или здесь чего то не хватает? как в это примере например:
// Получаем сумму содержимого полей "Сумма" таблицы "Позиции счета", где поле "Счет" равно номеру счета. $sqlQuery = "SELECT sum(f810) as summa FROM ".DATA_TABLE."74 WHERE status=0 AND f807='".$line['Счет']['ID']."'"; $res = sql_query($sqlQuery); $row = sql_fetch_array($res); $summa = $row['summa']; // Заносим полученную сумму в поле "Сумма" родительской таблицы, обращаясь через поле связи "Счет" $line['Счет']['Сумма'] = $summa ;
#8
Отправлено 11 Май 2016 - 17:58
Да, у вас пропущено несколько строк, код некорректный, выдаст ошибку. Во втором примере как раз эти строки есть.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных