<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=441071&amp;view=findpost&amp;p=3898606</guid>
        <pubDate>Tue, 02 Jan 2024 20:16:26 +0000</pubDate>
        <title>Создать PHP скрипт или сделать SQL запрос для вычисления цикла сделки (в днях)?</title>
        <link>https://forum.sources.ru/index.php?showtopic=441071&amp;view=findpost&amp;p=3898606</link>
        <description><![CDATA[Akina: Производственный календарь содержит абсолютно все дни с соотв. признаками - субботы, воскресенья (между прочим, отдельно), праздничные, предпраздничные, и даже учитывает переносы выходных дней на рабочие и соотв. перемещение предпраздников.]]></description>
        <author>Akina</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=441071&amp;view=findpost&amp;p=3898605</guid>
        <pubDate>Tue, 02 Jan 2024 18:44:52 +0000</pubDate>
        <title>Создать PHP скрипт или сделать SQL запрос для вычисления цикла сделки (в днях)?</title>
        <link>https://forum.sources.ru/index.php?showtopic=441071&amp;view=findpost&amp;p=3898605</link>
        <description><![CDATA[rownong@yandex.ru: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=441071&view=findpost&p=3898603'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2024-01-02T18:32:01+00:00">02.01.24, 18:32</time></span><div class='quote '>Вторник и четверг считаются напрямую по дате и никаких таблиц не требуют.<br>
Выходные и праздничные дни берутся из производственного календаря. Который хранится в отдельной таблице.</div></div><br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Вторник и четверг считаются напрямую по дате и никаких таблиц не требуют.</div></div><br>
Выходные тоже (суббота и воскресенье)?<br>
Даже если чисто на SQL делать?<br>
Как это через SQL задается подскажите?<br>
<br>
Получается, мне производственный календарь найти и все праздничные дни выписать в таблицу (создать таблицу предварительно)?]]></description>
        <author>rownong@yandex.ru</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=441071&amp;view=findpost&amp;p=3898603</guid>
        <pubDate>Tue, 02 Jan 2024 18:32:01 +0000</pubDate>
        <title>Создать PHP скрипт или сделать SQL запрос для вычисления цикла сделки (в днях)?</title>
        <link>https://forum.sources.ru/index.php?showtopic=441071&amp;view=findpost&amp;p=3898603</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=441071&view=findpost&p=3898602'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>rownong@yandex.ru &#064; <time class="tag-quote__quoted-time" datetime="2024-01-02T14:59:44+00:00">02.01.24, 14:59</time></span><div class='quote '>Вопрос 1. Подскажите нужно ли для этого создавать PHP скрипт (т.к. стек на PHP) или можно решить задачу только SQL запросом?</div></div><br>
Возможны оба варианта. Решение только средствами SQL более разумно IMHO.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=441071&view=findpost&p=3898602'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>rownong@yandex.ru &#064; <time class="tag-quote__quoted-time" datetime="2024-01-02T14:59:44+00:00">02.01.24, 14:59</time></span><div class='quote '>Вопрос 2. При расчете как учитывать &quot;вторник, четверг, выходной, праздничный&quot;?<br>
Надо ли для этого создавать отдельную таблицу в БД с перечислением всех эти дней в году (чтобы их учитывал скрипт /sql запрос)?</div></div><br>
Вторник и четверг считаются напрямую по дате и никаких таблиц не требуют. <br>
Выходные и праздничные дни берутся из производственного календаря. Который хранится в отдельной таблице.]]></description>
        <author>Akina</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=441071&amp;view=findpost&amp;p=3898602</guid>
        <pubDate>Tue, 02 Jan 2024 14:59:44 +0000</pubDate>
        <title>Создать PHP скрипт или сделать SQL запрос для вычисления цикла сделки (в днях)?</title>
        <link>https://forum.sources.ru/index.php?showtopic=441071&amp;view=findpost&amp;p=3898602</link>
        <description><![CDATA[rownong@yandex.ru: Здравствуйте.<br>
<br>
Для продажи товаров на маркетплейсе нужно рассчитать для заказов цикла сделки (в днях).<br>
Началом сделки считаю день закупки товара для заказа, окончанием перечислением денег за заказ на расчётный счет от маркетплейса.<br>
<br>
<span class='tag-u'>Вопрос 1.</span> Подскажите нужно ли для этого создавать PHP скрипт (т.к. стек на PHP) или можно решить задачу только SQL запросом?<br>
<br>
<span class='tag-u'>Вопрос 2.</span> При расчете как учитывать &quot;вторник, четверг, выходной, праздничный&quot;?<br>
Надо ли для этого создавать отдельную таблицу в БД с перечислением всех эти дней в году (чтобы их учитывал скрипт /sql запрос)?<br>
<br>
<strong class='tag-b'>Условия:</strong><br>
1. Выплаты производятся в дни месяца 4, 12, 20, 28.<br>
2. Если товары выкуплены до даты выплаты, то деньги будут перечислен в ближайшую дату выплаты.<br>
3. Если заказ перешёл в статус «Доставлен» за 1 день до выплаты, то выплата перенесётся уже на следующий раз. К примеру, заказ был доставлен покупателю 3-го числа, выплата за него будет не 4-го, а уже 12-го<br>
4. Если дата выплаты выпадает на вторник, четверг, выходной, праздничный, то переносится на следующий за ним рабочий день.<br>
<br>
<strong class='tag-b'>Таблицы</strong><br>
- &quot;4_1_orders_yandex_market&quot; (Заказы)<br>
&gt; order_number (Номер Заказа)<br>
<br>
- &quot;4_3_status_yandex_market&quot; (Статусы)<br>
&gt; &quot;number_order_yandex_market&quot; (Номер Заказа)<br>
&gt; &quot;status&quot; (Статус)<br>
&gt; &quot;data_time&quot; (Дата-время наступления статуса)<br>
<br>
- &quot;11_2_shipments_yandex_market&quot; (Отгрузки)<br>
&gt; &quot;number_shipment&quot; (№ Отгрузки)<br>
&gt; &quot;start_plan_interval_shipments&quot; (дата Отгрузки)<br>
<br>
- &quot;11_3_orders_yandex_market_from_shipments&quot; (Заказы из Отгрузок)<br>
&gt; &quot;number_shipment&quot; (№ Отгрузки)<br>
&gt; &quot;number_order_yandex_market&quot; (Номер заказа)<br>
<br>
<strong class='tag-b'>SQL запрос</strong><br>
1. Выбрать из таблицы &quot;4_1_orders_yandex_market&quot; Заказы<br>
для которых в таблице &quot;4_3_status_yandex_market&quot; отсутствует статус=&quot;CANCELLED&quot;<br>
и присутствует статус=&quot;DELIVERED&quot;<br>
<br>
2. Вывести столбцы<br>
<br>
- Номер заказа<br>
<br>
- Дата закупки товара<br>
* В таблице &quot;11_3_orders_yandex_market_from_shipments&quot; найти (Отгрузки Яндекс.Маркет) Заказ и в таблице &quot;11_2_shipments_yandex_market&quot; (Отгрузки Яндекс.Маркет) для него проверить поле start_plan_interval_shipments (дата Отгрузки), из этой даты вычесть 1 день.<br>
<br>
- Дата вручения<br>
* В таблице &quot;4_3_status_yandex_market&quot; (Статусы) статус &quot;status&quot; (Статус)= &quot;DELIVERED&quot;, поле &quot;data_time&quot;.<br>
<br>
- Дата выплаты плановая.<br>
* Ближайшая дата выплаты относительно &quot;Дата вручения&quot;<br>
<br>
- Дата выплаты итоговая<br>
* Ближайшая дата выплаты с соблюдением всех условий из раздела &quot; Условия&quot;.<br>
<br>
- Цикл сделки (дн)<br>
(Дата выплаты итоговая) – (Дата закупки товара)<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><strong class='tag-b'>Примеры.</strong><br>
<span class='tag-u'>Пример 1. Обычный.</span><br>
- Дата закупка товара: 01.12.2023<br>
- Дата вручения товара: 02.12.2023 <br>
- Условия:<br>
&quot;1.&quot;, &quot;2.&quot; =&gt; ближайшая дата выплаты 04.12.2023 <br>
&quot;3.&quot; =&gt; выкуплен раньше, чем 1 день до 04.12.2023<br>
&quot;4.&quot; =&gt; дата выплаты (04.12.2023) НЕ вторник, четверг, выходной/праздничный день<br>
- Дата выплаты итоговая: 04.12.2023<br>
- Цикл сделки: (04.12.2023) – (01.12.2023) = 3дн<br>
<br>
<span class='tag-u'>[U]Пример 2. День выплаты вторник. </span>[/U]<br>
- Дата закупка товара: 01.12.2023<br>
- Дата вручения товара: 11.12.2023<br>
- Условия:<br>
&quot;1.&quot;, &quot;2.&quot;  =&gt; ближайшая дата выплаты 12.12.2023<br>
&quot;3.&quot; =&gt; выкуплен за 1 день до 12.12.2023 =&gt; перенос на 20.12.2023<br>
&quot;4.&quot; =&gt; дата выплаты (20.12.2023) НЕ вторник, четверг, выходной/праздничный день<br>
- Дата выплаты итоговая: 20.12.2023<br>
- Цикл сделки: (20.12.2023) – (01.12.2023) = 19дн<br>
<br>
<span class='tag-u'>Пример 3. День выплаты выходной.</span><br>
- Дата закупка товара: 01.11.2023<br>
- Дата вручения товара: 02.11.2023 <br>
- Условия:<br>
&quot;1.&quot;, &quot;2.&quot;  =&gt; ближайшая дата выплаты 04.11.2023 (суббота) переносится на рабочий день 06.11.2023 (понедельник)<br>
&quot;3.&quot; =&gt; выкуплен раньше, чем 1 день до 04.14.2023<br>
&quot;4.&quot; =&gt; дата выплаты 06.11.2023 (понедельник), праздничный день, переносится на рабочий день =&gt; 07.11.2023 (вторник), по вторникам не выплачивают, переносится на 08.11.2023 (среду)</div></div>]]></description>
        <author>rownong@yandex.ru</author>
        <category>Базы данных: SQL</category>
      </item>
	
      </channel>
      </rss>
	