diff --git a/build.gradle b/build.gradle index 2e0f6d9de..619ea3718 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ apply plugin: 'org.jetbrains.dokka' android { namespace = "ru.evotor.integrations" - def version = 41 + def version = 42 compileSdk 30 diff --git a/src/main/java/ru/evotor/framework/features/FeaturesApi.kt b/src/main/java/ru/evotor/framework/features/FeaturesApi.kt index 821ca579c..9459c75d7 100644 --- a/src/main/java/ru/evotor/framework/features/FeaturesApi.kt +++ b/src/main/java/ru/evotor/framework/features/FeaturesApi.kt @@ -350,6 +350,34 @@ object FeaturesApi { */ fun isFursLpMarkActive(context: Context) = isFeatureActive(context, FeaturesContract.PATH_FURSLP_MARK) + /** + * Проверяет, активна ли функция "Маркировка игр и игрушек для детей" на данном терминале + * + * @return `true` если функция активна; `false` если функция не активна. + */ + fun isToysMarkActive(context: Context) = isFeatureActive(context, FeaturesContract.PATH_TOYS_MARK) + + /** + * Проверяет, активна ли функция "Маркировка консервированной продукции" на данном терминале + * + * @return `true` если функция активна; `false` если функция не активна. + */ + fun isPreservesMarkActive(context: Context) = isFeatureActive(context, FeaturesContract.PATH_PRESERVES_MARK) + + /** + * Проверяет, активна ли функция "Маркировка бакалейной продукции" на данном терминале + * + * @return `true` если функция активна; `false` если функция не активна. + */ + fun isGroceriesMarkActive(context: Context) = isFeatureActive(context, FeaturesContract.PATH_GROCERIES_MARK) + + /** + * Проверяет, активна ли функция "Маркировка cтроительных материалов" на данном терминале + * + * @return `true` если функция активна; `false` если функция не активна. + */ + fun isBuildingMaterialsMarkActive(context: Context) = isFeatureActive(context, FeaturesContract.PATH_BUILDING_MATERIALS_MARK) + private fun isFeatureActive(context: Context, path: String, defaultValue: Boolean = false): Boolean = context.contentResolver.query( Uri.withAppendedPath(FeaturesContract.BASE_URI, path), diff --git a/src/main/java/ru/evotor/framework/features/provider/FeaturesContract.kt b/src/main/java/ru/evotor/framework/features/provider/FeaturesContract.kt index f9f06738d..90bd549cd 100644 --- a/src/main/java/ru/evotor/framework/features/provider/FeaturesContract.kt +++ b/src/main/java/ru/evotor/framework/features/provider/FeaturesContract.kt @@ -55,6 +55,10 @@ object FeaturesContract { const val PATH_CHEMICALS_MARK = "chemicals_marked" const val PATH_VAT22 = "vat22" const val PATH_FURSLP_MARK = "furslp_marked" + const val PATH_TOYS_MARK = "toys_marked" + const val PATH_PRESERVES_MARK = "preserves_marked" + const val PATH_GROCERIES_MARK = "groceries_marked" + const val PATH_BUILDING_MATERIALS_MARK = "building_materials_marked" const val COLUMN_IS_ACTIVE = "is_active" } diff --git a/src/main/java/ru/evotor/framework/inventory/ProductType.java b/src/main/java/ru/evotor/framework/inventory/ProductType.java index 1dea53e77..86f52de4a 100644 --- a/src/main/java/ru/evotor/framework/inventory/ProductType.java +++ b/src/main/java/ru/evotor/framework/inventory/ProductType.java @@ -174,5 +174,25 @@ public enum ProductType { /** * Меховые изделия (КМ) */ - FURSLP_MARKED + FURSLP_MARKED, + + /** + * Игры и игрушки для детей + */ + TOYS_MARKED, + + /** + * Консервированная продукция + */ + PRESERVES_MARKED, + + /** + * Бакалейная продукция + */ + GROCERIES_MARKED, + + /** + * Строительные материалы + */ + BUILDING_MATERIALS_MARKED } \ No newline at end of file diff --git a/src/main/java/ru/evotor/framework/receipt/Position.java b/src/main/java/ru/evotor/framework/receipt/Position.java index 3aa2a9467..09bfd194f 100644 --- a/src/main/java/ru/evotor/framework/receipt/Position.java +++ b/src/main/java/ru/evotor/framework/receipt/Position.java @@ -1834,6 +1834,62 @@ public Builder toChemicalsMarked( return this; } + public Builder toToysMarked( + @NonNull Mark mark + ) { + position.productType = ProductType.TOYS_MARKED; + setAlcoParams( + null, + null, + null, + null + ); + setToysParams(mark); + return this; + } + + public Builder toPreservesMarked( + @NonNull Mark mark + ) { + position.productType = ProductType.PRESERVES_MARKED; + setAlcoParams( + null, + null, + null, + null + ); + setPreservesParams(mark); + return this; + } + + public Builder toGroceriesMarked( + @NonNull Mark mark + ) { + position.productType = ProductType.GROCERIES_MARKED; + setAlcoParams( + null, + null, + null, + null + ); + setGroceriesParams(mark); + return this; + } + + public Builder toBuildingMaterialsMarked( + @NonNull Mark mark + ) { + position.productType = ProductType.BUILDING_MATERIALS_MARKED; + setAlcoParams( + null, + null, + null, + null + ); + setBuildingMaterialsParams(mark); + return this; + } + /** * Частичная реализация для позиции доступна только если тип товара является одним из: *

@@ -1994,6 +2050,14 @@ private void setBeerParams(Mark mark) { private void setFursLpParams(Mark mark) {position.mark = mark; } + private void setToysParams(Mark mark) { position.mark = mark; } + + private void setPreservesParams(Mark mark) { position.mark = mark; } + + private void setGroceriesParams(Mark mark) { position.mark = mark; } + + private void setBuildingMaterialsParams(Mark mark) { position.mark = mark; } + public Builder setUuid(String uuid) { position.uuid = uuid; return this;