Spaces:
Running
Running
File size: 3,725 Bytes
dd6303a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | """Tender data models used by parsers, DOCX generators and Excel generators."""
from dataclasses import dataclass, field
from typing import List
@dataclass
class EquipmentItem:
sl_no: int
equipment_type: str
minimum_number: str
@dataclass
class ManpowerItem:
sl_no: int
post: str
qualification: str
nos: str
total_exp: str
similar_exp: str
@dataclass
class BOQItem:
item_no: int
item_code: str
description: str
quantity: float
unit: str
bwdb_rate: float
bwdb_amount: float
quoted_rate: float
quoted_amount: float
percent_diff: float
@dataclass
class WorkActivity:
sl_no: str
activity: str
@dataclass
class JVPartner:
code: str = ""
name: str = ""
legal_type: str = ""
address: str = ""
signatory_name: str = ""
position: str = ""
role: str = "partner"
share_percent: float = 0.0
share_words: str = ""
@dataclass
class TenderData:
tender_id: str
invitation_ref_no: str
package_no: str
project_code: str
procuring_entity: str
procuring_entity_short: str
executive_engineer: str
pe_address: str
pe_division: str
work_name: str
work_name_short: str
location: str
project_name: str
publication_date: str
closing_date: str
start_date: str
completion_date: str
completion_date_long: str
bg_validity_date: str
document_date: str
tender_security_amount: float
tender_security_amount_words: str
tender_security_bdt: str
liquid_assets_required_lakh: float
annual_turnover_required_lakh: float
tender_capacity_lakh: float
document_fee_bdt: float
quoted_rate_percent: float
departmental_estimate: float
quoted_total: float
general_exp_years: int
specific_exp_contracts: int
specific_exp_value_lakh: float
specific_exp_years: int
specific_exp_nature: str
bank_name: str
bank_branch: str
bank_guarantee_no: str
bg_date: str
firm_name: str
firm_address: str
proprietor_name: str
egp_email: str
memo_no: str
is_jv: bool = False
jv_name: str = ""
jv_date: str = ""
jv_partner_count: int = 0
jv_share_text: str = ""
jv_partners: List[JVPartner] = field(default_factory=list)
jv_office_address: str = ""
jv_phone: str = ""
lead_partner: str = ""
nominated_partner: str = ""
partner_in_charge_name: str = ""
partner_in_charge_firm: str = ""
partner1_code: str = ""
partner1_firm_name: str = ""
partner1_legal_type: str = ""
partner1_address: str = ""
partner1_signatory_name: str = ""
partner1_position: str = ""
partner1_share_percent: float = 0.0
partner1_share_words: str = ""
partner2_code: str = ""
partner2_firm_name: str = ""
partner2_legal_type: str = ""
partner2_address: str = ""
partner2_signatory_name: str = ""
partner2_position: str = ""
partner2_share_percent: float = 0.0
partner2_share_words: str = ""
partner3_code: str = ""
partner3_firm_name: str = ""
partner3_legal_type: str = ""
partner3_address: str = ""
partner3_signatory_name: str = ""
partner3_position: str = ""
partner3_share_percent: float = 0.0
partner3_share_words: str = ""
equipment: List[EquipmentItem] = field(default_factory=list)
manpower: List[ManpowerItem] = field(default_factory=list)
boq_items: List[BOQItem] = field(default_factory=list)
rate_schedule_ref: str = "BWDB, 2019-20 Rate Schedule"
work_activities: List[WorkActivity] = field(default_factory=list)
work_start_year: int = 2021
work_end_year: int = 2022
work_months: List[str] = field(default_factory=list)
|