|
20 | 20 | # along with py-finvoice. If not, see <http://www.gnu.org/licenses/>. |
21 | 21 | ## |
22 | 22 |
|
| 23 | +# Command line: |
| 24 | +# /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 |
| 25 | + |
23 | 26 | import sys |
24 | 27 | import getopt |
25 | 28 | import re as re_ |
@@ -1490,6 +1493,37 @@ def buildAttributes(self, node, attrs, already_processed): |
1490 | 1493 | self.extensiontype_ = value |
1491 | 1494 | def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): |
1492 | 1495 | pass |
| 1496 | + def validate_valueOf_(self, value): |
| 1497 | + if ( isinstance( value, basestring ) and value.__len__() <= 35 ): |
| 1498 | + pass |
| 1499 | + else: |
| 1500 | + raise_value_error( value, 'Expected less than 35 characters' ) |
| 1501 | + return value |
| 1502 | + def build(self, node): |
| 1503 | + already_processed = set() |
| 1504 | + self.buildAttributes(node, node.attrib, already_processed) |
| 1505 | + self.valueOf_ = get_all_text_(node) |
| 1506 | + self.validate_valueOf_(self.valueOf_) |
| 1507 | + for child in node: |
| 1508 | + nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] |
| 1509 | + self.buildChildren(child, node, nodeName_) |
| 1510 | + return self |
| 1511 | + def validate_IdentificationSchemeName(self, value): |
| 1512 | + if ( value == "IBAN" ): |
| 1513 | + pass |
| 1514 | + else: |
| 1515 | + raise_value_error( value, 'Expected "IBAN"' ) |
| 1516 | + return value |
| 1517 | + def buildAttributes(self, node, attrs, already_processed): |
| 1518 | + value = find_attr_value_('IdentificationSchemeName', node) |
| 1519 | + if value is not None and 'IdentificationSchemeName' not in already_processed: |
| 1520 | + already_processed.add('IdentificationSchemeName') |
| 1521 | + self.IdentificationSchemeName = value |
| 1522 | + self.validate_IdentificationSchemeName(self.IdentificationSchemeName) |
| 1523 | + value = find_attr_value_('xsi:type', node) |
| 1524 | + if value is not None and 'xsi:type' not in already_processed: |
| 1525 | + already_processed.add('xsi:type') |
| 1526 | + self.extensiontype_ = value |
1493 | 1527 | # end class SellerAccountIDType |
1494 | 1528 |
|
1495 | 1529 |
|
@@ -1586,6 +1620,37 @@ def buildAttributes(self, node, attrs, already_processed): |
1586 | 1620 | self.extensiontype_ = value |
1587 | 1621 | def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): |
1588 | 1622 | pass |
| 1623 | + def validate_valueOf_(self, value): |
| 1624 | + if ( isinstance( value, basestring ) and 8 <= value.__len__() <= 11 ): |
| 1625 | + pass |
| 1626 | + else: |
| 1627 | + raise_value_error( value, 'Expected value between 8..11 characters' ) |
| 1628 | + return value |
| 1629 | + def build(self, node): |
| 1630 | + already_processed = set() |
| 1631 | + self.buildAttributes(node, node.attrib, already_processed) |
| 1632 | + self.valueOf_ = get_all_text_(node) |
| 1633 | + self.validate_valueOf_(self.valueOf_) |
| 1634 | + for child in node: |
| 1635 | + nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] |
| 1636 | + self.buildChildren(child, node, nodeName_) |
| 1637 | + return self |
| 1638 | + def validate_IdentificationSchemeName(self, value): |
| 1639 | + if ( value == "BIC" ): |
| 1640 | + pass |
| 1641 | + else: |
| 1642 | + raise_value_error( value, 'Expected "BIC"' ) |
| 1643 | + return value |
| 1644 | + def buildAttributes(self, node, attrs, already_processed): |
| 1645 | + value = find_attr_value_('IdentificationSchemeName', node) |
| 1646 | + if value is not None and 'IdentificationSchemeName' not in already_processed: |
| 1647 | + already_processed.add('IdentificationSchemeName') |
| 1648 | + self.IdentificationSchemeName = value |
| 1649 | + self.validate_IdentificationSchemeName(self.IdentificationSchemeName) |
| 1650 | + value = find_attr_value_('xsi:type', node) |
| 1651 | + if value is not None and 'xsi:type' not in already_processed: |
| 1652 | + already_processed.add('xsi:type') |
| 1653 | + self.extensiontype_ = value |
1589 | 1654 | # end class SellerBicType |
1590 | 1655 |
|
1591 | 1656 |
|
@@ -1782,6 +1847,39 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): |
1782 | 1847 | SellerServiceCode_ = self.gds_validate_string(SellerServiceCode_, node, 'SellerServiceCode') |
1783 | 1848 | self.SellerServiceCode = SellerServiceCode_ |
1784 | 1849 | self.validate_SellerServiceCodeType(self.SellerServiceCode) # validate type SellerServiceCodeType |
| 1850 | + def validate_SellerInstructionFreeTextType(self, value): |
| 1851 | + if ( value.__len__() <= 3 ): |
| 1852 | + pass |
| 1853 | + else: |
| 1854 | + raise_value_error( value.__len__(), 'Expected maximum of 3 elements' ) |
| 1855 | + return value |
| 1856 | + def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): |
| 1857 | + if nodeName_ == 'SellerDirectDebitIdentifier': |
| 1858 | + SellerDirectDebitIdentifier_ = child_.text |
| 1859 | + SellerDirectDebitIdentifier_ = self.gds_validate_string(SellerDirectDebitIdentifier_, node, 'SellerDirectDebitIdentifier') |
| 1860 | + self.SellerDirectDebitIdentifier = SellerDirectDebitIdentifier_ |
| 1861 | + self.validate_genericStringType0_35(self.SellerDirectDebitIdentifier) # validate type genericStringType0_35 |
| 1862 | + elif nodeName_ == 'PaymentInstructionIdentifier': |
| 1863 | + PaymentInstructionIdentifier_ = child_.text |
| 1864 | + PaymentInstructionIdentifier_ = self.gds_validate_string(PaymentInstructionIdentifier_, node, 'PaymentInstructionIdentifier') |
| 1865 | + self.PaymentInstructionIdentifier = PaymentInstructionIdentifier_ |
| 1866 | + self.validate_genericStringType1_35(self.PaymentInstructionIdentifier) # validate type genericStringType1_35 |
| 1867 | + elif nodeName_ == 'SellerInstructionFreeText': |
| 1868 | + obj_ = SellerInstructionFreeTextType.factory() |
| 1869 | + obj_.build(child_) |
| 1870 | + self.SellerInstructionFreeText.append(obj_) |
| 1871 | + self.validate_SellerInstructionFreeTextType(self.SellerInstructionFreeText) |
| 1872 | + obj_.original_tagname_ = 'SellerInstructionFreeText' |
| 1873 | + elif nodeName_ == 'SellerInvoiceTypeDetails': |
| 1874 | + obj_ = SellerInvoiceTypeDetailsType.factory() |
| 1875 | + obj_.build(child_) |
| 1876 | + self.SellerInvoiceTypeDetails.append(obj_) |
| 1877 | + obj_.original_tagname_ = 'SellerInvoiceTypeDetails' |
| 1878 | + elif nodeName_ == 'SellerServiceCode': |
| 1879 | + SellerServiceCode_ = child_.text |
| 1880 | + SellerServiceCode_ = self.gds_validate_string(SellerServiceCode_, node, 'SellerServiceCode') |
| 1881 | + self.SellerServiceCode = SellerServiceCode_ |
| 1882 | + self.validate_SellerServiceCodeType(self.SellerServiceCode) # validate type SellerServiceCodeType |
1785 | 1883 | # end class SellerInvoiceDetailsType |
1786 | 1884 |
|
1787 | 1885 |
|
@@ -2370,6 +2468,34 @@ def buildAttributes(self, node, attrs, already_processed): |
2370 | 2468 | self.Format = value |
2371 | 2469 | def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): |
2372 | 2470 | pass |
| 2471 | + def validate_valueOf_(self, value): |
| 2472 | + import datetime |
| 2473 | + if ( datetime.datetime.strptime( value, '%Y%m%d' ).strftime( '%Y%m%d' ) == value ): |
| 2474 | + pass |
| 2475 | + else: |
| 2476 | + raise_value_error( value, 'Time format does not match' ) |
| 2477 | + return value |
| 2478 | + def build(self, node): |
| 2479 | + already_processed = set() |
| 2480 | + self.buildAttributes(node, node.attrib, already_processed) |
| 2481 | + self.valueOf_ = get_all_text_(node) |
| 2482 | + self.validate_valueOf_(self.valueOf_) |
| 2483 | + for child in node: |
| 2484 | + nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] |
| 2485 | + self.buildChildren(child, node, nodeName_) |
| 2486 | + return self |
| 2487 | + def validate_Format(self, value): |
| 2488 | + if ( value == "CCYYMMDD" ): |
| 2489 | + pass |
| 2490 | + else: |
| 2491 | + raise_value_error( value, 'Expected "CCYYMMDD"' ) |
| 2492 | + return value |
| 2493 | + def buildAttributes(self, node, attrs, already_processed): |
| 2494 | + value = find_attr_value_('Format', node) |
| 2495 | + if value is not None and 'Format' not in already_processed: |
| 2496 | + already_processed.add('Format') |
| 2497 | + self.Format = value |
| 2498 | + self.validate_Format(self.Format) |
2373 | 2499 | # end class date |
2374 | 2500 |
|
2375 | 2501 |
|
@@ -2655,6 +2781,37 @@ def buildAttributes(self, node, attrs, already_processed): |
2655 | 2781 | super(SellerAccountIDType1, self).buildAttributes(node, attrs, already_processed) |
2656 | 2782 | def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): |
2657 | 2783 | pass |
| 2784 | + def validate_valueOf_(self, value): |
| 2785 | + if ( isinstance( value, basestring ) and value.__len__() <= 35 ): |
| 2786 | + pass |
| 2787 | + else: |
| 2788 | + raise_value_error( value, 'Expected less than 35 characters' ) |
| 2789 | + return value |
| 2790 | + def build(self, node): |
| 2791 | + already_processed = set() |
| 2792 | + self.buildAttributes(node, node.attrib, already_processed) |
| 2793 | + self.valueOf_ = get_all_text_(node) |
| 2794 | + self.validate_valueOf_(self.valueOf_) |
| 2795 | + for child in node: |
| 2796 | + nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] |
| 2797 | + self.buildChildren(child, node, nodeName_) |
| 2798 | + return self |
| 2799 | + def validate_IdentificationSchemeName(self, value): |
| 2800 | + if ( value == "IBAN" ): |
| 2801 | + pass |
| 2802 | + else: |
| 2803 | + raise_value_error( value, 'Expected "IBAN"' ) |
| 2804 | + return value |
| 2805 | + def buildAttributes(self, node, attrs, already_processed): |
| 2806 | + value = find_attr_value_('IdentificationSchemeName', node) |
| 2807 | + if value is not None and 'IdentificationSchemeName' not in already_processed: |
| 2808 | + already_processed.add('IdentificationSchemeName') |
| 2809 | + self.IdentificationSchemeName = value |
| 2810 | + self.validate_IdentificationSchemeName(self.IdentificationSchemeName) |
| 2811 | + value = find_attr_value_('xsi:type', node) |
| 2812 | + if value is not None and 'xsi:type' not in already_processed: |
| 2813 | + already_processed.add('xsi:type') |
| 2814 | + self.extensiontype_ = value |
2658 | 2815 | # end class SellerAccountIDType1 |
2659 | 2816 |
|
2660 | 2817 |
|
@@ -2732,6 +2889,37 @@ def buildAttributes(self, node, attrs, already_processed): |
2732 | 2889 | super(SellerBicType2, self).buildAttributes(node, attrs, already_processed) |
2733 | 2890 | def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): |
2734 | 2891 | pass |
| 2892 | + def validate_valueOf_(self, value): |
| 2893 | + if ( isinstance( value, basestring ) and 8 <= value.__len__() <= 11 ): |
| 2894 | + pass |
| 2895 | + else: |
| 2896 | + raise_value_error( value, 'Expected value between 8..11 characters' ) |
| 2897 | + return value |
| 2898 | + def build(self, node): |
| 2899 | + already_processed = set() |
| 2900 | + self.buildAttributes(node, node.attrib, already_processed) |
| 2901 | + self.valueOf_ = get_all_text_(node) |
| 2902 | + self.validate_valueOf_(self.valueOf_) |
| 2903 | + for child in node: |
| 2904 | + nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] |
| 2905 | + self.buildChildren(child, node, nodeName_) |
| 2906 | + return self |
| 2907 | + def validate_IdentificationSchemeName(self, value): |
| 2908 | + if ( value == "BIC" ): |
| 2909 | + pass |
| 2910 | + else: |
| 2911 | + raise_value_error( value, 'Expected "BIC"' ) |
| 2912 | + return value |
| 2913 | + def buildAttributes(self, node, attrs, already_processed): |
| 2914 | + value = find_attr_value_('IdentificationSchemeName', node) |
| 2915 | + if value is not None and 'IdentificationSchemeName' not in already_processed: |
| 2916 | + already_processed.add('IdentificationSchemeName') |
| 2917 | + self.IdentificationSchemeName = value |
| 2918 | + self.validate_IdentificationSchemeName(self.IdentificationSchemeName) |
| 2919 | + value = find_attr_value_('xsi:type', node) |
| 2920 | + if value is not None and 'xsi:type' not in already_processed: |
| 2921 | + already_processed.add('xsi:type') |
| 2922 | + self.extensiontype_ = value |
2735 | 2923 | # end class SellerBicType2 |
2736 | 2924 |
|
2737 | 2925 |
|
@@ -2963,6 +3151,21 @@ def buildAttributes(self, node, attrs, already_processed): |
2963 | 3151 | super(SellerInstructionFreeTextType, self).buildAttributes(node, attrs, already_processed) |
2964 | 3152 | def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): |
2965 | 3153 | pass |
| 3154 | + def validate_valueOf_(self, value): |
| 3155 | + if ( isinstance( value, basestring ) and 1 <= value.__len__() <= 420 ): |
| 3156 | + pass |
| 3157 | + else: |
| 3158 | + raise_value_error( value, 'Expected value between 1..420 characters' ) |
| 3159 | + return value |
| 3160 | + def build(self, node): |
| 3161 | + already_processed = set() |
| 3162 | + self.buildAttributes(node, node.attrib, already_processed) |
| 3163 | + self.valueOf_ = get_all_text_(node) |
| 3164 | + self.validate_valueOf_(self.valueOf_) |
| 3165 | + for child in node: |
| 3166 | + nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] |
| 3167 | + self.buildChildren(child, node, nodeName_) |
| 3168 | + return self |
2966 | 3169 | # end class SellerInstructionFreeTextType |
2967 | 3170 |
|
2968 | 3171 |
|
@@ -3077,6 +3280,24 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): |
3077 | 3280 | obj_.build(child_) |
3078 | 3281 | self.SellerInvoiceIdentifierText.append(obj_) |
3079 | 3282 | obj_.original_tagname_ = 'SellerInvoiceIdentifierText' |
| 3283 | + def validate_SellerInvoiceIdentifierTextType3(self, value): |
| 3284 | + if ( value.__len__() <= 2 ): |
| 3285 | + pass |
| 3286 | + else: |
| 3287 | + raise_value_error( value, 'Expected maximum of 2 elements' ) |
| 3288 | + return value |
| 3289 | + def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): |
| 3290 | + if nodeName_ == 'SellerInvoiceTypeText': |
| 3291 | + obj_ = SellerInvoiceTypeTextType.factory() |
| 3292 | + obj_.build(child_) |
| 3293 | + self.SellerInvoiceTypeText = obj_ |
| 3294 | + obj_.original_tagname_ = 'SellerInvoiceTypeText' |
| 3295 | + elif nodeName_ == 'SellerInvoiceIdentifierText': |
| 3296 | + obj_ = SellerInvoiceIdentifierTextType3.factory() |
| 3297 | + obj_.build(child_) |
| 3298 | + self.SellerInvoiceIdentifierText.append(obj_) |
| 3299 | + self.validate_SellerInvoiceIdentifierTextType3(self.SellerInvoiceIdentifierText); |
| 3300 | + obj_.original_tagname_ = 'SellerInvoiceIdentifierText' |
3080 | 3301 | # end class SellerInvoiceTypeDetailsType |
3081 | 3302 |
|
3082 | 3303 |
|
@@ -3154,21 +3375,6 @@ def buildAttributes(self, node, attrs, already_processed): |
3154 | 3375 | super(SellerInvoiceTypeTextType, self).buildAttributes(node, attrs, already_processed) |
3155 | 3376 | def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): |
3156 | 3377 | 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 |
3172 | 3378 | # end class SellerInvoiceTypeTextType |
3173 | 3379 |
|
3174 | 3380 |
|
@@ -3434,6 +3640,21 @@ def buildAttributes(self, node, attrs, already_processed): |
3434 | 3640 | super(SellerInvoiceIdentifierTextType3, self).buildAttributes(node, attrs, already_processed) |
3435 | 3641 | def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): |
3436 | 3642 | pass |
| 3643 | + def validate_valueOf_(self, value): |
| 3644 | + if ( isinstance( value, basestring ) and 4 <= value.__len__() <= 70 ): |
| 3645 | + pass |
| 3646 | + else: |
| 3647 | + raise_value_error( value, 'Expected value between 4..70 characters' ) |
| 3648 | + return value |
| 3649 | + def build(self, node): |
| 3650 | + already_processed = set() |
| 3651 | + self.buildAttributes(node, node.attrib, already_processed) |
| 3652 | + self.valueOf_ = get_all_text_(node) |
| 3653 | + self.validate_valueOf_(self.valueOf_) |
| 3654 | + for child in node: |
| 3655 | + nodeName_ = Tag_pattern_.match(child.tag).groups()[-1] |
| 3656 | + self.buildChildren(child, node, nodeName_) |
| 3657 | + return self |
3437 | 3658 | # end class SellerInvoiceIdentifierTextType3 |
3438 | 3659 |
|
3439 | 3660 |
|
|
0 commit comments