GS

Калькулятор офиса продаж

Golden Stone

Рабочее место менеджера: расчеты, заказ, документы и настройки.

Шаблоны комплектов

Быстрый ввод: Памятник

Быстрый ввод: Ограда

Балка ограды: материал не из м³, а как у других «погонных» деталей — USD за м погонный по длине X (вдоль ограды); сечение Y×Z только из списка в настройках. Прайс сечений (порядок Y/Z не важен): 50×80 и 80×50 — 14 USD/м; 100×50 и 50×100 — 18 USD/м.

Оформление памятника

Два подраздела: работы по камню и текст — отдельно от закупок по прайсам поставщиков.

Портрет и текст

Результат

Введите параметры и нажмите "Рассчитать".

Заказ (несколько деталей)

Пока нет позиций.

Воронка заказов

Пока нет сохраненных заказов.

Сохраненные заказы

Резервное копирование данных

Экспортируйте общий JSON для переноса на другой ПК и быстрого восстановления.

Локальные точки восстановления

Цены из Google

Торговая наценка

Сохраняется в браузере при изменении значения.

Расширенные настройки: коэффициенты, Google, ставки, сохранение…

Основные

Google Таблица — синхронизация цен

  1. Доступ к таблице. Вариант А: «Все, у кого есть ссылка» — читатель (тогда достаточно ID таблицы, без прокси). Вариант Б (важно для вас): доступ только конкретным пользователям — оставляйте так; тогда в калькуляторе обязательно укажите «Прокси CSV» — URL веб-приложения из google-apps-script/fetch-prices-csv/Code.gs (скрипт читает таблицу от имени аккаунта владельца скрипта, у которого есть доступ к таблице). В поле «ID таблицы» всё равно укажите ID — он передаётся в прокси как spreadsheetId.
  2. Откройте script.google.com → новый проект → вставьте код из google-apps-script/push-prices/Code.gs (запись цен). Задайте PUSH_SECRET (тот же пароль внесите в поле «Пароль» в калькуляторе) или оставьте пустым.
  3. Разверните push-скрипт как веб-приложение (выполнять от имени «Я», доступ «Все»), скопируйте URL вида …/macros/s/…/exec в поле «URL веб-приложения».
  4. Если кнопка выгрузки даёт Failed to fetch (CORS): в терминале node tools/google-apps-push-relay.mjs, в настройках укажите прокси http://127.0.0.1:8787, снова нажмите «Создать лист и выгрузить…».
  5. Лист с именем из поля «Имена листов» (первое имя, обычно «Цены») при выгрузке будет перезаписан колонками path, label, value. Дальше правьте только value и жмите «Загрузить цены из Google».

Чтобы создать лист в вашей таблице и записать туда все текущие цены из программы, один раз разверните веб-приложение Google Apps Script из файла google-apps-script/push-prices/Code.gs (инструкция внутри файла) и вставьте его URL ниже. Лист называется как первое имя в поле «Имена листов» (по умолчанию «Цены»): если такого листа нет — он создаётся; если есть — содержимое заменяется. В листе три колонки: path (технический путь), label (подпись по-русски), value — правьте только value и нажимайте «Загрузить цены». Старые листы с двумя колонками path+value тоже работают. Прямой режим без прокси (только ID таблицы) подходит, если для таблицы включено чтение по ссылке для всех; при доступе только по списку людей используйте прокси CSV (fetch-prices-csv/Code.gs). Выгрузка из браузера на script.google.com часто блокируется CORS — при http://localhost запустите прокси: node tools/google-apps-push-relay.mjs и укажите его адрес в поле «Локальный прокси выгрузки». При file:// используйте локальный сервер. Диагностика: вкладка «Консоль» в инструментах разработчика (F12) — сообщения с префиксом [GoogleSheets]; детальнее загрузка из таблицы: в консоли localStorage.setItem("DEBUG_GOOGLE_SHEETS","1") и обновить страницу.

Свои ID и URL не вставляйте в чат и не коммитьте в git: скопируйте google-sheets-dev-preset.example.jsongoogle-sheets-dev-preset.json, заполните значения, затем:

Ставки работ (USD)

Ставки по толщине (USD за м.п.)

Цены камня (USD за м³)

Балка ограды — материал (USD за м пог. по длине X)

Как стела/тумба по площади или цветник по погонным: камень за м³ для балки не умножается — берётся строка таблицы по сечению Y×Z (мм) и цена за метр длины X. Длина X любая; 80×50 и 50×80 — одно сечение. Пример тарифа: 50×80 / 80×50 — 14 USD/м; 100×50 / 50×100 — 18 USD/м. Нет сечения в таблице — ошибка при расчёте. В JSON: fenceBeamMaterialProfiles (в Google выгружаются отдельные ячейки yMm, zMm, usdPerM на строку профиля).

Базовые цены по типам деталей (USD за шт)

Расширенный режим (JSON)

Для редких настроек можно редактировать JSON напрямую.