GET | /tender/{tenderid}/user/{userid}/procurement/{procurementid} |
---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ProcurementBase:
tender_id: int = 0
user_id: int = 0
procurement_id: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ResponseBase:
response_status: Optional[ResponseStatus] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ModifyRequestBase(IConcurrencyStamp):
concurrency_stamp: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ModifyProcurementBase(ModifyRequestBase):
is_group_member: Optional[bool] = None
group_name: Optional[str] = None
group_short_name: Optional[str] = None
country_id: Optional[int] = None
vat_number: Optional[str] = None
registration_number: Optional[str] = None
duns: Optional[str] = None
address: Optional[str] = None
main_activity: Optional[str] = None
established_date: Optional[datetime.datetime] = None
workforce: Optional[int] = None
website: Optional[str] = None
sales_manager_name: Optional[str] = None
sales_manager_phone: Optional[str] = None
sales_manager_email: Optional[str] = None
csr_manager_name: Optional[str] = None
csr_manager_phone: Optional[str] = None
csr_manager_email: Optional[str] = None
account_country_id: Optional[int] = None
bank_name: Optional[str] = None
account_number: Optional[str] = None
iban: Optional[str] = None
swift: Optional[str] = None
currency_id: Optional[int] = None
work_force_n1: Optional[int] = None
work_force_n2: Optional[int] = None
work_force_n3: Optional[int] = None
subscribed_capital: Optional[int] = None
subscribed_capital_currency_id: Optional[int] = None
revenue_n1: Optional[int] = None
revenue_n2: Optional[int] = None
revenue_n3: Optional[int] = None
net_profit_n1: Optional[int] = None
net_profit_n2: Optional[int] = None
net_profit_n3: Optional[int] = None
equity_n1: Optional[int] = None
equity_n2: Optional[int] = None
equity_n3: Optional[int] = None
liability_n1: Optional[int] = None
liability_n2: Optional[int] = None
liability_n3: Optional[int] = None
operating_result_n1: Optional[int] = None
operating_result_n2: Optional[int] = None
operating_result_n3: Optional[int] = None
db_failure_score: Optional[str] = None
is_audited_account: Optional[bool] = None
is_audited_account_comment: Optional[str] = None
is_liquidation_proceedings: Optional[bool] = None
is_liquidation_proceedings_comment: Optional[str] = None
veolia_annual_revenues_proportion: Optional[Decimal] = None
is_anti_corruption_document: Optional[bool] = None
is_corruption_risk_map: Optional[bool] = None
is_third_parties_evaluating_system: Optional[bool] = None
is_internal_rules: Optional[bool] = None
is_human_rights: Optional[bool] = None
is_anti_corruption_training: Optional[bool] = None
is_anti_corruption_report_system: Optional[bool] = None
is_iso9001: Optional[bool] = None
is_eco_vadis_scorecard: Optional[bool] = None
eco_vadis_total_score: Optional[int] = None
is_reduce_employee_safety_risk: Optional[bool] = None
is_promote_social_integration: Optional[bool] = None
is_nondiscrimination_policy: Optional[bool] = None
is_iso14001: Optional[bool] = None
is_identified_major_environmental_impacts: Optional[bool] = None
is_use_water_resources: Optional[bool] = None
is_consumption_of_raw_materials: Optional[bool] = None
is_energy_consumption: Optional[bool] = None
is_greenhouse_gas_emissions: Optional[bool] = None
is_atmospheric_emissions: Optional[bool] = None
is_aqueous_pollution: Optional[bool] = None
is_waste_generation: Optional[bool] = None
is_natural_areas_pollution: Optional[bool] = None
is_privacy_statement: Optional[bool] = None
is_veolia_supplier_charter: Optional[bool] = None
is_veolia_core_standards: Optional[bool] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ModifyLegalRepresentativeBase(ModifyRequestBase):
procurement_id: int = 0
position: Optional[str] = None
name: Optional[str] = None
address: Optional[str] = None
birth_date: Optional[datetime.datetime] = None
email: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class LegalRepresentativeDetails(ModifyLegalRepresentativeBase):
id: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ProcurementDetails(ModifyProcurementBase):
id: int = 0
indebtedness_n1: Optional[float] = None
indebtedness_n2: Optional[float] = None
indebtedness_n3: Optional[float] = None
sales_proportionate_profit_n1: Optional[float] = None
sales_proportionate_profit_n2: Optional[float] = None
sales_proportionate_profit_n3: Optional[float] = None
liquidity_ratio_n1: Optional[float] = None
liquidity_ratio_n2: Optional[float] = None
liquidity_ratio_n3: Optional[float] = None
submitted_by_id: Optional[int] = None
submission_date_time: Optional[datetime.datetime] = None
is_submitted: bool = False
legal_representatives: Optional[List[LegalRepresentativeDetails]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BrowseProcurementResponse(ResponseBase):
procurement: Optional[ProcurementDetails] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BrowseProcurement(ProcurementBase, IGet):
pass
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /tender/{tenderid}/user/{userid}/procurement/{procurementid} HTTP/1.1 Host: szallitoiportal-be.veolia.hu Accept: text/jsv
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { Procurement: { Id: 0, SubmittedById: 0, SubmissionDateTime: 0001-01-01, IsSubmitted: False, LegalRepresentatives: [ { Id: 0, ProcurementId: 0, Position: String, Name: String, Address: String, BirthDate: 0001-01-01, Email: String, ConcurrencyStamp: String } ], IsGroupMember: False, GroupName: String, GroupShortName: String, CountryId: 0, VatNumber: String, RegistrationNumber: String, Duns: String, Address: String, MainActivity: String, EstablishedDate: 0001-01-01, Workforce: 0, Website: String, SalesManagerName: String, SalesManagerPhone: String, SalesManagerEmail: String, CsrManagerName: String, CsrManagerPhone: String, CsrManagerEmail: String, AccountCountryId: 0, BankName: String, AccountNumber: String, Iban: String, Swift: String, CurrencyId: 0, WorkForceN1: 0, WorkForceN2: 0, WorkForceN3: 0, SubscribedCapital: 0, SubscribedCapitalCurrencyId: 0, RevenueN1: 0, RevenueN2: 0, RevenueN3: 0, NetProfitN1: 0, NetProfitN2: 0, NetProfitN3: 0, EquityN1: 0, EquityN2: 0, EquityN3: 0, LiabilityN1: 0, LiabilityN2: 0, LiabilityN3: 0, OperatingResultN1: 0, OperatingResultN2: 0, OperatingResultN3: 0, DBFailureScore: String, IsAuditedAccount: False, IsAuditedAccountComment: String, IsLiquidationProceedings: False, IsLiquidationProceedingsComment: String, VeoliaAnnualRevenuesProportion: 0, IsAntiCorruptionDocument: False, IsCorruptionRiskMap: False, IsThirdPartiesEvaluatingSystem: False, IsInternalRules: False, IsHumanRights: False, IsAntiCorruptionTraining: False, IsAntiCorruptionReportSystem: False, IsIso9001: False, IsEcoVadisScorecard: False, EcoVadisTotalScore: 0, IsReduceEmployeeSafetyRisk: False, IsPromoteSocialIntegration: False, IsNondiscriminationPolicy: False, IsIso14001: False, IsIdentifiedMajorEnvironmentalImpacts: False, IsUseWaterResources: False, IsConsumptionOfRawMaterials: False, IsEnergyConsumption: False, IsGreenhouseGasEmissions: False, IsAtmosphericEmissions: False, IsAqueousPollution: False, IsWasteGeneration: False, IsNaturalAreasPollution: False, IsPrivacyStatement: False, IsVeoliaSupplierCharter: False, IsVeoliaCoreStandards: False, ConcurrencyStamp: String }, ResponseStatus: { ErrorCode: String, Message: String, StackTrace: String, Errors: [ { ErrorCode: String, FieldName: String, Message: String, Meta: { String: String } } ], Meta: { String: String } } }