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


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


Сообщений в теме: 84

#81 saas_colorit-fasad

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 22 Ноябрь 2017 - 08:54

Здравствуйте. Подскажите пожалуйста. Есть вычисление (при определенных условиях дата прибавляется +28 дней или +7 дней).

if (strtotime($line['Дата передачи технологу по фасадам']) > 0){
	if ($line['Вид изделия тип 2'] == "О") {
		$plan = date("Y-m-d", strtotime($line['Дата передачи технологу по фасадам']) + 28 * 60 * 60 * 24);
	}
	if ($line['Вид изделия тип 2'] == "М") {
		$plan = date("Y-m-d", strtotime($line['Дата передачи технологу по фасадам']) + 7 * 60 * 60 * 24);
	}
	if ($line['Вид изделия тип 2'] == "Ф" && ($line['Тип фасадов'] != "1.1," || $line['Наличие рамки под стекло'] != "Нет" || $line['Наличие Гнутых Фасадов'] != "Нет"  || $line['Наличие интегрированной ручки'] != "Нет")) {
	 $plan = date("Y-m-d", strtotime($line['Дата передачи технологу по фасадам']) + 28 * 60 * 60 * 24);
	}
	if ($line['Вид изделия тип 2'] == "Ф" && $line['Тип фасадов'] == "1.1," && $line['Наличие рамки под стекло'] == "Нет" && $line['Наличие Гнутых Фасадов'] == "Нет" && $line['Наличие интегрированной ручки'] == "Нет" ) {
	 $plan = date("Y-m-d", strtotime($line['Дата передачи технологу по фасадам']) + 28 * 60 * 60 * 24);
	}

	if (
		$line['Вид изделия тип 2'] == "Ф" &&
		$line['Тип фасадов'] == "1.1 лайт," &&
		$line['Наличие двусторонней отделки'] == "НЕТ" &&
		$line['Наличие рамки под стекло'] == "Нет" &&
		$line['Наличие интегрированной ручки'] == "Нет" &&
		$line['Наличие Гнутых Фасадов'] == "Нет"
	) {
		$plan = date("Y-m-d", strtotime($line['Дата передачи технологу по фасадам']) + 28 * 60 * 60 * 24);
	} elseif (
		$line['Вид изделия тип 2'] == "Ф" &&
		$line['Тип фасадов'] == "1.1 лайт," && (
			$line['Наличие двусторонней отделки'] == "ДА" ||
			$line['Наличие рамки под стекло'] == "Да" ||
			$line['Наличие интегрированной ручки'] == "Да" ||
			$line['Наличие Гнутых Фасадов'] == "Да"
		)
	) {
		$plan = date("Y-m-d", strtotime($line['Дата передачи технологу по фасадам']) + 28 * 60 * 60 * 24);
	}

	if ($line['Тип фасадов'] == "1.1 лайт Стандарт,") {
		$plan = date("Y-m-d", strtotime($line['Дата передачи технологу по фасадам']) + 28 * 60 * 60 * 24);
	}

	if ($line['Вид изделия тип 2'] == "Р") {
		$plan = date("Y-m-d", strtotime($line['Дата передачи технологу по фасадам']) + 7 * 60 * 60 * 24);
	}

	// 1.1+1.1 лайт если все остальные условия = НЕТ - 28 день
	$oneone = false;
	$oneone_lite = false;
	$fasads_arr = explode(PHP_EOL, $line['Тип фасадов']);
	foreach ($fasads_arr as $k => $v) {
		$v = trim($v);
		if ($v == '1.1,') {
			$oneone = true;
		} elseif ($v == '1.1 лайт,') {
			$oneone_lite = true;
		}
	}

	if ($line['Вид изделия тип 2'] == "Ф" && $oneone && $oneone_lite && $line['Наличие рамки под стекло'] == "Нет" && $line['Наличие Гнутых Фасадов'] == "Нет" && $line['Наличие интегрированной ручки'] == "Нет" ) {
	 $plan = date("Y-m-d", strtotime($line['Дата передачи технологу по фасадам']) + 28 * 60 * 60 * 24);
	}

	//data_update(271,array("f6591"=>$plan,"f6601"=>$plan),"id=",$ID);
	$line['Дата планируемой готовности'] = $plan;
	$line['Дата фактической готовности'] = $plan;
}

Данное вычисление начинается когда поле "Дата передачи технологу >0
if (strtotime($line['Дата передачи технологу по фасадам']) > 0){

Как сделать, чтобы например данное условие срабатывало при дате меньше чем 21.11.2017, а пи дате > 21.11.2017 добавляло не 28 а 48 дней

Заранее спасибо.

#82 saas_colorit-fasad

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 23 Ноябрь 2017 - 13:30

Спасибо, что просматриваете форум..справился сам.

#83 Tony999

    Активный участник

  • Пользователи
  • PipPipPip
  • 412 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 23 Ноябрь 2017 - 20:19

Сарказма тут не надо. Просто, скромнее надо быть в размерах публикуемого кода...
Наверное, и на меньшем по размеру примере можно было обозначить Вашу проблему.
Или Вы думаете иначе? С уважением, Tony999.
Умные сайты на заказ
https://info.crm-master.info

#84 saas_colorit-fasad

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 29 Ноябрь 2017 - 13:02

Просмотр сообщенияTony999 (23 Ноябрь 2017 - 20:19) писал:

Сарказма тут не надо. Просто, скромнее надо быть в размерах публикуемого кода...
Наверное, и на меньшем по размеру примере можно было обозначить Вашу проблему.
Или Вы думаете иначе? С уважением, Tony999.
Да Уважаемый, я думаю иначе.
Ибо 1 - я не программист и "величины" кода и "как на меньшем примере" обозначить проблему я на момент написания не знал.
2 - Данное вычисление писали программисты КБ и как смог так и выложил в надежде на помощь.
3- ну и в принципе пришлось покопаться в самоучителях по PHP, понять логику построения данного вычисления и урезать его в 2 раза..
С Уважением!

Сообщение отредактировал saas_colorit-fasad: 29 Ноябрь 2017 - 13:04


#85 Tony999

    Активный участник

  • Пользователи
  • PipPipPip
  • 412 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 29 Ноябрь 2017 - 17:17

Это хорошо, что Вы нашли решение и код в 2 раза короче!
Так и написали бы, объяснили как справились, помогли бы людям, у кого может есть похожая задача.
Умные сайты на заказ
https://info.crm-master.info





Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных