Skip to content

Commit 0242e39

Browse files
committed
SimpleContent validation as well
1 parent 5b09652 commit 0242e39

File tree

4 files changed

+286
-0
lines changed

4 files changed

+286
-0
lines changed

finvoice/sender/senderinfo.py

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,17 @@ def _cast(typ, value):
635635

636636

637637
class FinvoiceSenderInfo(GeneratedsSuper):
638+
member_data_items_ = [
639+
MemberSpec_('Version', 'xs:NMTOKEN', 0),
640+
MemberSpec_('MessageDetails', 'MessageDetailsType', 0),
641+
MemberSpec_('SellerPartyDetails', 'SellerPartyDetailsType', 0),
642+
MemberSpec_('SellerOrganisationUnitNumber', ['genericStringType5_35', 'xs:string'], 0),
643+
MemberSpec_('InvoiceSenderInformationDetails', 'InvoiceSenderInformationDetailsType', 0),
644+
MemberSpec_('SellerAccountDetails', 'SellerAccountDetailsType', 1),
645+
MemberSpec_('SellerInvoiceDetails', 'SellerInvoiceDetailsType', 0),
646+
MemberSpec_('ProposedDueDateAccepted', ['YesNoType', 'xs:NMTOKEN'], 0),
647+
MemberSpec_('ProposedInvoicePeriodAccepted', ['YesNoType', 'xs:NMTOKEN'], 0),
648+
]
638649
subclass = None
639650
superclass = None
640651
def __init__(self, Version=None, MessageDetails=None, SellerPartyDetails=None, SellerOrganisationUnitNumber=None, InvoiceSenderInformationDetails=None, SellerAccountDetails=None, SellerInvoiceDetails=None, ProposedDueDateAccepted=None, ProposedInvoicePeriodAccepted=None):
@@ -864,6 +875,14 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
864875

865876

866877
class InvoiceSenderInformationDetailsType(GeneratedsSuper):
878+
member_data_items_ = [
879+
MemberSpec_('SellerWebaddressNameText', ['genericStringType0_70', 'xs:string'], 0),
880+
MemberSpec_('SellerWebaddressText', ['genericStringType0_512', 'xs:string'], 0),
881+
MemberSpec_('InvoiceSenderAddress', ['genericStringType0_35', 'xs:string'], 0),
882+
MemberSpec_('InvoiceSenderIntermediatorAddress', ['genericNMtokenType8_11', 'genericNMtokenType', 'xs:token'], 0),
883+
MemberSpec_('NewInvoiceSenderAddress', ['genericStringType0_35', 'xs:string'], 0),
884+
MemberSpec_('NewInvoiceSenderIntermediatorAddress', ['genericNMtokenType8_11', 'genericNMtokenType', 'xs:token'], 0),
885+
]
867886
subclass = None
868887
superclass = None
869888
def __init__(self, SellerWebaddressNameText=None, SellerWebaddressText=None, InvoiceSenderAddress=None, InvoiceSenderIntermediatorAddress=None, NewInvoiceSenderAddress=None, NewInvoiceSenderIntermediatorAddress=None):
@@ -1048,6 +1067,14 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
10481067

10491068

10501069
class MessageDetailsType(GeneratedsSuper):
1070+
member_data_items_ = [
1071+
MemberSpec_('MessageTypeCode', 'xs:string', 0),
1072+
MemberSpec_('MessageTypeText', ['genericStringType0_35', 'xs:string'], 0),
1073+
MemberSpec_('MessageActionCode', ['MessageActionCodeType', 'xs:string'], 0),
1074+
MemberSpec_('MessageActionCodeIdentifier', ['MessageActionCodeIdentifierType', 'xs:NMTOKEN'], 0),
1075+
MemberSpec_('MessageDate', 'date', 0),
1076+
MemberSpec_('SenderInfoIdentifier', ['genericStringType1_48', 'xs:string'], 0),
1077+
]
10511078
subclass = None
10521079
superclass = None
10531080
def __init__(self, MessageTypeCode=None, MessageTypeText=None, MessageActionCode=None, MessageActionCodeIdentifier=None, MessageDate=None, SenderInfoIdentifier=None):
@@ -1233,6 +1260,12 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
12331260

12341261

12351262
class SellerAccountDetailsType(GeneratedsSuper):
1263+
member_data_items_ = [
1264+
MemberSpec_('SellerAccountID', 'SellerAccountIDType1', 0),
1265+
MemberSpec_('SellerBic', 'SellerBicType2', 0),
1266+
MemberSpec_('NewSellerAccountID', 'NewSellerAccountIDType', 0),
1267+
MemberSpec_('NewSellerBic', 'NewSellerBicType', 0),
1268+
]
12361269
subclass = None
12371270
superclass = None
12381271
def __init__(self, SellerAccountID=None, SellerBic=None, NewSellerAccountID=None, NewSellerBic=None):
@@ -1365,6 +1398,10 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
13651398

13661399

13671400
class SellerAccountIDType(GeneratedsSuper):
1401+
member_data_items_ = [
1402+
MemberSpec_('IdentificationSchemeName', 'xs:string', 0),
1403+
MemberSpec_('valueOf_', 'xs:string', 0),
1404+
]
13681405
subclass = None
13691406
superclass = None
13701407
def __init__(self, IdentificationSchemeName=None, valueOf_=None, extensiontype_=None):
@@ -1457,6 +1494,10 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
14571494

14581495

14591496
class SellerBicType(GeneratedsSuper):
1497+
member_data_items_ = [
1498+
MemberSpec_('IdentificationSchemeName', 'xs:string', 0),
1499+
MemberSpec_('valueOf_', 'xs:string', 0),
1500+
]
14601501
subclass = None
14611502
superclass = None
14621503
def __init__(self, IdentificationSchemeName=None, valueOf_=None, extensiontype_=None):
@@ -1549,6 +1590,13 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
15491590

15501591

15511592
class SellerInvoiceDetailsType(GeneratedsSuper):
1593+
member_data_items_ = [
1594+
MemberSpec_('SellerDirectDebitIdentifier', ['genericStringType0_35', 'xs:string'], 0),
1595+
MemberSpec_('PaymentInstructionIdentifier', ['genericStringType1_35', 'xs:string'], 0),
1596+
MemberSpec_('SellerInstructionFreeText', 'SellerInstructionFreeTextType', 1),
1597+
MemberSpec_('SellerInvoiceTypeDetails', 'SellerInvoiceTypeDetailsType', 1),
1598+
MemberSpec_('SellerServiceCode', ['SellerServiceCodeType', 'xs:NMTOKEN'], 0),
1599+
]
15521600
subclass = None
15531601
superclass = None
15541602
def __init__(self, SellerDirectDebitIdentifier=None, PaymentInstructionIdentifier=None, SellerInstructionFreeText=None, SellerInvoiceTypeDetails=None, SellerServiceCode=None):
@@ -1738,6 +1786,13 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
17381786

17391787

17401788
class SellerPartyDetailsType(GeneratedsSuper):
1789+
member_data_items_ = [
1790+
MemberSpec_('SellerPartyIdentifier', ['genericStringType1_48', 'xs:string'], 0),
1791+
MemberSpec_('SellerOrganisationNames', 'SellerOrganisationNamesType', 1),
1792+
MemberSpec_('SellerOrganisationBankName', ['genericStringType1_35', 'xs:string'], 1),
1793+
MemberSpec_('SellerPostalAddressDetails', 'SellerPostalAddressDetailsType', 0),
1794+
MemberSpec_('IndustryCode', ['genericStringType0_6', 'xs:string'], 0),
1795+
]
17411796
subclass = None
17421797
superclass = None
17431798
def __init__(self, SellerPartyIdentifier=None, SellerOrganisationNames=None, SellerOrganisationBankName=None, SellerPostalAddressDetails=None, IndustryCode=None):
@@ -1926,6 +1981,10 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
19261981

19271982

19281983
class SellerOrganisationNamesType(GeneratedsSuper):
1984+
member_data_items_ = [
1985+
MemberSpec_('LanguageCode', 'LanguageCodeType', 0),
1986+
MemberSpec_('SellerOrganisationName', ['genericStringType2_70', 'xs:string'], 1),
1987+
]
19291988
subclass = None
19301989
superclass = None
19311990
def __init__(self, LanguageCode=None, SellerOrganisationName=None):
@@ -2047,6 +2106,14 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
20472106

20482107

20492108
class SellerPostalAddressDetailsType(GeneratedsSuper):
2109+
member_data_items_ = [
2110+
MemberSpec_('SellerStreetName', ['genericStringType2_35', 'xs:string'], 0),
2111+
MemberSpec_('SellerTownName', ['genericStringType2_35', 'xs:string'], 0),
2112+
MemberSpec_('SellerPostCodeIdentifier', ['genericStringType1_48', 'xs:string'], 0),
2113+
MemberSpec_('CountryCode', ['CountryCodeType', 'xs:NMTOKEN'], 0),
2114+
MemberSpec_('CountryName', ['genericStringType2_35', 'xs:string'], 0),
2115+
MemberSpec_('SellerPostOfficeBoxIdentifier', ['genericStringType1_48', 'xs:string'], 0),
2116+
]
20502117
subclass = None
20512118
superclass = None
20522119
def __init__(self, SellerStreetName=None, SellerTownName=None, SellerPostCodeIdentifier=None, CountryCode=None, CountryName=None, SellerPostOfficeBoxIdentifier=None):
@@ -2222,6 +2289,10 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
22222289

22232290

22242291
class date(GeneratedsSuper):
2292+
member_data_items_ = [
2293+
MemberSpec_('Format', 'xs:string', 0),
2294+
MemberSpec_('valueOf_', ['dateType', 'xs:integer'], 0),
2295+
]
22252296
subclass = None
22262297
superclass = None
22272298
def __init__(self, Format=None, valueOf_=None):
@@ -2303,6 +2374,10 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
23032374

23042375

23052376
class TextLanguageOptional(GeneratedsSuper):
2377+
member_data_items_ = [
2378+
MemberSpec_('LanguageCode', 'LanguageCodeType', 0),
2379+
MemberSpec_('valueOf_', 'xs:string', 0),
2380+
]
23062381
subclass = None
23072382
superclass = None
23082383
def __init__(self, LanguageCode=None, valueOf_=None, extensiontype_=None):
@@ -2403,6 +2478,10 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
24032478

24042479

24052480
class TextLanguageRequired(GeneratedsSuper):
2481+
member_data_items_ = [
2482+
MemberSpec_('LanguageCode', 'LanguageCodeType', 0),
2483+
MemberSpec_('valueOf_', 'xs:string', 0),
2484+
]
24062485
subclass = None
24072486
superclass = None
24082487
def __init__(self, LanguageCode=None, valueOf_=None, extensiontype_=None):
@@ -2503,6 +2582,9 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
25032582

25042583

25052584
class SellerAccountIDType1(SellerAccountIDType):
2585+
member_data_items_ = [
2586+
MemberSpec_('valueOf_', 'SellerAccountIDType', 0),
2587+
]
25062588
subclass = None
25072589
superclass = SellerAccountIDType
25082590
def __init__(self, IdentificationSchemeName=None, valueOf_=None):
@@ -2577,6 +2659,9 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
25772659

25782660

25792661
class SellerBicType2(SellerBicType):
2662+
member_data_items_ = [
2663+
MemberSpec_('valueOf_', 'SellerBicType', 0),
2664+
]
25802665
subclass = None
25812666
superclass = SellerBicType
25822667
def __init__(self, IdentificationSchemeName=None, valueOf_=None):
@@ -2651,6 +2736,9 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
26512736

26522737

26532738
class NewSellerAccountIDType(SellerAccountIDType):
2739+
member_data_items_ = [
2740+
MemberSpec_('valueOf_', 'SellerAccountIDType', 0),
2741+
]
26542742
subclass = None
26552743
superclass = SellerAccountIDType
26562744
def __init__(self, IdentificationSchemeName=None, valueOf_=None):
@@ -2725,6 +2813,9 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
27252813

27262814

27272815
class NewSellerBicType(SellerBicType):
2816+
member_data_items_ = [
2817+
MemberSpec_('valueOf_', 'SellerBicType', 0),
2818+
]
27282819
subclass = None
27292820
superclass = SellerBicType
27302821
def __init__(self, IdentificationSchemeName=None, valueOf_=None):
@@ -2799,6 +2890,9 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
27992890

28002891

28012892
class SellerInstructionFreeTextType(TextLanguageOptional):
2893+
member_data_items_ = [
2894+
MemberSpec_('valueOf_', 'TextLanguageOptional', 0),
2895+
]
28022896
subclass = None
28032897
superclass = TextLanguageOptional
28042898
def __init__(self, LanguageCode=None, valueOf_=None):
@@ -2873,6 +2967,10 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
28732967

28742968

28752969
class SellerInvoiceTypeDetailsType(GeneratedsSuper):
2970+
member_data_items_ = [
2971+
MemberSpec_('SellerInvoiceTypeText', 'SellerInvoiceTypeTextType', 0),
2972+
MemberSpec_('SellerInvoiceIdentifierText', 'SellerInvoiceIdentifierTextType3', 1),
2973+
]
28762974
subclass = None
28772975
superclass = None
28782976
def __init__(self, SellerInvoiceTypeText=None, SellerInvoiceIdentifierText=None):
@@ -2983,6 +3081,9 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
29833081

29843082

29853083
class SellerInvoiceTypeTextType(TextLanguageRequired):
3084+
member_data_items_ = [
3085+
MemberSpec_('valueOf_', 'TextLanguageRequired', 0),
3086+
]
29863087
subclass = None
29873088
superclass = TextLanguageRequired
29883089
def __init__(self, LanguageCode=None, valueOf_=None):
@@ -3053,10 +3154,33 @@ def buildAttributes(self, node, attrs, already_processed):
30533154
super(SellerInvoiceTypeTextType, self).buildAttributes(node, attrs, already_processed)
30543155
def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
30553156
pass
3157+
def validate_valueOf_(self, value):
3158+
if ( isinstance( value, basestring ) and 0 <= value.__len__() <= 35 ):
3159+
pass
3160+
else:
3161+
raise_value_error( value, 'Expected value between 0..35 characters' )
3162+
return value
3163+
def build(self, node):
3164+
already_processed = set()
3165+
self.buildAttributes(node, node.attrib, already_processed)
3166+
self.valueOf_ = get_all_text_(node)
3167+
self.validate_valueOf_(self.valueOf_)
3168+
for child in node:
3169+
nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
3170+
self.buildChildren(child, node, nodeName_)
3171+
return self
30563172
# end class SellerInvoiceTypeTextType
30573173

30583174

30593175
class SellerInvoiceIdentifierTextType(TextLanguageRequired):
3176+
member_data_items_ = [
3177+
MemberSpec_('SellerInvoiceIdentifierType', 'SellerInvoiceIdentifierTypeCode', 0),
3178+
MemberSpec_('SellerInvoiceIdentifierMinLength', 'xs:integer', 0),
3179+
MemberSpec_('SellerInvoiceIdentifierHyphens', 'xs:boolean', 0),
3180+
MemberSpec_('SellerInvoiceIdentifierSpaces', 'xs:boolean', 0),
3181+
MemberSpec_('SellerInvoiceIdentifierMaxLength', 'xs:integer', 0),
3182+
MemberSpec_('valueOf_', 'TextLanguageRequired', 0),
3183+
]
30603184
subclass = None
30613185
superclass = TextLanguageRequired
30623186
def __init__(self, LanguageCode=None, SellerInvoiceIdentifierType=None, SellerInvoiceIdentifierMinLength=1, SellerInvoiceIdentifierHyphens=False, SellerInvoiceIdentifierSpaces=False, SellerInvoiceIdentifierMaxLength=35, valueOf_=None, extensiontype_=None):
@@ -3237,6 +3361,9 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False):
32373361

32383362

32393363
class SellerInvoiceIdentifierTextType3(SellerInvoiceIdentifierTextType):
3364+
member_data_items_ = [
3365+
MemberSpec_('valueOf_', 'SellerInvoiceIdentifierTextType', 0),
3366+
]
32403367
subclass = None
32413368
superclass = SellerInvoiceIdentifierTextType
32423369
def __init__(self, LanguageCode=None, SellerInvoiceIdentifierType=None, SellerInvoiceIdentifierMinLength=1, SellerInvoiceIdentifierHyphens=False, SellerInvoiceIdentifierSpaces=False, SellerInvoiceIdentifierMaxLength=35, valueOf_=None):

finvoice/sender/senderinfosubs.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
# along with py-finvoice. If not, see <http://www.gnu.org/licenses/>.
2020
##
2121

22+
# Command line:
23+
# /usr/local/bin/generateDS.py -s "finvoice/sender/senderinfosubs.py" -o "finvoice/sender/senderinfo.py" --super="finvoice.sender.senderinfo" --external-encoding="iso8859-15" --no-dates --no-versions --validator-bodies="stubs/validator/sender/senderinfo/" --user-methods="generators.gends_user_methods_senderinfo" xsd/FinvoiceSenderInfo.xsd
24+
2225
import sys
2326

2427
import finvoice.sender.senderinfo as supermod

generators/__init__.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
###
2+
# Copyright 2014 Code Master Oy (http://www.codemaster.fi/)
3+
#
4+
# This file is part of py-finvoice.
5+
#
6+
# py-finvoice is free software: you can redistribute it and/or modify
7+
# it under the terms of the GNU General Public License as published by
8+
# the Free Software Foundation, either version 3 of the License, or
9+
# (at your option) any later version.
10+
#
11+
# py-finvoice is distributed in the hope that it will be useful,
12+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
# GNU General Public License for more details.
15+
#
16+
# You should have received a copy of the GNU General Public License
17+
# along with py-finvoice. If not, see <http://www.gnu.org/licenses/>.
18+
##
19+
20+
__all__ = [ 'gends_user_methods_senderinfo' ]

0 commit comments

Comments
 (0)