You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
create procedure AddOrder
@OrderID int,
@StudentID int,
@Paid moneyasbeginset nocount on;
-- Sprawdź, czy istnieje student o podanym StudentID
if not exists (select1from Students where StudentID = @StudentID)
begin
raiserror('Student o podanym ID nie istnieje.', 16, 1);
end
-- Wstaw nowe zamówienie do tabeli Ordersinsert into Orders (OrderID, StudentID, Paid, OrderDate)
values (@OrderID, @StudentID, @Paid, getdate());
print 'Zamówienie dodane pomyślnie.';
end;
Dodawanie szczegółów zamówienia
CREATE PROCEDURE [dbo].[AddOrderDetail]
@OrderDetailID int,
@OrderID int,
@PaidDate datetime =null,
@WebinarID int=null,
@CourseID int=null,
@StudiesID int=null,
@StudyMeetingID int=nullasbeginset nocount on;
if @PaidDate is nullbeginset @PaidDate = getdate();
end
-- Sprawdź, czy istnieje zamówienie o podanym OrderID
if not exists (select1from Orders where OrderID = @OrderID)
begin
raiserror('Zamówienie o podanym ID nie istnieje.', 16, 1);
end
-- Sprawdź, czy student z zamówienia o id OrderID jest już zapisany na webinar
IF @WebinarID IS NOT NULLAND EXISTS (
SELECT StudentID
FROM Orders
WHERE @OrderId =Orders.OrderIDAND StudentID IN (
SELECT DISTINCT StudentID
FROM WebinarDetails
WHEREWebinarDetails.WebinarID= @WebinarID
)
)
BEGIN
RAISERROR('Student o podanym ID jest już zapisany na ten webinar.', 16, 1);
END
-- Sprawdź, czy student z zamówienia o id OrderID jest już zapisany na kurs
ELSE IF @CourseID IS NOT NULLAND EXISTS (
SELECT StudentID
FROM Orders
WHERE @OrderId =Orders.OrderIDAND StudentID IN (
SELECT DISTINCT StudentID
FROM CourseDetails
WHERECourseDetails.CourseID= @CourseID
)
)
BEGIN
RAISERROR('Student o podanym ID jest już zapisany na ten kurs.', 16, 1);
END
-- Sprawdź, czy student z zamówienia o id OrderID jest już zapisany na studia
ELSE IF @StudiesID IS NOT NULLAND EXISTS (
SELECT StudentID
FROM Orders
WHERE @OrderId =Orders.OrderIDAND StudentID IN (
SELECT DISTINCT StudentID
FROM StudiesDetails
WHEREStudiesDetails.StudiesID= @StudiesID
)
)
BEGIN
RAISERROR('Student o podanym ID jest już zapisany na te studia.', 16, 1);
END
ELSE IF @StudiesID IS NOT NULLAND EXISTS (
SELECT StudentID
FROM Orders
WHERE @OrderId =Orders.OrderIDANDdbo.IsStudentInAnyStudyMeeting(StudentID, @StudiesID) =1
)
BEGIN
RAISERROR('Student o podanym ID jest zapisany na jedno ze spotkań tych studiów.', 16, 1);
END
ELSE IF @StudyMeetingID IS NOT NULLAND EXISTS (
SELECT StudentID
FROM Orders
WHERE @OrderId =Orders.OrderIDAND StudentID IN (
SELECT DISTINCT StudentID
FROM StudyMeetingDetails
WHEREStudyMeetingDetails.StudyMeetingID= @StudyMeetingID
)
)
BEGIN
RAISERROR('Student o podanym ID jest już zapisany na to spotkanie studyjne.', 16, 1);
END
ELSE
BEGIN-- Sprawdź, czy istnieje zamówienie o podanym OrderID
if not exists (select1from Orders where OrderID = @OrderID)
begin
raiserror('Zamówienie o podanym ID nie istnieje.', 16, 1);
end
else
begin-- dodaj do OrderDetailsinsert into OrderDetails (OrderDetailsID, OrderID, PaidDate)
values (@OrderDetailID, @OrderID, @PaidDate);
end
-- Sprawdź, czy istnieje webinar o podanym WebinarID
if @WebinarID is not nulland not exists (select1from Webinars where WebinarID = @WebinarID)
begin
raiserror('Webinar o podanym ID nie istnieje.', 16, 1);
end
-- jeżeli istnieje to dodajemy do OrderWebinars
else if @WebinarID is not nulland exists (select1from Webinars where WebinarID = @WebinarID)
begin-- dodaj webinar do OrderWebinarsinsert into OrderWebinars (OrderDetailsID, WebinarID)
values (@OrderDetailID, @WebinarID);
print 'Szczegół zamówienia dodany pomyślnie.';
return;
end
-- Sprawdź, czy istnieje kurs o podanym CourseID
if @CourseID is not nulland not exists (select1from Courses where CourseID = @CourseID)
begin
raiserror('Kurs o podanym ID nie istnieje.', 16, 1);
end
-- jeżeli istnieje to dodajemy do OrderCourse
else if @CourseID is not nulland exists (select1from Courses where CourseID = @CourseID)
begin-- dodaj kurs do OrderCoursesinsert into OrderCourse (OrderDetailsID, CourseID)
values (@OrderDetailID, @CourseID);
print 'Szczegół zamówienia dodany pomyślnie.';
return;
end
-- Sprawdź, czy istnieje studia o podanym StudiesID
if @StudiesID is not nulland not exists (select1from Studies where StudiesID = @StudiesID)
begin
raiserror('Studia o podanym ID nie istnieją.', 16, 1);
end
-- jeżeli istnieje to dodajemy do OrderStudies
else if @StudiesID is not nulland exists (select1from Studies where StudiesID = @StudiesID)
begin-- dodaj studia do OrderStudiesinsert into OrderStudies (OrderDetailsID, StudiesID)
values (@OrderDetailID, @StudiesID);
print 'Szczegół zamówienia dodany pomyślnie.';
return;
end
-- Sprawdź, czy istnieje spotkanie o podanym StudyMeetingID
if @StudyMeetingID is not nulland not exists (select1from StudyMeeting where StudyMeetingID = @StudyMeetingID)
begin
raiserror('Spotkanie o podanym ID nie istnieje.', 16, 1);
end
-- jeżeli istnieje to dodajemy do OrderStudyMeeting
else if @StudyMeetingID is not nulland exists (select1from StudyMeeting where StudyMeetingID = @StudyMeetingID)
begin-- dodaj spotkanie do OrderStudyMeetingsinsert into OrderStudyMeeting (OrderDetailsID, StudyMeetingID)
values (@OrderDetailID, @StudyMeetingID);
print 'Szczegół zamówienia dodany pomyślnie.';
return;
end
END
END
Dodawanie nowego kursu
CREATE PROCEDURE [dbo].[AddCourse]
@CourseID int,
@CourseName varchar(50),
@CourseDescription textnull,
@CoursePrice money,
@CourseCoordinatorID intASBEGIN-- Sprawdź, czy istnieje koordynator o podanym CourseCoordinatorID
IF NOT EXISTS (
SELECT1FROM Employees e
JOINdbo.EmployeeTypes et ONe.EmployeeType=et.EmployeeTypeIDWHERE EmployeeID = @CourseCoordinatorID
ANDet.EmployeeTypeNameLIKE'Course Coordinator'
)
BEGIN
RAISERROR('Koordynator o podanym ID nie istnieje.', 16, 1);
END
-- Wstaw nowy kurs do tabeli CoursesINSERT INTO Courses (CourseID, CourseName, CourseDescription, CoursePrice, CourseCoordinatorID)
VALUES (@CourseID, @CourseName, @CourseDescription, @CoursePrice, @CourseCoordinatorID);
PRINT 'Kurs dodany pomyślnie.';
END;
Dodawanie modułu do istniejącego kursu
CREATE PROCEDURE [dbo].[AddCourseModule]
@ModuleID int,
@CourseID int,
@TeacherID int,
@ModuleName varchar(50),
@Date datetime,
@DurationTime time,
@TranslatorID int=null,
@LanguageID int=nullASBEGINSET NOCOUNT ON;
-- Sprawdź, czy istnieje kurs o podanym CourseID
IF NOT EXISTS (SELECT1FROM Courses WHERE CourseID = @CourseID)
BEGIN
RAISEERROR('Kurs o podanym ID nie istnieje.', 16, 1);
END
-- Sprawdź, czy istnieje nauczyciel o podanym TeacherID
IF NOT EXISTS (
SELECT1FROM Employees e
WHERE EmployeeID = @TeacherID
)
BEGIN
RAISERROR('Nauczyciel o podanym ID nie istnieje.', 16, 1);
END
IF dbo.CheckTranslatorLanguage(@TranslatorID, @LanguageID) = CAST(0ASbit)
BEGIN
RAISERROR('Podano nieprawidłową kombinację tłumacza i języka.', 16, 1);
END
-- Wstaw nowy moduł do tabeli ModulesINSERT INTO CourseModules (ModuleID, CourseID, TeacherID, ModuleName, Date, DurationTime, TranslatorID, LanguageID)
VALUES (@ModuleID, @CourseID, @TeacherID, @ModuleName, @Date, @DurationTime, @TranslatorID, @LanguageID);
PRINT 'Moduł dodany pomyślnie.';
END;
Dodawanie studiów
CREATE PROCEDURE [dbo].[AddStudy]
@StudiesID int,
@StudiesName varchar(50),
@StudiesDescription textnull,
@StudiesEntryFreePrice money=NULL,
@StudiesCoordinator int,
@PriceIncrease real=NULLASBEGIN
IF NOT EXISTS (SELECT \*FROM Employees e
JOINdbo.EmployeeTypes et ONe.EmployeeType=et.EmployeeTypeIDWHERE EmployeeID = @StudiesCoordinator
ANDet.EmployeeTypeNameLIKE'Study Coordinator')
BEGIN
RAISERROR('Koordynator o podanym ID nie istnieje.', 16, 1);
END
IF @StudiesEntryFreePrice IS NULLBEGINSET @StudiesEntryFreePrice =1000
END
IF @PriceIncrease IS NULLBEGINSET @PriceIncrease =0.2
END
INSERT INTO Studies(StudiesID, StudiesName, StudiesDescription, StudiesEntryFeePrice, StudiesCoordinator, PriceIncrease)
VALUES (@StudiesID, @StudiesName, @StudiesDescription, @StudiesEntryFreePrice, @StudiesCoordinator, @PriceIncrease)
END
Dodawanie przedmiotów w ramach studiów
CREATE PROCEDURE [dbo].[AddSubject]
@SubjectID int,
@StudiesID int,
@SubjectCoordinatorID int,
@SubjectName varchar(50),
@SubjectDescription textnullASBEGIN
IF NOT EXISTS (SELECT \*FROM Studies s
WHEREs.StudiesID= @StudiesID)
BEGIN
RAISERROR('Nie znaleziono studiów', 16, 1);
END
IF NOT EXISTS (SELECT*FROM Employees e
JOINdbo.EmployeeTypes et ONe.EmployeeType=et.EmployeeTypeIDWHERE EmployeeID = @SubjectCoordinatorID
ANDet.EmployeeTypeNameLIKE'Subject Coordinator')
BEGIN
RAISERROR('Koordynator o podanym ID nie istnieje.', 16, 1);
END
INSERT INTO Subject(SubjectID, StudiesID, CoordinatorID, SubjectName, SubjectDescription)
VALUES (@SubjectID, @StudiesID, @SubjectCoordinatorID, @SubjectName, @SubjectDescription)
END
Dodawanie spotkań do przedmiotów
CREATE PROCEDURE [dbo].[AddStudyMeeting]
@StudyMeetingID int,
@SubjectID int,
@TeacherID int,
@MeetingName varchar(50),
@MeetingPrice money=NULL,
@Date datetime,
@DurationTime time(0) =NULL,
@TranslatorID int=NULL,
@LanguageID int=NULLASBEGIN
IF @MeetingPrice IS NULLBEGINSET @MeetingPrice =100
END
IF @DurationTime IS NULLBEGINSET @DurationTime ='01:30:00'
END
IF dbo.CheckTranslatorLanguage(@TranslatorID, @LanguageID) = CAST(0ASbit)
BEGIN
RAISERROR('Podano nieprawidłową kombinację tłumacza i języka.', 16, 1);
END
INSERT INTO StudyMeeting(StudyMeetingID, SubjectID, TeacherID, MeetingName, MeetingPrice, Date, DurationTime, TranslatorID, LanguageID)
VALUES (@StudyMeetingID, @SubjectID, @TeacherID, @MeetingName, @MeetingPrice, @Date, @DurationTime, @TranslatorID, @LanguageID)
END;
Dodawanie nowego stażu
CREATE PROCEDURE AddInternship
@InternshipID int,
@StudiesID int,
@StartDate datetime
ASBEGININSERT INTO Internship(InternshipID, StudiesID, StartDate)
VALUES (@InternshipID, @StudiesID, @StartDate)
END
Dodawanie studenta
CREATE PROCEDURE [dbo].[AddStudent]
@StudentID int, @FirstName varchar(30), @LastName varchar(30), @Address varchar(30),
@CityID int, @PostalCode varchar(10), @Phone varchar(15), @Email varchar(50)
ASBEGIN
IF NOT EXISTS (SELECT \*FROM PossibleCity WHERE CityID = @CityID)
BEGIN
RAISERROR('Podano nieprawidłowe miasto', 16, 1);
END
INSERT INTO Students (StudentID, FirstName, LastName, Address,
CityID, PostalCode, Phone, Email)
VALUES (@StudentID, @FirstName, @LastName, @Address,
@CityID, @PostalCode, @Phone, @Email);
END;