Автоматизированная система ведения бухгалтерского и оперативного учета

Анализ языков программирования и выбор среды разработки. Обзор этапов программирования, серверные процедуры, структурная база данных. Описание функциональной структуры программного комплекса. Описание методики тестирования, пользовательский интерфейс.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 21.11.2010
Размер файла 4,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

and gpm.date_=TempTab.temp_date_of_moving);

insert into TempTab(temp_code_operation,

temp_sale_punkt_code,

temp_contragent_code,

temp_payment_type,

temp_number,

temp_good_code,

temp_type_of_moving,

temp_date_of_moving,

temp_rur,

temp_usd)

select operation.code_operation,

operation.sale_punkt_code,

operation.contragent_code,

operation.payment_type,

good_pos.number,

good_pos.good_code,

5,

good_pos.date_of_saling,

get_rur(good_pos.total,good_pos.total_rur,operation.course),

good_pos.total

from dbo.good_pos

,dbo.operation

where(operation.sale_punkt_code=good_pos.sale_punkt_code)

and(operation.code_operation=good_pos.code_operation)

and(good_pos.saled=1)

and(good_pos.date_of_saling between begindate and enddate);

update TempTab set temp_type_of_moving=2 where temp_type_of_moving in(3,4);

select TempTab.temp_code_operation,

TempTab.temp_sale_punkt_code,

contragent.type_contragent_code,

TempTab.temp_contragent_code,

contragent.contragent_name,

TempTab.temp_payment_type,

goodfullnameforkassa.good_code,create procedure GoodInsertLevel(in ParentID integer,in ChildID integer)

begin atomic

declare maxlevel integer;

declare newparent integer;

if ParentID is not null then

if not exists(select* from Good where Good.Good_Code=ParentID) then

return

end if

select "Max"(HLevel) into maxlevel

from Good

where(Tag1=ParentID

or Tag2=ParentID

or Tag3=ParentID

or Tag4=ParentID

or Tag5=ParentID

or Tag6=ParentID);

if maxlevel=7 then

return

end if

end if

;

if ChildID is not null then

if not exists(select* from Good where Good.Good_Code=ChildID) then

return

end if

end if

-- Parent e Child i?eiaaea?ao e iaiie aaoea

if(ParentID is not null) and(ChildID is not null) then

if not exists(select* from Good as Good_p,Good as Good_c

where(Good_p.Good_Code=ParentID)

and(Good_c.Good_Code=ChildID)

and(Good_p.Hlevel+1=Good_c.Hlevel)

and((Good_p.Tag1=Good_c.Tag1)

or Good_p.Tag1 is null)) then

return

end if

end if

; -- Anee Parent = Null, oi Child - yeaiaio ia?aiai o?iaiy

if(ParentID is null) and(ChildID is not null) then

if not exists(select* from Good

where Good.Good_Code=ChildID

and Good.HLevel=1) then

return

end if

;

select "Max"(HLevel) into maxlevel

from Good

where(Tag1=ChildID

or Tag2=ChildID

or Tag3=ChildID

or Tag4=ChildID

or Tag5=ChildID

or Tag6=ChildID);

if maxlevel=7 then

return

end if

end if

;

-----------------------------------------

-- Anoaaea iiaie aa?oeiu - ?aaaiea Parent

insert into Good(Good_Name,Tag1) values('---',

ParentID);

-- Iieo?a? aa eia

select "Max"(Good.Good_Code) into newparent

from Good;

if ParentID is not null then

if ChildID is not null then

-- 1-e neo?ae

-- UPDATE

update Good set

HLevel=0,Tag1=newparent

where Good_Code=ChildID;

return

else

-- 2-e neo?ae

-- Iieo?a? o?iaaiu ?iaeoaey

select Good.HLevel into plevel

from Good where Good_Code=ParentID;

-- UPDATE

update Good set

HLevel=0,Tag1=newparent

where HLevel=plevel+1

and Good_Code<>newparent

and(Tag1=ParentID

or Tag2=ParentID

or Tag3=ParentID

or Tag4=ParentID

or Tag5=ParentID

or Tag6=ParentID);

return

end if

else

if ChildID is not null then

-- 3-e neo?ae

-- UPDATE

update Good set

HLevel=0,Tag1=newparent

where Good_Code=ChildID;

return

end if

end if

end;

Описание методики тестирования

Процесс отладки является неотъемлемой частью создания любой программы. При программировании могут быть допущены ошибки, которые принадлежат к одному из следующих типов:

1. Синтаксические ошибки. Они связаны с применением в программе конструкций, не отвечающих требованиям используемого языка.

2. Логические ошибки. Они связаны с несоответствием программы алгоритму решения поставленной задачи.

Тестирование системы проводилось на всем протяжении разработки системы.

На первых этапах, в процессе разработки таблиц, проверялось правильность назначения типов полей для соответствующих данных. После разработки структуры базы и интерфейсной части проводилась проверка на предмет ввода информации в соответствующие поля, соответствующих таблиц, а также, чтобы она правильно показывалась в нужных окнах интерфейса. Это проводилось путем сравнения информации в окнах интерфейса и непосредственно в полях таблиц.

Выполнение алгоритмов тестировалось путем ввода в местах ветвлений различных значений и проверялось, чтобы дальнейшее выполнение программы происходило по нужной ветви. При проверке корректности ввода информации проверялось, чтобы при не заполнении одного из полей «Номер документа», «Дата документа», «Наименование организации» запись данных в таблицу не производилась.

Пользовательский интерфейс

язык программирование база данные

Описание кнопок общего назначения

В разных окнах Автоматизированной системы имеются кнопки на панели инструментов (Toolbar), выполняющие одинаковые функции:

- Выводит список номенклатуры

- Выводит список контрагентов

- Добавление нового элемента

- Редактирование элемента

- Удаление элемента

- Сохранение изменений

- Обновить

- Удалить дерево

- Движение в верх по дереву

- Движение в вниз по дереву

- Пронумеровать.

Окно «Регистрации в системы»

Автоматизированная система работает на нескольких пунктах продаж (торговых точках), на каждом пункте есть пользователи, которые имеют права на доступ к программе, например администраторы, бухгалтера и т.д. Окно регистрации пользователя в системе.

Основное окно программы

После прохождения регистрации открывается главной окно программы. Окно содержит меню программы и является основным путеводителем по справочникам, документам и отчетам.

Описание основного меню программы
Система
· Сменить пароль - предназначен для смены пароля пользователем.
· Создать реплику - запускается процесс создания файлов реплики. Реплика- это изменения произошедшие в базе данных в течении какого-то промежутка времени. Создаются файлы объемом 30Kb.
· Переслать реплику - происходит вызов почтовой программы и формирования сообщения для отправки.
· Принять реплику - получатель файлов реплики производит операцию принятие реплики в базу т.е. обновляет данные базы.
· Архивирование - процесс резервного копирования базы. Производится перед каждым обновлением базы (принятием реплики).
· Выход - выход из системы.
НСИ
· Пункты продаж - магазины, салоны, дилерские отделы.
· Курсы валют пунктов продаж. Каждый пункт продажи имеет свой собственный курс валют.
· Прайс-листы пунктов продаж - для каждого пункта продаж формируется отдельный прайс-лист.
· Контрагенты
· Контрагенты курсы валют.
· Контрагенты прайс-листы. Если контрагент является дилером, то на него заводится отдельный прайс-лист
· Товары.
· Склад.
Задачи
· Продажи - производится оформление заказа, т.е. заполнение шапки и введения товарных позиций, а так же производится оплата заказа и просмотр движения заказа.
· Касса - производятся кассовые операции, такие как приход денежных средств, расход денежных средств и т. д.
· Карточка наличия товара - производятся операции по складу. приход, перемещение, списание и т. д.

Отчеты

· Заказ на завод - формируются отчеты по которым производится изготовление заказа для клиента. Формируются такие отчеты как «Заявка на завод» «Технологические карты» «Метки для продукции».

· Текущие - формируются отчеты по складам, приходы товаров, уходы товаров, перемещение товаров.

· Бухгалтерские - отчеты по движению денежных средств.

Окно смены пароля пользователем

После входа в систему пользователь имеет возможность поменять свой пароль. Для этого необходимо выбрать пункт меню «Сменить пароль» после чего высветится окно смены пароля.

Окно «Создать реплику»

В окне отображается информация о процессе формирования реплики. Реплика - эта та часть информации которая была изменена в базе в течении какого то промежутка времени . Измененные данные помещаются в отдельный файл объемом 30Kb, и таких файлов может быть несколько.

После того как реплика была сформирована, окно формирования реплики закроется автоматически.

С помощью пункта меню «Переслать реплику» происходит вызов почтовой программы, формирования сообщения и отсылка сообщения адресату. Перед приемом реплики в базу необходимо произвести архивирование базы, для этого выбирается пункт меню «Архивирование». При выборе этого пункта меню откроется окно с информацией о процессе архивирования базы.

Архивирование или создание резервной копии базы, необходима для того, что бы в случае ошибки при приеме реплики имелась возможность восстановить данные базы и попробовать принять реплику еще раз. Архивирование базы производится перед каждым приемом реплики. Операцию архивирования можно производить, даже если пользователи находятся в системе.

После того как получатель получает реплику по электронной почте, он копирует файлы в определенную папку, после чего выбирает пункт меню «Принять реплику» тем самым, запуская процесс принятия реплики. При успешном принятии реплики в окне показанном загорается кнопочка Shutdown которую необходимо нажать для завершения принятия реплики.

Окно «Пункты продаж»

В окне показанном высвечивается список с названиями пунктов продаж и типом пунктов продаж. Тип пункта продаж классифицирует пункты продажи на салоны, магазины, заводы и т.д.

Окно «Пункты продажи: Курсы Валют»
Каждый из пункт продажи имеет свой собственный внутренний курс валют. В окне «Пункты продаж: Курсы Валют» отражаются данные о курсах валют выбранного пункта продажи, а также биржевой курс валют. Также можно выбрать любой другой пункт продажи и посмотреть данные по этому пункту.

Окно просмотра и редактирования прайс листов пунктов продаж «Прайс-листы пунктов продаж».

В окне отображается информация о прайс-листах по выбранному пункту продаж.

Для заведения нового прайс-листа для пункта продажи, необходимо нажать кнопку «Новый». Если товар не конкретизирован. т.е. в поле «тип товара» и в поле «класс» стоит значение «Все», то прайс-лист сформируется по всем позициям справочника «Товары». По окончании заполнения табличной части, автоматически проставляется дата формирования прайс-листа, если щелкнуть на дате, то высветится список дат, когда формировались прайс-листы по выбранному пункту продаж, при выборе даты, данные окна обновятся и в окне высветится прайс-лист заведенный выбранной датой. Также в форме доступны кнопки «Размножить» при нажатии происходит копирование либо одной строки прайс-листа либо всего прай-листа, кнопка «Удалить» предназначена для удаления позиции из прайс-листа, кнопка «Печать» выводит прайс лист на печать, можно выбрать в какой валюте печатать прайс-лист. При нажатии на кнопку «Выход» будет выдан запрос на сохранение изменений и произойдет закрытие окна.

Окно просмотра и редактирования контрагентов «Контрагенты»

В окне отображается список контрагентов выбранного пункта продаж.

В этом окне можно посмотреть всю интересующую информацию о контрагенте, его название, адрес, телефоны, банковские реквизиты, а также тип контрагента кто он, агент, дилер, магазин, клиент и т.д. Так же из этого окна можно создавать новых контрагентов, нажав при этом на кнопку добавить на панели инструментов, отредактировать контрагента, щелкнув при этом дважды на интересующей записи, или нажать кнопочку редактировать на панели инструментов . При этом откроется окно создания и редактирования.

А также можно удалять запись , при удалении соответственно запрос на подтверждение на удаление.

сохранять изменения , обновлять данные нажимая соответствующие кнопки на панели инструментов (Toolbar).

Окно «Контрагенты: Курсы валют»

Также предусмотрена возможность вести торговлю с контрагентом по его собственному курсу валют.

Необходимо выбрать контрагента и нажать кнопку «Добавить», добавится строка с автоматически проставленной датой заведения курса и пустым полем «Курс» которое необходимо заполнить. В дальнейшем при заведении заказа на этого контрагента заказ будет пересчитываться по последней дате заведения курса. Соответственно кнопка «Удалить» предназначена для удаления строки курса валют.

Окно просмотра и редактирования прайс-листов контрагентов «Прайс-лит дилера».

В окне отображается прайс-лист выбранного контрагента.

Прайс-лист заводится только на контрагента, который является дилером, на конечного клиента прайс лист не заводится. Для того, что бы завести новый прайс-лист для контрагента необходимо, нажать кнопку «Новый». Если товар не конкретизирован т.е. в поле «тип товара» и в поле «класс» стоит значение «Все», то прайс-лист сформируется по всем позициям справочника «Товары». По окончанию заполнения табличной части автоматически проставляется дата формирования прайс-листа если щелкнуть на дате, то высветится список дат когда формировались прайс- листы по контрагенту, при выборе даты, данные окна обновятся и в окне высветится прайс-лист заведенный выбранной датой. Также в форме доступны кнопка «Печать» выводит прайс-лист на печать. При нажатии на кнопку «Выход» будет выдан запрос на сохранение изменений и произойдет закрытие окна.

Окно просмотра и редактирования справочника товаров

В окне отображается информация о товарных позициях.

В окне выводится общий список товаров для всех пунктов продаж, причем пункты продаж не могут вводить новые позиции товара и редактировать уже введенные. Это связанно с тем чтобы избежать повторений наименований товаров. Справочник пополняется на центральном складе во время прихода товара на склад. После чего изменения рассылаются репликой по пунктам продаж. Манипуляции с данными: - добавить, - редактировать, - удалить элемент, - сохранить изменения, - обновить, - удалить дерево, - движение вверх по дереву, - движение вниз по дереву, - пронумеровать.

Окно просмотра и редактирования справочника «Список складов»

В окне отображается информация о складах.

В окне выводится список действующих складов. Так как организация довольно большая, она имеет несколько складов например центральный склад, склад производства, склад готовой продукции и т.д. Список складов не ограничен.

Окно оформления заказов «Продажи»

Окно «Продажи» этом окне можно ввести новый заказ нажав на кнопку «Ввод», после чего откроется форма для ввода шапки заказа или нажать кнопку «Просмотр» и откроется окно выбора заказа Рис. 2.6.18. После того как найден заказ необходимо выделить заказ и нажить кнопку «Выбрать» после чего откроется форма показанная на Рис. 2.6.17 только заполненная.

Для удобства поиска заказов были сделаны кнопки «Поиск», производит поиск данных по значению, есть возможность создавать сложные выражения для поиска «Сортировка» производит сортировку данных по возрастанию или убыванию

Окно поиска

Окно сортировки

Из основного окна «Продажи» можно выпустить основные нормативные документы, такие как Счет, Счет-фактура, ТОГР-12, товарная накладная. А также, можно произвести оплату заказа, нажав на кнопку «Оплата». При нажатии откроется окно «Оплата».

После открытия окна появляется список оплат по выбранному в окне «Продажи» контрагенту. В форме доступны кнопки «Ввод», для ввода новой оплаты, «Редактирование» для редактирование ранее введенной оплаты, «Удалить» удаление позиции из оплат, а также кнопка печати приходного кассового ордера.

Окно «Движение по товарной позиции»

Кнопка «Движение» в окне «Продажи» показывает данные по движению товарных позиций в заказе, на какой стадии та или иная позиция находится. Информация отображается в окне показанном на рисунку.

Стадий может быть несколько (в производстве, отправлено в СЦ, отложено и т.д.). Стадию на которой находится товарная позиция можно поменять выделив нужную позицию и нажав на кнопку «Ввод». После чего откроется окно «Тип движения».

Кнопка «Позиции» в окне «Продажи» открывает окно для ввода новой товарной позиции.

В окне показаны товарные позиции по заказу и дана возможность добавлять новые товарные позиции, нажав при этом на кнопку «Добавить», при нажатии на кнопку откроется окно для ввода товарной позиции. Соответственно, кнопка «Редактировать» предназначена для редактирования товарной позиции, необходимо сначала выделить нужную позицию, а затем щелкнуть на кнопку редактировать, откроется окно показанноес заполненными данными. Также из этой формы показанной можно распечатать «Договор-заказ». Договор-заказ это документ, который не является платежным документом, он подробно показывает клиенту, из чего состоит его заказ.

Окно «Операции по кассе»

Из окна «Операции по кассе» производится учет денежных средств. Форма доступна только бухгалтерам и финансовым контролерам. Выполняются следующие операции: 1. Приход денежных средств от клиентов, если деньги приходят в счет погашения дебиторской задолжности, то соответственно деньги проводятся на основании заказа, если же это аванс, то деньги проводятся как авансовый платеж и деньги ложатся на баланс клиента. 2. Расходы денежных средств с указанием статьи расходов 3. Обмен - учет потери денежных средств при обмене (рубли-доллары или доллары-рубли). 4. Остаток денежных средств на конец дня.

Окно «Карточка наличия товара».

Так как программа также ведет и складской учет, то форма показанная предназначена именно для этого. Для удобства ведения все основные операции по складам были введены в одну форму. Из формы доступны кнопки: 1. «Приход» - приход товара на склад, при нажатии на кнопку открывается окно для ввода товарных позиций (в дальнейшем эта форма будет использоваться во всех остальных складских операциях). 2. «Перемещение» - перемещение товара с одного склада на другой. 3. «Перемещение брака» или списание брака производит списание брака со склада. 4. «Резервирование» резервирование товара на определенный промежуток времени, форма заполнения резервирования товара показана «Остатки» ввод остатков на складе. Применяется в основном в самом начале работы системы или для корректировки остатков на складе Рис. 2.6.29. Так же из формы можно оперативно получить такие отчеты как, «Остатки на складе», «Уход товара со склада», «Приход товара».

Заключение

В данной дипломной работе была разработана автоматизированная система ведения бухгалтерского и оперативного учета, предназначенная для оперативного ввода и хранения данных, а так же для получения соответствующей отчетности.

База данных представляет собой реляционную модель, в настоящее время реализованную на платформе PowerBuilder, которая включает структуры для хранения документации и справочников используемых при заполнении документов.

В ходе выполнения дипломной работы, были проведены следующие работы:

1. Проведен анализ языков программирования, по результатам которого был выбран язык программирования PowerBuilder.

2. Проведено более глубокое изучение предметной области.

3. В процессе анализа предметной области были определены сущности предметной области и связи между ними, для создания логической схемы базы данных.

4. Разработаны алгоритмы по формированию основных отчетов, например, «движение товаров по складу», «движение денежных средств» и т.д.

5. Согласно сформулированному заданию с использованием выбранных технологий (PowerBuilder, архитектура клиент/сервер), была реализована автоматизированная система ведения бухгалтерского и оперативного учета, которая в настоящее время проходит эксплуатацию в торговой организации.

Данная дипломная работа выполнена в соответствии с техническим заданием и в полном объеме.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.