mc1C

Управление медицинским центром 1С + Настройка 1С
Версия 1.0.5-beta
Дата выпуска 30.11.2018
Загрузки 31
Просмотры 4 538
Внимание, этот компонент требует версию PHP 5.6 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.4 !
Приложение для синхронизации конфигурации 1С: Управление медицинским центром от компании «1 БИТ» и сайта на MODX REVOLUTION.
Сущетсвует 2 метода синхронизации через SOAP или через FTP.

Внимание!!! Для настройки требуется усилия как 1С программиста так и веб программистом так как настройки для синхронизации не стандартные (это не Ecommerce встроенная синхронизация с сайтом).

Синхронизируются:
  • Клиники (можно синхронизировать несколько клиник)
  • Группы наменклатуры (категории minishop)
  • Наменклатура (товары minishop)
  • Специалисты клиники со специальностями и услугугами
  • График работ специалистов

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

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

Клиники могут быть созданны в ручную или получены из 1С по протоколу SOAP


Создание и публикация ресурсов

В системных настройках предусмотрены параметры для ресурсов
  • Создавать ресурс Да/Нет
  • Публиковать по умочанию Да/Нет
  • Назначение шаблона для ресурса


Отправка заказа в 1С

После отправки заказа в 1С предусмотрена возможность отправить письмо с информацией о заявки на email пользователя менеджера указанного в настройках.

Управление ресурсами

Для синхронизации используется поле:


По этому вы можете сами создавать в ручную страницы с врачами и назначать им индитификаторы из 1С чтобы в дальнейшем можно было сделать заявку через форму записи на прием


Форма отправки заявки

На сайт синхронизируется график работ сотрудников а так же время свободного и занятого времени



Работа через FTP

Для синхронизации необходимо создать клинику и настроить выгрузку каталога
core/components/mc1c/temp

Работа через SOAP

Необходимо прописать ссылку, логин и пароль для соединения в системных настройках.

Описание работы веб-сервисов и данных xml

Crontab

Установка crontab заданий для синхронизации 1С с сайтом
// Задание для забора каталога услуги, специалистов и графика работ из 1С
core/components/mc1c/crontab/synccatalog.php

// Задание для отправки заявок в 1С
core/components/mc1c/crontab/syncorder.php

Форма отправки заявок в 1С
[[!mc1c]]

Вывод списка категорий с услугами
<div class="row">
        <div class="col-md-4">
            <h3>Категории</h3>
            {$_modx->runSnippet('pdoMenu', [
                'parents' => 11,
                'where' => ['class_key' => 'msCategory'],
                'depth' => 4,
                'level' => 4,
                'hideSubMenus' => 1,
                'outerClass' => 'nav nav-pills flex-column',
                'tplOuter' => '@INLINE <ul [[+classes]]>[[+wrapper]]</ul>',
                'tpl' => '@INLINE <li class="nav-item"><a class="nav-link" href="[[+link]]">[[+menutitle]]</a>[[+wrapper]]</li>',
            ])}

        </div>
        <div class="col-md-8 mt-1">
            <h1>{$modx->resource->pagetitle}</h1>
            <div class="row justify-content-center ">
                <div class="col-lg-11">
                    [[!msProducts?
                        &tpl=`tpl.mc1c.service.row`
                    ]]
                </div>
            </div>
        </div>
    </div>


Вывод списка специальносте с врачами
<div class="three-colums abc-list">
    <div class="d-flex pb-3">
        <ul>
            {$_modx->runSnippet('pdoResources', [
                'parents' => 13,
                'class' => 'modResource',
                'depth' => 0,
                'limit' => 35,
                'sortby' => 'menuindex',
                'sortdir' => 'ASC',
                'tpl' => 'tpl.mc1c.specialization.row',
                'includeTVs' => 'images',
                'groupby' => 'Employee.specialization',
                'where' => [
                    'modResource.isfolder' => 0,
                    'Employee.clinic:!=' => '00000000-0000-0000-0000-000000000000',
                    'Employee.specialization:!=' => ''
                ],
                'select' => '{
                    "modResource":"*",
                    "Employee":"uid",
                    "Employee":"name as name",
                    "Employee":"specialization as specialization"
                }',

                'innerJoin' => '{
                    "Employee":{"class":"mc1cEmployee","on":"Employee.uid = modResource.link_attributes"}
                }',
            ])}

            <li><a href="{$modx->resource->id|url}">Все специалисты</a></li>
        </ul>
    </div>
</div>

{if !$.get.specialization}
    {set $query = [
        'modResource.isfolder' => 0,
        'Employee.clinic:!=' => '00000000-0000-0000-0000-000000000000'
    ]}
{else}
    {set $query = [
        'modResource.isfolder' => 0,
        'Employee.clinic:!=' => '00000000-0000-0000-0000-000000000000'
        'Employee.specialization' => $.get.specialization
    ]}
{/if}

{$_modx->runSnippet('pdoResources', [
    'parents' => $id,
    'class' => 'modResource',
    'depth' => 0,
    'limit' => 35,
    'sortby' => 'menuindex',
    'sortdir' => 'ASC',
    'tpl' => 'tpl.mc1c.doctor.row',
    'includeTVs' => 'images',
    'where' => $query,
    'showLog' => 1,
    'select' => '{
    "modResource":"*",
    "Employee":"uid"
    }',

    'innerJoin' => '{
    "Employee":{"class":"mc1cEmployee","on":"Employee.uid = modResource.link_attributes"}
    }',
])}

Страница врача
{set $employee = $modx->resource->employee}
            
            <div class="row justify-content-center">
                <div class="col-lg-4">
                    {set $images = $modx->resource->getTvValue('images')}
                     <img width="318px" height="318px" src="{if $images}{$images}{else}/assets/noneimages.png{/if}" alt="">

                </div>
                <div class="col-lg-8">
                    <h1>{$modx->resource->pagetitle}</h1>
                    Специальность: {$employee.specialization}
                </div>
            </div>
            <hr>
            {if count($employee.services) > 0}
            <div class="row justify-content-center bg-light text-dark">
                <div class="col-lg-11">
                    {foreach $employee.services as $key => $value}
                        <div class="row py-3 align-items-center justify-content-center">
                            <div class="col-lg-7">
                                <h6>{$value.pagetitle}</h6>
                                <p class="fs-08">Код услуги {$value.article}</p>
                            </div>
                            <div class="col-lg-2">
                                <h6>{$value.price} руб.</h6>
                            </div>
                            <div class="col-lg-2">
                                <a href="{13330|url}/?employee={$employee.id}&service={$value.id}" class="btn" >Записаться</a>
                            </div>
                        </div>
                    {/foreach}
                </div>
            </div>
            {else}
                Услуги не указаны
            {/if}

1.0.5-beta

  • Исправление сниппета mc1c
  • Добавлена кнопка на получения врачей из 1С

Последние обсуждения в сообществе MODX.pro