Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

План-график очередности поставок #61

Open
unpete opened this issue Jan 19, 2018 · 22 comments
Open

План-график очередности поставок #61

unpete opened this issue Jan 19, 2018 · 22 comments
Assignees

Comments

@unpete
Copy link
Member

unpete commented Jan 19, 2018

"Последним моментом в заявке на поставку подоконников - является предоставление графика очередности поставок. Данный график формируется накануне перед поставкой (на поставку в понедельник -формируется в
пятницу) в 16 часов, мы передаем код поставки по каждому заказу."

В данный момент этот график отправляется файлом по почте.

Формат кода "Поставка 4: 11:00".

Поэтому я хочу согласовать поле и формат, в котором вы хотите получать данную информацию.

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

@unpete
Copy link
Member Author

unpete commented Jan 29, 2018

Сделана часть задачи - описаны допреквизиты delivery_order и delivery_time

@unpete
Copy link
Member Author

unpete commented Jan 29, 2018

@RusaDrako, в массив extra_fields добавлены имена свойств, см.: 686adcc

@RusaDrako
Copy link

Прошу прощения, но в предыдущем общении, забыл упомянуть о том, что в рамках одной поставки заказы группируются по маршрутам. т.е. в рамках одной поставки (к примеру, в 11:00) заказы 1,2,4 должны будут при поставке к нам объединены - маршрут "Мар. 11(с)", заказы 7.8.9 - маршрут "Дов маш 1", а заказы 3,5,6 - "Самовывоз"

Собственно, требуется так же передать имя этого маршрута, для группировки заказов при поставке,

@unpete
Copy link
Member Author

unpete commented Feb 13, 2018

В базе 1С Кристаллита, у документа Расчет есть 2 допреквизита: Партия доставки и Время партии доставки. Эти реквизиты используются при печати этикеток и диспетчеризации.
При формировании заказов в сервисе, эти самые реквизиты проецируются в свойства delivery_order и delivery_time с теми же типами данных, что и в 1С.
Если до сих пор ваша задача решалась средствами 1С Кристаллита, то те же самые возможности есть и для облачных заказов.
Если ранее задача не была решена или не устраивает качество, можем обсудить уточнение или постановку новой задачи.
до 20-го я в командировке, @nmivan, просьба поучаствовать в решении.
Есть ощущение, что изменить тип свойства delivery_order с Числа на Строку, это кратчайший путь к решению вашей задачи, но надо проверить код цеховой безбумажки и печати этикеток. Вдруг там где-то явно тип Число ожидается.

@RusaDrako
Copy link

Основная потребность у этой задачи - передача информации по доставке, когда заказ уже согласован и принят в производство.

@unpete
Copy link
Member Author

unpete commented Feb 19, 2018

когда заказ уже согласован и принят в производство

Я это понимаю. Технически - никаких проблем. Задержка из-за большого числа задач по другим проектам.

@RusaDrako
Copy link

"Добрый день.
Предлагаю ознакомиться с документацией по новому endpoint нашего сервиса:
https://github.com/oknosoft/windowbuilder-parametric/blob/master/README.md#post-prmdeliverydelivery
Появилась возможность сообщить системе плановые времена и номера партий доставки,
сразу на пачку заказов, в том числе, уже запущенных в работу и заблокированных для обычного редактирования.
В пачке может быть не более 50 элементов. Если нужно отредактировать сразу 300 заказов, делайте это за 6 тактов.
С уважением, Маляров Евгений"

Пытался передать данные на тестовый заказ. Ничего не получилось. Использовал разные форматы массивов:
Одномерный:
array(
'ref'=> "guid_заказа",
'date' => "2018-03-28",
'time' => "00:00:00",
'order' => "Тестовая доставка",
));

И двух мерный:
array( '0' => Array
(
'ref'=> "guid_заказа",
'date' => "2018-03-28",
'time' => "00:00:00",
'order' => "Тестовая доставка",
));
или
array( 'guid_заказа' => Array
(
'ref'=> "guid_заказа",
'date' => "2018-03-28",
'time' => "00:00:00",
'order' => "Тестовая доставка",
));

В web-приложении нет никаких изменений у тестового заказа. + никакого ответа. Единственный ответ был, когда я передал в первый раз в формате json. Сообщил, что надо переслать в массив.

В логах некоторых запросов лога нет, для других висит error "Unexpected number in JSON at position 1". Не могу понять, что не так.

И если можно выложить пример в php, как для создания заказа.

@unpete
Copy link
Member Author

unpete commented Mar 27, 2018

Пример на php @nmivan сделает на след. неделе. Сейчас он в отпуске.
Работающий код на 1С:

Данные = Новый Массив();
Данные.Добавить(Новый Структура("ref,date,time,order", "037b1361-cda9-11e7-90f1-88d7f67c2ade", "2018-02-20", "11:00", "num 3"));
Рез = ЗапросКСервису("post", "prm/delivery/delivery", Кеш(), Данные);

Про отсутствие ответа и логов - не верю. Вы на какой url post делаете?
Из этого файла видно, что запись лога делается до проверки авторизации и роутинга. То есть, логируется всё, что попадает в область видимости сервиса.

@RusaDrako
Copy link

Нет, ответ был, когда я посылал некорректный массив. Мне возвращался ответ с ошибкой: "Unexpected number in JSON at position 1". При этом пустой ответ, во всех остальных случаях. И в логах отметка об обращении есть. Но в момент обращения, сервер ничего не присылает: есть ошибка, нет ошибки, прошло, не прошло - сразу не понятно.

Обращаюсь по урлу: https://crystallit.oknosoft.ru/prm/delivery/delivery

@unpete
Copy link
Member Author

unpete commented Apr 11, 2018

Добавил пример https://github.com/oknosoft/windowbuilder-parametric/blob/master/php/delivery.php
В postdata должна быть строка валидного json массива объектов.
Каким способом вы соберёте эту строку в php, сервису без разницы. Я не специалист, но могу предположить, что в php есть методы сериализации массива объектов в json.

@RusaDrako
Copy link

Спасибо за пример. Данные отправляются. В ответ получаются отправленные данные + номер заказа формата "ОТxxxxxxxx". После отправки в интерфейсе пользователя у заказа появляются две новые строки -> время партии отгрузки = 01.01.0001 00:00 и партия отгрузки = 0 (тестирование проводил и на старых заказах, и на текущих). Это нормально? По таким данным сложно проконтролировать правильно ли получены данные.

Пример отправленной строки, на которую был получен ответ:
[{"ref":"dc4b1fb7-80d0-11e7-956f-9cb654bba81d","date":"2018-05-01","time":"00:00","order":"\u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439"}]

Поле order заполнялось как кириллицей, так и только латиницей.

@unpete
Copy link
Member Author

unpete commented Apr 18, 2018

Типы проверю. В time и order могли быть указаны нестроковые типы, что объясняет плохое время партии и номер партии.
В js юникод в кирилицу трансформируется автоматически, в php JSON.parse() по идее тоже должен так делать.

@RusaDrako
Copy link

Собственно выше приведённом примере присутствует закодированная кириллица.

@unpete
Copy link
Member Author

unpete commented Apr 23, 2018

Изменил типы данных в свойствах time и order на строку. Просьба проверить регистрацию свойств доставки для группы заказов

@RusaDrako
Copy link

Партия отгрузки - есть
Время партии отгрузки - есть
Дата отгрузки - вообще нет поля
Дата доставки план - пусто

@unpete
Copy link
Member Author

unpete commented Apr 24, 2018

Дата отгрузки - вообще нет поля, Дата доставки план - пусто

Со стороны интерфейса мне не интересно, главное, чтобы в данных было.
Подскажите guids заказов, в которых устанавливались свойства - посмотрю в couchdb и в 1С

@RusaDrako
Copy link

ac8e3ad2-ecdc-fb29-1cce-0523788886f2

Неплохо бы было бы видеть эту дату в интерфейсе. Для контроля со стороны клиента.

@unpete
Copy link
Member Author

unpete commented May 10, 2018

https://crystallit.oknosoft.ru/doc.calc_order/ac8e3ad2-ecdc-fb29-1cce-0523788886f2
В интерфейсе сейчас видно

@RusaDrako
Copy link

Хотел уточнить. Поля куда мы отправляем плановую дату доставки "delivery_date, delivery_time" (при отправке через doc.calc_order) и "date, time" (delivery/delivery) - одни и те же поля? Или в системе это разные данные?

@unpete
Copy link
Member Author

unpete commented May 14, 2018

Это отдельные поля. Точнее, строки табчасти допреквизитов. У первого тип дата, второй и третий - строки

@unpete
Copy link
Member Author

unpete commented May 23, 2018

@RusaDrako, если нет замечаний, задачу закрываем?

@RusaDrako
Copy link

Да, вроде всё нормально.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants