Skip to content

Commit f507683

Browse files
authored
Merge pull request #67 from xcam/master
ReceiptAPI
2 parents 7b9c843 + 75b1a74 commit f507683

18 files changed

+480
-393
lines changed

app/build.gradle

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ android {
1919
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
2020
}
2121
}
22+
lintOptions {
23+
abortOnError false
24+
}
2225
}
2326

2427
dependencies {
@@ -32,17 +35,17 @@ repositories {
3235
}
3336

3437
task sourceJar(type: Jar) {
38+
classifier "sources"
3539
from android.sourceSets.main.java.srcDirs
36-
classifier "source"
3740
}
3841

3942
publishing {
4043
publications {
4144

42-
maven(MavenPublication) {
45+
mavenKotlin(MavenPublication) {
4346
groupId 'ru.evotor'
4447
artifactId "integration-library"
45-
version "1.0.59-dev"
48+
version "1.0.88-dev"
4649
artifact(sourceJar)
4750
artifact "${project.buildDir}/outputs/aar/${project.archivesBaseName}-release.aar"
4851

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package ru.evotor.framework
2+
3+
import android.database.Cursor
4+
5+
6+
abstract class Cursor<T>(cursor: Cursor) : android.database.Cursor by cursor {
7+
8+
abstract fun getValue(): T
9+
}

app/src/main/java/ru/evotor/framework/KotlinUtils.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ inline fun <T> Iterable<T>.sumByBigDecimal(selector: (T) -> BigDecimal): BigDeci
1313
return sum
1414
}
1515

16-
inline fun <reified T : kotlin.Enum<T>> safeValueOf(type: String?): T? {
16+
inline fun <reified T : kotlin.Enum<T>> safeValueOf(type: String?, default: T? = null): T? {
1717
if (type == null) {
18-
return null
18+
return default
1919
}
2020

2121
try {
2222
return java.lang.Enum.valueOf(T::class.java, type)
2323
} catch (e: IllegalArgumentException) {
24-
return null
24+
return default
2525
}
2626
}
2727

app/src/main/java/ru/evotor/framework/payment/PaymentSystemApi.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,20 @@ object PaymentSystemApi {
1515
fun getPaymentSystems(context: Context): List<Pair<PaymentSystem, List<PaymentAccount>>> {
1616
val paymentSystemList = mutableListOf<Pair<PaymentSystem, MutableList<PaymentAccount>>>()
1717

18-
val cursor: Cursor? = context.contentResolver.query(PaymentTable.URI, null, null, null, null)
18+
val cursor: Cursor? = context.contentResolver.query(PaymentSystemTable.URI, null, null, null, null)
1919

2020
if (cursor != null) {
2121
try {
2222
while (cursor.moveToNext()) {
2323
val paymentSystem = PaymentSystem(
24-
Utils.safeValueOf(PaymentType::class.java, cursor.getString(cursor.getColumnIndex(PaymentTable.ROW_PAYMENT_TYPE)), PaymentType.UNKNOWN),
25-
cursor.getString(cursor.getColumnIndex(PaymentTable.ROW_PAYMENT_SYSTEM_USER_DESCRIPTION)),
26-
cursor.getString(cursor.getColumnIndex(PaymentTable.PAYMENT_SYSTEM_ID))
24+
Utils.safeValueOf(PaymentType::class.java, cursor.getString(cursor.getColumnIndex(PaymentSystemTable.COLUMN_PAYMENT_TYPE)), PaymentType.UNKNOWN),
25+
cursor.getString(cursor.getColumnIndex(PaymentSystemTable.COLUMN_PAYMENT_SYSTEM_USER_DESCRIPTION)),
26+
cursor.getString(cursor.getColumnIndex(PaymentSystemTable.COLUMN_PAYMENT_SYSTEM_ID))
2727
)
2828

2929
val paymentAccount = PaymentAccount(
30-
cursor.getString(cursor.getColumnIndex(PaymentTable.ROW_ACCOUNT_USER_DESCRIPTION)),
31-
cursor.getString(cursor.getColumnIndex(PaymentTable.ROW_ACCOUNT_ID))
30+
cursor.getString(cursor.getColumnIndex(PaymentSystemTable.COLUMN_ACCOUNT_USER_DESCRIPTION)),
31+
cursor.getString(cursor.getColumnIndex(PaymentSystemTable.COLUMN_ACCOUNT_ID))
3232
)
3333

3434
var inList = false
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ru.evotor.framework.payment
2+
3+
import android.net.Uri
4+
5+
object PaymentSystemTable {
6+
@JvmField val URI = Uri.withAppendedPath(PaymentSystemApi.BASE_URI, "paymentSystems")
7+
const val COLUMN_PAYMENT_SYSTEM_ID = "PAYMENT_SYSTEM_ID"
8+
const val COLUMN_PAYMENT_SYSTEM_USER_DESCRIPTION = "PAYMENT_SYSTEM_USER_DESCRIPTION"
9+
const val COLUMN_PAYMENT_TYPE = "PAYMENT_TYPE"
10+
const val COLUMN_ACCOUNT_ID = "ACCOUNT_ID"
11+
const val COLUMN_ACCOUNT_USER_DESCRIPTION = "ACCOUNT_USER_DESCRIPTION"
12+
}

app/src/main/java/ru/evotor/framework/payment/PaymentTable.kt

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package ru.evotor.framework.receipt
2+
3+
import ru.evotor.framework.payment.PaymentSystem
4+
import java.math.BigDecimal
5+
6+
/**
7+
* Оплата
8+
*/
9+
data class Payment(
10+
/**
11+
* Uuid
12+
*/
13+
val uuid: String,
14+
/**
15+
* Сумма денег принятых от клиента
16+
*/
17+
val value: BigDecimal,
18+
/**
19+
* Платежная система
20+
*/
21+
val system: PaymentSystem?,
22+
/**
23+
* Идентификатор цели платежа
24+
*/
25+
val purposeIdentifier: String?,
26+
/**
27+
* Идентификатор аккаунта
28+
*/
29+
val accountId: String?,
30+
/**
31+
* Описание аккаунта
32+
*/
33+
val accountUserDescription: String?
34+
)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package ru.evotor.framework.receipt
2+
3+
object PaymentTable {
4+
const val COLUMN_UUID = "PAYMENT_UUID"
5+
const val COLUMN_VALUE = "PAYMENT_VALUE"
6+
const val COLUMN_PURPOSED_IDENTIFIER = "PAYMENT_PURPOSED_IDENTIFIER"
7+
const val COLUMN_ACCOUNT_ID = "PAYMENT_ACCOUNT_ID"
8+
const val COLUMN_ACCOUNT_USER_DESCRIPTION = "PAYMENT_ACCOUNT_USER_DESCRIPTION"
9+
const val COLUMN_VALUE_BY_PRINT_GROUP = "PAYMENT_VALUE_BY_PRINT_GROUP"
10+
const val COLUMN_CHANGE_BY_PRINT_GROUP = "PAYMENT_CHANGE_BY_PRINT_GROUP"
11+
}

app/src/main/java/ru/evotor/framework/receipt/PositionTable.kt

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,27 @@ import android.net.Uri
44

55
object PositionTable {
66
@JvmField val URI = Uri.withAppendedPath(ReceiptApi.BASE_URI, "position")
7-
const val ROW_POSITION_UUID = "POSITION_UUID"
8-
const val ROW_PARENT_POSITION_UUID = "PARENT_POSITION_UUID"
9-
const val ROW_PRODUCT_UUID = "PRODUCT_UUID"
10-
const val ROW_PRODUCT_CODE = "PRODUCT_CODE"
11-
const val ROW_PRODUCT_TYPE = "PRODUCT_TYPE"
12-
const val ROW_NAME = "NAME"
13-
const val ROW_MEASURE_NAME = "MEASURE_NAME"
14-
const val ROW_MEASURE_PRECISION = "MEASURE_PRECISION"
15-
const val ROW_PRICE = "PRICE"
16-
const val ROW_BARCODE = "BARCODE"
17-
const val ROW_QUANTITY = "QUANTITY"
18-
const val ROW_ALCOHOL_BY_VOLUME = "ALCOHOL_BY_VOLUME"
19-
const val ROW_ALCOHOL_PRODUCT_KIND_CODE = "ALCOHOL_PRODUCT_KIND_CODE"
20-
const val ROW_TARE_VOLUME = "TARE_VOLUME"
7+
const val COLUMN_POSITION_UUID = "POSITION_UUID"
8+
const val COLUMN_PARENT_POSITION_UUID = "PARENT_POSITION_UUID"
9+
const val COLUMN_PRODUCT_UUID = "PRODUCT_UUID"
10+
const val COLUMN_PRODUCT_CODE = "PRODUCT_CODE"
11+
const val COLUMN_PRODUCT_TYPE = "PRODUCT_TYPE"
12+
const val COLUMN_NAME = "NAME"
13+
const val COLUMN_MEASURE_NAME = "MEASURE_NAME"
14+
const val COLUMN_MEASURE_PRECISION = "MEASURE_PRECISION"
15+
const val COLUMN_PRICE = "PRICE"
16+
const val COLUMN_PRICE_WITH_DISCOUNT_POSITION = "PRICE_WITH_DISCOUNT_POSITION"
17+
const val COLUMN_BARCODE = "BARCODE"
18+
const val COLUMN_QUANTITY = "QUANTITY"
19+
const val COLUMN_ALCOHOL_BY_VOLUME = "ALCOHOL_BY_VOLUME"
20+
const val COLUMN_ALCOHOL_PRODUCT_KIND_CODE = "ALCOHOL_PRODUCT_KIND_CODE"
21+
const val COLUMN_TARE_VOLUME = "TARE_VOLUME"
22+
const val COLUMN_MARK = "MARK"
23+
const val COLUMN_EXTRA_KEYS = "EXTRA_KEYS"
24+
25+
object ExtraKeyJSONKeys {
26+
const val KEY_IDENTITY = "identity"
27+
const val KEY_APP_ID = "appId"
28+
const val KEY_DESCRIPTION = "description"
29+
}
2130
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package ru.evotor.framework.receipt
2+
3+
object PrintGroupSubTable {
4+
const val COLUMN_IDENTIFIER = "PRINT_GROUP_IDENTIFIER"
5+
const val COLUMN_TYPE = "PRINT_GROUP_TYPE"
6+
const val COLUMN_ORG_NAME = "PRINT_GROUP_ORG_NAME"
7+
const val COLUMN_ORG_INN = "PRINT_GROUP_ORG_INN"
8+
const val COLUMN_ORG_ADDRESS = "PRINT_GROUP_ORG_ADDRESS"
9+
const val COLUMN_TAXATION_SYSTEM = "PRINT_GROUP_TAXATION_SYSTEM"
10+
11+
}

0 commit comments

Comments
 (0)