From ed54bb1c13748381fd3a97d80b7768337f5f4850 Mon Sep 17 00:00:00 2001 From: "t.ovchinnikova" Date: Wed, 19 Oct 2022 18:30:52 +0500 Subject: [PATCH 01/10] MRK-1963 --- .../action/datamapper/PositionMapper.java | 6 ++ .../ru/evotor/framework/kkt/FiscalTags.kt | 5 ++ .../ru/evotor/framework/receipt/Position.java | 75 ++++++++++++++++++- .../VolumeSortAccountingRealization.kt | 39 ++++++++++ 4 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 src/main/java/ru/evotor/framework/receipt/position/VolumeSortAccountingRealization.kt diff --git a/src/main/java/ru/evotor/framework/core/action/datamapper/PositionMapper.java b/src/main/java/ru/evotor/framework/core/action/datamapper/PositionMapper.java index 2c69c7252..0369ce97f 100644 --- a/src/main/java/ru/evotor/framework/core/action/datamapper/PositionMapper.java +++ b/src/main/java/ru/evotor/framework/core/action/datamapper/PositionMapper.java @@ -26,6 +26,7 @@ import ru.evotor.framework.receipt.position.PartialRealization; import ru.evotor.framework.receipt.position.PreferentialMedicine; import ru.evotor.framework.receipt.position.SettlementMethod; +import ru.evotor.framework.receipt.position.VolumeSortAccountingRealization; public final class PositionMapper { @@ -87,6 +88,8 @@ public final class PositionMapper { private static final String KEY_PARTIAL_REALIZATION = "partialRealization"; + private static final String KEY_VOLUME_SORT_ACCOUNTING_REALIZATION = "volumeSortAccountingRealization"; + @Nullable public static Position from(@Nullable Bundle bundle) { if (bundle == null) { @@ -268,6 +271,9 @@ public static Bundle toBundle(@Nullable Position position) { final PartialRealization partialRealization = position.getPartialRealization(); bundle.putBundle(KEY_PARTIAL_REALIZATION, partialRealization != null ? partialRealization.toBundle() : null); + final VolumeSortAccountingRealization volumeSortAccountingRealization = position.getVolumeSortAccountingRealization(); + bundle.putBundle(KEY_VOLUME_SORT_ACCOUNTING_REALIZATION, volumeSortAccountingRealization != null ? volumeSortAccountingRealization.toBundle() : null); + return bundle; } diff --git a/src/main/java/ru/evotor/framework/kkt/FiscalTags.kt b/src/main/java/ru/evotor/framework/kkt/FiscalTags.kt index d4d481021..d1ba58221 100644 --- a/src/main/java/ru/evotor/framework/kkt/FiscalTags.kt +++ b/src/main/java/ru/evotor/framework/kkt/FiscalTags.kt @@ -192,4 +192,9 @@ object FiscalTags { */ const val MEASURE_CODE = 2108 + /** + * мера количества предмета расчета + */ + const val VOLUME_SORT_ACCOUNTING_REALIZATION = 1191 + } diff --git a/src/main/java/ru/evotor/framework/receipt/Position.java b/src/main/java/ru/evotor/framework/receipt/Position.java index 1d638e464..0110985df 100644 --- a/src/main/java/ru/evotor/framework/receipt/Position.java +++ b/src/main/java/ru/evotor/framework/receipt/Position.java @@ -30,6 +30,7 @@ import ru.evotor.framework.receipt.position.PartialRealization; import ru.evotor.framework.receipt.position.PreferentialMedicine; import ru.evotor.framework.receipt.position.SettlementMethod; +import ru.evotor.framework.receipt.position.VolumeSortAccountingRealization; /** * Позиция чека. @@ -38,7 +39,7 @@ public class Position implements Parcelable { /** * Текущая версия объекта Position */ - private static final int VERSION = 9; + private static final int VERSION = 10; /** * Магическое число для идентификации использования версионирования объекта. */ @@ -191,6 +192,18 @@ public class Position implements Parcelable { @Nullable private PartialRealization partialRealization; + /** + * Выбытие по объемно-сортовому учету(ОСУ) 1191 + *

+ * Доступно только для следующих типов товара: + * - молочная продукция {@link ProductType#DAIRY_MARKED} + * - вода {@link ProductType#WATER_MARKED} + *

+ */ + @FiscalRequisite(tag = FiscalTags.VOLUME_SORT_ACCOUNTING_REALIZATION) + @Nullable + private VolumeSortAccountingRealization volumeSortAccountingRealization; + public Position( String uuid, @Nullable String productUuid, @@ -259,6 +272,7 @@ public Position(Position position) { this.classificationCode = position.getClassificationCode(); this.preferentialMedicine = position.getPreferentialMedicine(); this.partialRealization = position.getPartialRealization(); + this.volumeSortAccountingRealization = position.getVolumeSortAccountingRealization(); } /** @@ -538,6 +552,15 @@ public PartialRealization getPartialRealization() { return partialRealization; } + /** + * @return Выбытие по объемно-сортовому учету(ОСУ) 1191 + */ + @FiscalRequisite(tag = FiscalTags.VOLUME_SORT_ACCOUNTING_REALIZATION) + @Nullable + public VolumeSortAccountingRealization getVolumeSortAccountingRealization() { + return volumeSortAccountingRealization; + } + @Override public boolean equals(Object o) { return equals(o, false); @@ -599,6 +622,8 @@ private boolean equals(Object o, boolean exceptQuantity) { return false; if (!Objects.equals(partialRealization, position.partialRealization)) return false; + if (!Objects.equals(volumeSortAccountingRealization, position.volumeSortAccountingRealization)) + return false; return Objects.equals(subPositions, position.subPositions); } @@ -630,6 +655,7 @@ public int hashCode() { result = 31 * result + (classificationCode != null ? classificationCode.hashCode() : 0); result = 31 * result + (preferentialMedicine != null ? preferentialMedicine.hashCode() : 0); result = 31 * result + (partialRealization != null ? partialRealization.hashCode() : 0); + result = 31 * result + (volumeSortAccountingRealization != null ? volumeSortAccountingRealization.hashCode() : 0); return result; } @@ -661,6 +687,7 @@ public String toString() { ", classificationCode=" + classificationCode + ", preferentialMedicine=" + preferentialMedicine + ", partial=" + partialRealization + + ", volumeSortAccountingRealization=" + volumeSortAccountingRealization + '}'; } @@ -748,6 +775,8 @@ private void writeAdditionalFields(Parcel dest, int flags) { // Partial realization dest.writeBundle(this.partialRealization != null ? this.partialRealization.toBundle() : null); dest.writeInt(this.measure.getCode()); + // Volume Sort Accounting Realization + dest.writeBundle(this.volumeSortAccountingRealization != null ? this.volumeSortAccountingRealization.toBundle() : null); } protected Position(Parcel in) { @@ -828,6 +857,9 @@ private void readAdditionalFields(Parcel in, String measureName, int measurePrec if (version >= 9) { measureCode = in.readInt(); } + if (version >= 10) { + readVolumeSortAccountingRealization(in); + } this.measure = new Measure( measureName, measurePrecision, @@ -879,6 +911,12 @@ private void readPartialRealization(Parcel in) { this.partialRealization = PartialRealization.Companion.from(in.readBundle(PartialRealization.class.getClassLoader())); } + private void readVolumeSortAccountingRealization(Parcel in) { + this.volumeSortAccountingRealization = VolumeSortAccountingRealization.Companion.from( + in.readBundle(VolumeSortAccountingRealization.class.getClassLoader()) + ); + } + public static final Creator CREATOR = new Creator() { @Override public Position createFromParcel(Parcel source) { @@ -1372,6 +1410,26 @@ public Builder toPartialRealization( return this; } + /** + * Реализация по ОСУ для позиции доступна только если тип товара является одним из: + *

+ * вода {@link ProductType#WATER_MARKED} + * молочная продукция {@link ProductType#DAIRY_MARKED} + * + * @param volumeSortQuantity количество товара по ОСУ + * @param gtin gtin товара + */ + public Builder toVolumeSortAccountingRealization( + @NonNull BigDecimal volumeSortQuantity, + @NonNull String gtin + ) { + position.volumeSortAccountingRealization = new VolumeSortAccountingRealization( + gtin, + volumeSortQuantity + ); + return this; + } + private void setAlcoParams( Mark mark, BigDecimal alcoholByVolume, @@ -1541,6 +1599,21 @@ public Builder setPartialRealization(@Nullable PartialRealization partialRealiza return this; } + /** + * Реализация по ОСУ для позиции доступна только если тип товара является одним из: + *

+ * вода {@link ProductType#WATER_MARKED} + * молочная продукция {@link ProductType#DAIRY_MARKED} + * + * @param volumeSortAccountingRealization реализация по ОСУ + */ + public Builder setVolumeSortAccountingRealization( + @Nullable VolumeSortAccountingRealization volumeSortAccountingRealization + ) { + position.volumeSortAccountingRealization = volumeSortAccountingRealization; + return this; + } + public Position build() { return new Position(position); } diff --git a/src/main/java/ru/evotor/framework/receipt/position/VolumeSortAccountingRealization.kt b/src/main/java/ru/evotor/framework/receipt/position/VolumeSortAccountingRealization.kt new file mode 100644 index 000000000..73d5894d7 --- /dev/null +++ b/src/main/java/ru/evotor/framework/receipt/position/VolumeSortAccountingRealization.kt @@ -0,0 +1,39 @@ +package ru.evotor.framework.receipt.position + +import android.os.Bundle +import ru.evotor.IBundlable +import ru.evotor.framework.optBigDecimal +import java.math.BigDecimal + + +data class VolumeSortAccountingRealization ( + /** + * Идентификатор продукта GTIN + */ + val gtin: String, + /** + * Количество товара по ОСУ + */ + val volumeSortQuantity: BigDecimal +) : IBundlable { + + override fun toBundle() = Bundle().apply { + putString(KEY_VOLUME_SORT_QUANTITY, volumeSortQuantity.toPlainString()) + putString(KEY_GTIN, gtin) + } + + companion object { + + private const val KEY_VOLUME_SORT_QUANTITY = "VolumeSortQuantity" + private const val KEY_GTIN = "GTIN" + + @JvmStatic + fun from(bundle: Bundle?): VolumeSortAccountingRealization? = bundle?.let { + val volumeSortQuantity = it.optBigDecimal(KEY_VOLUME_SORT_QUANTITY) ?: return null + val gtin = it.getString(KEY_GTIN) ?: return null + + VolumeSortAccountingRealization(volumeSortQuantity = volumeSortQuantity, gtin = gtin) + } + } + +} From 92ac739986635f47cbd92f9d513b95da3f2ad945 Mon Sep 17 00:00:00 2001 From: "t.ovchinnikova" Date: Thu, 20 Oct 2022 08:15:22 +0500 Subject: [PATCH 02/10] MRK-1963 --- src/main/java/ru/evotor/framework/kkt/FiscalTags.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ru/evotor/framework/kkt/FiscalTags.kt b/src/main/java/ru/evotor/framework/kkt/FiscalTags.kt index d1ba58221..9cc00466a 100644 --- a/src/main/java/ru/evotor/framework/kkt/FiscalTags.kt +++ b/src/main/java/ru/evotor/framework/kkt/FiscalTags.kt @@ -193,7 +193,7 @@ object FiscalTags { const val MEASURE_CODE = 2108 /** - * мера количества предмета расчета + * выбытие по ОСУ */ const val VOLUME_SORT_ACCOUNTING_REALIZATION = 1191 From e7e4058d1ccc69a49eec62c9149a9ff53a4d72ba Mon Sep 17 00:00:00 2001 From: "t.ovchinnikova" Date: Thu, 20 Oct 2022 15:38:12 +0500 Subject: [PATCH 03/10] MRK-1963 --- .../framework/core/action/datamapper/PositionMapper.java | 9 ++++++++- .../receipt/position/VolumeSortAccountingRealization.kt | 1 - 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/evotor/framework/core/action/datamapper/PositionMapper.java b/src/main/java/ru/evotor/framework/core/action/datamapper/PositionMapper.java index 0369ce97f..8a1b6e383 100644 --- a/src/main/java/ru/evotor/framework/core/action/datamapper/PositionMapper.java +++ b/src/main/java/ru/evotor/framework/core/action/datamapper/PositionMapper.java @@ -151,6 +151,9 @@ public static Position from(@Nullable Bundle bundle) { PartialRealization partialRealization = PartialRealization.from(bundle.getBundle(KEY_PARTIAL_REALIZATION)); + VolumeSortAccountingRealization volumeSortAccountingRealization = + VolumeSortAccountingRealization.from(bundle.getBundle(KEY_VOLUME_SORT_ACCOUNTING_REALIZATION)); + if (quantity == null || price == null || priceWithDiscountPosition == null @@ -191,6 +194,7 @@ public static Position from(@Nullable Bundle bundle) { builder.setPreferentialMedicine(preferentialMedicine); builder.setClassificationCode(classificationCode); builder.setPartialRealization(partialRealization); + builder.setVolumeSortAccountingRealization(volumeSortAccountingRealization); return builder.build(); } @@ -272,7 +276,10 @@ public static Bundle toBundle(@Nullable Position position) { bundle.putBundle(KEY_PARTIAL_REALIZATION, partialRealization != null ? partialRealization.toBundle() : null); final VolumeSortAccountingRealization volumeSortAccountingRealization = position.getVolumeSortAccountingRealization(); - bundle.putBundle(KEY_VOLUME_SORT_ACCOUNTING_REALIZATION, volumeSortAccountingRealization != null ? volumeSortAccountingRealization.toBundle() : null); + bundle.putBundle( + KEY_VOLUME_SORT_ACCOUNTING_REALIZATION, + volumeSortAccountingRealization != null ? volumeSortAccountingRealization.toBundle() : null + ); return bundle; } diff --git a/src/main/java/ru/evotor/framework/receipt/position/VolumeSortAccountingRealization.kt b/src/main/java/ru/evotor/framework/receipt/position/VolumeSortAccountingRealization.kt index 73d5894d7..e1f883ad3 100644 --- a/src/main/java/ru/evotor/framework/receipt/position/VolumeSortAccountingRealization.kt +++ b/src/main/java/ru/evotor/framework/receipt/position/VolumeSortAccountingRealization.kt @@ -35,5 +35,4 @@ data class VolumeSortAccountingRealization ( VolumeSortAccountingRealization(volumeSortQuantity = volumeSortQuantity, gtin = gtin) } } - } From 7d6b27b8c31d828b98dd18cb4f2b2660ce2f3570 Mon Sep 17 00:00:00 2001 From: "t.ovchinnikova" Date: Tue, 25 Oct 2022 18:16:32 +0500 Subject: [PATCH 04/10] MRK-1963 --- .../evotor/framework/receipt/PositionTable.kt | 2 ++ .../ru/evotor/framework/receipt/ReceiptApi.kt | 8 ++----- .../VolumeAssortingAccountingRealization.kt | 21 +++++++++++++++++++ 3 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeAssortingAccountingRealization.kt diff --git a/src/main/java/ru/evotor/framework/receipt/PositionTable.kt b/src/main/java/ru/evotor/framework/receipt/PositionTable.kt index 1dc41f6a3..e366bf87b 100644 --- a/src/main/java/ru/evotor/framework/receipt/PositionTable.kt +++ b/src/main/java/ru/evotor/framework/receipt/PositionTable.kt @@ -36,6 +36,8 @@ object PositionTable { const val COLUMN_IMPORTATION_DATA_COUNTRY_ORIGIN_CODE = "IMPORTATION_DATA_COUNTRY_ORIGIN_CODE" const val COLUMN_IMPORTATION_DATA_CUSTOMS_DECLARATION_NUMBER = "IMPORTATION_DATA_CUSTOMS_DECLARATION_NUMBER" const val COLUMN_PARTIAL_QUANTITY_IN_PACKAGE = "PARTIAL_REALIZATION_QUANTITY_IN_PACKAGE" + const val COLUMN_VOLUME_ASSORTING_QUANTITY = "VOLUME_ASSORTING_REALIZATION_QUANTITY" + const val COLUMN_VOLUME_ASSORTING_GTIN = "VOLUME_ASSORTING_REALIZATION_GTIN" object ExtraKeyJSONKeys { const val KEY_IDENTITY = "identity" diff --git a/src/main/java/ru/evotor/framework/receipt/ReceiptApi.kt b/src/main/java/ru/evotor/framework/receipt/ReceiptApi.kt index 10b8b1fd4..7399c3b4e 100644 --- a/src/main/java/ru/evotor/framework/receipt/ReceiptApi.kt +++ b/src/main/java/ru/evotor/framework/receipt/ReceiptApi.kt @@ -19,15 +19,10 @@ import ru.evotor.framework.receipt.mapper.FiscalReceiptMapper import ru.evotor.framework.receipt.position.ImportationData import ru.evotor.framework.receipt.position.Mark import ru.evotor.framework.receipt.position.PreferentialMedicine -import ru.evotor.framework.receipt.position.mapper.AgentRequisitesMapper -import ru.evotor.framework.receipt.position.mapper.PositionPartialRealizationMapper -import ru.evotor.framework.receipt.position.mapper.PreferentialMedicineMapper -import ru.evotor.framework.receipt.position.mapper.SettlementMethodMapper +import ru.evotor.framework.receipt.position.mapper.* import ru.evotor.framework.receipt.provider.FiscalReceiptContract import java.math.BigDecimal import java.util.* -import kotlin.collections.ArrayList -import kotlin.collections.HashMap @WorkerThread object ReceiptApi { @@ -450,6 +445,7 @@ object ReceiptApi { .setImportationData(importationData) .setExcise(excise) .setPartialRealization(PositionPartialRealizationMapper.fromCursor(cursor)) + .setVolumeSortAccountingRealization(VolumeAssortingAccountingRealization.fromCursor(cursor)) return builder.build() } diff --git a/src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeAssortingAccountingRealization.kt b/src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeAssortingAccountingRealization.kt new file mode 100644 index 000000000..4ab751f0a --- /dev/null +++ b/src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeAssortingAccountingRealization.kt @@ -0,0 +1,21 @@ +package ru.evotor.framework.receipt.position.mapper + +import android.database.Cursor +import ru.evotor.framework.optQuantity +import ru.evotor.framework.optString +import ru.evotor.framework.receipt.PositionTable +import ru.evotor.framework.receipt.position.VolumeSortAccountingRealization + +internal object VolumeAssortingAccountingRealization { + + internal fun fromCursor(cursor: Cursor): VolumeSortAccountingRealization? { + val volumeSortQuantity = cursor.optQuantity(PositionTable.COLUMN_VOLUME_ASSORTING_QUANTITY) + ?: return null + val gtin = cursor.optString(PositionTable.COLUMN_VOLUME_ASSORTING_GTIN) + ?: return null + return VolumeSortAccountingRealization( + volumeSortQuantity = volumeSortQuantity, + gtin = gtin + ) + } +} From 15123e718c161c6ce793b21bfec8678961b1b5b8 Mon Sep 17 00:00:00 2001 From: "t.ovchinnikova" Date: Wed, 26 Oct 2022 09:05:18 +0500 Subject: [PATCH 05/10] MRK-1963 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 1833f79a7..c99eaffd7 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ apply plugin: 'maven-publish' apply plugin: 'org.jetbrains.dokka' android { - def version = 19 + def version = 20 compileSdkVersion 29 buildToolsVersion "29.0.3" From 3a884729109750bccc12ad89526030fd96ffefc1 Mon Sep 17 00:00:00 2001 From: "t.ovchinnikova" Date: Wed, 26 Oct 2022 13:31:10 +0500 Subject: [PATCH 06/10] MRK-1963 --- src/main/java/ru/evotor/framework/receipt/PositionTable.kt | 4 ++-- .../position/mapper/VolumeAssortingAccountingRealization.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/ru/evotor/framework/receipt/PositionTable.kt b/src/main/java/ru/evotor/framework/receipt/PositionTable.kt index e366bf87b..8e73fc1b9 100644 --- a/src/main/java/ru/evotor/framework/receipt/PositionTable.kt +++ b/src/main/java/ru/evotor/framework/receipt/PositionTable.kt @@ -36,8 +36,8 @@ object PositionTable { const val COLUMN_IMPORTATION_DATA_COUNTRY_ORIGIN_CODE = "IMPORTATION_DATA_COUNTRY_ORIGIN_CODE" const val COLUMN_IMPORTATION_DATA_CUSTOMS_DECLARATION_NUMBER = "IMPORTATION_DATA_CUSTOMS_DECLARATION_NUMBER" const val COLUMN_PARTIAL_QUANTITY_IN_PACKAGE = "PARTIAL_REALIZATION_QUANTITY_IN_PACKAGE" - const val COLUMN_VOLUME_ASSORTING_QUANTITY = "VOLUME_ASSORTING_REALIZATION_QUANTITY" - const val COLUMN_VOLUME_ASSORTING_GTIN = "VOLUME_ASSORTING_REALIZATION_GTIN" + const val COLUMN_VOLUME_SORT_ACCOUNTING_QUANTITY = "VOLUME_SORT_ACCOUNTING_QUANTITY" + const val COLUMN_VOLUME_SORT_ACCOUNTING_GTIN = "VOLUME_SORT_ACCOUNTING_GTIN" object ExtraKeyJSONKeys { const val KEY_IDENTITY = "identity" diff --git a/src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeAssortingAccountingRealization.kt b/src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeAssortingAccountingRealization.kt index 4ab751f0a..da213b2af 100644 --- a/src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeAssortingAccountingRealization.kt +++ b/src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeAssortingAccountingRealization.kt @@ -9,9 +9,9 @@ import ru.evotor.framework.receipt.position.VolumeSortAccountingRealization internal object VolumeAssortingAccountingRealization { internal fun fromCursor(cursor: Cursor): VolumeSortAccountingRealization? { - val volumeSortQuantity = cursor.optQuantity(PositionTable.COLUMN_VOLUME_ASSORTING_QUANTITY) + val volumeSortQuantity = cursor.optQuantity(PositionTable.COLUMN_VOLUME_SORT_ACCOUNTING_QUANTITY) ?: return null - val gtin = cursor.optString(PositionTable.COLUMN_VOLUME_ASSORTING_GTIN) + val gtin = cursor.optString(PositionTable.COLUMN_VOLUME_SORT_ACCOUNTING_GTIN) ?: return null return VolumeSortAccountingRealization( volumeSortQuantity = volumeSortQuantity, From 53177bc9de7a283a8e9c4998c76dc6677b8b6ed7 Mon Sep 17 00:00:00 2001 From: "t.ovchinnikova" Date: Wed, 26 Oct 2022 18:08:54 +0500 Subject: [PATCH 07/10] MRK-1963 --- src/main/java/ru/evotor/framework/receipt/ReceiptApi.kt | 2 +- ...gRealization.kt => VolumeSortAccountingRealizationMapper.kt} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/main/java/ru/evotor/framework/receipt/position/mapper/{VolumeAssortingAccountingRealization.kt => VolumeSortAccountingRealizationMapper.kt} (93%) diff --git a/src/main/java/ru/evotor/framework/receipt/ReceiptApi.kt b/src/main/java/ru/evotor/framework/receipt/ReceiptApi.kt index 7399c3b4e..0855e80cb 100644 --- a/src/main/java/ru/evotor/framework/receipt/ReceiptApi.kt +++ b/src/main/java/ru/evotor/framework/receipt/ReceiptApi.kt @@ -445,7 +445,7 @@ object ReceiptApi { .setImportationData(importationData) .setExcise(excise) .setPartialRealization(PositionPartialRealizationMapper.fromCursor(cursor)) - .setVolumeSortAccountingRealization(VolumeAssortingAccountingRealization.fromCursor(cursor)) + .setVolumeSortAccountingRealization(VolumeSortAccountingRealizationMapper.fromCursor(cursor)) return builder.build() } diff --git a/src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeAssortingAccountingRealization.kt b/src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeSortAccountingRealizationMapper.kt similarity index 93% rename from src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeAssortingAccountingRealization.kt rename to src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeSortAccountingRealizationMapper.kt index da213b2af..13416633e 100644 --- a/src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeAssortingAccountingRealization.kt +++ b/src/main/java/ru/evotor/framework/receipt/position/mapper/VolumeSortAccountingRealizationMapper.kt @@ -6,7 +6,7 @@ import ru.evotor.framework.optString import ru.evotor.framework.receipt.PositionTable import ru.evotor.framework.receipt.position.VolumeSortAccountingRealization -internal object VolumeAssortingAccountingRealization { +internal object VolumeSortAccountingRealizationMapper { internal fun fromCursor(cursor: Cursor): VolumeSortAccountingRealization? { val volumeSortQuantity = cursor.optQuantity(PositionTable.COLUMN_VOLUME_SORT_ACCOUNTING_QUANTITY) From c1d5e8542ba1c249911d3bf7cbc2cad83c0b58ad Mon Sep 17 00:00:00 2001 From: "t.ovchinnikova" Date: Mon, 21 Nov 2022 13:33:20 +0500 Subject: [PATCH 08/10] MRK-1963 --- src/main/java/ru/evotor/framework/receipt/Position.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/ru/evotor/framework/receipt/Position.java b/src/main/java/ru/evotor/framework/receipt/Position.java index 0110985df..7a839e30e 100644 --- a/src/main/java/ru/evotor/framework/receipt/Position.java +++ b/src/main/java/ru/evotor/framework/receipt/Position.java @@ -1604,6 +1604,7 @@ public Builder setPartialRealization(@Nullable PartialRealization partialRealiza *

* вода {@link ProductType#WATER_MARKED} * молочная продукция {@link ProductType#DAIRY_MARKED} + * не может использоваться совместно с setPartialRealization * * @param volumeSortAccountingRealization реализация по ОСУ */ From 912615b0ea9c3beabba29031ed6525dfbd151604 Mon Sep 17 00:00:00 2001 From: "t.ovchinnikova" Date: Tue, 24 Jan 2023 19:58:35 +0500 Subject: [PATCH 09/10] MRK-1963 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index f7317451a..ccd71de62 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ apply plugin: 'maven-publish' apply plugin: 'org.jetbrains.dokka' android { - def version = 20 + def version = 22 compileSdkVersion 29 defaultConfig { From 23bd1229cde61f6e4a23503265c86f14d57e3af9 Mon Sep 17 00:00:00 2001 From: "t.ovchinnikova" Date: Wed, 15 Feb 2023 15:08:24 +0500 Subject: [PATCH 10/10] MRK-1963 fix code review --- src/main/java/ru/evotor/framework/kkt/FiscalTags.kt | 7 ++++++- src/main/java/ru/evotor/framework/receipt/Position.java | 9 --------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/main/java/ru/evotor/framework/kkt/FiscalTags.kt b/src/main/java/ru/evotor/framework/kkt/FiscalTags.kt index 9cc00466a..09e43589b 100644 --- a/src/main/java/ru/evotor/framework/kkt/FiscalTags.kt +++ b/src/main/java/ru/evotor/framework/kkt/FiscalTags.kt @@ -192,9 +192,14 @@ object FiscalTags { */ const val MEASURE_CODE = 2108 + /** + * дополнительный реквизит предмета расчета + */ + const val ADDITIONAL_REQUISITE_OF_SUBJECT_OF_CALCULATION = 1191 + /** * выбытие по ОСУ */ - const val VOLUME_SORT_ACCOUNTING_REALIZATION = 1191 + const val VOLUME_SORT_ACCOUNTING_REALIZATION = ADDITIONAL_REQUISITE_OF_SUBJECT_OF_CALCULATION } diff --git a/src/main/java/ru/evotor/framework/receipt/Position.java b/src/main/java/ru/evotor/framework/receipt/Position.java index 7a8d15ef3..0e3983f2f 100644 --- a/src/main/java/ru/evotor/framework/receipt/Position.java +++ b/src/main/java/ru/evotor/framework/receipt/Position.java @@ -1424,15 +1424,6 @@ public Builder toPartialRealization( return this; } - /** - * Реализация по ОСУ для позиции доступна только если тип товара является одним из: - *

- * вода {@link ProductType#WATER_MARKED} - * молочная продукция {@link ProductType#DAIRY_MARKED} - * - * @param volumeSortQuantity количество товара по ОСУ - * @param gtin gtin товара - */ public Builder toVolumeSortAccountingRealization( @NonNull BigDecimal volumeSortQuantity, @NonNull String gtin