====== Склад ====== [[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'); } Видалення окремих прибутково-видаткових операцій, або "просто видалити" складське приміщення, не можливе, тому що вони всі досить глибоко взаємопов'язані та своїм виглядом забезпечують загальну цілісність даних. Тому очищення може бути тільки повним і безповоротним.