orangedata 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6087498a7c12ae0d3250d75c1ee5148cfea56a7f
4
- data.tar.gz: c7ac45d748527a88a20f04853b4fbb5dde802ca9
3
+ metadata.gz: 98ed7a5c255afffc47d6bf269ff2b437d93b3a1e
4
+ data.tar.gz: 81e4bc91eb71b7e0bd3fbe2aac56a7c34288b5c1
5
5
  SHA512:
6
- metadata.gz: e12efa52f2a06f1393b2c951f84e9e3fa102bc2a5a5d4d592d7b69b62a930a3c3cfc3c23b13a516187296a0e5d72a98cfbce6ae5539bcea1555c87ea8fda8232
7
- data.tar.gz: 76d6d37502cd2dde226b18b6b0cc342770b0304272bae7d998ed01cbd4811f11f5496fa7877afd98a957115df2c193bb8a6a63709bfb33895e1686ebf77dc404
6
+ metadata.gz: de702c4f2271f2a53e9cc19a52393ac6ee902f4f606ffdb807bc85f4890ddb8ea0befa14fb2a3ee19fda41963f78c0f16de8b642bd944c1f4f1be84f144b5c49
7
+ data.tar.gz: 787824699a16f84ae7e3398db3283b2a5a5c1a0ec91d59421d83b33225400def49e7ee589c549b4869cedc5d07dfd08a804c6441b7686e300546fe45095728cf
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- orangedata (0.0.3)
4
+ orangedata (0.0.4)
5
5
  faraday (>= 0.15)
6
6
  faraday_middleware
7
7
 
@@ -120,6 +120,11 @@ module OrangeData
120
120
  else
121
121
 
122
122
  end
123
+
124
+ if info["x-alias"]
125
+ # alias_method "#{info["x-alias"]}", property.underscore
126
+ alias_method "#{info["x-alias"]}=", "#{property.underscore}="
127
+ end
123
128
  end
124
129
  end
125
130
  end
@@ -283,11 +288,6 @@ module OrangeData
283
288
 
284
289
  end
285
290
 
286
-
287
- class Correction < Document
288
- # TODO: same as Receipt, but based on correctionType
289
- end
290
-
291
291
  class ReceiptResult < PayloadContent
292
292
  def initialize payload
293
293
  @payload = payload
@@ -322,4 +322,39 @@ module OrangeData
322
322
  end
323
323
  end
324
324
 
325
+ # Correction
326
+
327
+ class Correction < Document
328
+ def initialize(id:SecureRandom.uuid, inn:, group:nil, key_name:nil, content:nil)
329
+ @content = CorrectionContent.new(content || {})
330
+ super
331
+ end
332
+ PAYLOAD_SCHEMA["definitions"]["CorrectionContent"]["properties"]["type"]["x-enum"].each_pair do |slug, info|
333
+ define_singleton_method(slug) do |**args, &block|
334
+ new(**args, &block).tap{|doc|
335
+ doc.content.type = slug
336
+ }
337
+ end
338
+ end
339
+ end
340
+
341
+ class CorrectionContent < PayloadContent
342
+ GeneratedAttributes.from_schema(self, PAYLOAD_SCHEMA["definitions"]["CorrectionContent"])
343
+ end
344
+
345
+ class CorrectionResult < PayloadContent
346
+ def initialize payload
347
+ @payload = payload || {}
348
+ @content = CorrectionContent.new(@payload["content"] || {})
349
+ end
350
+
351
+ def self.from_hash(hash)
352
+ raise ArgumentError, 'Expect hash here' unless hash.is_a?(Hash)
353
+ new(hash)
354
+ end
355
+
356
+ attr_reader :content
357
+ GeneratedAttributes.from_schema(self, PAYLOAD_SCHEMA["definitions"]["CheckStatusViewModel[CheckContent]"])
358
+ end
359
+
325
360
  end
@@ -319,10 +319,14 @@ definitions:
319
319
  other:
320
320
  val: 13
321
321
  description: Иной предмет расчета
322
-
323
322
  nomenclatureCode:
324
323
  description: Код товарной номенклатуры
325
- x-comment: base64 массив, что внутри - пока не ясно
324
+ x-comment: |-
325
+ base64 строка
326
+ Данные в массиве представлены в виде строки, в которой:
327
+ первые 4 байта –код справочника;
328
+ последующие 8 байт – код группы товаров;
329
+ последние 20 байт – код идентификации товара
326
330
  x-tag-id: 1162
327
331
  type: string
328
332
  nullable: true
@@ -392,6 +396,7 @@ definitions:
392
396
  description: Акциз
393
397
  x-tag-id: 1229
394
398
  type: number
399
+
395
400
  CheckClose:
396
401
  type: object
397
402
  properties:
@@ -493,6 +498,8 @@ definitions:
493
498
  description: ИНН оператора перевода
494
499
  x-tag-id: 1016
495
500
  type: string
501
+
502
+
496
503
  CheckPayment:
497
504
  type: object
498
505
  properties:
@@ -536,7 +543,6 @@ definitions:
536
543
  type: string
537
544
 
538
545
 
539
-
540
546
  CheckDocumentCreate[CorrectionContent]:
541
547
  type: object
542
548
  x-todo: DRY CheckDocumentCreate[CheckContent] is exactly the same, but has different content field
@@ -552,6 +558,7 @@ definitions:
552
558
  content:
553
559
  "$ref": "#/definitions/CorrectionContent"
554
560
 
561
+
555
562
  CorrectionContent:
556
563
  type: object
557
564
  properties:
@@ -577,7 +584,6 @@ definitions:
577
584
  expense:
578
585
  val: 3
579
586
  description: Расход
580
-
581
587
  description:
582
588
  description: Описание коррекции
583
589
  x-tag-id: 1177
@@ -615,6 +621,7 @@ definitions:
615
621
  x-tag-id: 1031
616
622
  type: number
617
623
  eCashSum:
624
+ x-todo: унифицировать с названиями в CheckPayment.type.x-enum
618
625
  format: double
619
626
  description: Сумма по чеку (БСО) электронными
620
627
  x-tag-id: 1081
@@ -637,32 +644,39 @@ definitions:
637
644
  tax1Sum:
638
645
  format: double
639
646
  description: Сумма НДС чека по ставке 18%
647
+ x-comment: осторожно, номера в названии поля не соответствуют значениям в CheckPosition.tax
640
648
  x-tag-id: 1102
649
+ x-alias: vat_18
641
650
  type: number
642
651
  tax2Sum:
643
652
  format: double
644
653
  description: Сумма НДС чека по ставке 10%
645
654
  x-tag-id: 1103
655
+ x-alias: vat_10
646
656
  type: number
647
657
  tax3Sum:
648
658
  format: double
649
659
  description: Сумма расчета по чеку с НДС по ставке 0%
650
660
  x-tag-id: 1104
661
+ x-alias: vat_0
651
662
  type: number
652
663
  tax4Sum:
653
664
  format: double
654
665
  description: Сумма расчета по чеку без НДС
655
666
  x-tag-id: 1105
667
+ x-alias: vat_not_charged
656
668
  type: number
657
669
  tax5Sum:
658
670
  format: double
659
671
  description: Сумма НДС чека по расч. ставке 18/118
660
672
  x-tag-id: 1106
673
+ x-alias: vat_18_118
661
674
  type: number
662
675
  tax6Sum:
663
676
  format: double
664
677
  description: Сумма НДС чека по расч. ставке 10/110
665
678
  x-tag-id: 1107
679
+ x-alias: vat_10_110
666
680
  type: number
667
681
  taxationSystem:
668
682
  type: integer
@@ -689,88 +703,131 @@ definitions:
689
703
  val: 5
690
704
  description: Патентная система налогообложения, Патент
691
705
 
706
+
692
707
  CheckStatusViewModel[CheckContent]:
693
708
  type: object
694
709
  properties:
695
710
  id:
711
+ description: Идентификатор документа
696
712
  type: string
697
713
  deviceSN:
714
+ description: Заводской номер устройства пробившего чек
698
715
  type: string
699
716
  deviceRN:
717
+ description: Регистрационный номер устройства пробившего чек
700
718
  type: string
701
719
  fsNumber:
720
+ description: Номер фискального накопителя
702
721
  type: string
703
722
  ofdName:
723
+ description: Наименование ОФД
704
724
  type: string
705
725
  ofdWebsite:
726
+ description: Web-сайт ОФД
706
727
  type: string
707
728
  ofdinn:
729
+ description: ИНН ОФД
708
730
  type: string
709
731
  fnsWebsite:
732
+ description: Web-сайт ФНС
710
733
  type: string
711
734
  companyINN:
735
+ description: ИНН пользователя
712
736
  type: string
713
737
  companyName:
738
+ description: Наименование пользователя
714
739
  type: string
715
740
  documentNumber:
741
+ description: Номер ФД
716
742
  format: int64
717
743
  type: integer
718
744
  shiftNumber:
745
+ description: Номер смены
719
746
  format: int32
720
747
  type: integer
721
748
  documentIndex:
749
+ description: Номер чека за смену
722
750
  format: int32
723
751
  type: integer
724
752
  processedAt:
753
+ description: Время регистрации фискального документа в ФН, ISO8601
725
754
  format: date-time
726
755
  type: string
727
756
  content:
757
+ description: Содержимое документа
728
758
  "$ref": "#/definitions/CheckContent"
729
759
  change:
760
+ description: Сдача
730
761
  format: double
731
762
  type: number
732
763
  fp:
764
+ description: Фискальный признак
733
765
  type: string
734
766
 
767
+
735
768
  CheckStatusViewModel[CorrectionContent]:
736
769
  type: object
737
770
  properties:
738
771
  id:
739
772
  type: string
773
+ maxLength: 64
740
774
  deviceSN:
775
+ description: Заводской номер устройства пробившего чек
741
776
  type: string
777
+ maxLength: 20
742
778
  deviceRN:
779
+ description: Регистрационный номер устройства пробившего чек
743
780
  type: string
781
+ maxLength: 20
744
782
  fsNumber:
783
+ description: Номер фискального накопителя
745
784
  type: string
746
785
  ofdName:
786
+ description: Наименование ОФД
747
787
  type: string
788
+ maxLength: 256
748
789
  ofdWebsite:
790
+ description: Web-сайт ОФД
749
791
  type: string
750
792
  ofdinn:
793
+ description: ИНН ОФД
751
794
  type: string
752
795
  fnsWebsite:
796
+ description: Web-сайт ФНС
753
797
  type: string
798
+ maxLength: 256
754
799
  companyINN:
800
+ description: ИНН пользователя
755
801
  type: string
802
+ maxLength: 12
756
803
  companyName:
804
+ description: Наименование пользователя
757
805
  type: string
806
+ maxLength: 256
758
807
  documentNumber:
759
- format: int64
808
+ description: Номер ФД
760
809
  type: integer
810
+ format: int64
761
811
  shiftNumber:
762
- format: int32
812
+ description: Номер смены
763
813
  type: integer
814
+ format: int32
764
815
  documentIndex:
816
+ description: Номер чека за смену
765
817
  format: int32
766
818
  type: integer
767
819
  processedAt:
820
+ description: Время регистрации фискального документа в ФН, ISO8601
768
821
  format: date-time
769
822
  type: string
770
823
  content:
824
+ description: Содержимое документа
771
825
  "$ref": "#/definitions/CorrectionContent"
772
826
  change:
827
+ x-unknown: Сдача?
773
828
  format: double
774
829
  type: number
775
830
  fp:
831
+ description: Фискальный признак
776
832
  type: string
833
+ maxLength: 10
@@ -130,7 +130,7 @@ module OrangeData
130
130
  end
131
131
 
132
132
  def get_correction(inn, document_id)
133
- get_entity "corrections/#{inn}/status/#{document_id}"
133
+ CorrectionResult.from_hash(get_entity("corrections/#{inn}/status/#{document_id}"))
134
134
  end
135
135
 
136
136
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OrangeData
4
4
 
5
- VERSION = "0.0.3"
5
+ VERSION = "0.0.4"
6
6
 
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: orangedata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vasily Fedoseyev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-26 00:00:00.000000000 Z
11
+ date: 2018-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -183,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
183
  version: '0'
184
184
  requirements: []
185
185
  rubyforge_project:
186
- rubygems_version: 2.6.3
186
+ rubygems_version: 2.5.1
187
187
  signing_key:
188
188
  specification_version: 4
189
189
  summary: Ruby client for orangedata.ru service