my_data 0.13.0 → 0.15.0

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
  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>