orangedata 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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