Simple Accounting

Đề thi lập trình SQL Server

Simple Accounting

thời gian 75 phút

Cơ sở dữ liệu Accounting

Yêu cầu

Tính thuế suất thuế thu nhập doanh nghiệp (20%) - (2 điểm)

Thu nhập tính thuế = (Doanh thu - Chi phí được trừ) + các khoản thu nhập khác

Thuế TNDT phải nộp = (Thu nhập tính thuế - Phần trích lập quỹ KH&CN(nếu có)) * Thuế suất thuế TNDN

Ghi nhận bút toán tính thuế suất thuế thu nhập doanh nghiệp

Nợ TK 821

Có TK 333

Xác định kết quả kinh doanh (6 điểm)

(1) Kết chuyển doanh thu bán hàng thuần

Nợ TK 511 (Doanh thu bán hàng và cung cấp dịch vụ)

Có TK 911 (Xác định kết quả kinh doanh)

(2) Kết chuyển giá vốn sản phẩm, hàng hóa đã bán tiêu thụ trong kỳ

Nợ TK 911 (Xác định kết quả kinh doanh)

Có TK 632 (Giá vốn hàng bán)

(3) Kết chuyển chi phí bán hàng

Nợ TK 911 (Xác định kết quả kinh doanh)

Có TK 641 (Chi phí bán hàng)

(4) Kết chuyển chi phí quản lý doanh nghiệp

Nợ TK 911 (Xác định kết quả kinh doanh)

Có TK 642 (Chi phí quản lý doanh nghiệp)

(5) Kết chuyển chi phí thuế thu nhập doanh nghiệp

Nợ TK 911 (Xác định kết quả kinh doanh)

Có TK 821 (Chi phí thuế thu nhập doanh nghiệp)

(6) kết chuyển kết quả hoạt động kinh doanh trong kỳ

+ Kết chuyển lãi, số lợi nhuận

Nợ TK 911 (Xác định kết quả kinh doanh)

Có TK 421 (Lợi nhuận sau thuế chưa phân phối

+ Kết chuyển lỗ

Nợ TK 421 (Lợi nhuận sau thuế chưa phân phối)

Có TK 911 (Xác định kết quả kinh doanh)

Lập báo cáo kết quả hoạt động kinh doanh cho tháng 9/2019 (2 điểm)

Chỉ tiêuMã sốNăm nay
Doanh thu bán hàng và cung cấp dịch vụ0160.000.000
Các khoản giảm trừ doanh thu020
Doanh thu thuần về bán hàng và cung cấp dịch vụ1060.000.000
Giá vốn hàng bán1124.720.000
Lợi nhuận gộp về bán hàng và cung cấp dịch vụ2035.280.000
Chi phí bán hàng248.000.000
Chi phí quản lý doanh nghiệp2510.600.000
Lợi nhuận thuần từ hoạt động kinh doanh3016.680.000

Hướng dẫn

Bước 1:

Viết hàm tính thuế thu nhập doanh nghiệp

Thêm dữ liệu vào bảng Voucher và bảng DoubleEntry theo bút toán

Nợ TK 821

Có TK 333

Bước 2:

Viết thủ tục Kết chuyển doanh thu chí phí xác định kết quả hoạt động kinh doanh

Bước 3:

Thêm dữ liệu vào bảng IncomeStatement với mã số Period là 201908

Nộp bài

Lưu lại và đặt tên đầy đủ họ tên

Ví dụ NguyenPhanChiThanh.sql

Gửi bài qua email: refactortop@gmail.com

Script Accounting.sql

CREATE DATABASE Accounting;
GO
USE Accounting;
GO
CREATE TABLE Account
(
	AccountId INT NOT NULL PRIMARY KEY,
	AccountName NVARCHAR(64) NOT NULL,
	ParentId INT
)
GO
ALTER TABLE Account ADD CONSTRAINT FK_Account_ParentId FOREIGN KEY (ParentId) REFERENCES Account(AccountId);
GO
CREATE TABLE Voucher
(
	VoucherId INT NOT NULL PRIMARY KEY,
	VoucherDate DATE NOT NULL,
	Description NVARCHAR(128) NOT NULL
)
GO
--DROP TABLE DoubleEntry;
CREATE TABLE DoubleEntry
(
	VoucherId INT NOT NULL,
	AccountDebit INT NOT NULL,
	AccountCredit INT NOT NULL,
	Amount INT NOT NULL,
	AddedDate DATETIME NOT NULL DEFAULT GETDATE(),
	PRIMARY KEY	(VoucherId, AccountDebit, AccountCredit)
)
GO
CREATE TABLE Indicator
(
	IndicatorId INT NOT NULL PRIMARY KEY,
	IndicatorName NVARCHAR(64)
)
GO
CREATE TABLE IncomeStatement
(
	Period INT NOT NULL,
	IndicatorId INT NOT NULL,
	Amount INT NOT NULL
)
GO
ALTER TABLE IncomeStatement ADD CONSTRAINT FK_IncomeStatement_IndicatorId FOREIGN KEY (IndicatorId) REFERENCES Indicator(IndicatorId);
GO
INSERT INTO Indicator (IndicatorId, IndicatorName) VALUES
	(1, N'Doanh thu bán hàng và cung cấp dịch vụ'),
	(2, N'Các khoản giảm trừ doanh thu'),
	(10, N'Doanh thu thuần về bán hàng và cung cấp dịch vụ'),
	(11, N'Giá vốn hàng bán'),
	(20, N'Lợi nhuận gộp về bán hàng và cung cấp dịch vụ'),
	(24, N'Chi phí bán hàng'),
	(25, N'Chi phí quản lý doanh nghiệp'),
	(30, N'Lợi nhuận thuần từ hoạt động kinh doanh');


ALTER TABLE DoubleEntry ADD CONSTRAINT FK_DoubleEntry_VoucherId FOREIGN KEY (VoucherId) REFERENCES Voucher(VoucherId);
ALTER TABLE DoubleEntry ADD CONSTRAINT FK_DoubleEntry_AccountDebit FOREIGN KEY (AccountDebit) REFERENCES Account(AccountId);
ALTER TABLE DoubleEntry ADD CONSTRAINT FK_DoubleEntry_AccountCredit FOREIGN KEY (AccountCredit) REFERENCES Account(AccountId);
--DELETE FROM Account;
--DELETE FROM 
INSERT INTO Account (AccountId, AccountName, ParentId) VALUES
	(111, N'Tiền mặt', NULL),
	(1111, N'Tiền Việt Nam', 111),
	(112, N'Tiền gửi ngân hàng', NULL),
	(1121, N'Tiền Việt Nam', 112),
	(131, N'Phải thu của khách hàng', NULL),
	(133, N'Thuế GTGT được khấu trừ', NULL),
	(1331, N'Thuế GTGT được khấu trừ của hàng hóa, dịch vụ', 133),
	(138, N'Phải thu khác', NULL),
	(141, N'Tạm ứng', NULL),
	(151, N'Hàng mua đang đi đường', NULL),
	(152, N'Nguyên liệu, vật liệu',  NULL),
	(153, N'Công cụ, dụng cụ', NULL),
	(1531, N'Công cụ dụng cụ', 153),
	(154, N'Chi phí sản xuất, kinh doanh dở dang', NULL),
	(155, N'Thành phẩm', NULL),
	(1551, N'Thành phẩm nhập kho', 155),
	(1552, N'Thành phẩm bất động sản', 155),
	(156, N'Hàng hóa', NULL),
	(1561, N'Giá mua hàng hóa', 156),
	(1562, N'Chi phí thu mua hàng hóa', 156),
	(157, N'Hàng gửi đi bán', NULL),
	(211, N'Tài sản cố định hữu hình', NULL),
	(212, N'Tài sản cố định thuê tài chính', NULL),
	(213, N'Tài sản cố định vô hình', NULL),
	(214, N'Hao mòn tài sản cố định', NULL),
	(2141, N'Hao mòn TSCĐ hữu hình', 214),
	(241, N'Xây dựng cơ bản dở dang', NULL),
	(242, N'Chi phí trả trước', NULL),
	(244, N'Cầm cố, thế chấp, ký quỹ, ký cược', NULL),
	(331, N'Phải trả cho người bán', NULL),
	(333, N'Thuế và các khoản phải nộp Nhà nước', NULL),
	(3331, N'Thuế Giá trị gia tăng phải nộp', 333),
	(33311, N'Thuế GTGT đầu ra', 333),
	(3334, N'Thuế thu nhập doanh nghiệp', 333),
	(334, N'Phải trả người lao động', NULL),
	(3341, N'Phải trả công nhân viên', 334),
	(421, N'Lợi nhuận sau thuế chưa phân phối', NULL),
	(4211, N'Lợi nhuận sau thuế chưa phân phối năm trước', 421),
	(4212, N'Lợi nhuận sau thuế chưa phân phối năm nay', 421),
	(511, N'Doanh thu bán hàng và cung cấp dịch vụ', NULL),
	(5111, N'Doanh thu bán hàng hóa', 511),
	(5112, N'Doanh thu bán thành phẩm', 511),
	(5118, N'Doanh thu khác', 511),
	(515, N'Doanh thu hoạt động tài chính', NULL),
	(521, N'Các khoản giảm trừ doanh thu', NULL),
	(5211, N'Chiết khấu thương mại', 521),
	(5212, N'Giảm giá hàng bán', 521),
	(5213, N'Hàng bán trả lại', 521),
	(611, N'Mua hàng', NULL),
	(6111, N'Mua nguyên liệu, vật liệu', 611),
	(6112, N'Mua hàng hóa', 611),
	(621, N'Chi phí nguyên liệu, vật liệu trực tiếp', NULL),
	(622, N'Chi phí nhân công trực tiếp', NULL),
	(623, N'Chi phí sử dụng máy thi công', NULL),
	(627, N'Chi phí sản xuất chung', NULL),
	(631, N'Giá thành sản xuất', NULL),
	(632, N'Giá vốn hàng bán', NULL),
	(635, N'chi phí tài chính', NULL),
	(641, N'Chi phí bán hàng', NULL),
	(6411, N'Chi phí nhân viên', 641),
	(6412, N'Chi phí nguyên liệu, vật liệu', 641),
	(6413, N'Chi phí dụng cụ, đồ dùng', 641),
	(6414, N'Chi phí khấu hoa TSCĐ', 641),
	(6418, N'Chi phí bằng tiền khác', 641),
	(642, N'Chi phí quản lý doanh nghiệp', NULL),
	(6421, N'Chi phí nhân viên quản lý', 642),
	(6422, N'Chi phí vật liệu quản lý', 642),
	(6423, N'Chi phí đồ dùng văn phòng', 642),
	(6424, N'Chi phí khấu hao TSCĐ', 642),
	(6426, N'Chi phí dự phòng', 642),
	(6428, N'Chi phí bằng tiền khác', 642),
	(711, N'Thu nhập khác', NULL),
	(811, N'Chi phí khác', NULL),
	(821, N'Chi phí thuế thu nhập doanh nghiệp', NULL),
	(8211, N'Chi phí thuế TNDN hiện hành', 821),
	(8212, N'Chi phí thuế TNDN hoãn lại', 821),
	(911, N'Xác định kết quả kinh doanh', NULL);
GO
--1
INSERT INTO Voucher(VoucherId, VoucherDate, Description) VALUES
	(1, '2019/1/1', N'Nhập kho 500 sản phẩm từ quá trình sản xuất');
INSERT INTO DoubleEntry(VoucherId, AccountDebit, AccountCredit, Amount) VALUES
	(1, 1551, 154, 41200000);
GO
--2
INSERT INTO Voucher(VoucherId, VoucherDate, Description) VALUES
	(2, '2019/1/2', N'Xuất bán 300 sản phẩm, chưa thu tiền');
INSERT INTO DoubleEntry(VoucherId, AccountDebit, AccountCredit, Amount) VALUES
	(2, 632, 1551, 24720000),
	(2, 131, 5112, 60000000),
	(2, 131, 33311, 6000000);
GO
--3
INSERT INTO Voucher(VoucherId, VoucherDate, Description) VALUES
	(3, '2019/1/3', N'Xuất kho nguyên vật liệu cho bộ phận bán hàng và cho bộ phận quản lý doanh nghiệp');
INSERT INTO DoubleEntry(VoucherId, AccountDebit, AccountCredit, Amount) VALUES
	(3, 6412, 152, 1200000),
	(3, 6422, 152, 800000);
GO
--4
INSERT INTO Voucher(VoucherId, VoucherDate, Description) VALUES
	(4, '2019/1/4', N'Tiền lương phải trả trong tháng cho bận phận bán hàng và bộ phận quản lý doanh nghiệp');
INSERT INTO DoubleEntry(VoucherId, AccountDebit, AccountCredit, Amount) VALUES
	(4, 6411, 3341, 5000000),
	(4, 6421, 3341, 6000000);
GO
--5
INSERT INTO Voucher(VoucherId, VoucherDate, Description) VALUES
	(5, '2019/1/5', N'Chi phí khác bằng tiền mặt phục vụ bán hàng và quản lý doanh nghiệp');
INSERT INTO DoubleEntry(VoucherId, AccountDebit, AccountCredit, Amount) VALUES
	(5, 6418, 1111, 1200000),
	(5, 6428, 1111, 2400000),
	(5, 1331, 1111, 360000);
--6
INSERT INTO Voucher(VoucherId, VoucherDate, Description) VALUES
	(6, '2019/1/6', N'Khấu hao tài sản cố định phục vụ bộ phận bán hàng và quản lý doanh nghiệp');
INSERT INTO DoubleEntry(VoucherId, AccountDebit, AccountCredit, Amount) VALUES
	(6, 6414, 2141, 600000),
	(6, 6424, 2141, 1400000);