Mercurial > pyarq-presupuestos
comparison Generic/base.py @ 25:189f8274aecd
gui. switch navigation menu on switch page
| author | Miguel Ángel Bárcena Rodríguez <miguelangel@obraencurso.es> |
|---|---|
| date | Mon, 20 May 2019 13:18:33 +0200 |
| parents | 65e7ae0d0e63 |
| children | 16f91684686b |
comparison
equal
deleted
inserted
replaced
| 24:2b393934f1db | 25:189f8274aecd |
|---|---|
| 416 """setCode(code) | 416 """setCode(code) |
| 417 | 417 |
| 418 Sets the code, must be a valid code | 418 Sets the code, must be a valid code |
| 419 """ | 419 """ |
| 420 if not utils.is_valid_code(code)[0]: | 420 if not utils.is_valid_code(code)[0]: |
| 421 raise ValueError( utils.mapping(_("Invalid code: $1"),(str(code),)) ) | 421 raise ValueError(utils.mapping(_("Invalid code: $1"),(str(code),))) |
| 422 self.__code = code | 422 self.__code = code |
| 423 | 423 |
| 424 def getSynonyms(self): | 424 def getSynonyms(self): |
| 425 return self.__synonyms | 425 return self.__synonyms |
| 426 | 426 |
| 1002 def getCertification(self): | 1002 def getCertification(self): |
| 1003 return self.__certification | 1003 return self.__certification |
| 1004 | 1004 |
| 1005 def setCertification(self, certification): | 1005 def setCertification(self, certification): |
| 1006 if not (certification is None or isinstance(certification, list)): | 1006 if not (certification is None or isinstance(certification, list)): |
| 1007 raise ValueError( _("Certification atribute must be a list or None") ) | 1007 raise ValueError(_("Certification atribute must be a list or None")) |
| 1008 self.__certification = certification | 1008 self.__certification = certification |
| 1009 | 1009 |
| 1010 def getRealCost(self): | 1010 def getRealCost(self): |
| 1011 return self.__real_cost | 1011 return self.__real_cost |
| 1012 | 1012 |
| 1026 def getCostPlanned(self): | 1026 def getCostPlanned(self): |
| 1027 return self.__cost_planned | 1027 return self.__cost_planned |
| 1028 | 1028 |
| 1029 def setCostPlanned(self, cost_planned): | 1029 def setCostPlanned(self, cost_planned): |
| 1030 if not (cost_planned is None or isinstance(cost_planned, list)): | 1030 if not (cost_planned is None or isinstance(cost_planned, list)): |
| 1031 raise ValueError( _("Cost Planned atribute must be a list or None") ) | 1031 raise ValueError(_("Cost Planned atribute must be a list or None")) |
| 1032 self.__cost_planned = cost_planned | 1032 self.__cost_planned = cost_planned |
| 1033 | 1033 |
| 1034 position = property(getPosition, setPosition, None, | 1034 position = property(getPosition, setPosition, None, |
| 1035 """Postion of the record in the budget | 1035 """Postion of the record in the budget |
| 1036 """) | 1036 """) |
| 1659 and the factor in a descomposition of a unit of work. | 1659 and the factor in a descomposition of a unit of work. |
| 1660 Default: 3 decimal places. | 1660 Default: 3 decimal places. |
| 1661 "DRA": Number of decimal places of the yield in a decompositon of a | 1661 "DRA": Number of decimal places of the yield in a decompositon of a |
| 1662 auxiliar element. | 1662 auxiliar element. |
| 1663 Number of decimal places of the result of the multiplication of | 1663 Number of decimal places of the result of the multiplication of |
| 1664 the yield and the factor in a descomposition of a auxilar element.Decimales | 1664 the yield and the factor in a descomposition of a auxilar element. |
| 1665 Default: 3 decimal places. | 1665 Default: 3 decimal places. |
| 1666 "DP": Number of decimal places of the price of a budget. | 1666 "DP": Number of decimal places of the price of a budget. |
| 1667 Default: 2 decimal places. | 1667 Default: 2 decimal places. |
| 1668 "DC": Number of decimal places of the price of a chapter or subchapter. | 1668 "DC": Number of decimal places of the price of a chapter or subchapter. |
| 1669 Default: 2 decimal places. | 1669 Default: 2 decimal places. |
| 1924 The Headers is the type of hierarchy of the prices | 1924 The Headers is the type of hierarchy of the prices |
| 1925 Each Title have a group of Prices and a Decimals definition | 1925 Each Title have a group of Prices and a Decimals definition |
| 1926 The records can have diferent prices for diferent ages, geografical | 1926 The records can have diferent prices for diferent ages, geografical |
| 1927 places, ... | 1927 places, ... |
| 1928 +-- __title_index: A integer. The active group of Prices and Decimals. | 1928 +-- __title_index: A integer. The active group of Prices and Decimals. |
| 1929 +-- __sheet_sections: sheet sections dictionary { sheet_code : sheet_title } | 1929 +-- __sheet_sections: sheet sections dictionary |
| 1930 { sheet_code : sheet_title } | |
| 1930 +-- __sheet_fields: sheet fields dictionary { field_code : field_title } | 1931 +-- __sheet_fields: sheet fields dictionary { field_code : field_title } |
| 1931 +-- __sheet_paragraphs: sheet paragraphs dictionary | 1932 +-- __sheet_paragraphs: sheet paragraphs dictionary |
| 1932 { paragraph_code : paragraph_text} | 1933 { paragraph_code : paragraph_text} |
| 1933 +-- __companys: Dictionary whith companys object | 1934 +-- __companys: Dictionary whith companys object |
| 1934 { company_code: company_object } | 1935 { company_code: company_object } |
| 2188 date[2] in range(32): | 2189 date[2] in range(32): |
| 2189 if date[1] != 0 and date[2] != 0: | 2190 if date[1] != 0 and date[2] != 0: |
| 2190 datetime.date(*date) | 2191 datetime.date(*date) |
| 2191 self.__date = date | 2192 self.__date = date |
| 2192 else: | 2193 else: |
| 2193 raise TypeError( utils.mapping(_("Invalid Date: $1"),(str(date),)) ) | 2194 raise TypeError(utils.mapping(_("Invalid Date: $1"),(str(date),))) |
| 2194 | 2195 |
| 2195 def setComment(self, comment): | 2196 def setComment(self, comment): |
| 2196 """setOwner(self, comment) | 2197 """setOwner(self, comment) |
| 2197 | 2198 |
| 2198 comment: text to comment the budged | 2199 comment: text to comment the budged |
| 2242 isinstance(certificate_date[1], int) and \ | 2243 isinstance(certificate_date[1], int) and \ |
| 2243 isinstance(certificate_date[2], int): | 2244 isinstance(certificate_date[2], int): |
| 2244 datetime.date(*certificate_date) | 2245 datetime.date(*certificate_date) |
| 2245 self.__budgetCerficateDate = certificate_date | 2246 self.__budgetCerficateDate = certificate_date |
| 2246 else: | 2247 else: |
| 2247 raise ValueError( _("Budget certificate Date must be a valid Date.") ) | 2248 _str = _("Budget certificate Date must be a valid Date.") |
| 2249 raise ValueError(_str) | |
| 2248 | 2250 |
| 2249 def setTitleList(self, title_list): | 2251 def setTitleList(self, title_list): |
| 2250 """setTitleList(self, title_list) | 2252 """setTitleList(self, title_list) |
| 2251 | 2253 |
| 2252 title_list: [ "Header", ["Title1", "Title2", ... ] ] | 2254 title_list: [ "Header", ["Title1", "Title2", ... ] ] |
| 2479 if code is None: # No-estructured measures | 2481 if code is None: # No-estructured measures |
| 2480 code = self.getRoot() | 2482 code = self.getRoot() |
| 2481 if code == None: # No root | 2483 if code == None: # No root |
| 2482 print( "No-estructured measures. Adding root record " + | 2484 print( "No-estructured measures. Adding root record " + |
| 2483 str(self.setRecord("root", [], 0, "", "", [0.0,], [(1,1,1970)], | 2485 str(self.setRecord("root", [], 0, "", "", [0.0,], [(1,1,1970)], |
| 2484 0, "") )) | 2486 0, "") ).encode("utf8")) |
| 2485 code = self.getRoot() | 2487 code = self.getRoot() |
| 2486 | 2488 |
| 2487 if not utils.is_valid_code(code)[0]: | 2489 if not utils.is_valid_code(code)[0]: |
| 2488 raise ValueError( utils.mapping(_("Invalid parent code: $1"), | 2490 raise ValueError( utils.mapping(_("Invalid parent code: $1"), |
| 2489 (str(code),)) ) | 2491 (str(code),)) ) |
| 2497 _all_parent_list = self.getAllParents(code) + [ code ] | 2499 _all_parent_list = self.getAllParents(code) + [ code ] |
| 2498 _all_child_list = self.getAllchildren(child_code) + [ child_code ] | 2500 _all_child_list = self.getAllchildren(child_code) + [ child_code ] |
| 2499 for _parent_code in _all_parent_list: | 2501 for _parent_code in _all_parent_list: |
| 2500 if _parent_code in _all_child_list: | 2502 if _parent_code in _all_child_list: |
| 2501 # TODO: change return to except | 2503 # TODO: change return to except |
| 2502 print(utils.mapping(_("Circular Decomposition, parent code: "\ | 2504 _str = _("Circular Decomposition, parent code: "\ |
| 2503 "$1, child code: $2, repeated code: $3"), | 2505 "$1, child code: $2, repeated code: $3") |
| 2504 (str(code), str(child_code), str(_parent_code))) ) | 2506 print(utils.mapping(_str, (str(code), str(child_code), |
| 2507 str(_parent_code))).encode("utf8") ) | |
| 2505 return | 2508 return |
| 2506 | 2509 |
| 2507 # Creating reference to parent code in child record | 2510 # Creating reference to parent code in child record |
| 2508 if child_code in self.__records: | 2511 if child_code in self.__records: |
| 2509 _child_record = self.__records[child_code] | 2512 _child_record = self.__records[child_code] |
| 2518 # if the code exits retake previous values. | 2521 # if the code exits retake previous values. |
| 2519 _record = self.__records[code] | 2522 _record = self.__records[code] |
| 2520 _child_number = len(_record.children) | 2523 _child_number = len(_record.children) |
| 2521 if position == -1: # New child | 2524 if position == -1: # New child |
| 2522 position = _child_number | 2525 position = _child_number |
| 2523 if position == -2: # No-estructured measures or empty position (error in FIEBDC file) | 2526 # No-estructured measures or empty position (error in FIEBDC file) |
| 2527 if position == -2: | |
| 2524 positions = _record.getChildPositions(child_code) | 2528 positions = _record.getChildPositions(child_code) |
| 2525 if len(positions) == 1: | 2529 if len(positions) == 1: |
| 2526 position = positions[0] | 2530 position = positions[0] |
| 2527 print(utils.mapping(_("No-estructured measure or empty position. Parent Code: "\ | 2531 _str = _("No-estructured measure or empty position. " \ |
| 2528 "$1, Child code: $2, Position: $3"),(str(code), str(child_code), str(position))) ) | 2532 "Parent Code: $1, Child code: $2, Position: $3") |
| 2533 print(utils.mapping(_str,(str(code), str(child_code), | |
| 2534 str(position))).encode("utf8") ) | |
| 2529 else: | 2535 else: |
| 2530 position = _child_number | 2536 position = _child_number |
| 2531 print(utils.mapping(_("No-estructured measure or empty position. "\ | 2537 _str = _("No-estructured measure or empty position. "\ |
| 2532 "Repeated child in unspecified position. "\ | 2538 "Repeated child in unspecified position. "\ |
| 2533 "It is impossible to determine the position. "\ | 2539 "It is impossible to determine the position. "\ |
| 2534 "New child is added in the decomposition. "\ | 2540 "New child is added in the decomposition. "\ |
| 2535 "Parent code: $1, Child code: $2, Position: $3"),(str(code), str(child_code), str(position))) ) | 2541 "Parent code: $1, Child code: $2, Position: $3") |
| 2542 print(utils.mapping(_str,(str(code), str(child_code), | |
| 2543 str(position))).encode("utf8") ) | |
| 2536 if position == _child_number: | 2544 if position == _child_number: |
| 2537 # The record do not have the child | 2545 # The record do not have the child |
| 2538 if not isinstance(factor, float): factor = 1.0 | 2546 if not isinstance(factor, float): factor = 1.0 |
| 2539 if not isinstance(yield_, float): yield_ = 1.0 | 2547 if not isinstance(yield_, float): yield_ = 1.0 |
| 2540 if not isinstance(total, float): total = 0.0 | 2548 if not isinstance(total, float): total = 0.0 |
| 2566 _record.recordType) | 2574 _record.recordType) |
| 2567 if isinstance(label, str) and label != "" : | 2575 if isinstance(label, str) and label != "" : |
| 2568 _measure.label = label | 2576 _measure.label = label |
| 2569 else: | 2577 else: |
| 2570 # TODO: change return for except | 2578 # TODO: change return for except |
| 2571 print(utils.mapping(_("Error: Invalid child position in " | 2579 _str = _("Error: Invalid child position in " |
| 2572 "decomposition. Parent code: $1 Child code: $2 "\ | 2580 "decomposition. Parent code: $1 Child code: $2 "\ |
| 2573 "Position: $3"), (str(code), str(child_code), str(position))) ) | 2581 "Position: $3") |
| 2582 print(utils.mapping(_str, (str(code), str(child_code), | |
| 2583 str(position))).encode("utf8") ) | |
| 2574 return | 2584 return |
| 2575 else: | 2585 else: |
| 2576 if child_code == "" : | 2586 if child_code == "" : |
| 2577 print(utils.mapping(_("Error: Empty child code. Parent code: "\ | 2587 _str = _("Error: Empty child code. Parent code: "\ |
| 2578 "$1 Position: $2"), (str(code), str(position))) ) | 2588 "$1 Position: $2") |
| 2589 print(utils.mapping(_str, (str(code), | |
| 2590 str(position))).encode("utf8") ) | |
| 2579 return | 2591 return |
| 2580 if position == -1: | 2592 if position == -1: |
| 2581 position = 0 | 2593 position = 0 |
| 2582 elif position != 0: | 2594 elif position != 0: |
| 2583 print(utils.mapping(_("Error: Invalid child position in "\ | 2595 _str = _("Error: Invalid child position in "\ |
| 2584 "decomposition. Parent code: $1 Child code: $2 "\ | 2596 "decomposition. Parent code: $1 Child code: $2 "\ |
| 2585 "Position: $3"), (str(code), str(child_code), str(position))) ) | 2597 "Position: $3") |
| 2598 print(utils.mapping(_str, (str(code), str(child_code), | |
| 2599 str(position))).encode("utf8") ) | |
| 2586 return | 2600 return |
| 2587 if not isinstance(factor, float): | 2601 if not isinstance(factor, float): |
| 2588 factor = 1.0 | 2602 factor = 1.0 |
| 2589 if not isinstance(yield_, float): | 2603 if not isinstance(yield_, float): |
| 2590 yield_ = 1.0 | 2604 yield_ = 1.0 |
| 2674 code: the parent record code | 2688 code: the parent record code |
| 2675 text: the descripion text | 2689 text: the descripion text |
| 2676 Sests the description text of a record | 2690 Sests the description text of a record |
| 2677 """ | 2691 """ |
| 2678 if not utils.is_valid_code(code)[0]: | 2692 if not utils.is_valid_code(code)[0]: |
| 2679 raise ValueError( utils.mapping(_("Invalid record: $1"), (str(code),)) ) | 2693 _str = _("Invalid record: $1") |
| 2694 raise ValueError( utils.mapping(_str, (str(code),)) ) | |
| 2680 if not code in self.__records: | 2695 if not code in self.__records: |
| 2681 _record = self.setRecord(code, [], "", "", "", [], [], | 2696 _record = self.setRecord(code, [], "", "", "", [], [], |
| 2682 "", "") | 2697 "", "") |
| 2683 _record.text = text | 2698 _record.text = text |
| 2684 else: | 2699 else: |
| 2737 if hierarchy == 0 : | 2752 if hierarchy == 0 : |
| 2738 # is the root record | 2753 # is the root record |
| 2739 if self.__root is None: | 2754 if self.__root is None: |
| 2740 self.__root = code | 2755 self.__root = code |
| 2741 else: | 2756 else: |
| 2742 print(_("Only can be one root record") ) | 2757 print(_("Only can be one root record").encode("utf8") ) |
| 2743 return | 2758 return |
| 2744 # TODO: If the root is created in settree. No-estructured measures | 2759 # TODO: If the root is created in settree. |
| 2760 # No-estructured measures | |
| 2745 # TODO Rewrite root values | 2761 # TODO Rewrite root values |
| 2746 # retake previous values. | 2762 # retake previous values. |
| 2747 # TODO: test synonyms | 2763 # TODO: test synonyms |
| 2748 _budget = self | 2764 _budget = self |
| 2749 if not code in self.__records: | 2765 if not code in self.__records: |
| 2974 | 2990 |
| 2975 def setSheetParagraphs(self, paragraph_dict): | 2991 def setSheetParagraphs(self, paragraph_dict): |
| 2976 if not isinstance(paragraph_dict, dict): | 2992 if not isinstance(paragraph_dict, dict): |
| 2977 raise ValueError( _("The paragraph dict must be a dictionary") ) | 2993 raise ValueError( _("The paragraph dict must be a dictionary") ) |
| 2978 for paragraph_code in paragraph_dict.keys(): | 2994 for paragraph_code in paragraph_dict.keys(): |
| 2979 self.setSheetParagraph( paragraph_code, paragraph_dict[paragraph_code]) | 2995 self.setSheetParagraph(paragraph_code, |
| 2996 paragraph_dict[paragraph_code]) | |
| 2980 | 2997 |
| 2981 def setSheetRecord(self, record_code, field, section_dict): | 2998 def setSheetRecord(self, record_code, field, section_dict): |
| 2982 if not isinstance(record_code, str): | 2999 if not isinstance(record_code, str): |
| 2983 raise ValueError( _("The record_code code must be a string") ) | 3000 raise ValueError( _("The record_code code must be a string") ) |
| 2984 if not isinstance(field, str): | 3001 if not isinstance(field, str): |
| 2986 if not isinstance(section_dict, dict): | 3003 if not isinstance(section_dict, dict): |
| 2987 raise ValueError( _("The section dict must be a dictionary") ) | 3004 raise ValueError( _("The section dict must be a dictionary") ) |
| 2988 #-# | 3005 #-# |
| 2989 # TODO: Add a empty record? | 3006 # TODO: Add a empty record? |
| 2990 if not self.hasRecord(record_code): | 3007 if not self.hasRecord(record_code): |
| 2991 print(utils.mapping(_("Error: The budget do not have this record "\ | 3008 _str = _("Error: The budget do not have this record "\ |
| 2992 "code and can not be added the sheet text in the field $1. "\ | 3009 "code and can not be added the sheet text in the field $1. "\ |
| 2993 "Record Code: $2"), ( str(field), str(record_code))) ) | 3010 "Record Code: $2") |
| 3011 print(utils.mapping(_str, ( str(field), | |
| 3012 str(record_code))).encode("utf8") ) | |
| 2994 return | 3013 return |
| 2995 #-# | 3014 #-# |
| 2996 if not self.hasSheetField(field): | 3015 if not self.hasSheetField(field): |
| 2997 self.setSheetField(field, "") | 3016 self.setSheetField(field, "") |
| 2998 for section, paragraph in section_dict.iteritems(): | 3017 for section, paragraph in section_dict.iteritems(): |
| 3012 #-# | 3031 #-# |
| 3013 # TODO: Add a empty record? | 3032 # TODO: Add a empty record? |
| 3014 if not self.hasRecord(record_code): | 3033 if not self.hasRecord(record_code): |
| 3015 print(utils.mapping(_("Error: The budget do not have the record "\ | 3034 print(utils.mapping(_("Error: The budget do not have the record "\ |
| 3016 "code $1 and can not be added the file: $2"), | 3035 "code $1 and can not be added the file: $2"), |
| 3017 (str(record_code), str(filepath))) ) | 3036 (str(record_code), str(filepath))).encode("utf8") ) |
| 3018 return | 3037 return |
| 3019 #-# | 3038 #-# |
| 3020 _record = self.getRecord(record_code) | 3039 _record = self.getRecord(record_code) |
| 3021 _record.addFile(filepath, type_, description) | 3040 _record.addFile(filepath, type_, description) |
| 3022 | 3041 |
| 3150 "string") ) | 3169 "string") ) |
| 3151 if not self.hasRecord(record_code): | 3170 if not self.hasRecord(record_code): |
| 3152 print(utils.mapping(_("Error: The budget do not have the record "\ | 3171 print(utils.mapping(_("Error: The budget do not have the record "\ |
| 3153 "code $1 and can not be added the Parametric select comment: "\ | 3172 "code $1 and can not be added the Parametric select comment: "\ |
| 3154 "$2"), | 3173 "$2"), |
| 3155 (str(record_code), str(comment))) ) | 3174 (str(record_code), str(comment))).encode("utf8") ) |
| 3156 return | 3175 return |
| 3157 _record = self.getRecord(record_code) | 3176 _record = self.getRecord(record_code) |
| 3158 if not isinstance(_record, ParametricRecord): | 3177 if not isinstance(_record, ParametricRecord): |
| 3159 print(utils.mapping(_("Error: The Record $1 is not a "\ | 3178 print(utils.mapping(_("Error: The Record $1 is not a "\ |
| 3160 "Parametric Record and can not have Parametric comment"), | 3179 "Parametric Record and can not have Parametric comment"), |
| 3161 (str(record_code),)) ) | 3180 (str(record_code),)).encode("utf8") ) |
| 3162 else: | 3181 else: |
| 3163 _record.select_comment = comment | 3182 _record.select_comment = comment |
| 3164 | 3183 |
| 3165 def setParametricSummary(self, record_code, summary): | 3184 def setParametricSummary(self, record_code, summary): |
| 3166 """setParametricSummary(self, record_code, summary) | 3185 """setParametricSummary(self, record_code, summary) |
| 3172 if not isinstance(summary, str): | 3191 if not isinstance(summary, str): |
| 3173 raise ValueError( _("The summary record must be a string") ) | 3192 raise ValueError( _("The summary record must be a string") ) |
| 3174 if not self.hasRecord(record_code): | 3193 if not self.hasRecord(record_code): |
| 3175 print(utils.mapping(_("Error: The budget do not have the record "\ | 3194 print(utils.mapping(_("Error: The budget do not have the record "\ |
| 3176 "code $1 and can not be seted the summary: $2"), | 3195 "code $1 and can not be seted the summary: $2"), |
| 3177 (str(record_code), str(summary))) ) | 3196 (str(record_code), str(summary))).encode("utf8") ) |
| 3178 return | 3197 return |
| 3179 _record = self.getRecord(record_code) | 3198 _record = self.getRecord(record_code) |
| 3180 if not isinstance(_record, ParametricRecord): | 3199 if not isinstance(_record, ParametricRecord): |
| 3181 print(utils.mapping(_("Error: The Record $1 is not a "\ | 3200 print(utils.mapping(_("Error: The Record $1 is not a "\ |
| 3182 "Parametric Record and can not have Parametric summary"), | 3201 "Parametric Record and can not have Parametric summary"), |
| 3183 (str(record_code),)) ) | 3202 (str(record_code),)).encode("utf8") ) |
| 3184 else: | 3203 else: |
| 3185 self.getRecord(record_code).parametric_summary = summary | 3204 self.getRecord(record_code).parametric_summary = summary |
| 3186 | 3205 |
| 3187 def setParametricText(self, record_code, text): | 3206 def setParametricText(self, record_code, text): |
| 3188 """setParametricText(self, record_code, text) | 3207 """setParametricText(self, record_code, text) |
| 3194 if not isinstance(text, str): | 3213 if not isinstance(text, str): |
| 3195 raise ValueError( _("The text record must be a string") ) | 3214 raise ValueError( _("The text record must be a string") ) |
| 3196 if not self.hasRecord(record_code): | 3215 if not self.hasRecord(record_code): |
| 3197 print(utils.mapping(_("Error: The budget do not have the record "\ | 3216 print(utils.mapping(_("Error: The budget do not have the record "\ |
| 3198 "code $1 and can not be seted the text: $2"), | 3217 "code $1 and can not be seted the text: $2"), |
| 3199 (str(record_code), str(text))) ) | 3218 (str(record_code), str(text))).encode("utf8") ) |
| 3200 return | 3219 return |
| 3201 _record = self.getRecord(record_code) | 3220 _record = self.getRecord(record_code) |
| 3202 if not isinstance(_record, ParametricRecord): | 3221 if not isinstance(_record, ParametricRecord): |
| 3203 print(utils.mapping(_("Error: The Record $1 is not a "\ | 3222 print(utils.mapping(_("Error: The Record $1 is not a "\ |
| 3204 "Parametric Record and can not have Parametric text"), | 3223 "Parametric Record and can not have Parametric text"), |
| 3205 (str(record_code),)) ) | 3224 (str(record_code),)).encode("utf8") ) |
| 3206 else: | 3225 else: |
| 3207 self.getRecord(record_code).parametric_text = text | 3226 self.getRecord(record_code).parametric_text = text |
| 3208 | 3227 |
| 3209 | 3228 |
| 3210 class Office(object): | 3229 class Office(object): |
| 3724 def setHierarchy(self, hierarchy): | 3743 def setHierarchy(self, hierarchy): |
| 3725 if not hierarchy in [-1, 0 , 1 ,2, ""]: | 3744 if not hierarchy in [-1, 0 , 1 ,2, ""]: |
| 3726 raise ValueError( utils.mapping(_("Invalid Hierarchy ($1) "\ | 3745 raise ValueError( utils.mapping(_("Invalid Hierarchy ($1) "\ |
| 3727 "The hierarchy must be -1, 0, 1, 2"), (str(hierarchy),)) ) | 3746 "The hierarchy must be -1, 0, 1, 2"), (str(hierarchy),)) ) |
| 3728 elif hierarchy == "": | 3747 elif hierarchy == "": |
| 3729 print("Hierarchy temporarily set to an empty string") | 3748 print("Hierarchy temporarily set to an empty string".encode("utf8")) |
| 3730 #TODO Check empty Hierarchy in Generic.fiebdc.Read._testBudget | 3749 #TODO Check empty Hierarchy in Generic.fiebdc.Read._testBudget |
| 3731 self.__hierarchy = hierarchy | 3750 self.__hierarchy = hierarchy |
| 3732 | 3751 |
| 3733 def getType(self): | 3752 def getType(self): |
| 3734 return self.__type | 3753 return self.__type |
