| GET | /workflow/{WorkflowId}/advanced-info |
|---|
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 Provider:
id: int = 0
name: Optional[str] = None
tax_code: Optional[str] = None
address: Optional[str] = None
email: Optional[str] = None
phone: Optional[str] = None
additional_info: Optional[str] = None
provider_type: int = 0
created_at: Optional[datetime.datetime] = None
created_by: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Contract:
id: int = 0
# @Required()
workflow_id: int = 0
# @StringLength(100)
contract_no: Optional[str] = None
# @StringLength(100)
contract_date: Optional[str] = None
service_name: Optional[str] = None
# @StringLength(100)
contract_type: Optional[str] = None
objective: Optional[str] = None
location: Optional[str] = None
created_at: datetime.datetime = datetime.datetime(1, 1, 1)
# @Required()
created_by: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Estimate:
id: int = 0
# @Required()
workflow_id: int = 0
value_before_tax: Optional[int] = None
tax_amount: Optional[int] = None
total_amount: Optional[int] = None
created_at: datetime.datetime = datetime.datetime(1, 1, 1)
# @Required()
created_by: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PurchaseHistory:
id: int = 0
# @Required()
workflow_id: int = 0
sequence_no: Optional[int] = None
detail: Optional[str] = None
# @StringLength(150)
unit: Optional[str] = None
quantity: Optional[int] = None
unit_price: Optional[int] = None
amount: Optional[int] = None
note: Optional[str] = None
created_at: datetime.datetime = datetime.datetime(1, 1, 1)
# @Required()
created_by: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AdvancedWorkflowInfoData:
provider: Optional[Provider] = None
contract: Optional[Contract] = None
estimate: Optional[Estimate] = None
purchase_history: Optional[List[PurchaseHistory]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AdvancedWorkflowInfoResponse:
code: int = 0
message: Optional[str] = None
data: Optional[AdvancedWorkflowInfoData] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetAdvancedWorkflowInfoRequest:
workflow_id: int = 0
Python GetAdvancedWorkflowInfoRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /workflow/{WorkflowId}/advanced-info HTTP/1.1
Host: etc-api.vsmlab.vn
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<AdvancedWorkflowInfoResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/tvpl.api.ServiceModel">
<Code>0</Code>
<Data>
<Contract xmlns:d3p1="http://schemas.datacontract.org/2004/07/tvpl.data.Models">
<d3p1:ContractDate>String</d3p1:ContractDate>
<d3p1:ContractNo>String</d3p1:ContractNo>
<d3p1:ContractType>String</d3p1:ContractType>
<d3p1:CreatedAt>0001-01-01T00:00:00</d3p1:CreatedAt>
<d3p1:CreatedBy>0</d3p1:CreatedBy>
<d3p1:Id>0</d3p1:Id>
<d3p1:Location>String</d3p1:Location>
<d3p1:Objective>String</d3p1:Objective>
<d3p1:ServiceName>String</d3p1:ServiceName>
<d3p1:WorkflowId>0</d3p1:WorkflowId>
</Contract>
<Estimate xmlns:d3p1="http://schemas.datacontract.org/2004/07/tvpl.data.Models">
<d3p1:CreatedAt>0001-01-01T00:00:00</d3p1:CreatedAt>
<d3p1:CreatedBy>0</d3p1:CreatedBy>
<d3p1:Id>0</d3p1:Id>
<d3p1:TaxAmount>0</d3p1:TaxAmount>
<d3p1:TotalAmount>0</d3p1:TotalAmount>
<d3p1:ValueBeforeTax>0</d3p1:ValueBeforeTax>
<d3p1:WorkflowId>0</d3p1:WorkflowId>
</Estimate>
<Provider xmlns:d3p1="http://schemas.datacontract.org/2004/07/tvpl.data.Models">
<d3p1:AdditionalInfo>String</d3p1:AdditionalInfo>
<d3p1:Address>String</d3p1:Address>
<d3p1:CreatedAt>0001-01-01T00:00:00</d3p1:CreatedAt>
<d3p1:CreatedBy>0</d3p1:CreatedBy>
<d3p1:DeletedAt>0001-01-01T00:00:00</d3p1:DeletedAt>
<d3p1:DeletedBy>0</d3p1:DeletedBy>
<d3p1:Email>String</d3p1:Email>
<d3p1:Id>0</d3p1:Id>
<d3p1:IsDeleted>false</d3p1:IsDeleted>
<d3p1:Name>String</d3p1:Name>
<d3p1:Phone>String</d3p1:Phone>
<d3p1:ProviderType>0</d3p1:ProviderType>
<d3p1:TaxCode>String</d3p1:TaxCode>
</Provider>
<PurchaseHistory xmlns:d3p1="http://schemas.datacontract.org/2004/07/tvpl.data.Models">
<d3p1:PurchaseHistory>
<d3p1:Amount>0</d3p1:Amount>
<d3p1:CreatedAt>0001-01-01T00:00:00</d3p1:CreatedAt>
<d3p1:CreatedBy>0</d3p1:CreatedBy>
<d3p1:Detail>String</d3p1:Detail>
<d3p1:Id>0</d3p1:Id>
<d3p1:Note>String</d3p1:Note>
<d3p1:Quantity>0</d3p1:Quantity>
<d3p1:SequenceNo>0</d3p1:SequenceNo>
<d3p1:Unit>String</d3p1:Unit>
<d3p1:UnitPrice>0</d3p1:UnitPrice>
<d3p1:WorkflowId>0</d3p1:WorkflowId>
</d3p1:PurchaseHistory>
</PurchaseHistory>
</Data>
<Message>String</Message>
</AdvancedWorkflowInfoResponse>