Перейти к содержимому


Публикации lenar

23 публикаций создано lenar (учитываются публикации только с 19-Апрель 23)


#29649 Заполнение полей подтаблицы

Отправлено от lenar в 13 Ноябрь 2015 - 10:59 in Как это сделать

Просмотр сообщенияCbCoder (13 Ноябрь 2015 - 09:19) писал:

Собственно все видно из текста ошибки. У вас текстовое значение в запросе ("янв.15") не в кавычках. Причем в данном случае должны быть одинарные кавычки, т.к. в двойных сам текст запроса.


$res = sql_query("SELECT id AS statid
				  FROM ".DATA_TABLE."261
				  WHERE status = 0
						AND f4531 = '".$line['Месяц']."'
						AND f4511 = ".$line['Партнер']['raw']);

$row = sql_fetch_assoc($res);
$line['Связь с "Статистика"'] = $row['statid'];
Спасибо большое!



#29647 Заполнение полей подтаблицы

Отправлено от lenar в 12 Ноябрь 2015 - 22:47 in Как это сделать

Просмотр сообщенияCbCoder (12 Ноябрь 2015 - 16:37) писал:

Точку не там поставили. Посмотрите на строку выше и поймёте.
Теперь выдает такую ошибку:

Цитата


4: AND f4531 = ".$line['f4561']."
5: AND f4511 = ".$line['f1750']['raw']);
6:

Ошибка SQL запроса:
SELECT id AS statid FROM f_data261 WHERE status = 0 AND f4531 = янв.15 AND f4511 = 2
Unknown column 'янв.15' in 'where clause'

На код:
  $res = sql_query("SELECT id AS statid
		  FROM ".DATA_TABLE."261
		  WHERE status = 0
			AND f4531 = ".$line['Месяц']."
			AND f4511 = ".$line['Партнер']['raw']);
		  
$row = sql_fetch_assoc($res);
$line['Связь с "Статистика"'] = $row['statid'];
Что это значит?



#29645 Заполнение полей подтаблицы

Отправлено от lenar в 12 Ноябрь 2015 - 16:35 in Как это сделать

Просмотр сообщенияCbCoder (09 Ноябрь 2015 - 13:09) писал:

Что значит "перебирать"? Есть понятие "запрос к БД", с помощью него обращаетесь к таблице Статистика с условием "месяц такой-то и партнер такой-то". Если нашли - берете из найденной строки ее id и проставляете в поле связи. Если нет - добавляете запись, получаете id новой записи и также прописываете его в поле связи.

Добрый вечер!
Задача все та же.
Набрал код:
  $res = sql_query("SELECT id AS statid
		  FROM ".DATA_TABLE."261
		  WHERE status = 0
			AND f4531 = ".$line['f4561']."
			AND f4511 = ."$line['Партнер']['raw']);
		  
$row = sql_fetch_assoc($res);
$line['Связь с "Статистика"'] = $row['statid'];
Выдает ошибку:

Цитата



Не могу разобраться в чем ошибка. Подскажите, пожалуйста.



#29607 Заполнение полей подтаблицы

Отправлено от lenar в 09 Ноябрь 2015 - 12:54 in Как это сделать

Просмотр сообщенияCbCoder (05 Ноябрь 2015 - 16:18) писал:

Хотя можно конечно попробовать создавать связь со статистикой автоматически, например при добавлении заявки искать строку в статистике с таким же месяцем и партнером (а если ее еще нет - то добавлять) и прописывать в заявке поле связи с этой строкой. Тогда ваша статистика будет отображать нужные заявки.
Это именно то что мне надо. В подтаблице "заявки" есть поля "месяц" и "связь с статситика" - поля связи с родительской таблицей "Статистика".
Дайте, пожалуйста, подсказку по коду или алгоритм решения.
Как перебирать строки статистики через вычисление в таблице заявки?



#29588 Заполнение полей подтаблицы

Отправлено от lenar в 05 Ноябрь 2015 - 15:51 in Как это сделать

Просмотр сообщенияCbCoder (05 Ноябрь 2015 - 14:25) писал:

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



#29584 Заполнение полей подтаблицы

Отправлено от lenar в 05 Ноябрь 2015 - 14:14 in Как это сделать

Добрый день!
У меня возникла такая задача, связанная с подтаблицами:
Есть таблица заявки - подтаблица: https://yadi.sk/i/ljU0vI5VkFD2A
Есть таблица статистика - родительская таблица: https://yadi.sk/i/HMTc7L4HkFD7S
Родительская таблица - подтаблица (пример): https://yadi.sk/i/86pG9p_pkFDPd

Задача.
Нужно сделать так, чтобы заявки сортировались по след принципап:
1. дата заявки должен соответствовать месяцу, указанной в таблице статистика, т.е. январские к январским, февральские к февральским
2. должно соблюдаться соответствие названию партнера, т.е. заявки партнера 1 отображаются в статистике, где "связь с контрагенты"='партнер 1'

Возможно ли это прописать? я пробовал через два поля связи "связь с статистика" и "месяц" с помощью вычисления, не получается так соблюдать вышеуказанные принципы.
Так же рассмотрел вариант по отражению в таблице статистика без применения родительская таблица-подтаблица. Там для простоты тестировал на след. задаче:
Нужно подсчитать и вывести в каждой строке таблицы статистика кол-во заявок, удовлетворяющих требованиям:
1. "Партнер" таблицы заявки соответствует значению поля "Связь с контрагенты" таблицы статистика
2. выбираем активные заявки (без архива, удаленных)

Написал вычисление такое:
	$res = sql_query("SELECT COUNT(f1680) AS counts
		  FROM ".DATA_TABLE."130
		  WHERE status = 0");
		  
$row = sql_fetch_assoc($res);
$line['f4551'] = $row['counts'];
А как учесть 1ое требование не знаю.

Подскажите, пож-ста, как сделать лучше всего?



#29498 Заполнение полей подтаблицы

Отправлено от lenar в 29 Октябрь 2015 - 09:23 in Как это сделать

Код целиком привел. А поле поле "связь с "статистика" участвует только в этом вычислении.



#29497 Заполнение полей подтаблицы

Отправлено от lenar в 29 Октябрь 2015 - 09:21 in Как это сделать

Просмотр сообщенияCbCoder (29 Октябрь 2015 - 09:13) писал:

А код целиком привели? Возможно также что данное вычисление запускает другое, бажное. Проверьте, не участвуют ли поля из кода еще в каких местах.
Поле партнер участвует в след вычислениях: https://yadi.sk/i/ygmMdHYNk6BEQ



#29495 Заполнение полей подтаблицы

Отправлено от lenar в 29 Октябрь 2015 - 09:10 in Как это сделать

Просмотр сообщенияCbCoder (29 Октябрь 2015 - 09:05) писал:

А вы уверены, что ошибка связана с данным вычислением? Пробовали его отключать? У меня вот в голове никак не увязывается эта ошибка с кодом выше.
Вычисление отключил, ошибка исчезла.



#29488 Заполнение полей подтаблицы

Отправлено от lenar в 28 Октябрь 2015 - 19:53 in Как это сделать

Приветствую!
Задача:
В таблице "Заявки" нужно подтянуть в поле "связь с "статистика" соответсвующее значение полю "Партнер".

Написал вычисление:
if ($line['Связь с "Статистика"'] != $line['Партнер'])
  {
  $line['Связь с "Статистика"']=$line['Партнер'];
  }
else
  {

  }

Выдает ошибку:

Цитата

Дата: 28.10.2015 19:51 Пользователь: Ленар URL: /view_line2.php?table=130&filter=210&line=10&csrf=JqFAcT9O726RdKIaeY2aCQ== Ошибка: Ошибка SQL запроса:
UPDATE f_data261 SET f435='партнер 2' WHERE id=2
Unknown column 'f435' in 'field list' Подробно:
Ошибка системы.

Error generated:
/home/ocenka2/public_html/include/functions1.php(484) : data_update()
/home/ocenka2/public_html/include/functions1.php(467) : form_event_recurs()
/home/ocenka2/public_html/include/functions1.php(551) : form_event_recurs()
/home/ocenka2/public_html/include/functions1.php(867) : calc_line()
/home/ocenka2/public_html/view_line2.php(1448) : popup_event()
Ошибка SQL запроса:
UPDATE f_data261 SET f435='партнер 2' WHERE id=2
Unknown column 'f435' in 'field list'


Подскажите, пож-ста, в чем заключается ошибка?



#29191 Бизнес-процессы в КБ

Отправлено от lenar в 16 Сентябрь 2015 - 15:26 in Как это сделать

Просмотр сообщенияCbCoder (15 Сентябрь 2015 - 14:54) писал:

А причем тут бизнес-процессы?

Вычисление точно такое же, только вместо перенаправления - отправка письма:

if ($line['Начислено к оплате'] > 0) sendmail('Тема письма', 'Текст письма', 'Адрес почты сотрудника');

Благодарю!

Да, с темой не попал.



#29184 Бизнес-процессы в КБ

Отправлено от lenar в 15 Сентябрь 2015 - 14:41 in Как это сделать

Просмотр сообщенияCbCoder (14 Сентябрь 2015 - 17:00) писал:

Никак. Вычисления привязаны к конкретным событиям, список которых есть в настройках вычислений. Это, например, изменение полей или сохранение записи. События "вход в профиль пользователя" там нет.

Подскажите, пож-ста, с помощью какого вычисления я могу автоматически уведомлять сотрудника внутри системы?
При условии, что поле "Начислено к оплате" > 0 должно отправляться сообщение "У Вас имеются не отмеченные заявки, прошу отметить!"



#29180 Бизнес-процессы в КБ

Отправлено от lenar в 14 Сентябрь 2015 - 16:30 in Как это сделать

Просмотр сообщенияCbCoder (14 Сентябрь 2015 - 12:52) писал:

Что за личный кабинет имеется ввиду?

при посещении учетной записи пользователя имею ввиду.



#29178 Бизнес-процессы в КБ

Отправлено от lenar в 14 Сентябрь 2015 - 12:26 in Как это сделать

Просмотр сообщенияCbCoder (13 Сентябрь 2015 - 16:48) писал:

if ($line['Начислено к оплате'] > 0) header("Location:bizproc.php?proc=111"); // 111 - id бизнес-процесса, заменяете на свой

Благодарю!

У меня ещё такой вопрос. Как сделать так, чтобы вычисление считалось при каждом входе в личный кабинет?



#29176 Бизнес-процессы в КБ

Отправлено от lenar в 13 Сентябрь 2015 - 16:34 in Как это сделать

Просмотр сообщенияCbCoder (12 Сентябрь 2015 - 16:05) писал:

1. Если под условиями понимать события изменения полей (например, после отредактирования записи), то теоретически можно вставить перенаправление на БП из вычисления.
2. Насколько знаю, сейчас какие-либо условия задать нельзя вообще. Все что можно задать, описано в документации.

CbCoder, напишите, пожалйста, простое вычисление, которое перенаправило бы на БП.
У меня стоит такая задача:
В таблице "Контрагенты" содержится поле "Начислено к оплате". При условии, что поле "Начислено к оплате" > 0 должен запускаться БП



#29174 Бизнес-процессы в КБ

Отправлено от lenar в 11 Сентябрь 2015 - 22:31 in Как это сделать

У меня 2 вопроса:
1. Как сделать так, чтобы бизнес-процесс запускался автоматически при выполнении определенных условий?
2. Как сделать так, чтобы условием перехода на следующий шаг было внесение значения в определенное поле, например в "статус заявки" в таблице "Заявки"?



#29157 Операции с датами

Отправлено от lenar в 04 Сентябрь 2015 - 21:25 in Как это сделать

Просмотр сообщенияCbCoder (04 Сентябрь 2015 - 15:12) писал:

Дата - это строковое значение, она должна быть в кавычках. В данном случае, в одинарных кавычках, т.к. вся строка запроса в двойных.

AND '".$a."' >= '".$line['Дата заявки']."'");

Спасибо большое! Получилось!



#29153 Операции с датами

Отправлено от lenar в 04 Сентябрь 2015 - 14:57 in Как это сделать

Набрал код без использования strtotime():

if (date("d") <= 20) {
  $a = date("Y-m-d H:i:s",mktime(date("H"), date("i"), date("s"), date("n")-1, 20, date("Y")));
}
else {
  $a = date("Y-m-d H:i:s",mktime(date("H"), date("i"), date("s"), date("n"), 20, date("Y")));
}
	$res = sql_query("SELECT COUNT(f1680) AS counts
		  FROM ".DATA_TABLE."130
		  WHERE status = 0
			AND f1680 = ''
			AND f1750 = ".$line['Партнер']['raw']."
			AND ".$a." >= ".$line['Дата заявки']);
		  
$row = sql_fetch_assoc($res);
$line['Партнер']['Заявки без статуса'] = $row['counts'];

Получается такое:

Цитата

13: AND f1750 = ".$line['f1750']['raw']."
14: AND ".$a." >= ".$line['f1670']);
15:

Ошибка SQL запроса:
SELECT COUNT(f1680) AS counts FROM f_data130 WHERE status = 0 AND f1680 = '' AND f1750 = 1 AND 2015-08-20 14:46:24 >= 2015-07-22 00:00:00
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '14:46:24 >= 2015-07-22 00:00:00' at line 6


Не могу понять что не так) Подскажите, пожалуйста.



#29144 Операции с датами

Отправлено от lenar в 04 Сентябрь 2015 - 10:42 in Как это сделать

Спасибо, эту ошибку преодолели.
Теперь на такой код:

if (date("d") <= 20) {
  $a = date("Y-m-d H:i:s",mktime(date("H"), date("i"), date("s"), date("n")-1, 20, date("Y")));
}

else {
  $a = date("Y-m-d H:i:s",mktime(date("H"), date("i"), date("s"), date("n"), 20, date("Y")));

}
	$res = sql_query("SELECT COUNT(f1680) AS counts
		  FROM ".DATA_TABLE."130
		  WHERE status = 0
			AND f1680 = ''
			AND f1750 = ".$line['Партнер']['raw']."
			AND strtotime(".$a.") >= strtotime(".$line['Дата заявки'].")");
$row = sql_fetch_assoc($res);
$line['Партнер']['Заявки без статуса'] = $row['counts'];

выдает такую ошибку:

Цитата

13: AND f1750 = ".$line['f1750']['raw']."
14: AND strtotime(".$a.") >= strtotime(".$line['f1670'].")");
15: $row = sql_fetch_assoc($res);

Ошибка SQL запроса:
SELECT COUNT(f1680) AS counts FROM f_data130 WHERE status = 0 AND f1680 = '' AND f1750 = 2 AND strtotime(2015-08-20 10:38:47) >= strtotime(2015-09-01 13:04:00)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '10:38:47) >= strtotime(2015-09-01 13:04:00)' at line 6


В чем причина? подскажите, пожалуйста.



#29139 Операции с датами

Отправлено от lenar в 03 Сентябрь 2015 - 15:13 in Как это сделать

Надо чтобы считалось количество 'Заявки без статуса' по 20 числа каждого месяца.
Написал такой код:

if (date("d") <= 20) {
  $a = date("Y-m-d H:i:s",mktime(date("H"), date("i"), date("s"), date("n")-1, 20, date("Y")));
}
else {
  $a = date("Y-m-d H:i:s",mktime(date("H"), date("i"), date("s"), date("n"), 20, date("Y")));
}
	$res = sql_query("SELECT COUNT(f1680) AS counts
		  FROM ".DATA_TABLE."130
		  WHERE status = 0
			AND f1680 = ''
			AND f1750 = ".$line['Партнер']['raw']."
			AND strtotime(".$a.") >= strtotime(".$line['Дата заявки']));
$row = sql_fetch_assoc($res);
$line['Партнер']['Заявки без статуса'] = $row['counts'];

Выдает ошибку такую:

Цитата

syntax error, unexpected ')'


Если убрать ')', то такую:

Цитата

Ошибка SQL запроса:
SELECT COUNT(f1680) AS counts FROM f_data130 WHERE status = 0 AND f1680 = '' AND f1750 = 1 AND strtotime(2015-08-20 15:11:18) >= strtotime(2015-08-31 18:10:00
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '15:11:18) >= strtotime(2015-08-31 18:10:00' at line 6

Что делаю не правильно?



#29138 Увеличение часов в дате

Отправлено от lenar в 03 Сентябрь 2015 - 10:46 in Как это сделать

Просмотр сообщенияCbCoder (03 Сентябрь 2015 - 10:27) писал:

Нет, не совсем правильно используете. В mktime первым аргументом идут часы, месяц только на четвертом месте.
Разобрался) Спасибо!



#29136 Увеличение часов в дате

Отправлено от lenar в 03 Сентябрь 2015 - 10:21 in Как это сделать

Спасибо за совет по корректному сравнению!
Проблема еще в том, что в коде:
$novd = date("Y-m-d", mktime(date("m")+1));
месяц не изменяется.
Вроде как функцию правильно использую



#29134 Увеличение часов в дате

Отправлено от lenar в 02 Сентябрь 2015 - 18:58 in Как это сделать

$novd = date("d.m.Y", mktime(date("m")+1));
$tekd = date("d.m.Y");

if ($novd > $tekd) {
$line['Текст заявки'] = 'получилось!';
}
else {
$line['Текст заявки'] = 'не получилось';
}

у меня постоянно выдает "не получилось". В чем причина?