Розробка програмного забезпечення формування податкових звітів
Аналіз формування податкової звітності. Розробка проекту інтерфейсу, інформаційної, статичної та динамічної моделей програмного забезпечення. Розрахунок економічної ефективності впровадження програмного забезпечення формування податкової звітності.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 26.04.2012 |
Размер файла | 3,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Таблиця 2.25 - Специфікація класу «Додаток К1/2 до рядків 04.10 та 07 декларації»
Складова |
Опис |
|
Ім'я |
Додаток К1/2 до рядків 04.10 та 07 декларації |
|
Призначення |
Призначений для роботи з податковим документом (редагування, формування, придатність до друку. |
|
Атрибути |
дата заповнення (дд.мм.рррр); керівник підприємства (ініціали та прізвище); головний бухгалтер (ініціали та прізвище); ідентифікаційний код за ЄДРПОУ; податковий період; код рядка; показники; первісна вартість; амортизаційні відрахування звітного періоду наростаючим підсумком; витрати, пов'язані з видобутком корисних копалин, крім нафтогазових свердловин; витрати, пов'язані з видобутком корисних копалин з нафтогазових свердловин; загальна сума амортизаційних відрахувань; сума на звітний рік (ліміт); загальна сума поліпшень; окремий об'єкт групи (родовище, кар'єр, шахта, свердловина); балансова вартість об'єкта групи на початок звітного року; обсяг фактично видобутих корисних копалин за звітний період; загальний розрахунковий обсяг родовища. |
Таблиця 2.26 - Специфікація класу «Додаток К2 до рядків 01.3 та 04.7»
Складова |
Опис |
|
Ім'я |
Додаток К2 до рядків 01.3 та 04.7 |
|
Призначення |
Призначений для роботи з податковим документом (редагування, формування, придатність до друку. |
|
Атрибути |
бухгалтер (ініціали та прізвище); ідентифікаційний код за ЄДРПОУ; податковий період; валові доходи від виконання довгострокових договорів, у тому числі: (сума доходу, нарахованого у зв'язку з виконанням довгострокових договорів; сума збільшення (+) зменшення (-) валових доходів у зв'язку з перерахунком податкових зобов'язань за завершеними довгостроковими договорами); сума фактичних витрат; сума авансів або передоплати, не віднесених для цілей оподаткування до складу валового доходу звітного періоду; кількість договорів, за якими провадився розрахунок доходів та витрат, у тому числі договори: (за якими продовжується їх виконання; виконання яких завершено). |
Таблиця 2.27 - Специфікація класу «Додаток К3 до рядка 01.4 декларації»
Складова |
Опис |
|
Ім'я |
Додаток К3 до рядка 01.4 декларації |
|
Призначення |
Призначений для роботи з податковим документом (редагування, формування, придатність до друку. |
|
Атрибути |
дата заповнення (дд.мм.рррр); керівник підприємства (ініціали та прізвище); головний бухгалтер (ініціали та прізвище); ідентифікаційний код за ЄДРПОУ; податковий період; прибуток (+) або збиток (-) від операцій з облігаціями (з векселями; з деривативами; з іпотечними сертифікатами; із сертифікатами фондів операцій з нерухомістю; з іншими цінними паперами), у тому числі: (доходи звітного періоду; витрати звітного періоду; від'ємний фінансовий результат попереднього звітного року). |
Таблиця 2.28 - Специфікація класу «Додаток К4 до рядків 02.3, 05.3 та 23 декларації»
Складова |
Опис |
|
Ім'я |
Додаток К4 до рядків 02.3, 05.3 та 23 декларації |
|
Призначення |
Призначений для роботи з податковим документом (редагування, формування, придатність до друку. |
|
Атрибути |
дата заповнення (дд.мм.рррр); місцезнаходження юридичної особи - сторони, з якою укладено договір; керівник підприємства (ініціали та прізвище); головний бухгалтер (ініціали та прізвище); ідентифікаційний код за ЄДРПОУ; податковий період; показники коригування; код рядка; сума; сума збільшення валових доходів; сума збільшення валових витрат; пеня, нарахована у зв'язку з коригуванням; назва сторони з якою укладено договір. |
Таблиця 2.29 - Специфікація класу «Додаток К5 до ряд. 10 декларації»
Складова |
Опис |
|
Ім'я |
Додаток К5 до ряд. 10 декларації |
|
Призначення |
Призначений для роботи з податковим документом (редагування, формування, придатність до друку. |
|
Атрибути |
дата заповнення (дд.мм.рррр); керівник підприємства (ініціали та прізвище); головний бухгалтер (ініціали та прізвище); ідентифікаційний код за ЄДРПОУ; податковий період; прибуток, звільнений від оподаткування; доходи від діяльності, що не оподатковується; амортизаційні відрахування. |
Таблиця 2.30 - Специфікація класу «Додаток Р1 до рядка 04.6 декларації»
Складова |
Опис |
|
Ім'я |
Додаток Р1 до рядка 04.6 декларації |
|
Призначення |
Призначений для роботи з податковим документом (редагування, формування, придатність до друку. |
|
Атрибути |
суми нарахованих податків, зборів (обов'язкових платежів), у тому числі: (акцизний збір; мито; державне мито; плата за землю (земельний податок, орендна плата за земельні ділянки державної і комунальної власності); рентні платежі; податок з власників транспортних засобів, самохідних машин і механізмів; збір у вигляді цільової надбавки до діючого тарифу на електричну та теплову енергію; збір у вигляді цільової надбавки до затвердженого тарифу на природний газ для споживачів усіх форм власності; збір за спеціальне використання природних ресурсів; збір за забруднення навколишнього природного середовища; збір за використання радіочастотного ресурсу України; збір на обов'язкове державне пенсійне страхування з вартості продажу нерухомого майна; збір на обов'язкове державне пенсійне страхування з операцій купівлі-продажу іноземної валюти; збір на обов'язкове державне пенсійне страхування з вартості продажу ювелірних виробів; збір на обов'язкове державне пенсійне страхування з вартості продажу легкових автомобілів; податок з реклами; комунальний податок; ринковий збір; збір за право використання місцевої символіки; збір за право проведення кіно і телезйомок; збір за проведення місцевого аукціону, конкурсного розпродажу і лотерей; збір за видачу дозволу на розміщення об'єктів торгівлі та сфери послуг; дата заповнення (дд.мм.рррр); керівник підприємства (ініціали та прізвище); головний бухгалтер (ініціали та прізвище). |
Таблиця 2.31 - Специфікація класу «Додаток Р2 до рядка 04.8 декларації»
Складова |
Опис |
|
Ім'я |
Додаток Р2 до рядка 04.8 декларації |
|
Призначення |
Призначений для роботи з податковим документом (редагування, формування, придатність до друку. |
|
Атрибути |
дата заповнення (дд.мм.рррр); керівник підприємства (ініціали та прізвище); головний бухгалтер (ініціали та прізвище); ідентифікаційний код за ЄДРПОУ; податковий період; витрати на добровільне перерахування коштів; сума коштів, перерахованих підприємствами всеукраїнських об'єднань осіб, які постраждали внаслідок Чорнобильської катастрофи; суми витрат, пов'язаних з безоплатним наданням вугілля; суми коштів (вартість майна), добровільно перерахованих (переданих) організаціям роботодавців та їх об'єднанням; оподатковуваний прибуток попереднього звітного року; фонд оплати праці платника податку в розрахунку за звітний рік; сума збільшення валових витрат; сума перерахованих коштів та/або вартість переданих товарів; суми коштів перераховані юридичним особам; сума коштів та/або вартість майна, добровільно перерахована (передана) з метою охорони культурної спадщини. |
2.2.2 Розробка динамічної моделі програмного забезпечення формування податкової звітності
Для моделювання динаміки системи можна скористатися діаграмами одного типу, а потім перетворити їх до іншого типу без втрати інформації [2,3]. Це дозволить краще зрозуміти аспекти динаміки системи. Для цього скористаємося засобами Rational Rose та побудуємо діаграми взаємодій.
Діаграми взаємодій - це загальна назва діаграм послідовностей та кооперацій. Будуючи діаграму послідовності можна легко перетворити її на діаграму кооперацій без втрати інформації.
На діаграмах послідовностей основна увага приділяється часовим упорядкуванням подій. На них відображають об'єкти та прийняті і передані ними повідомлення.
Діаграми кооперацій загострюють увагу на структурній організації об'єктів, які приймають чи відправляють повідомлення. На діаграмах кооперацій показують об'єкти, зв'язки між ними та повідомлення, які вони відправляють чи отримують.
Динамічну модель представимо коопераціями, які являються реалізаціями варіантів використання і відповідають діаграмам взаємодій.
Отже проаналізуємо динаміку систему з точки зору часових подій та структурної організації.
При побудові діаграм взаємодій для варіантів використання «Завантаження збереженого документа (перегляд)», «Створення документа», були враховані деякі аспекти щодо відкриття додатків податкових документів (див. рисунок 2.13 - 2.16).
Діаграми взаємодій представлені на рисунках 2.13 - 2.34.
Рисунок 2.13 - Діаграма послідовності ПЗ формування податкових звітів для варіанту використання «Завантаження збереженого документа (перегляд)» (динаміка системи без урахування відкриття додатків)
Рисунок 2.14 - Діаграма кооперації ПЗ формування податкових звітів для варіанту використання «Завантаження збереженого документа (перегляд)» (динаміка системи без урахування відкриття додатків)
Рисунок 2.15 - Діаграма послідовності ПЗ формування податкових звітів для варіанту використання «Завантаження збереженого документа (перегляд)» (динаміка системи з урахуванням відкриття додатків)
Рисунок 2.16 - Діаграма кооперації ПЗ формування податкових звітів для варіанту використання «Завантаження збереженого документа (перегляд)» (динаміка системи з урахуванням відкриття додатків)
Рисунок 2.17 - Діаграма послідовності ПЗ формування податкових звітів для варіанту використання «Перевірка структури документа»
Рисунок 2.18 - Діаграма кооперації ПЗ формування податкових звітів для варіанту використання «Перевірка структури документа»
Рисунок 2.19 - Діаграма послідовності ПЗ формування податкових звітів для варіанту використання «Створення документа» (динаміка системи з урахуванням відкриття додатків)
Рисунок 2.20 - Діаграма кооперації ПЗ формування податкових звітів для варіанту використання «Створення документа» (динаміка системи з урахуванням відкриття додатків)
Рисунок 2.21 - Діаграма послідовності ПЗ формування податкових звітів для варіанту використання «Створення документа» (динаміка системи без урахування відкриття додатків)
Рисунок 2.22 - Діаграма послідовності ПЗ формування податкових звітів для варіанту використання «Створення документа» (динаміка системи без урахування відкриття додатків)
Рисунок 2.23 - Діаграма послідовності ПЗ формування податкових звітів для варіанту використання «Перегляд довідника контрагентів»
Рисунок 2.24 - Діаграма кооперації ПЗ формування податкових звітів для варіанту використання «Перегляд довідника контрагентів»
Рисунок 2.25 - Діаграма послідовності ПЗ формування податкових звітів для варіанту використання «Перегляд довідника працюючих»
Рисунок 2.26 - Діаграма кооперації ПЗ формування податкових звітів для варіанту використання «Перегляд довідника працюючих»
Рисунок 2.27 - Діаграма послідовності ПЗ формування податкових звітів для варіанту використання «Перегляд довідника ДПІ»
Рисунок 2.28 - Діаграма кооперації ПЗ формування податкових звітів для варіанту використання «Перегляд довідника ДПІ»
Рисунок 2.29 - Діаграма послідовності ПЗ формування податкових звітів для варіанту використання «Налаштування (реєстрація платника податку (підприємства))»
Рисунок 2.30 - Діаграма кооперації ПЗ формування податкових звітів для варіанту використання «Налаштування (реєстрація платника податку (підприємства))»
Рисунок 2.31 - Діаграма послідовності ПЗ формування податкових звітів для варіанту використання «Правила заповнення документів»
Рисунок 2.32 - Діаграма кооперації ПЗ формування податкових звітів для варіанту використання «Правила заповнення документів»
Рисунок 2.33 - Діаграма послідовності ПЗ формування податкових звітів для варіанту використання «Збереження документа»
Рисунок 2.34 - Діаграма кооперації ПЗ формування податкових звітів для варіанту використання «Збереження документа»
2.2.3 Розробка логічної моделі структури даних програмного забезпечення формування податкової звітності
Логічна модель даних описує поняття ПЗ, їх взаємозв'язки, а також обмеження на дані, накладені ПЗ. Логічна модель даних є начальним прототипом майбутньої БД. Вона будується в термінах інформаційних одиниць, але без прив'язки до конкретної СУБД.
На рисунку 2.35 наведена логічна модель структур даних ПЗ формування податкової звітності (атрибути та типи податкових документів див. в таблиці 2).
2.3 Робочий проект
2.3.1 Розробка діаграми компонентів програмного забезпечення формування податкової звітності
Для моделювання статичного вигляду системи с точки зору реалізації використаємо діаграму компонентів [2,3]. За допомогою циєї діаграми змоделюємо фізичні сутності (бібліотеки, таблиці, файли, документи), а також встановимо зв'язок між цими сутностями.
Також, при представлені фізичних аспектів ПЗ, спробуємо досягти наступних цілей:
- візуалізувати загальну структуру вихідного коду програмного забезпечення;
- специфікувати виконуваний варіант програмного забезпечення;
- представити фізичну схему баз даних.
2.3.2 Реалізація основних класів програмного забезпечення формування податкової звітності
Реалізація інтерфейсу
public class ПЗформуванняподатковоїзвітностіView extends FrameView {
public ПЗформуванняподатковоїзвітностіView(SingleFrameApplication app) {
super(app);
initComponents();
ResourceMap resourceMap = getResourceMap();
int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
messageTimer = new Timer(messageTimeout, new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusMessageLabel.setText("");
}
});
messageTimer.setRepeats(false);
int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate");
for (int i = 0; i < busyIcons.length; i++) {
busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
}
busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {
public void actionPerformed(ActionEvent e) {
busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
}
});
idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);
TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {
String propertyName = evt.getPropertyName();
if ("started".equals(propertyName)) {
if (!busyIconTimer.isRunning()) {
statusAnimationLabel.setIcon(busyIcons[0]);
busyIconIndex = 0;
busyIconTimer.start();
}
progressBar.setVisible(true);
progressBar.setIndeterminate(true);
}
else if ("done".equals(propertyName)) {
busyIconTimer.stop();
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);
progressBar.setValue(0);
}
else if ("message".equals(propertyName)) {
String text = (String)(evt.getNewValue());
statusMessageLabel.setText((text == null) ? "" : text);
messageTimer.restart();
}
else if ("progress".equals(propertyName)) {
int value = (Integer)(evt.getNewValue());
progressBar.setVisible(true);
progressBar.setIndeterminate(false);
progressBar.setValue(value);
}
}
});
}
private final Icon idleIcon;
private final Timer messageTimer;
private final Timer busyIconTimer;
private final Icon idleIcon;
private final Icon[] busyIcons = new Icon[15];
private int busyIconIndex = 0;
private JDialog aboutBox;
}
//Контекстне меню інтерфейсу користувача
fileMenu.text = Документ
helpMenu.text = Допомога
saveMenuItem2.text=Зберегти
saveAllMenuItem3.text=Зберегти всі документи
closeMenuItem4.text=Закрити
closeAllMenuItem5.text=Закрити всі документи
drykMenuItem6.text=Друк
exitMenuItem.text=Вихід
aboutMenuItem.text=Про програму
kontrolMenu1.text=Контроль
kamerPerevirMenuItem2.text=Камеральна перевірка
perevirStryktMenuItem1.text=Перевірка структури
dovidnukuMenu2.text=Довідники
prasivnukuMenuItem4.text=Довідник працюючих
kontragentuMenuItem5.text=Довідник контрагентів
pravulaMenuItem6.text=Правила заповнення документу
nalastyvannjMenu3.text=Налаштування
parametruMenuItem7.text=Персональні параметри
regumuMenuItem8.text=Основні режими
dopomigniDaniMenuItem9.text=Допоміжні дані
openMenuItem1.text=Відкрити
inspekciiMenuItem3.text=Довідник інспекцій
newMenu.text=Новий
jMenu1.text=Прибуток
jMenu2.text=ПДВ та акцизний збір
jMenu3.text=Податкова накладна
jMenu4.text=Місцеві платежі
jMenuItem1.text=Декларація з податку на прибуток підприємства
jMenuItem2.text=Додаток К1/1 до рядків 01.2, 01.5, 04.2, 04.10, 04.12 та 07 декларації
jMenuItem3.text=Додаток К1/2 до рядків 04.10 та 07 декларації
jMenuItem4.text=Додаток К2 до рядків 01.3 та 04.7 декларації
jMenuItem5.text=Додаток К3 до рядка 01.4 декларації
jMenuItem6.text=Додаток К4 до рядків 02.3, 05.3 та 23 декларації
jMenuItem7.text=Додаток К5 до рядка 10 декларації
jMenuItem8.text=Додаток Р1 до рядка 04.6 декларації
jMenuItem9.text=Додаток Р2 до рядка 04.8 декларації
jMenuItem10.text=Податкова декларація з податку на додану вартість
jMenuItem11.text=Розрахунок коригування сум ПДВ до податкової декларації
jMenuItem12.text=Розшифровки подат. зобов'язань та подат. кредиту в розрізі контрагентів
jMenuItem13.text=Розрахунок акцизного збору
jMenuItem14.text=Розшифровка оборотів з продажу
jMenuItem15.text=Розшифровка оборотів, які не підлягають оподаткуванню
jMenuItem16.text=Звіт про нарахування податку з доходів фізичних осіб
jMenuItem17.text=Податкова накладна
jMenuItem18.text=Додаток до податкової накладної
jMenuItem19.text=Розрахунок коригування кількісних і вартісних показників до ПН
jMenuItem20.text=Реєстр отриманих та виданих податкових накладних
jMenuItem21.text=Розрахунок суми податку з власників транспортних засобів
jMenuItem22.text=Податковий розрахунок ринкового збору
jMenuItem23.text=Податковий розрахунок збору з власників собак
jMenuItem24.text=Податковий розрахунок податку з реклами
jMenuItem25.text=Податковий розрахунок збору за припаркування автотранспорту
jMenuItem26.text=Довідка про суми податку з власників транспортних засобів
jMenuItem12.actionCommand=Розшифровки подат. зобов'язань та подат. кредиту в розрізі контрагентів
saveMenuItem2.actionCommand=Зберегти
Реалізація створення податкового документу для режиму «Документ», підрежиму
«Новий»)
@Entity
@Table(name = "PNAKLADNA", catalog = "", schema = "APP")
@NamedQueries({
@NamedQuery(name = "Pnakladna.findAll", query = "SELECT p FROM Pnakladna p"),
@NamedQuery(name = "Pnakladna.findByOruginal", query = "SELECT p FROM Pnakladna p WHERE p.oruginal = :oruginal"),
@NamedQuery(name = "Pnakladna.findByKopij", query = "SELECT p FROM Pnakladna p WHERE p.kopij = :kopij"),
@NamedQuery(name = "Pnakladna.findByDatavupuskupnakl", query = "SELECT p FROM Pnakladna p WHERE p.datavupuskupnakl = :datavupuskupnakl"),
@NamedQuery(name = "Pnakladna.findByPodatnomer", query = "SELECT p FROM Pnakladna p WHERE p.podatnomer = :podatnomer"),
@NamedQuery(name = "Pnakladna.findByPlatnukpodatky", query = "SELECT p FROM Pnakladna p WHERE p.platnukpodatky = :platnukpodatky"),
@NamedQuery(name = "Pnakladna.findByMznahpokypza", query = "SELECT p FROM Pnakladna p WHERE p.mznahpokypza = :mznahpokypza"),
@NamedQuery(name = "Pnakladna.findByMznahprodavca", query = "SELECT p FROM Pnakladna p WHERE p.mznahprodavca = :mznahprodavca"),
@NamedQuery(name = "Pnakladna.findByNomsvidreestracii", query = "SELECT p FROM Pnakladna p WHERE p.nomsvidreestracii = :nomsvidreestracii"),
@NamedQuery(name = "Pnakladna.findByNomenklatpostov", query = "SELECT p FROM Pnakladna p WHERE p.nomenklatpostov = :nomenklatpostov"),
@NamedQuery(name = "Pnakladna.findByOdvumtov", query = "SELECT p FROM Pnakladna p WHERE p.odvumtov = :odvumtov"),
@NamedQuery(name = "Pnakladna.findByObsag", query = "SELECT p FROM Pnakladna p WHERE p.obsag = :obsag"),
@NamedQuery(name = "Pnakladna.findByCina", query = "SELECT p FROM Pnakladna p WHERE p.cina = :cina"),
@NamedQuery(name = "Pnakladna.findByObsagdostavku", query = "SELECT p FROM Pnakladna p WHERE p.obsagdostavku = :obsagdostavku"),
@NamedQuery(name = "Pnakladna.findByZagsymkoshtiv", query = "SELECT p FROM Pnakladna p WHERE p.zagsymkoshtiv = :zagsymkoshtiv"),
@NamedQuery(name = "Pnakladna.findByRealnamutter", query = "SELECT p FROM Pnakladna p WHERE p.realnamutter = :realnamutter"),
@NamedQuery(name = "Pnakladna.findByZvilnvidpdv", query = "SELECT p FROM Pnakladna p WHERE p.zvilnvidpdv = :zvilnvidpdv"),
@NamedQuery(name = "Pnakladna.findByPn", query = "SELECT p FROM Pnakladna p WHERE p.pn = :pn")})
public class Pnakladna implements Serializable {
@Transient
private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
private static final long serialVersionUID = 1L;
@Column(name = "ORUGINAL")
private String oruginal;
@Column(name = "KOPIJ")
private String kopij;
@Column(name = "DATAVUPUSKUPNAKL")
@Temporal(TemporalType.DATE)
private Date datavupuskupnakl;
@Column(name = "PODATNOMER")
private String podatnomer;
@Column(name = "PLATNUKPODATKY")
private String platnukpodatky;
@Column(name = "MZNAHPOKYPZA")
private String mznahpokypza;
@Column(name = "MZNAHPRODAVCA")
private String mznahprodavca;
@Column(name = "NOMSVIDREESTRACII")
private String nomsvidreestracii;
@Column(name = "NOMENKLATPOSTOV")
private String nomenklatpostov;
@Column(name = "ODVUMTOV")
private String odvumtov;
@Column(name = "OBSAG")
private String obsag;
@Column(name = "CINA")
private String cina;
@Column(name = "OBSAGDOSTAVKU")
private Character obsagdostavku;
@Column(name = "ZAGSYMKOSHTIV")
private String zagsymkoshtiv;
@Column(name = "REALNAMUTTER")
private String realnamutter;
@Column(name = "ZVILNVIDPDV")
private String zvilnvidpdv;
@Id
@Basic(optional = false)
@Column(name = "PN")
private Character pn;
@Override
public int hashCode() { int hash = 0;
hash += (pn != null ? pn.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof Pnakladna)) {
return false;
}
Pnakladna other = (Pnakladna) object;
if ((this.pn == null && other.pn != null) || (this.pn != null && !this.pn.equals(other.pn))) {
return false;
}
return true;
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
changeSupport.addPropertyChangeListener(listener);
}
public void removPropertyChangeListener(PropertyChangeListener listener) {
changeSupport.removePropertyChangeListener(listener);
}
}
//Реалізіція форми податкової накладної для внесення даних
public class PNakladnaView extends FrameView {
public PNakladnaView(SingleFrameApplication app) {
super(app);
initComponents();
ResourceMap resourceMap = getResourceMap();
int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
messageTimer = new Timer(messageTimeout, new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusMessageLabel.setText("");
}
});
//Відображення полів в формі для роботи з податковим документом
platnukpodatkyLabel.text= особа (платник податку) - продавець (покупець):
realnamutterLabel.text=0% (реалізація на митній території України):
realnamutter20Label.text=20%:
realnamutter0Label.text=0% (експорт):
zagsymkoshtivLabel.text= загальна сума коштів, що підлягає оплаті:
obsagdostavkuLabel.text= обсяги поставки (база оподаткування) без урахування ПДВ, що підлягають оподаткуванню за ставками:
cinaLabel.text= ціна поставки одиниці продукції без урахування ПДВ:
obsagLabel.text= кіл-ть (об'єм, обсяг):
odvumtovLabel.text= одиниця виміру товару:
mznahpokypzaLabel.text= місцезнаходження продавця (покупця):
mznahprodavcaLabel.text= місцезнаходження продавця (покупця):
kopijLabel.text=КОПІЯ(залишається у продавця):
oruginalLabel.text=ОРИГІНАЛ(видається покупцю):
datavupuskupnaklLabel.text= дата відвантаж. товарів, (послуг):
nadPokypNadbavkaLabel.text= надано покупцю (надбавка (+) знижка ( - )):
nadPokypZnugkaLabel.text= надано покупцю (надбавка (+) знижка ( - )):
bazaOpodatLabel.text= обсяги поставки (база оподаткування) без урахування ПДВ, що підлягають оподаткуванню за ставками:
tovarTranspVutrLabel.text= товарно-транспортні витрати:
zastavnaTaraLabel.text= зворотна (заставна) тара:
podatnadodvarLabel.text= податок на додану вартість:
zagsymmPDVLabel.text= загальна сума з ПДВ:
sym123Label.text= усього по розділах І + ІI + ІV:
sym1Label.text= усього по розділу І:
sym1Label2.text= усього по розділу ІІ:
query.query=SELECT p FROM Pnakladna p
// Привязка дії створення податкового документу до інтерфейсу користувача
@Action
public void showPNak() {
if (dokPNak == null) {
JFrame mainFrame =
ПЗформуванняподатковоїзвітностіApp.getApplication().getMainFrame();
dokPNak = new PodatNakladna(mainFrame);
dokPNakl.setLocationRelativeTo(mainFrame);
}
ПЗформуванняподатковоїзвітностіApp.getApplication().show(dokPNak);
}
// Реалізація діалогу між ПЗ формування податкової звітності та користувачем для заповнення основних полів документу
jDialog1 = new javax.swing.JDialog();
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(PZFormPodatZv.PZApp.class).getContext().getResourceMap(PZMReg.class);
jDialog1.setTitle(resourceMap.getString("Податки 2012"));
jDialog1.setName("Автозаповнити документ");
jDialog1.setName("Так");
jDialog1.setName("Ні");
jDialog1.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
jDialog1WindowActivated(evt);
}
public void windowClosed(java.awt.event.WindowEvent evt) {
jDialog1WindowClosed(evt);
}
public void windowOpened(java.awt.event.WindowEvent evt) {
jDialog1WindowOpened(evt);
}
});
// Реалізація діалогу між ПЗ формування податкової звітності та користувачем для відкриття додатків
jDialog1 = new javax.swing.JDialog();
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(PZFormPodatZv.PZApp.class).getContext().getResourceMap(PZMReg.class);
jDialog2.setTitle(resourceMap.getString("Податки 2012"));
jDialog2.setName("Відкрити додатки");
jDialog2.setName("Так");
jDialog2.setName("Ні");
jDialog2.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
jDialog1WindowActivated(evt);
}
public void windowClosed(java.awt.event.WindowEvent evt) {
jDialog1WindowClosed(evt);
}
public void windowOpened(java.awt.event.WindowEvent evt) {
jDialog1WindowOpened(evt);
}
});
Реалізація відкриття податкових документів для режиму «Документ», підрежиму «Відкрити»
private class SaveFileTask extends ПЗформуванняподатковоїзвітностіApp.SaveTextFileTask {
SaveFileTask(File file) {
super(ПЗформуванняподатковоїзвітностіView.this.getApplication(), file, textArea.getText());
}
@Override protected void succeeded(Void ignored) {
setFile(getFile());
setModified(false);
}
@Override protected void failed(Throwable e) {
logger.log(Level.WARNING, "couldn't save " + getFile(), e);
String msg = getResourceMap().getString("saveFailedMessage", getFile());
String title = getResourceMap().getString("saveFailedTitle");
int type = JOptionPane.ERROR_MESSAGE;
JOptionPane.showMessageDialog(getFrame(), msg, title, type);
}
}
//Привязка дії відкриття податкового документу до інтерфейсу користувача
@Action
public Task open() {
JFileChooser fc = createFileChooser("openFileChooser");
int option = fc.showOpenDialog(getFrame());
Task task = null;
if (JFileChooser.APPROVE_OPTION == option) {
task = new LoadFileTask(fc.getSelectedFile());
}
return task;
}
Реалізація зберігання поточного податкового документу для режиму «Документ», підрежиму «Зберегти»)
public Task saveAs() {
JFileChooser fc = createFileChooser("saveAsFileChooser");
int option = fc.showSaveDialog(getFrame());
Task task = null;
if (JFileChooser.APPROVE_OPTION == option) {
task = new SaveFileTask(fc.getSelectedFile());
}
return task;
}
//Привязка дії збереження поточного податкового документу до інтерфейсу користувача
@Action
public Task saveAs() {
JFileChooser fc = createFileChooser("saveAsFileChooser");
int option = fc.showSaveDialog(getFrame());
Task task = null;
if (JFileChooser.APPROVE_OPTION == option) {
task = new SaveFileTask(fc.getSelectedFile());
}
return task;
}
Реалізація зберігання всіх податкових документів для режиму «Документ», підрежиму «Зберегти всі документи»
private class SaveFileAll extends
ПЗформуванняподатковоїзвітностіApp.SaveTextFile {
SaveFileAll (File file) {
super(ПЗформуванняподатковоїзвітностіView.this.getApplication(),
file, textArea.getText());
}
//Привязка дії збереження всіх відкритих податкових документів до інтерфейсу користувача
@Action(enabledProperty = "modified")
public Task save() {
return new SaveFileTask(getFile());
}
Реалізація закриття податкового документу для режиму «Документ», підрежиму «Закрити»
@Action public void closeTask() {
dispose();
}
Реалізація закриття всіх відкритих податкових документів для режиму «Документ», підрежиму «Закрити всі документи»
private class СloseFileAll extends
ПЗформуванняподатковоїзвітностіApp.CloseTextFile { CloseFileAll (File file) {
super(ПЗформуванняподатковоїзвітностіView.this.getApplication(),
file, textArea.getText());
}
//Привязка дії закриття всіх податкових документів до інтерфейсу користувача
@Action(enabledProperty = "modified")
public Task close() {
return new CloseFileTask(getFile());
}
Реалізація друку податкових документів для режиму «Документ», підрежиму «Друк»
public class FopPrintServlet extends HttpServlet {
public static final String REQUEST_PARAM = "fo";
Logger log = null;
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException {
if (log == null) {
log = new ConsoleLogger(ConsoleLogger.LEVEL_WARN);
MessageHandler.setScreenLogger(log);
}
try {
String foParam = request.getParameter(FO_REQUEST_PARAM);
if (foParam != null) {
FileInputStream file = new FileInputStream(foParam);
renderFO(new InputSource(file), response);
}
else {
response.setContentType ("text/html");
PrintWriter out = response.getWriter();
out.println("<html><title>Error</title>\n"+ "<body><h1>FopServlet Error</h1><h3>No 'fo' "+ "request param given.</h3></body></html>");
}
} catch (ServletException ex) {
throw ex;
}
catch (Exception ex) {
throw new ServletException(ex);
}
}
public void renderFO(InputSource foFile,
HttpServletResponse response) throws ServletException {
try {
Driver driver = new Driver(foFile, null);
PrinterJob pj = PrinterJob.getPrinterJob();
PrintRenderer renderer = new PrintRenderer(pj);
driver.setLogger (log);
driver.setRenderer(renderer);
driver.run();
reportOK (response);
} catch (Exception ex) {
throw new ServletException(ex);
}
}
public void render(TInputHandler input,
HttpServletResponse response) throws ServletException {
try {
Driver driver = new Driver();
PrinterJob pj = PrinterJob.getPrinterJob();
PrintRenderer renderer = new PrintRenderer(pj);
pj.setCopies(1);
driver.setLogger (log);
driver.setRenderer (renderer);
driver.render (input.getParser(), input.getInputSource());
reportOK (response);
} catch (Exception ex) {
throw new ServletException(ex);
}
}
private void reportOK (HttpServletResponse response)
throws ServletException {
String sMsg =
"<html><title>Success</title>\n" + "<body><h1>FopPrintServlet: </h1>" + "<h3>The requested data was printed</h3></body></html>" ;
response.setContentType ("text/html");
response.setContentLength (sMsg.length());
try {
PrintWriter out = response.getWriter();
out.println (sMsg);
out.flush();
} catch (Exception ex) {
throw new ServletException(ex);
}
}
class PrintRenderer extends AWTRenderer {
private static final int EVEN_AND_ALL = 0;
private static final int EVEN = 1;
private static final int ODD = 2;
private int startNumber;
private int endNumber;
private int mode = EVEN_AND_ALL;
private int copies = 1;
private PrinterJob printerJob;
PrintRenderer(PrinterJob printerJob) {
super(null);
this.printerJob = printerJob;
startNumber = 0 ;
endNumber = -1;
printerJob.setPageable(this);
mode = EVEN_AND_ALL;
String str = System.getProperty("even");
if (str != null) {
try {
mode = Boolean.valueOf(str).booleanValue() ? EVEN : ODD;
} catch (Exception e) {}
}
}
public void stopRenderer(OutputStream outputStream)
throws IOException {
super.stopRenderer(outputStream);
if (endNumber == -1)
endNumber = getPageCount();
Vector numbers = getInvalidPageNumbers();
for (int i = numbers.size() - 1; i > -1; i--)
removePage(
Integer.parseInt((String) numbers.elementAt(i)));
try {
printerJob.print();
} catch (PrinterException e) {
e.printStackTrace();
throw new IOException("Unable to print: " +
e.getClass().getName() + ": " + e.getMessage());
}}
public void renderPage(Page page) {
pageWidth = (int)((float) page.getWidth() / 1000f);
pageHeight = (int)((float) page.getHeight() / 1000f);
super.renderPage(page);
}
private Vector getInvalidPageNumbers() {
Vector vec = new Vector();
int max = getPageCount();
boolean isValid;
for (int i = 0; i < max; i++) {
isValid = true;
if (i < startNumber || i > endNumber) {
isValid = false;
} else if (mode != EVEN_AND_ALL) {
if (mode == EVEN && ((i + 1) % 2 != 0))
isValid = false;
else if (mode == ODD && ((i + 1) % 2 != 1))
isValid = false;
}
if (!isValid)
vec.add(i + "");
} return vec;
}
}
}
public static void main(String args[]) {
try {
ByteArrayOutputStream fopout=new ByteArrayOutputStream();
FileOutputStream outfile=new FileOutputStream(args[2]);
Driver driver =new Driver();
driver.setOutputStream(fopout);
driver.setRenderer(Driver.RENDER_PDF);
Transformer transformer=TransformerFactory
.newInstance().newTransformer(new StreamSource(new File(args[1])));
transformer.transform(new StreamSource(new File(args[0])),
new Result(driver.getContentHandler()));
PdfReader reader = new PdfReader(fopout.toByteArray());
int n = reader.getNumberOfPages();
Document document = new Document(reader.getPageSizeWithRotation(1));
PdfWriter writer = PdfWriter.getInstance(document, outfile);
writer.setEncryption(PdfWriter.STRENGTH40BITS, "pdf", null,
PdfWriter.AllowCopy);
document.open();
PdfContentByte cb = writer.getDirectContent();
PdfImportedPage page;
int rotation;
int i = 0;
while (i < n) {
i++;
document.setPageSize(reader.getPageSizeWithRotation(i));
document.newPage();
page = writer.getImportedPage(reader, i);
rotation = reader.getPageRotation(i);
if (rotation == 90 || rotation == 270) {
cb.addTemplate(page, 0, -1f, 1f, 0, 0,
reader.getPageSizeWithRotation(i).height());
}
else {
cb.addTemplate(page, 1f, 0, 0, 1f, 0, 0);
}
System.out.println("Processed page " + i);
}
document.close();
}
catch( Exception e) {
e.printStackTrace();
}
}
Реалізація виходу з ПЗ для режиму «Документ», підрежиму «Вийти»
private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt){
System.exit(0);
}
Реалізація довідника працюючих для режиму «Довідники», підрежиму «Довідник працюючих»
@Entity
@Table(name = "PRACIVNUKU", catalog = "", schema = "APP")
@NamedQueries({
@NamedQuery(name = "Pracivnuku.findAll", query = "SELECT p FROM Pracivnuku p"),
@NamedQuery(name = "Pracivnuku.findByIdentuficaciinuikod", query = "SELECT p FROM Pracivnuku p WHERE p.identuficaciinuikod = :identuficaciinuikod"),
@NamedQuery(name = "Pracivnuku.findByNameplatnuka", query = "SELECT p FROM Pracivnuku p WHERE p.nameplatnuka = :nameplatnuka"),
@NamedQuery(name = "Pracivnuku.findByDataprnaroboty", query = "SELECT p FROM Pracivnuku p WHERE p.dataprnaroboty = :dataprnaroboty"),
@NamedQuery(name = "Pracivnuku.findByDatazvilnennj", query = "SELECT p FROM Pracivnuku p WHERE p.datazvilnennj = :datazvilnennj"),
@NamedQuery(name = "Pracivnuku.findById", query = "SELECT p FROM Pracivnuku p WHERE p.id = :id")})
public class Pracivnuku implements Serializable {
@Transient
private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
private static final long serialVersionUID = 1L;
@Column(name = "IDENTUFICACIINUIKOD")
private String identuficaciinuikod;
@Column(name = "NAMEPLATNUKA")
private String nameplatnuka;
@Column(name = "DATAPRNAROBOTY")
@Temporal(TemporalType.DATE)
private Date dataprnaroboty;
@Column(name = "DATAZVILNENNJ")
@Temporal(TemporalType.DATE)
private Date datazvilnennj;
@Id
@Basic(optional = false)
@Column(name = "ID")
//Підключення форми БД довідника працюючих до інтерфейсу користувача
@Action
public void showBDPracivnuku() {
if (aboutBDPRACIVNUKU == null) {
JFrame mainFrame =
ПЗформуванняподатковоїзвітностіApp.getApplication().getMainFrame();
aboutBDPRACIVNUKU = new Pracivnuku(mainFrame);
aboutBDPRACIVNUKU.setLocationRelativeTo(mainFrame);
} ПЗформуванняподатковоїзвітностіApp.getApplication().show(aboutBDPRACIVNUKU);
}
Реалізація правил заповнення податкових документів для режиму «Довідник», підрежиму «Правила заповнення документів»
<html><tr align="left"> <font size="3"> <U> <p>Рядок 03 ІД = рядок 03 додатка ІД </font></U><controls></p>
<html><tr align="left"> <font size="3"> <U> <p> Рядок 03 ІД = рядок 03 додатка ІД </font></U><controls></p>
<html><tr align="left"> <font size="3"> <U> <p> Рядок 01 = рядок 02 + рядок 03 </font></U><controls></p>
<html><tr align="left"> <font size="3"> <U> <p> Рядок 05.1 СВ = рядок 05.1 додатка СВ </font></U><controls></p>
<html><tr align="left"> Рядок 06.1 ЗВ = рядок 06.1 додатка ЗВ <font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 06.2 АВ = рядок 06.2 додатка АВ <font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 06.3 ВЗ = рядок 06.3 додатка ВЗ
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 06.5 ІВ = рядок 06.5 додатка ІВ
<font size="3"> <U> <p> Рядок 06 = сума рядків 06.1 - 06.6</font></U><controls></p>
<html><tr align="left"> Рядок 04 = рядок 05 + рядок 06<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 07 = рядок 01 - рядок 04<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 08 ТП = рядок 08 додатка ТП <font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 09 ПЗ = рядок 09 додатка ПЗ <font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 11 = рядок 07 - рядок 08 - рядок 09 (при позитивному значенні) * рядок 10/100<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 12 ТП = рядок 12 додатка ТП <font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 13 ЗП = рядок 13 додатка ЗП <font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 14 = рядок 11 + рядок 12 - рядок 13<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 16 = рядок 14 - рядок 15<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 17 ПН = рядок 20 графа 6 таблиця 1 додатка ПН <font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 19 = рядок 17 - рядок 18<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 20 АД = рядок 5 додатка АД <font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 22 = рядок 20 - рядок 21<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 25 = рядок 12 - рядок 21<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 27 = рядок 23 * 3%<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 30 = рядок 20 * 3%<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Рядок 32 = рядок 28 * 3%
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка ІД повинна бути заповнена
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Кількість додатків СБ повинна бути заповнена <font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка ЦП повинна бути заповнена <font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка СВ повинна бути заповнена <font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка АМ повинна бути заповнена <font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка АК повинна бути заповнена
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка ВО повинна бути заповнена
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка ЗВ повинна бути заповнена
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка АВ повинна бути заповнена
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка ВЗ повинна бути заповнена
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка ІВ повинна бути заповнена
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка ТП повинна бути заповнена
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка ПЗ повинна бути заповнена
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка ЗП повинна бути заповнена
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка ПН повинна бути заповнена
<font size="3"> <U> <p> </font></U><controls></p>
<html><tr align="left"> Позначка наявності додатка АД повинна бути заповнена
<font size="3"> <U> <p> </font></U><controls></p>
Реалізація персональних налаштувань для режиму «Налаштування», підрежиму «Персональні налаштування»
package persnal;
public class PersNalView extends FrameView {
public PersNalView(SingleFrameApplication app) {
super(app);
initComponents();
ResourceMap resourceMap = getResourceMap();
int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
messageTimer = new Timer(messageTimeout, new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusMessageLabel.setText("");
}
});
messageTimer.setRepeats(false);
int busyAnimationRate=resourceMap.getInteger("StatusBar.busyAnimationRate");
for (int i = 0; i < busyIcons.length; i++) {
busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
}
busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {
public void actionPerformed(ActionEvent e) {
busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
}
});
idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);
TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
taskMonitor.addPropertyChangeListener(newjava.beans.PropertyChangeListener(){
public void propertyChange(java.beans.PropertyChangeEvent evt) {
String propertyName = evt.getPropertyName();
if ("started".equals(propertyName)) {
if (!busyIconTimer.isRunning()) {
statusAnimationLabel.setIcon(busyIcons[0]);
busyIconIndex = 0;
busyIconTimer.start();
}
progressBar.setVisible(true);
progressBar.setIndeterminate(true);
} else if ("done".equals(propertyName)) {
busyIconTimer.stop();
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);
progressBar.setValue(0);
} else if ("message".equals(propertyName)) {
String text = (String)(evt.getNewValue());
statusMessageLabel.setText((text == null) ? "" : text);
messageTimer.restart();
} else if ("progress".equals(propertyName)) {
int value = (Integer)(evt.getNewValue());
progressBar.setVisible(true);
progressBar.setIndeterminate(false);
progressBar.setValue(value);
}
}
});
masterTable.getSelectionModel().addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
firePropertyChange("recordSelected",!isRecordSelected(),isRecordSelected());
}
});
bindingGroup.addBindingListener(new AbstractBindingListener() {
@Override
public void targetChanged(Binding binding, PropertyStateEvent event) {
// save action observes saveNeeded property
setSaveNeeded(true);
}
});
entityManager.getTransaction().begin();
}
public boolean isSaveNeeded() {
return saveNeeded;
}
private void setSaveNeeded(boolean saveNeeded) {
if (saveNeeded != this.saveNeeded) {
this.saveNeeded = saveNeeded;
firePropertyChange("saveNeeded", !saveNeeded, saveNeeded);
}
}
public boolean isRecordSelected() {
return masterTable.getSelectedRow() != -1;
}
@Action
public void newRecord() {
persnal.Reestrdani r = new persnal.Reestrdani();
entityManager.persist(r);
list.add(r);
int row = list.size()-1;
masterTable.setRowSelectionInterval(row, row);
masterTable.scrollRectToVisible(masterTable.getCellRect(row, 0, true));
setSaveNeeded(true);
}
@Action(enabledProperty = "recordSelected")
public void deleteRecord() {
int[] selected = masterTable.getSelectedRows();
List<persnal.Reestrdani> toRemove = new ArrayList<persnal.Reestrdani>(selected.length);
for (int idx=0; idx<selected.length; idx++) {
persnal.Reestrdani r = list.get(masterTable.convertRowIndexToModel(selected[idx]));
toRemove.add(r);
entityManager.remove(r);
}
list.removeAll(toRemove);
setSaveNeeded(true);
}
@Action(enabledProperty = "saveNeeded")
public Task save() {
return new SaveTask(getApplication());
}
private class SaveTask extends Task {
SaveTask(org.jdesktop.application.Application app) {
super(app);
}
@Override protected Void doInBackground() {
try {
entityManager.getTransaction().commit();
entityManager.getTransaction().begin();
} catch (RollbackException rex) {
rex.printStackTrace();
entityManager.getTransaction().begin();
List<persnal.Reestrdani> merged = new ArrayList<persnal.Reestrdani>(list.size());
for (persnal.Reestrdani r : list) {
merged.add(entityManager.merge(r));
}
list.clear();
list.addAll(merged);
}
return null;
}
@Override protected void finished() {
setSaveNeeded(false);
}
}
@Action
public Task refresh() {
return new RefreshTask(getApplication());
}
private class RefreshTask extends Task {
RefreshTask(org.jdesktop.application.Application app) {
super(app);
}
@SuppressWarnings("unchecked")
@Override protected Void doInBackground() {
try {
setProgress(0, 0, 4);
setMessage("Rolling back the current changes...");
setProgress(1, 0, 4);
entityManager.getTransaction().rollback();
Thread.sleep(1000L); // remove for real app
setProgress(2, 0, 4);
setMessage("Starting a new transaction...");
entityManager.getTransaction().begin();
Thread.sleep(500L); // remove for real app
setProgress(3, 0, 4);
setMessage("Fetching new data...");
java.util.Collection data = query.getResultList();
for (Object entity : data) {
entityManager.refresh(entity);
}
Thread.sleep(1300L); // remove for real app
setProgress(4, 0, 4);
Thread.sleep(150L); // remove for real app
list.clear();
list.addAll(data);
} catch(InterruptedException ignore) {
}
return null;
}
@Override protected void finished() {
setMessage("Done.");
setSaveNeeded(false);
}
}
private final Timer messageTimer;
private final Timer busyIconTimer;
private final Icon idleIcon;
private final Icon[] busyIcons = new Icon[15];
private int busyIconIndex = 0;
private JDialog aboutBox;
private boolean saveNeeded;
}
@Entity
@Table(name = "REESTRDANI", catalog = "", schema = "APP")
@NamedQueries({
@NamedQuery(name = "Reestrdani.findAll", query = "SELECT r FROM Reestrdani r"),
@NamedQuery(name = "Reestrdani.findByTupplatnuka", query = "SELECT r FROM Reestrdani r WHERE r.tupplatnuka = :tupplatnuka"),
@NamedQuery(name = "Reestrdani.findByKoddpi", query = "SELECT r FROM Reestrdani r WHERE r.koddpi = :koddpi"),
@NamedQuery(name = "Reestrdani.findByKodedrpoy", query = "SELECT r FROM Reestrdani r WHERE r.kodedrpoy = :kodedrpoy"),
@NamedQuery(name = "Reestrdani.findByNazvaplatnuka", query = "SELECT r FROM Reestrdani r WHERE r.nazvaplatnuka = :nazvaplatnuka"),
@NamedQuery(name = "Reestrdani.findByNomersvidoctvapdv", query = "SELECT r FROM Reestrdani r WHERE r.nomersvidoctvapdv = :nomersvidoctvapdv"),
@NamedQuery(name = "Reestrdani.findByIndpodnomer", query = "SELECT r FROM Reestrdani r WHERE r.indpodnomer = :indpodnomer"),
@NamedQuery(name = "Reestrdani.findByVuddijln", query = "SELECT r FROM Reestrdani r WHERE r.vuddijln = :vuddijln"),
@NamedQuery(name = "Reestrdani.findByPostind", query = "SELECT r FROM Reestrdani r WHERE r.postind = :postind"),
@NamedQuery(name = "Reestrdani.findByPostad", query = "SELECT r FROM Reestrdani r WHERE r.postad = :postad"),
@NamedQuery(name = "Reestrdani.findByTelefon", query = "SELECT r FROM Reestrdani r WHERE r.telefon = :telefon"),
@NamedQuery(name = "Reestrdani.findByFaks", query = "SELECT r FROM Reestrdani r WHERE r.faks = :faks"),
@NamedQuery(name = "Reestrdani.findByEmail", query = "SELECT r FROM Reestrdani r WHERE r.email = :email"),
@NamedQuery(name = "Reestrdani.findByDrfodurektora", query = "SELECT r FROM Reestrdani r WHERE r.drfodurektora = :drfodurektora"),
@NamedQuery(name = "Reestrdani.findByPibdurectora", query = "SELECT r FROM Reestrdani r WHERE r.pibdurectora = :pibdurectora"),
@NamedQuery(name = "Reestrdani.findByDrfobyhgaltera", query = "SELECT r FROM Reestrdani r WHERE r.drfobyhgaltera = :drfobyhgaltera"),
@NamedQuery(name = "Reestrdani.findByPibbyhgaltera", query = "SELECT r FROM Reestrdani r WHERE r.pibbyhgaltera = :pibbyhgaltera"),
@NamedQuery(name = "Reestrdani.findById", query = "SELECT r FROM Reestrdani r WHERE r.id = :id")})
public class Reestrdani implements Serializable {
Подобные документы
Етапи розробки проекту. Вимоги до апаратного і програмного забезпечення, до користувача. Специфікація та структура даних, які мають бути розміщеними в системі. Вигляд інтерфейсу системи програмного забезпечення. Розробка бази даних косметичного салону.
дипломная работа [1,8 M], добавлен 21.02.2015Аналіз сучасних методів та технологій проектування програмного забезпечення. Вибір цільової мобільної платформи. Розробка екранних форм, діаграми класів. Вимоги до програмного продукту. Аналіз небезпечних факторів у відділі роботи з фізичними особами.
дипломная работа [508,1 K], добавлен 02.12.2015Аналіз предметної області, опис проекту бази даних, моделей майбутнього програмного забезпечення гри для персонального комп'ютера "Міста". Функціональні можливості програмного забезпечення, які необхідно реалізувати. Інтерфейс програмного забезпечення.
курсовая работа [2,3 M], добавлен 02.06.2016Методи аналізу та засоби забезпечення надійності, що використовуються при проектуванні програмного забезпечення. Основні види складності. Якісні та кількісні критерії. Ієрархічна структура. Попередження помилок. Реалізація статичної і динамічної моделей.
реферат [128,2 K], добавлен 20.06.2015Аналіз задач, які вирішуються з використанням інформаційної системи. Вибір серверного вирішення, клієнтської частини, мережного вирішення, системного програмного забезпечення. Розробка підсистеми діагностики, керування, забезпечення безпеки даних.
курсовая работа [1,5 M], добавлен 22.04.2011Аналіз системи збору первинної інформації та розробка структури керуючої ЕОМ АСУ ТП. Розробка апаратного забезпечення інформаційних каналів, структури програмного забезпечення. Алгоритми системного програмного забезпечення. Опис програмних модулів.
дипломная работа [1,9 M], добавлен 19.08.2012Розробка програмного забезпечення для управління транспортними платформами на базі програмованого логічного контролера S7-300 в Simatic STEP-7. Аналіз програмного забезпечення, розрахунок показників його надійності. Опис алгоритму функціонування системи.
дипломная работа [2,1 M], добавлен 17.05.2012Аналіз технічного забезпечення, вибір інструментального програмного забезпечення та середовища розробки програм. Створення класів для реалізації необхідних функцій для роботи програмного засобу. Розробка інтерфейсу для користувача та лістинг програми.
курсовая работа [343,9 K], добавлен 24.08.2012Проблеми розробки компонентного програмного забезпечення автоматизованих систем управління. Сучасні компонентні технології обробки інформації. Аналіз вибраного середовища проектування програмного забезпечення: мова програмування PHP та Apache HTTP-сервер.
дипломная работа [2,8 M], добавлен 11.05.2012Аналіз методів емпіричної інженерії програмного забезпечення. Призначення та властивості програмного забезпечення та метрик проектів Openproj-1.4-src, TalendOpen Studio 3.2.1 та Рlazma-source 0.1.8, їх статистичний, кореляційний та регресійний аналіз.
курсовая работа [2,7 M], добавлен 12.12.2010