Aplikacja służy do pomocy doradcom biznesowym Orange w paru kwestiach podzielonych na panele.
Z aplikacji korzystało około 40 osób, a sama aplikacja zastąpiła "analogowe" wydawanie kuponów przez menedżera na czacie na prośbę doradcy.
Napisane z wykorzystaniem Orange Boosted - forka Bootstrapa
Konsultant widzi na bieżąco ilość dostępnych kuponów (odświeżane co 10s) wraz z opisem. Po kliknięciu przycisku "Biorę!" konsultant pobiera kupon, a sam kupon zostaje oznaczony w bazie jako zużyty. Doradca ma możliwość zwrotu kuponu w przypadku gdy jednak go nie wykorzysta (klient zadłużony, rozmyślił się, skończyły się urządzenia na stanie). Zwrot nie dodaje kolejnego kuponu do bazy, tylko odznacza w bazie zużycie kuponu, dzięki czemu nie obaw, że ktoś doda do aplikacji nieprawidłowe kody.
W przypadku gdy doradca zgubi kupon, aplikacja pamięta ten ostatnio pobrany, a jeżeli pobierze ich więcej to administrator ma interaktywne logi, które dają możliwość łatwego przywrócenia kuponu do bazy.
Prosty modal mający na celu podać przybliżoną datę przeniesienia numeru, zawiera też szczególne przypadki, które należy uwzględnić przy przenoszeniu numeru.
Wyszukiwarka urządzeń w aplikacji z sieci korporacyjnej działa jak krew z nosa. Ta zakładka znacząco przyspiesza wyszukiwanie urządzeń, a względem standardowej wyszukiwarki z orange.pl dodaje 2 funkcje:
- W ogóle panel wyszukiwania, standardowo dostęp do niego mają wyłącznie konsultanci, a klienci muszą filtrować
- Stan magazynowy
Klienci często mają nieaktualne dane w systemach, a sami nie znają prawidłowego kodu pocztowego. Omnio pozwala wyszukać te kody pocztowe, które przepuści system korporacyjny.
Możliwość sprawdzenia możliwości technicznych na Internet pod wskazanym adresem.
Panel do zarządzania aplikacją, możliwość logowania przez konto Telegram. Panel pojawi się na pasku nawigacyjnym tylko gdy administrator jest już zalogowany. Jeżeli nie jest, to musi ręcznie wejść na /login.php
Możliwość zamieszczenia jakiejś drobnej notatki dla pracowników. 4 typy wiadomości oraz jej podgląd.
Dokładnie ten sam panel co w pierwszej zakładce.
Hurtowe dodawanie kuponów. Należy wybrać typ kuponu, po czym wkleić listę kuponów oddzielonych spacją lub znakiem nowej linii.
Wyświetlanie i usuwanie(WIP) kuponów z bazy.
Każda interakcja z bazą danych jest wysyłana na kanał Telegram:
Aplikacja wymaga Microsoft SQL Server z powodu wykorzystywania funkcji OUTPUT inserted.*
do pobierania kuponów rabatowych.
Zarówno PHP 7 jak i PHP 8 będą działać.
Typy kuponów na ten moment dodaje się ręcznie.
<?php
$con= // PDO sqlrv
$botKey= // klucz API do bota w formacie botxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
$adminArray=array( // ID użytkowników Telegrama, którzy powinni mieć uprawnienia administracyjne
"000000000", #Przykład 1
"111111111" #Przykład 2
);
$logChannelID='-xxxxxxxxx'; // ID kanału do logów
$botUsername='xxxxxxxxxxxx_bot'; // Nazwa użytkownika bota
$endpoint="https://example.com/"; // URL aplikacji
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CouponsDev](
[couponID] [int] IDENTITY(1,1) NOT NULL,
[couponType] [varchar](3) NOT NULL,
[coupon] [varchar](18) NOT NULL,
[isCouponUsed] [bit] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[CouponsDev] ADD CONSTRAINT [PK_CouponsDev] PRIMARY KEY CLUSTERED
(
[couponID] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
ALTER TABLE [dbo].[CouponsDev] ADD UNIQUE NONCLUSTERED
(
[coupon] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
ALTER TABLE [dbo].[CouponsDev] ADD CONSTRAINT [DF_Coupons_isCouponUsedDev] DEFAULT ((0)) FOR [isCouponUsed]
GO
ALTER TABLE [dbo].[CouponsDev] WITH CHECK ADD CONSTRAINT [FK_Coupons_CouponTypeDev] FOREIGN KEY([couponType])
REFERENCES [dbo].[CouponType] ([CouponType])
GO
ALTER TABLE [dbo].[CouponsDev] CHECK CONSTRAINT [FK_Coupons_CouponTypeDev]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CouponTypeDev](
[CouponType] [varchar](3) NOT NULL,
[CouponDesc] [varchar](300) NULL,
[isActive] [bit] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
ALTER TABLE [dbo].[CouponTypeDev] ADD CONSTRAINT [PK_CouponTypeDev] PRIMARY KEY CLUSTERED
(
[CouponType] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
ALTER TABLE [dbo].[CouponTypeDev] WITH CHECK ADD CONSTRAINT [FK_CouponType_CouponTypeDev] FOREIGN KEY([CouponType])
REFERENCES [dbo].[CouponTypeDev] ([CouponType])
GO
ALTER TABLE [dbo].[CouponTypeDev] CHECK CONSTRAINT [FK_CouponType_CouponTypeDev]
GO