wiki:Design

Version 12 (modified by 163080, 11 days ago) ( diff )

--

Апликативен дизајн - Случаи на употреба и Сценарија за пристап до базата - SQL Погледи

Актери

  • Ненајавен корисник: Корисник кој што сѐ уште не е најавен во системот. Може да пристапи само до јавни информации (основни информации за компании и услуги).
  • Најавен корисник: Вработен кој се има најавено во системот, но има ограничени привилегии.

Случаи на употреба

  1. Најава на корисник: Корисникот внесува корисничко име и лозинка за пристап до системот.
  2. Креирање и уредување на фактура: Администратор или финансиски менаџер додава нова фактура или модифицира постоечка.
  3. Приказ на детали за одредена фактура: Детален приказ на содржината на фактурата (линиски ставки, износ, статус).

Најважни случаи на употреба

  1. Најава на корисник

Чекори:

  1. Корисникот се најавува во системот.
  2. Системот го проверува внесот:.
SELECT * FROM "User"
WHERE email = 'user@email.com'
  1. Регистрација на нов клинет/компанија

Чекори:

  1. Корисникот се најавува
  2. Од менито избира Customer List"
  3. Избира "New Customer"
  4. Ги пополнува полињата: Name, Email, Representative, Phone, Country, State, City, Street, Zip, VAT, Company Number
  5. Притиска "Create Customer"
INSERT INTO Client (
  client_id, 
  client_name,
  client_representative,
  client_email,
  client_street,
  client_city,
  client_state,
  client_zip,
  client_vat,
  client_logo_url,
  company_id,
  created_at,
  updated_at
) VALUES (
  1,
  'Acme Corporation',
  'John Doe',
  'john.doe@acme.com',
  '123 Main Street',
  'Skopje',
  'Skopje',
  '1000',
  'MK12345678',
  '/logos/acme.png',
  1,
  CURRENT_TIMESTAMP,
  CURRENT_TIMESTAMP
);

  1. Преглед на сите клиенти

Чекори:

  1. Корисникот избира "Customers" од менито
  2. Се прикажуваат сите клиенти
SELECT client_id, name, email, phone, city, country
FROM Client
ORDER BY name;
  1. Преглед на деталите за конкретен клиент

Чекори:

  1. Корисникот кликнува на одреден клиент
  2. Се прикажуваат детали
SELECT cl.*, COUNT(i.invoice_id) AS total_invoices, SUM(li.total) AS total_billed
FROM Client cl
LEFT JOIN Invoice i ON i.client_id = cl.client_id
LEFT JOIN LineItem li ON li.invoice_id = i.invoice_id
WHERE cl.client_id = 1
GROUP BY cl.client_id;
  1. Креирање на нова фактура

Чекори:

  1. Корисникот избира клиент.
  2. Внесува деталите за фактурата и линиски ставки.
  3. Системот креира фактура:
INSERT INTO Invoice ("from", "to", issue_date, due_date, notes, status, company_id, client_id, created_at, updated_at)
VALUES ('AgencyOS Inc.', 'Global Enterprises', CURRENT_DATE, CURRENT_DATE + INTERVAL '30 days', 'Project Alpha delivery', 'Pending', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);

Чекори за додавање ставки:

INSERT INTO "LineItem" (
  description, quantity, unit_price, currency, total, invoice_id
)
VALUES (
  'Software Development', 100, 50.00, 'USD', 5000.00, 1
);

Чекори за додавање уредување:

UPDATE "Invoice"
SET due_date = '2025-03-01', status = 'Paid'
WHERE invoice_id = 1;
  1. Преглед на фактури за клиент

Чекори:

  1. Корисникот кликнува на клиент.
  2. Системот ги прикажува сите фактури:
SELECT i.invoice_id, i.issue_date, i.due_date, i.status, SUM(li.total) AS total
FROM Invoice i
LEFT JOIN LineItem li ON li.invoice_id = i.invoice_id
WHERE i.client_id = 1
GROUP BY i.invoice_id;
  1. Преглед на детали за фактура

Чекори:

  1. Корисникот кликнува на фактура.
  2. Системот ја вчитува:
SELECT i.*, li.description, li.quantity, li.unit_price, li.total
FROM Invoice i
JOIN LineItem li ON li.invoice_id = i.invoice_id
WHERE i.invoice_id = 1;
Note: See TracWiki for help on using the wiki.