Прошу совета: на чем сделать вот такую систему?

Здравствуйте.
Вот сайт-пример по составлению строительной сметы онлайн. Например, типа такого (ссылка).

Мне необходимо разработать сайт (или CRM, ERP?), с помощью которого можно составить смету с материалами и работами. Исключительно онлайн версия, доступ через браузер.

Требования следующие:
  1. Моментальный поиск нужного вида работ (по номенклатуре, ключевому слову) и добавление этой работы в общий список работ. Всего около 13 000 видов работ.
  2. У каждого вида работ есть Наименование, Единица измерения, Максимальная стоимость работы — ручной труд, Максимальная стоимость работы — механический труд, Максимальная стоимость материалов.
  3. Список работ добавляется по одному. Должна быть колонка для внесения своей стоимости работы (колонка Фактическая стоимость), несмотря на уже установленную цену из ячейки Максимальная стоимость работы (то есть, если в колонку Фактическая стоимость внесена стоимость, то для расчета используется эта стоимость).
  4. Возможность добавить самим пользователем Дополнительную работу и внести туда свою стоимость.
  5. Форму сохранить и экспортировать в pdf, чтобы можно было потом вернуться к ней, внести правки и опять экспортировать в pdf.
Система делается исключительно для себя.

Задача-цель: уменьшить время на составление сметы.

Сейчас она составляется по бумажному справочнику (660 страниц), т.к. именно этот справочник содержит по каждой работе важные для нас дополнительные данные (еще 2 колонки). Все должно быть просто, понятно и минимум движений (у нас есть люди, которым «за *»).

Таблицу со списком работ делать на DataTables или какой-нибудь Ajax-поиск?
Формы на FormIt? Или все можно на miniShop2 сделать?

Возможно ли удобно это сделать на MODX Revo или лучше взять тот же SugarCRM (например) и допиливать ее?

Буду благодарен любой мысли или совету!
Anton
25 мая 2017, 13:09
modx.pro
2 794
-1

Комментарии: 31

Anton
28 мая 2017, 14:53
-2
Получается MODX не предназначен для таких задач.
    Волков Николай
    28 мая 2017, 15:00
    +2
    Подходит, но поверьте, если у вас уже на уровне «DataTables или какого-нибудь Ajax-поиска» возникают вопросы, то вам самостоятельно проект вам не по плечу и лучшее решение будет передача стороннему специалисту на разработку.

    P.S. «DataTables или какого-нибудь Ajax-поиска» являются далеко не первым этапом при разработке. Лучше посмотрите примеры этапов процесса разработки в аналогичных проектах.
      Anton
      29 мая 2017, 01:20
      +1
      Где посмотреть примеры этапов разработки аналогичных проектов?
      P.S. Вчерашний пост был просто «провокацией-лакмусовой бумажкой», так как молчите постоянно, не вытащить вас.
        Волков Николай
        29 мая 2017, 21:03
        0
        если не секрет, то по какому каналу связи я молчу? И моё сообщение не было какой-либо провокацией, а было указанием на тот факт, что вы не обладаете навыками и опытом реализации подобных проектов.

        На счёт этапов разработки: Вы сначала нормально сформулируйте, что вам нужно получить на выходе без «как тут» или «аналогично тому сайту». Далее пойдёт разработка интерфейса (на бумаге) в котором будет удобно работать и уже далее пойдут фреймворки. Но по фактукакой именно без разницы, поскольку вопрос для разработчика стоять будет скорее в том где ему будет удобно это реализовать.
          Anton
          29 мая 2017, 23:05
          0
          Николай, зачем заниматься фаллометрией? Взрослые люди же.
          Я спросил: «Возможно ли удобно это сделать на MODX Revo или лучше взять тот же SugarCRM (например) и допиливать ее?»
          Ответ: «если у вас уже на уровне «DataTables или какого-нибудь Ajax-поиска» возникают вопросы, то вам самостоятельно проект вам не по плечу».
          Кому какая разницу кому что по плечу (если только помериться)?

          По поводу этапов проектирования и по какой методологии разрабатывать проект — на счет этого вопросов нет.

          Количество вопросов («сначала сформулируй») также зависит от выбранной методологии ведения проектов: где-то нужно сразу всё ТЗ выложить и нельзя будет его будет менять в будущем (можно, но будет дорого), а где-то можно возвращаться к ТЗ с хорошей документацией и корректировать задачи, затем опять возвращаться.

          Николай, я не разработчик. У меня другие задачи.

          P.S. По поводу «нормально сформулировать» — крайне не рационально не опираться на уже подобные, готовые проекты, у которых можно позаимствовать удобный функционал. А не придумывать заново колесо и тратить уйму времени.

          P.P.S. За совет «Подходит» — спасибо большое! :)
            Волков Николай
            29 мая 2017, 23:15
            +1
            Еще раз

            «если у вас уже на уровне «DataTables или какого-нибудь Ajax-поиска» возникают вопросы, то вам самостоятельно проект вам не по плечу»

            Я написал это, потому что реально для разработчиков, способных выполнить подобное ТЗ, не особо волнуют вариации по «DataTables или какого-нибудь Ajax-поиска», т.к. реализация будет производиться тем, что подходит для данного интерфейса + тем фрейворком, который им удобен и известен.

            «заниматься фаллометрией»

            Вы не девочка, чтобы я этим перед вами занимался.

            «Я не разработчик. У меня другие задачи»

            Я был прав на счет того, что «самостоятельно проект вам не по плечу».

            «За совет «Подходит» — спасибо большое! :)»

            Не за что! Нужен честный ответ — обращайтесь!
              Anton
              29 мая 2017, 23:21
              -3
              Николай, фаллометрия — исконно мужской вид спорта, почему я и сказал, что нет смысла заниматься этим.
              Но для спокойствия подтверждаю: да, Вы был прав, что мне это не по плечу.

              Удачи, Николай. Все еще будет!

              Спасибо за честные советы! :))
                Волков Николай
                29 мая 2017, 23:23
                0
                Спасибо за честные минусы. И еще большее спасибо за не созданные левые аккаунты, чтобы минусы ставить.
                  Anton
                  29 мая 2017, 23:27
                  0
                  Кстати, я ни одного минуса никому здесь не поставил.
            Волков Николай
            29 мая 2017, 23:17
            0
            Да и «крайне не рационально не опираться на уже подобные, готовые проекты, у которых можно позаимствовать удобный функционал. „

            Прежде чем заимствовать стоит задуматься еще и о том, почему на данных проектах он был использован вообще… Иногда причиной будут “говнокодеры» иногда «извращенцы заказчики» иногда ведущему программисту «жена не дала»… В общем я к тому, что не надо тупо заимствовать.
    Воеводский Михаил
    29 мая 2017, 00:59
    0
    Согласен с Николаем. Проект масштабен и таит в себе намного больше подводных камней, чем кажется на первый взгляд.

    Но самое главное — на MODX его абсолютно реально создать. Вопрос только в квалификации разработчика.
      Anton
      29 мая 2017, 01:33
      -5
      Да, на MODX это очень масштабно, согласен. И нужно быть квалифицированным разработчиком, чтобы такое сделать на MODX, согласен.
      А на почти на любой CRM-ERP это чуть-ли не в режиме wizard + правка или создание дополнительных модулей или полей (SugarCRM или Vtiger). Можно и Dollibar, или Yetiforce.

      Кстати, Михаил, я пару раз опубликовывал задания (заказы) здесь, так только ты один писал не адекватные цены за мелкие задачи. В то время как адекватные ребята получили задания и заработали денег + всегда платил премию за адекватность и качество работы (я не жадный). Поэтому что-то доверия нет к твоим словам.
        Воеводский Михаил
        29 мая 2017, 02:18
        +3
        Критерии адекватности у всех разные. Обсуждать эту тему не намерен.

        Что касается противостояния с CRM — если в них все делается так просто, почему же тогда смотришь в сторону MODX?
          Anton
          29 мая 2017, 02:24
          -3
          Михаил, мои критерии адекватности в среднем очень адекватные, которые выражаются в моей благодарности к людям, которые выполнили задания, и их благодарности за мое отношение к ним. Кстати, ребята с этого сайта, работают на том же движке, что и ты.

          По поводу «противостояния» — ничего такого с моей стороны нет. Есть MODX Evo, а есть MODX Revo — оба для создания сайтов, но оба для разных задач. Обрати внимание, что я спрашиваю совета в формате ИЛИ.

          Михаил, я понимаю, тебе работа нужна.
            Воеводский Михаил
            29 мая 2017, 02:37
            +1
            Значит, не совсем понял вопрос. Если в формате «ИЛИ», то рекомендую определиться с дальнейшими перспективами системы. На мой взгляд, при правильном проектировании у сайта на MODX возможностей по развитию больше, ибо он изначально будет заточен под твои задачи в отличие от стандартных CRM, которые должны «из коробки» соответствовать большинству видов деятельности. Но и объем работы для создания первой рабочей версии потребуется больше.

            Не переживай, на текущий момент я не ищу и не беру заказы. Это легко заметить по отсутствию моих комментариев в разделе объявлений о работе.
              Anton
              29 мая 2017, 02:49
              -1
              Очевидно, что у тебя гораздо больше опыта работы с MODX :)
                Воеводский Михаил
                29 мая 2017, 02:59
                0
                Это факт. Но топик не для обсуждения моего опыта )

                Когда примешь какое-то решение, озвучь его здесь. А еще интересно увидеть итоговый результат. Для сведения, как решена конкретная задача.
                  Anton
                  29 мая 2017, 14:45
                  -1
                  То что с MODX у тебя хороший опыт это видно, так как здесь было озвучено и использование CRM-систем, о которых никто ни слова не сказал.

                  Выбор в пользу VtigerCRM + покупка нескольких плагинов (один из них для генерации pdf-форм, form builder).
                  Антон
                  29 мая 2017, 03:44
                  0
                  А у вас есть опыт работы со сметами?
                  Там же куча всяких теров, феров, обновлений, индексы ежеквартально пересчитываются.
                  Уже из готовой сметы нужно вытаскивать разные срезы.

                  Задача-цель: уменьшить время на составление сметы.
                  Для этой цели может легче грандсмету поломать?
                    Anton
                    29 мая 2017, 14:48
                    -1
                    Антон, да, опыт есть. Но мой список заданий действительно почти конечный. Об изменениях индексов я тоже знаю.

                    Но мы живем в другой стране — у нас строительная документация ведется по-другому. Поэтому вот такие, с виду простые, требования.

                    Гранд-Смета для России, на русском языке.
                      Антон
                      29 мая 2017, 22:41
                      0
                      Делайте на минишопе.
                      Товар — вид работ.
                      Корзина — смета.
                      Зарлата — вес.
                      Материалы — товары + msSetInCart.
                      Прочие расценки — нужно немного допилить по образцу веса и цены.
                      Индексы — msOptionsPrice2.
                        Волков Николай
                        29 мая 2017, 22:45
                        +1
                        Особенно порадовало:

                        Зарлата — вес.
                        Не все в деньгах меряется :-)
                          Anton
                          29 мая 2017, 22:49
                          -1
                          Спасибо за совет.
                          У вас подход «смастерю (в хорошем смысле слова) что угодно из MODX + miniShop». Но после раздумий для меня очевидно, что лучше допиливать CRM, которые как раз ориентированны на решение подобных задач.

                          Можно пироги хорошо испечь в кастрюле, но лучше на противне.

                          Мы выбрали Vtiger CRM.
                            Волков Николай
                            29 мая 2017, 22:58
                            0
                            Кстати с этим согласен:

                            У вас подход «смастерю (в хорошем смысле слова) что угодно из MODX + miniShop».
                            Тоже думаю, что в данном случае miniShop использовать хоть и можно, но несколько более умеренно что ли…
                            Антон
                            29 мая 2017, 23:01
                            0
                            Можно пироги хорошо испечь в кастрюле, но лучше на противне.
                            Если проводить аналогии с вашими аналогиями, то вы собираетесь печь пирог на мяче для гольфа.

                            Мне еще интереснее стало посмотреть на результат и его себестоимость.
                            Anton
                            29 мая 2017, 23:07
                            0
                            То есть, по поводу выбора в пользу CRM я ошибся? Расскажите где, Антон! Я готов поучиться.

                            По поводу результата: система уже в разработке, завтра вечером первичная демонстрация заказчику, завтра же обсуждение запросов на закупку дополнительных модулей. Конечный продукт вряд ли кто увидит, так как делается это для нас, там наши данные. Так что сделать скрины с приватными данными я не могу и не имею права. Будет интересно — напиши к моменту дедлайна, примерно 31 августа, я тебе отвечу в какой фазе проект.

                            Удачи. Спасибо за совет :)
                            Антон
                            29 мая 2017, 23:19
                            +1
                            То есть, по поводу выбора в пользу CRM я ошибся? Расскажите где, Антон! Я готов поучиться.
                            CRM — Система управления взаимоотношениями с клиентами.
                            А смета — это 100% работа с БД и 0% взаимоотношениями с клиентами.

                            Если вы собираетесь развивать сметы до диаграмм ганта с автоматическими распределениями сроков с объемами по субподрядчикам, то наверно уже можно посмотреть в сторону CRM. В России это точно не имеет смысла делать, т.к. тут с ручным управлением ни один срок не выдерживается.
                            Anton
                            29 мая 2017, 23:23
                            -1
                            У меня ответ короткий: множество известных CRM поддерживают функционал ERP.
        Anton
        29 мая 2017, 23:26
        -2
        Администратор, потрите ветку, пожалуйста.
          Andrei D.
          30 мая 2017, 06:22
          1
          +6
          На самом деле это реализуется за несколько часов
          Вот примерная простейшая архитектура без излишеств:

          1. Своя кастомная таблица с полями [key][name][unit][max_manual][max_mech][max_mats], в которую можно все наименования работ с экселя закинуть
          2. Сверху формы добавления:
          <input class="search-input" type="text" name="task_key" placeholder="Номенклатура"/>
          <input class="search-input" type="text" name="task_name" placeholder="Наименование"/>
          3. Сразу под поиском:
          <div class="search-items"></div>
          <ul class="added-items"></ul>
          4. Создать страницу с пустым шаблоном для ajax запросов, например, website.com/app, в которую поместить сниппет обработки запросов, в самом сниппете на $action повесить case «search» «select» «create»
          5. Добавить скрипт, который на onchange .search-input ловит $(this).attr('name') + $(this).val() и с action «search» направляет всё на /app «search» и возвращает найденные строки, джойнит их и оборачивает, например, в
          <button class="selector-item" type="button" val="id_работы" style="width:100%;display:block">наименование работы</button>
          6. На клик по .selector-item направить $(this).val() на сниппет с case «select», возвращать отдельную работу, например, так:
          <li class="item" data-item="id_работы">
          <span>* Наименование *</span><span>* Номенклатура *</span>
          <span class="small">MAX ручной труд: *стоимость* / механический труд: *стоимость* / материалы: *стоимость*</span>
          <input type="text" placeholder="Фактическая стоимость" value="* в сниппете сложить общую стоимость *"/>
          <button type="button"><i class="fa fa-remove"></i></button>
          </li>
          далее брать стоимость работы по умолчанию и складывать со значением .total-sum
          7. Повесить скрипт на на onchange стоимости для каждой добавленной работы и пересчитывать со значением .total-sum
          8. После списка добавленных работ:
          <div class="form">
          <h3>Общая стоимость: <input type="hidden" class="total-sum" value="0"/><span class="total-sum">0</span></h3>
          <h4>Данные заказчика</h4>
          <label>ФИО заказчика</label><input type="text" name="order-name" placeholder="ФИО заказчика"/>
          <label>Телефон</label><input type="text" name="order-phone" placeholder="Телефон"/>
          адрес объекта и т.д.
          <button type="button" class="create-order">Сохранить</button>
          </div>
          9. По кнопке .create-order скрипт джойнит добавленные значения из .added-items, и вместе с данными формы отправляет на /app «create»
          10. Для «create» нужно создать вторую кастомную таблицу заказов с полями [order_id][works][customer_name][customer_phone][...][date_added], где «works» это список работ в json формате с idx ключом для возможности редактирования данных в будущем

          Далее подперчить скриптами, сделать страницу вывода заказов и вроде всё ок

          p.s. про единицу измерения не понял
          p.s.s. можно вообще без добавления $action case «select» и просто объединить html из пунктов 5 и 6 в каждом результате, а уже стилями ненужное скрывать. Тогда при добавлении просто клонировать объект и подставлять в .added-items, где скрыта кнопка добавления…
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            31