my_data 0.13.0 → 0.15.0

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
  SHA256:
3
- metadata.gz: af89a9fa376a25e57ec9c55cbcce971449645a1e6ec43575c39bff1b2499aabd
4
- data.tar.gz: c918d3c0dd443274e249f0c48f0f07e87f3df1257ebb86db7a4614c9d4f79762
3
+ metadata.gz: f645633ff2930c7d5aa71ec9c84d010206752f633028359045ace70cb74c79db
4
+ data.tar.gz: 473ee8da0f2502f30fb7754eb8350ce985cf1b1683024fd092d1cc2fd26d8d35
5
5
  SHA512:
6
- metadata.gz: e475bc50cc1991f3e04e5e41f652f9d888b5fcbc3bf9cf338a8ed2b8ce5e2dd2c2eeaacc8be946e798d648e110d9d78970a088bcf73b4742da2c1f2a9d09fca5
7
- data.tar.gz: a7333256ec6b3407e1384ffa31beff4f38341a05c749827fc440bed505a44a8f75f35a4177dd989619a8fabf34feb71bdf1ab9f441c75462bca143bea9d38243
6
+ metadata.gz: 3e4add765c173855538d158581bc4a6a15a5fe366c4e0b8ec9cd92c837f89390d2c72695aa7d0cfe19e6ea28fd1e0b85c31b68e15e747d7b37538d75f875e1ae
7
+ data.tar.gz: a278e25119e56a4416a4de91603e83bafb44fb54fb8d85ac7bf9b67804e98a55ac2502c2e4bf989a61aa321cd19f18f106acb2295866d9c32497ddd22b8af826
data/.rubocop.yml CHANGED
@@ -11,7 +11,7 @@ Metrics/MethodLength:
11
11
  Max: 15
12
12
 
13
13
  Metrics/BlockLength:
14
- IgnoredMethods:
14
+ AllowedMethods:
15
15
  - class_methods
16
16
 
17
17
  Style/Documentation:
data/README.md CHANGED
@@ -85,6 +85,15 @@ client.request_transmitted_docs(mark: 1)
85
85
  client.cancel_invoice(mark: 400001831924171)
86
86
  ```
87
87
 
88
+ ## Development
89
+ To update the XSD files, it's necessary to regenerate the associated resources. To accomplish this, follow these steps from the root project directory:
90
+ Start the console by typing `console`.
91
+ Once in the console, execute the following commands:
92
+ ```ruby
93
+ MyData::Xsd::ResourceGenerator.generate_docs
94
+ MyData::Xsd::ResourceGenerator.generate_types
95
+ ```
96
+
88
97
  ## Contributing
89
98
 
90
99
  Bug reports and pull requests are welcome on GitHub at https://github.com/mikezaby/my_data.
@@ -67,7 +67,7 @@ module MyData
67
67
  format_attrs = attributes.map do |name|
68
68
  mapping = mappings[name]
69
69
  type = mapping[:type] == :resource ? mapping[:resource].name : mapping[:type]
70
- type = mapping[:collection] ? "[#{type}]" : type
70
+ type = "[#{type}]" if mapping[:collection]
71
71
 
72
72
  "#{name}: #{type}"
73
73
  end
@@ -142,7 +142,7 @@ module MyData
142
142
  end
143
143
 
144
144
  def attributes=(attrs)
145
- attrs = attrs.respond_to?(:attributes) ? attrs.attributes : attrs
145
+ attrs = attrs.attributes if attrs.respond_to?(:attributes)
146
146
 
147
147
  attrs.each do |key, value|
148
148
  next unless attribute_names.include?(key.to_s)
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class MyData::Resources::Inv::EntityType
4
+ include MyData::Resource
5
+
6
+ xsd_complex_type
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class MyData::Resources::Inv::TransportDetailType
4
+ include MyData::Resource
5
+
6
+ xsd_complex_type
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class MyData::Resources::ProviderInfoType
4
+ include MyData::Resource
5
+
6
+ xsd_complex_type
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class MyData::Resources::ReceptionEmailsType
4
+ include MyData::Resource
5
+
6
+ xsd_complex_type
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class MyData::Resources::ReceptionProvidersType
4
+ include MyData::Resource
5
+
6
+ xsd_complex_type
7
+ end
@@ -27,7 +27,7 @@ module MyData
27
27
  private
28
28
 
29
29
  def type_cast_string(value)
30
- value ? value.to_s.strip : nil
30
+ value&.to_s&.strip
31
31
  end
32
32
 
33
33
  def type_cast_integer(value)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MyData
4
- VERSION = "0.13.0"
4
+ VERSION = "0.15.0"
5
5
  end
@@ -36,6 +36,8 @@ module MyData
36
36
  case mappings[key][:type]
37
37
  when :date
38
38
  value.strftime("%Y-%m-%d")
39
+ when :time
40
+ value.strftime("%H:%M:%S")
39
41
  else
40
42
  value.to_s
41
43
  end
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:inv="http://www.aade.gr/myDATA/invoice/v1.0" xmlns:icls="https://www.aade.gr/myDATA/incomeClassificaton/v1.0" xmlns:ecls="https://www.aade.gr/myDATA/expensesClassificaton/v1.0" targetNamespace="http://www.aade.gr/myDATA/invoice/v1.0" elementFormDefault="qualified" version="1.0.2">
3
- <xs:import namespace="https://www.aade.gr/myDATA/incomeClassificaton/v1.0" schemaLocation="incomeClassification-v1.0.2.xsd"/>
4
- <xs:import namespace="https://www.aade.gr/myDATA/expensesClassificaton/v1.0" schemaLocation="expensesClassification-v1.0.2.xsd"/>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:inv="http://www.aade.gr/myDATA/invoice/v1.0" xmlns:icls="https://www.aade.gr/myDATA/incomeClassificaton/v1.0" xmlns:ecls="https://www.aade.gr/myDATA/expensesClassificaton/v1.0" targetNamespace="http://www.aade.gr/myDATA/invoice/v1.0" elementFormDefault="qualified" version="1.0.7">
3
+ <xs:import namespace="https://www.aade.gr/myDATA/incomeClassificaton/v1.0" schemaLocation="incomeClassification-v1.0.7.xsd"/>
4
+ <xs:import namespace="https://www.aade.gr/myDATA/expensesClassificaton/v1.0" schemaLocation="expensesClassification-v1.0.7.xsd"/>
5
5
  <xs:element name="InvoicesDoc">
6
6
  <xs:annotation>
7
7
  <xs:documentation>Παραστατικό ΑΑΔΕ</xs:documentation>
@@ -36,12 +36,12 @@
36
36
  </xs:element>
37
37
  <xs:element name="transmissionFailure" minOccurs="0">
38
38
  <xs:annotation>
39
- <xs:documentation>Αδυναμία Επικοινωνίας Παρόχου</xs:documentation>
39
+ <xs:documentation>Αδυναμία Επικοινωνίας Παρόχου ή Αδυναμία διαβίβασης ERP</xs:documentation>
40
40
  </xs:annotation>
41
41
  <xs:simpleType>
42
42
  <xs:restriction base="xs:byte">
43
43
  <xs:minInclusive value="1"/>
44
- <xs:maxInclusive value="2"/>
44
+ <xs:maxInclusive value="3"/>
45
45
  </xs:restriction>
46
46
  </xs:simpleType>
47
47
  </xs:element>
@@ -94,6 +94,16 @@
94
94
  <xs:documentation>Συγκεντρωτικά Στοιχεία</xs:documentation>
95
95
  </xs:annotation>
96
96
  </xs:element>
97
+ <xs:element name="qrCodeUrl" type="xs:string" minOccurs="0">
98
+ <xs:annotation>
99
+ <xs:documentation>QR Code Url</xs:documentation>
100
+ </xs:annotation>
101
+ </xs:element>
102
+ <xs:element name="otherTransportDetails" type="inv:TransportDetailType" minOccurs="0" maxOccurs="unbounded">
103
+ <xs:annotation>
104
+ <xs:documentation>Λοιπές Λεπτομέρειες Διακίνησης (Ορισμός - Αλλαγή Μτφ Μέσων, Μεταφορτώσεις, κλπ)</xs:documentation>
105
+ </xs:annotation>
106
+ </xs:element>
97
107
  </xs:sequence>
98
108
  </xs:complexType>
99
109
  <xs:complexType name="InvoiceHeaderType">
@@ -187,6 +197,26 @@
187
197
  </xs:restriction>
188
198
  </xs:simpleType>
189
199
  </xs:element>
200
+ <xs:element name="fuelInvoice" type="xs:boolean" minOccurs="0">
201
+ <xs:annotation>
202
+ <xs:documentation>Παραστατικό Καυσίμων</xs:documentation>
203
+ </xs:annotation>
204
+ </xs:element>
205
+ <xs:element name="specialInvoiceCategory" type="inv:SpecialInvoiceCategoryType" minOccurs="0">
206
+ <xs:annotation>
207
+ <xs:documentation>Ειδική Κατηγορία Παραστατικού</xs:documentation>
208
+ </xs:annotation>
209
+ </xs:element>
210
+ <xs:element name="invoiceVariationType" type="inv:InvoiceVariationType" minOccurs="0">
211
+ <xs:annotation>
212
+ <xs:documentation>Τύπος Απόκλισης Παραστατικού</xs:documentation>
213
+ </xs:annotation>
214
+ </xs:element>
215
+ <xs:element name="otherCorrelatedEntities" type="inv:EntityType" minOccurs="0" maxOccurs="unbounded">
216
+ <xs:annotation>
217
+ <xs:documentation>Λοιπές συσχετιζόμενες οντοτήτες</xs:documentation>
218
+ </xs:annotation>
219
+ </xs:element>
190
220
  </xs:sequence>
191
221
  </xs:complexType>
192
222
  <xs:complexType name="InvoiceRowType">
@@ -208,10 +238,25 @@
208
238
  <xs:simpleType>
209
239
  <xs:restriction base="xs:int">
210
240
  <xs:minInclusive value="1"/>
211
- <xs:maxInclusive value="6"/>
241
+ <xs:maxInclusive value="7"/>
242
+ </xs:restriction>
243
+ </xs:simpleType>
244
+ </xs:element>
245
+ <xs:element name="itemDescr" minOccurs="0">
246
+ <xs:annotation>
247
+ <xs:documentation>Περιγραφή Είδους</xs:documentation>
248
+ </xs:annotation>
249
+ <xs:simpleType>
250
+ <xs:restriction base="xs:string">
251
+ <xs:maxLength value="300"/>
212
252
  </xs:restriction>
213
253
  </xs:simpleType>
214
254
  </xs:element>
255
+ <xs:element name="fuelCode" type="inv:FuelCodes" minOccurs="0">
256
+ <xs:annotation>
257
+ <xs:documentation>Κωδικός Καυσίμου</xs:documentation>
258
+ </xs:annotation>
259
+ </xs:element>
215
260
  <xs:element name="quantity" minOccurs="0">
216
261
  <xs:annotation>
217
262
  <xs:documentation>Ποσότητα</xs:documentation>
@@ -330,6 +375,16 @@
330
375
  <xs:documentation>Λίστα Χαρακτηρισμού Εξόδων</xs:documentation>
331
376
  </xs:annotation>
332
377
  </xs:element>
378
+ <xs:element name="quantity15" minOccurs="0">
379
+ <xs:annotation>
380
+ <xs:documentation>Ποσότητα Θερμοκρασίας 15 βαθμών</xs:documentation>
381
+ </xs:annotation>
382
+ <xs:simpleType>
383
+ <xs:restriction base="xs:decimal">
384
+ <xs:minExclusive value="0"/>
385
+ </xs:restriction>
386
+ </xs:simpleType>
387
+ </xs:element>
333
388
  </xs:sequence>
334
389
  </xs:complexType>
335
390
  <xs:complexType name="InvoiceSummaryType">
@@ -384,14 +439,19 @@
384
439
  </xs:complexType>
385
440
  <xs:complexType name="PartyType">
386
441
  <xs:sequence>
387
- <xs:element name="vatNumber" type="xs:string">
388
- <xs:annotation>
389
- <xs:documentation>ΑΦΜ</xs:documentation>
390
- </xs:annotation>
442
+ <xs:element name="vatNumber">
443
+ <xs:simpleType>
444
+ <xs:annotation>
445
+ <xs:documentation>ΑΦΜ</xs:documentation>
446
+ </xs:annotation>
447
+ <xs:restriction base="xs:string">
448
+ <xs:maxLength value="30"/>
449
+ </xs:restriction>
450
+ </xs:simpleType>
391
451
  </xs:element>
392
452
  <xs:element name="country" type="inv:CountryType">
393
453
  <xs:annotation>
394
- <xs:documentation>Κωδ, Χώρας</xs:documentation>
454
+ <xs:documentation>Κωδ. Χώρας</xs:documentation>
395
455
  </xs:annotation>
396
456
  </xs:element>
397
457
  <xs:element name="branch" type="xs:int">
@@ -400,15 +460,12 @@
400
460
  </xs:annotation>
401
461
  </xs:element>
402
462
  <xs:element name="name" minOccurs="0">
403
- <xs:annotation>
404
- <xs:documentation>Επωνυμία</xs:documentation>
405
- </xs:annotation>
406
463
  <xs:simpleType>
407
464
  <xs:annotation>
408
465
  <xs:documentation>Επωνυμία</xs:documentation>
409
466
  </xs:annotation>
410
467
  <xs:restriction base="xs:string">
411
- <xs:maxLength value="150"/>
468
+ <xs:maxLength value="200"/>
412
469
  </xs:restriction>
413
470
  </xs:simpleType>
414
471
  </xs:element>
@@ -417,6 +474,31 @@
417
474
  <xs:documentation>Διεύθυνση</xs:documentation>
418
475
  </xs:annotation>
419
476
  </xs:element>
477
+ <xs:element name="documentIdNo" minOccurs="0">
478
+ <xs:simpleType>
479
+ <xs:annotation>
480
+ <xs:documentation>Αριθμός επίσημου εγγράφου</xs:documentation>
481
+ </xs:annotation>
482
+ <xs:restriction base="xs:string">
483
+ <xs:maxLength value="100"/>
484
+ </xs:restriction>
485
+ </xs:simpleType>
486
+ </xs:element>
487
+ <xs:element name="supplyAccountNo" minOccurs="0">
488
+ <xs:annotation>
489
+ <xs:documentation>Αρ. Παροχής Ηλ. Ρεύματος</xs:documentation>
490
+ </xs:annotation>
491
+ <xs:simpleType>
492
+ <xs:restriction base="xs:string">
493
+ <xs:maxLength value="100"/>
494
+ </xs:restriction>
495
+ </xs:simpleType>
496
+ </xs:element>
497
+ <xs:element name="countryDocumentId" type="inv:CountryType" minOccurs="0">
498
+ <xs:annotation>
499
+ <xs:documentation>Κωδ. Χώρας Έκδοσης Επίσημου Εγγράφου</xs:documentation>
500
+ </xs:annotation>
501
+ </xs:element>
420
502
  </xs:sequence>
421
503
  </xs:complexType>
422
504
  <xs:complexType name="AddressType">
@@ -424,7 +506,7 @@
424
506
  <xs:element name="street" minOccurs="0">
425
507
  <xs:simpleType>
426
508
  <xs:annotation>
427
- <xs:documentation>Επωνυμία</xs:documentation>
509
+ <xs:documentation>Όνομα</xs:documentation>
428
510
  </xs:annotation>
429
511
  <xs:restriction base="xs:string">
430
512
  <xs:maxLength value="150"/>
@@ -491,7 +573,7 @@
491
573
  <xs:simpleType>
492
574
  <xs:restriction base="xs:int">
493
575
  <xs:minInclusive value="1"/>
494
- <xs:maxInclusive value="5"/>
576
+ <xs:maxInclusive value="7"/>
495
577
  </xs:restriction>
496
578
  </xs:simpleType>
497
579
  </xs:element>
@@ -525,7 +607,7 @@
525
607
  <xs:documentation>Κατηγορία Φόρου</xs:documentation>
526
608
  </xs:annotation>
527
609
  <xs:simpleType>
528
- <xs:restriction base="xs:byte">
610
+ <xs:restriction base="xs:int">
529
611
  <xs:minInclusive value="1"/>
530
612
  </xs:restriction>
531
613
  </xs:simpleType>
@@ -718,6 +800,7 @@
718
800
  <xs:enumeration value="NR"/>
719
801
  <xs:enumeration value="NU"/>
720
802
  <xs:enumeration value="NZ"/>
803
+ <xs:enumeration value="OC"/>
721
804
  <xs:enumeration value="OM"/>
722
805
  <xs:enumeration value="PA"/>
723
806
  <xs:enumeration value="PE"/>
@@ -1045,31 +1128,31 @@
1045
1128
  <xs:simpleType name="VatExemptionType">
1046
1129
  <xs:restriction base="xs:int">
1047
1130
  <xs:minInclusive value="1"/>
1048
- <xs:maxInclusive value="24"/>
1131
+ <xs:maxInclusive value="31"/>
1049
1132
  </xs:restriction>
1050
1133
  </xs:simpleType>
1051
1134
  <xs:simpleType name="WithheldType">
1052
1135
  <xs:restriction base="xs:int">
1053
1136
  <xs:minInclusive value="1"/>
1054
- <xs:maxInclusive value="15"/>
1137
+ <xs:maxInclusive value="18"/>
1055
1138
  </xs:restriction>
1056
1139
  </xs:simpleType>
1057
1140
  <xs:simpleType name="StampDutyType">
1058
1141
  <xs:restriction base="xs:int">
1059
1142
  <xs:minInclusive value="1"/>
1060
- <xs:maxInclusive value="3"/>
1143
+ <xs:maxInclusive value="4"/>
1061
1144
  </xs:restriction>
1062
1145
  </xs:simpleType>
1063
1146
  <xs:simpleType name="FeesType">
1064
1147
  <xs:restriction base="xs:int">
1065
1148
  <xs:minInclusive value="1"/>
1066
- <xs:maxInclusive value="9"/>
1149
+ <xs:maxInclusive value="22"/>
1067
1150
  </xs:restriction>
1068
1151
  </xs:simpleType>
1069
1152
  <xs:simpleType name="OtherTaxesType">
1070
1153
  <xs:restriction base="xs:int">
1071
1154
  <xs:minInclusive value="1"/>
1072
- <xs:maxInclusive value="14"/>
1155
+ <xs:maxInclusive value="19"/>
1073
1156
  </xs:restriction>
1074
1157
  </xs:simpleType>
1075
1158
  <xs:simpleType name="DeductionsType">
@@ -1083,6 +1166,93 @@
1083
1166
  <xs:restriction base="xs:decimal">
1084
1167
  <xs:fractionDigits value="2"/>
1085
1168
  <xs:minInclusive value="0"/>
1169
+ <xs:totalDigits value="15"/>
1170
+ </xs:restriction>
1171
+ </xs:simpleType>
1172
+ <xs:simpleType name="FuelCodes">
1173
+ <xs:restriction base="xs:string">
1174
+ <xs:enumeration value="10"/>
1175
+ <xs:enumeration value="11"/>
1176
+ <xs:enumeration value="12"/>
1177
+ <xs:enumeration value="13"/>
1178
+ <xs:enumeration value="14"/>
1179
+ <xs:enumeration value="15"/>
1180
+ <xs:enumeration value="20"/>
1181
+ <xs:enumeration value="21"/>
1182
+ <xs:enumeration value="30"/>
1183
+ <xs:enumeration value="31"/>
1184
+ <xs:enumeration value="32"/>
1185
+ <xs:enumeration value="33"/>
1186
+ <xs:enumeration value="34"/>
1187
+ <xs:enumeration value="35"/>
1188
+ <xs:enumeration value="36"/>
1189
+ <xs:enumeration value="37"/>
1190
+ <xs:enumeration value="38"/>
1191
+ <xs:enumeration value="40"/>
1192
+ <xs:enumeration value="41"/>
1193
+ <xs:enumeration value="42"/>
1194
+ <xs:enumeration value="43"/>
1195
+ <xs:enumeration value="44"/>
1196
+ <xs:enumeration value="50"/>
1197
+ <xs:enumeration value="60"/>
1198
+ <xs:enumeration value="61"/>
1199
+ <xs:enumeration value="70"/>
1200
+ <xs:enumeration value="71"/>
1201
+ <xs:enumeration value="72"/>
1202
+ <xs:enumeration value="999"/>
1203
+ </xs:restriction>
1204
+ </xs:simpleType>
1205
+ <xs:simpleType name="SpecialInvoiceCategoryType">
1206
+ <xs:restriction base="xs:int">
1207
+ <xs:minInclusive value="1"/>
1208
+ <xs:maxInclusive value="10"/>
1209
+ </xs:restriction>
1210
+ </xs:simpleType>
1211
+ <xs:simpleType name="InvoiceVariationType">
1212
+ <xs:restriction base="xs:int">
1213
+ <xs:minInclusive value="1"/>
1214
+ <xs:maxInclusive value="4"/>
1215
+ </xs:restriction>
1216
+ </xs:simpleType>
1217
+ <xs:simpleType name="AmountType2">
1218
+ <xs:restriction base="xs:decimal">
1219
+ <xs:fractionDigits value="3"/>
1220
+ <xs:minInclusive value="0"/>
1221
+ <xs:totalDigits value="14"/>
1086
1222
  </xs:restriction>
1087
1223
  </xs:simpleType>
1224
+ <xs:complexType name="EntityType">
1225
+ <xs:sequence>
1226
+ <xs:element name="type">
1227
+ <xs:annotation>
1228
+ <xs:documentation>Κατηγορία</xs:documentation>
1229
+ </xs:annotation>
1230
+ <xs:simpleType>
1231
+ <xs:restriction base="xs:int">
1232
+ <xs:minInclusive value="1"/>
1233
+ <xs:maxInclusive value="2"/>
1234
+ </xs:restriction>
1235
+ </xs:simpleType>
1236
+ </xs:element>
1237
+ <xs:element name="entityData" type="inv:PartyType">
1238
+ <xs:annotation>
1239
+ <xs:documentation>Στοιχεία Οντότητας</xs:documentation>
1240
+ </xs:annotation>
1241
+ </xs:element>
1242
+ </xs:sequence>
1243
+ </xs:complexType>
1244
+ <xs:complexType name="TransportDetailType">
1245
+ <xs:sequence>
1246
+ <xs:element name="vehicleNumber">
1247
+ <xs:annotation>
1248
+ <xs:documentation>Αριθμός Μεταφορικού Μέσου</xs:documentation>
1249
+ </xs:annotation>
1250
+ <xs:simpleType>
1251
+ <xs:restriction base="xs:string">
1252
+ <xs:maxLength value="50"/>
1253
+ </xs:restriction>
1254
+ </xs:simpleType>
1255
+ </xs:element>
1256
+ </xs:sequence>
1257
+ </xs:complexType>
1088
1258
  </xs:schema>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.2">
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.7">
3
3
  <xs:element name="RequestedProviderDoc">
4
4
  <xs:annotation>
5
5
  <xs:documentation>Παραστατικά από Πάροχο</xs:documentation>