====== Склад ======
[[http://ubilling.net.ua/?module=fnpages&pid=ubpay|{{ :buy-100u.png?nolink&|}}]]
**Дозволяє:**
* Вести базовий складський облік
* Вести довідник категорій ТМЦ
* Вести довідник типів ТМЦ
* Вести довідник складських приміщень
* Вести довідник постачальників
* Проводити прибуткові операції
* Проводити видаткові операції
* Бронювати видані, але ще невідомо чи витрачені ТМЦ за працівниками.
* Контролювати залишки ТМЦ на складських приміщеннях
* Проводити пошук ТМЦ по складських приміщеннях
* Отримувати повідомлення про вичерпання резерву конкретних ТМЦ на складах
* Гнучко розподіляти права співробітників за функціями модуля
* Проводити інвентаризацію складських приміщень
====== Використання ======
Для того, щоб скористатися функціоналом модуля, можна скористатися ось такою ось іконкою на панелі завдань
{{:warehouse_0.png?|}}
Під час першого використання нашому погляду має постати приблизно така картина
{{:warehouse_1.png?800|}}
Яка всім своїм виглядом натякає на те, що слід заповнити деякі довідники
{{:warehouse_2.png?800|}}
Зокрема довідник категорій ТМЦ
{{:warehouse_3.png?800|}}
Довідник типів ТМЦ (Так, у всіх ваших ТМЦ мають бути категорія і тип. Якщо ви не можете їх визначити за видом або призначенням цієї ТМЦ - значить її у вас немає)
{{:warehouse_4.png?800|}}
Так, якось ось так
{{:warehouse_5.png?800|}}
Також ви можете додати довільну кількість складських приміщень, на яких ви зберігатимете ваші ТМЦ
{{:warehouse_6.png?800|}}
А також заповнити довідник постачальників, від яких ви будете отримувати ці самі ТМЦ
{{:warehouse_7.png?800|}}
При отриманні від постачальників ТМЦ, ви маєте проводити прибуткові операції, так, по одній на кожен з типів ТМЦ, що прибули.
{{:warehouse_8.png?800|}}
Надалі ви зможете проводити за цими ТМЦ уже видаткові операції
{{:warehouse_9.png?800|}}
Для цього потрібно вибрати складське приміщення
{{:warehouse_9_1.png?800|}}
і натиснути "витрата" для конкретного типу ТМЦ
{{:warehouse_9_2.png?800|}}
Усе виглядає доволі очевидно, чи не так? Добре б відповідально ставитися до "Призначення" видаткової операції. На поточний момент вони можуть бути такими:
{{:warehouse_9_3.png?|}}
Власне витрату ТМЦ можна зробити на незакрите завдання з "Планування робіт" **(це оптимальний і найкращий варіант!)**, повернути постачальнику з довідника "Постачальники", вашому працівникові - раптово з довідника "Працівники", також перемістити на інше складське приміщення, прив'язати до якогось наявного користувача за логіном, просто продати з рук, списати через непотрібність, або оформити як помилку, у разі, наприклад, якщо в прибутках була вказана більша кількість ТМЦ, що надійшли, ніж у реальності. Слід також зауважити, що переміщення між складами реалізовано як створення додаткової прибуткової операції, в якій постачальником фігуруватиме вихідне складське приміщення.
Ви завжди можете більш детально переглянути вже проведені прибуткові та видаткові операції за допомогою контрола "Показати".
{{:warehouse_10.png?800|}}
Також, за великого бажання, передбачена зручна генерація QR-кодів, щоб за видом ТМЦ можна було надалі визначити, звідки воно взялося, і що це взагалі таке.
{{:warehouse_11.png?800|}}
Якщо ви не впевнені, на якому складському приміщенні перебувають ТМЦ, які ви хочете пустити у витрату, оформити видатковою операцією, або просто цікавитеся, скільки чого у вас є загалом - ви можете скористатися звітом "Залишки на складах".
{{:warehouse_12.png?800|}}
І при великому бажанні, і наявності відповідних прав, прямо звідти оформити видаткову операцію
{{:warehouse_12_1.png?800|}}
Також там можна переглянути всю історію прибуткових і видаткових операцій у розрізі часу.
{{:warehouse_13.png?800|}}
Ви можете отримувати нотифікацію, про вичерпання бажаного резерву конкретних ТМЦ на лицьовій сторінці модуля
{{:warehouse_14.png?800|}}
Також можна фігурно розставити права адміністраторів, розділивши їхні обов'язки
{{:warehouse_15.png?|}}
Починаючи з Ubilling 0.7.1 з'явилася можливість бронювання ТМЦ на співробітників. Вона має пріоритет перед видатковими операціями і не дасть вам змоги видати одні й ті самі ТМЦ різним працівникам, або оформити їх як видаткову операцію, доки ці ТМЦ не знято з резерву на співробітника. Тобто якщо ви дали монтажникові Ігнатію зі складу "305м кручена пара" і невідомо, чи витратить він її всю, чи поверне назад - для цього логічно використовувати бронювання замість видаткової операції, поки він не поверне вам акт, де конкретно вказано, скільки і на яке завдання він її витратив. Далі цю кількість ви можете зняти з броні Ігнатія і пустити у витрати. За допомогою звіту "заброньовано" ви завжди можете дізнатися, які і скільки ТМЦ знаходиться на руках у ваших співробітників.
А як проводити інвентаризацію? Йдемо у "Видаткові операції", натискаємо на потрібне нам складське приміщення, бачимо які ТМЦ і в яких кількостях повинні залишатися на складі, за потреби натискаємо іконку з принтером, роздруковуємо, і йдемо з цим листочком на склад рахувати.
====== Встановлення та налаштування ======
Для використання цієї функціональності потрібне ввімкнення опції **WAREHOUSE_ENABLED** у конфігурації [[alteriniconf|alter.ini]]. Для заливки зображень до типів ТМЦ потрібне ввімкнене сховище зображень **PHOTOSTORAGE_ENABLED**. Опція **WAREHOUSE_TELEGRAM** призводить до ввімкнення нотифікації ваших співробітників про здійснені на них операції бронювання за допомогою Telegram.
PHOTOSTORAGE_ENABLED=1
WAREHOUSE_ENABLED=1
WAREHOUSE_TELEGRAM=1
WAREHOUSE_RECPRICE=0
Для нотифікації ваших співробітників про заброньовані на них ТМЦ наприкінці дня, ви можете використати якийсь такий виклик із crontab -e:
30 19 * * * /bin/ubapi "warehousetelegram"
Це може допомогти їм не "втрачати" бухти кабелю у себе в машинах.
====== Очищення складу ======
Що робити, коли ви тестували модуль складу і вам треба було його очистити перед реальним використанням? Видалити складські приміщення, категорії ТМЦ і все інше? Для цього можете використовувати наступний скрипт у консолі розробника:
$dataTables=array(
'wh_storages',
'wh_reshist',
'wh_reserve',
'wh_out',
'wh_itemtypes',
'wh_in',
'wh_contractors',
'wh_categories'
);
if (!empty($dataTables)) {
foreach ($dataTables as $io => $each) {
$query='TRUNCATE TABLE `'.$each.'`';
nr_query($query);
log_register('WAREHOUSE FLUSH '.$each);
}
log_register('WAREHOUSE DESTROYED');
}
Видалення окремих прибутково-видаткових операцій, або "просто видалити" складське приміщення, не можливе, тому що вони всі досить глибоко взаємопов'язані та своїм виглядом забезпечують загальну цілісність даних. Тому очищення може бути тільки повним і безповоротним.