Диплом: Автоматизация приема платежей в базе конфигурации "1C: Предприятия 8.3" на примере ООО «Текстиль Трейд»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
109
Таблица № 2
Сфера деятельности участников на этапе стабилизации
Роль
Сфера ответственности
Менеджмент продукта
Ожидания заказчика.
Менеджмент
программного обеспечения
Управление функциональной спецификацией;
мониторинг проекта; доработка планов.
Разработка
Разработка программного кода и инфраструктуры;
документирование конфигураций.
Удовлетворение заказчика
Обучение; доработка плана обучения; тестирование
удобства эксплуатации (usability testing);
графический дизайн.
Тестирование
программного продукта
Функциональное тестирование; выявление
проблем; тестирование документации; доработка
плана тестирования.
Управление релизом
Чеклисты развертывания (rollout checklists);
доработка планов внедрения (включая пилотное
внедрение); чеклисты подготовки к внедрению (site
preparation checklists).
110
Таблица № 3
Зона ответственности на этапе разработки
Роль
Сфера ответственности
Менеджмент продукта
Исполнение коммуникационного плана;
планирование премьеры продукта.
Менеджмент
программного обеспечения
Мониторинг проекта; приоритезация ошибок.
Разработка
Устранение ошибок; оптимизация программного
кода.
Удовлетворение заказчика
Доработка эксплуатационных руководств; учебные
материалы.
Тестирование
программного продукта
Тестирование; сообщение об ошибках и их статусе;
тестирование конфигурации.
Управление релизом
Развертывание и поддержка пилотного внедрения;
планирование внедрения; обучение персонала
сопровождения.
111
Приложение 2. Программный код мобильного приложения
package com.kaloh.maba.textiletrade.dbhelpers;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
import android.text.TextUtils;
import com.kaloh.maba.textiletrade.database.InvoicesTable;
import com.kaloh.maba.textiletrade.database.TardisDatabaseHelper;
import java.util.Arrays;
import java.util.HashSet;
/*
Поставщик контента управляющий взаимодействием с БД
*/
public class TardisContentProvider extends ContentProvider {
private TardisDatabaseHelper database;
private static final int INVOICES = 10;
private static final int INVOICE_ID = 20;
112
private static final String AUTHORITY =
"com.kaloh.maba.textiletrade.contentprovider";
private static final String PATH_INVOICES = "invoices_list";
public static final Uri CONTENT_INVOICES_URI = Uri.parse("content://" +
AUTHORITY
+ "/" + PATH_INVOICES);
private static final UriMatcher sURIMatcher = new UriMatcher(
UriMatcher.NO_MATCH);
static {
sURIMatcher.addURI(AUTHORITY, PATH_INVOICES, INVOICES);
sURIMatcher.addURI(AUTHORITY, PATH_INVOICES + "/#", INVOICE_ID);
}
@Override
public boolean onCreate() {
database = new TardisDatabaseHelper(getContext());
return false;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
int uriType = sURIMatcher.match(uri);
113
switch (uriType){
case INVOICE_ID:
queryBuilder.appendWhere(InvoicesTable.COLUMN_ID + "=" +
uri.getLastPathSegment());
case INVOICES:
checkColumns(InvoicesTable.available,projection);
queryBuilder.setTables(InvoicesTable.TABLE_INVOICES);
break;
default:
throw new IllegalArgumentException("Unknown URI: " + uri);
}
SQLiteDatabase db = database.getWritableDatabase();
Cursor cursor = queryBuilder.query(db, projection, selection,
selectionArgs, null, null, sortOrder);
cursor.setNotificationUri(getContext().getContentResolver(), uri);
return cursor;
}
@Override
public String getType(Uri uri) {
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
114
int uriType = sURIMatcher.match(uri);
SQLiteDatabase sqlDB = database.getWritableDatabase();
long id = 0;
String path = "";
switch (uriType) {
case INVOICES:
id = sqlDB.insertWithOnConflict(InvoicesTable.TABLE_INVOICES, null,
values,SQLiteDatabase.CONFLICT_REPLACE);
path = PATH_INVOICES;
break;
default:
throw new IllegalArgumentException("Unknown URI: " + uri);
}
getContext().getContentResolver().notifyChange(uri, null);
return Uri.parse(path + "/" + id);
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
int uriType = sURIMatcher.match(uri);
SQLiteDatabase sqlDB = database.getWritableDatabase();
115
int rowsDeleted = 0;
String id = "";
switch (uriType) {
case INVOICES:
rowsDeleted = sqlDB.delete(InvoicesTable.TABLE_INVOICES, selection,
selectionArgs);
break;
case INVOICE_ID:
id = uri.getLastPathSegment();
if (TextUtils.isEmpty(selection)) {
rowsDeleted = sqlDB.delete(
InvoicesTable.TABLE_INVOICES,
InvoicesTable.COLUMN_ID + "=" + id,
null);
} else {
rowsDeleted = sqlDB.delete(
InvoicesTable.TABLE_INVOICES,
InvoicesTable.COLUMN_ID + "=" + id
+ " and " + selection,
selectionArgs);
}
break;
default:
throw new IllegalArgumentException("Unknown URI: " + uri);
}
getContext().getContentResolver().notifyChange(uri, null);
return rowsDeleted;
}
116
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
int uriType = sURIMatcher.match(uri);
SQLiteDatabase sqlDB = database.getWritableDatabase();
int rowsUpdated = 0;
String id = "";
switch (uriType) {
case INVOICES:
rowsUpdated = sqlDB.update(InvoicesTable.TABLE_INVOICES,
values,
selection,
selectionArgs);
break;
case INVOICE_ID:
id = uri.getLastPathSegment();
if (TextUtils.isEmpty(selection)) {
rowsUpdated = sqlDB.update(InvoicesTable.TABLE_INVOICES,
values,
InvoicesTable.COLUMN_ID + "=" + id,
null);
} else {
rowsUpdated = sqlDB.update(InvoicesTable.TABLE_INVOICES,
values,
117
InvoicesTable.COLUMN_ID + "=" + id
+ " and "
+ selection,
selectionArgs);
}
break;
default:
throw new IllegalArgumentException("Unknown URI: " + uri);
}
getContext().getContentResolver().notifyChange(uri, null);
return rowsUpdated;
}
private void checkColumns(String[] available, String[] projection) {
if (projection != null) {
HashSet<String> requestedColumns = new HashSet<String>(
Arrays.asList(projection));
HashSet<String> availableColumns = new HashSet<String>(
Arrays.asList(available));
if (!availableColumns.containsAll(requestedColumns)) {
throw new IllegalArgumentException(
"Unknown columns in projection");
}
}
}
}
118
Приложение 3 Программный код модуля 1С: Предприятие
Функция ОпределитьТипЗапроса(Запрос)
Тип = Запрос.Параметры["type"];
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЕСЛИ Тип РАВНО ПолучитьСписок Тогда
Результат = СформироватьСписокВысталвенныхСчетов(Запрос)
ДанныеМассив = Новый Массив();
Пока Результат.Следующий ()Цикл
Структура = Новый Структура ();
Структура.Вставить("invoiceNumber",Строка(Результат.НомерСчета));
Структура.Вставить("invoiceDate",Строка(Результат.Дата));
Структура.Вставить("invoiceDue",Строка(Результат.ОплатитьДо));
Структура.Вставить("sum",Срока(Результат.Сумма));
ДанныеМассив.Добавить(Структура);
КонецЦикла;
ЗаписатьJSON(ЗаписьJSON, ДанныеМассив);
СтрокаДляОтвета = ЗаписьJSON.Закрыть();

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)