| 108 | | |
| 109 | | == Функции |
| 110 | | |
| 111 | | Во базата на податоци има функции кои овозможуваат пресметка и проверка на важни информации без потреба од рачно пишување сложени SQL прашања. |
| 112 | | |
| 113 | | === Customer Subscription Summary |
| 114 | | |
| 115 | | Оваа функција враќа кратко резиме за претплатите на даден корисник. Со неа може брзо да се провери колку претплати има корисникот, колку од нив се активни и кои услуги ги користи. |
| 116 | | |
| 117 | | Функцијата би се користела од customer support и sales тимот за брз преглед на состојбата на корисникот. |
| 118 | | |
| 119 | | [attachment: CustomerSubscriptionSummary.sql] |
| 120 | | |
| 121 | | === Outstanding Customer Balance |
| 122 | | |
| 123 | | Оваа функција го пресметува вкупниот неплатен баланс за даден корисник. Ги зема предвид фактурите и плаќањата и враќа колку корисникот должи. |
| 124 | | |
| 125 | | Функцијата би се користела од billing тимот и customer support при проверка на неплатени фактури, суспензија на услуги или известување на корисникот. |
| 126 | | |
| 127 | | [attachment: OutstandingCustomerBalance.sql] |
| 128 | | |
| 129 | | === SIM Ready For Use Check |
| 130 | | |
| 131 | | Оваа функција проверува дали одредена SIM картичка е подготвена за користење. Се проверува дали SIM картичката има соодветен статус и дали веќе не е активна на друга претплата. |
| 132 | | |
| 133 | | Функцијата би се користела пред доделување SIM картичка на претплата, за да се спречи користење на веќе активна или невалидна SIM картичка. |
| 134 | | |
| 135 | | [attachment: SIMReadyForUseCheck.sql] |
| 136 | | |
| 137 | | === Total Monthly Recurring Charge |
| 138 | | |
| 139 | | Оваа функција ја пресметува вкупната месечна recurring наплата за даден корисник. Во пресметката се земаат активните претплати и активните recurring addons. |
| 140 | | |
| 141 | | Функцијата би се користела за billing пресметки, проценка на месечна сметка и проверка на приход по корисник. |
| 142 | | |
| 143 | | [attachment: TotalMonthlyRecurringCharge.sql] |
| 144 | | |
| 145 | | == Процедури |
| 146 | | |
| 147 | | Во базата на податоци има процедури кои автоматизираат важни операции во телекомуникацискиот систем. |
| 148 | | |
| 149 | | === Customer SIM Assignment |
| 150 | | |
| 151 | | Оваа процедура се користи за доделување SIM картичка на претплата и активирање на корисничка услуга. Процедурата го поврзува корисникот, сметката, тарифниот план, претплатата и SIM картичката. |
| 152 | | |
| 153 | | Се користи при активирање нова претплата или при издавање нова SIM картичка на корисник. |
| 154 | | |
| 155 | | [attachment: CustomerSIMAssignment.sql] |
| 156 | | |
| 157 | | === Change Plan Procedure |
| 158 | | |
| 159 | | Оваа процедура овозможува промена на тарифниот план на постоечка претплата. Се користи кога корисникот сака да премине на друг пакет, на пример од основен кон поголем пакет со повеќе интернет или минути. |
| 160 | | |
| 161 | | Процедурата би се користела од sales или customer support тимот. |
| 162 | | |
| 163 | | [attachment: ChangePlanProcedure.sql] |
| 164 | | |
| 165 | | === Support Ticket Creation |
| 166 | | |
| 167 | | Оваа процедура креира нов support тикет за корисникот. При креирањето се внесуваат корисник, сметка, претплата, доделен вработен, тип на тикет, subject, опис и priority. |
| 168 | | |
| 169 | | Се користи за стандардизирано отворање тикети во CRM системот. |
| 170 | | |
| 171 | | [attachment: SupportTicketCreation.sql] |
| 172 | | |
| 173 | | === Suspend Accounts For Invoice Overdue |
| 174 | | |
| 175 | | Оваа процедура ги обработува задоцнетите фактури. Ако фактурата не е платена по истекување на рокот и grace периодот, процедурата може да го означи account како suspended и да ги суспендира активните претплати поврзани со него. |
| 176 | | |
| 177 | | Се користи како batch процес од billing тимот за автоматска контрола на неплатени фактури. |
| 178 | | |
| 179 | | [attachment: SuspendAccountsForInvoiceOverdue.sql] |
| 180 | | |
| 181 | | == Тригери |
| 182 | | |
| 183 | | Во базата на податоци има тригери кои автоматски извршуваат бизнис правила при внесување или промена на податоци. |
| 184 | | |
| 185 | | === Account Balance Trigger |
| 186 | | |
| 187 | | Овој тригер автоматски го ажурира балансот на сметката кога се внесува или менува плаќање. Ако плаќањето е успешно, current balance на account се намалува. Ако статусот на плаќањето се промени, балансот се ажурира соодветно. |
| 188 | | |
| 189 | | Дополнително, тригерот го ажурира статусот на фактурата според тоа дали е целосно платена, делумно платена или задоцнета. |
| 190 | | |
| 191 | | [attachment: AccountBalanceTrigger.sql] |
| 192 | | |
| 193 | | === Automatically Close Ticket Trigger |
| 194 | | |
| 195 | | Овој тригер автоматски го пополнува полето closed_at кога CRM тикет ќе добие статус resolved или closed. Ако тикетот повторно се отвори, closed_at се брише. |
| 196 | | |
| 197 | | Се користи за автоматска евиденција на времето на затворање на тикети. |
| 198 | | |
| 199 | | [attachment: AutoCloseTicketTrigger.sql] |
| 200 | | |
| 201 | | === One Active Subscription For SIM |
| 202 | | |
| 203 | | Овој тригер спречува една SIM картичка да биде активна на повеќе претплати во исто време. Пред внесување нов запис во историјата на SIM картички, се проверува дали истата SIM картичка веќе има активна доделба без end_date. |
| 204 | | |
| 205 | | Се користи за зачувување на интегритетот на податоците и спречување конфликт при SIM assignment. |
| 206 | | |
| 207 | | [attachment: OneActiveSubscriptionForSIM.sql] |
| 208 | | |
| 209 | | === Prevent Already Paid Trigger |
| 210 | | |
| 211 | | Овој тригер спречува плаќање на фактура која веќе е целосно платена. Исто така спречува внесување плаќање кое е поголемо од преостанатиот износ за плаќање. |
| 212 | | |
| 213 | | Се користи за заштита од преплаќање и неконзистентни billing податоци. |
| 214 | | |
| 215 | | [attachment: PreventAlreadyPaidTrigger.sql] |
| 216 | | |
| 217 | | === Subscription Status Change Trigger |
| 218 | | |
| 219 | | Овој тригер автоматски внесува запис во subscription_status_history секогаш кога ќе се промени статусот на претплатата. Се зачувуваат стариот статус, новиот статус, времето на промена, вработениот и причината. |
| 220 | | |
| 221 | | Се користи за целосна историја на статуси на претплатите. |
| 222 | | |
| 223 | | [attachment: SubscriptionStatusChangeTrigger.sql] |