-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquote_to_agreement.rs
47 lines (39 loc) · 1.64 KB
/
quote_to_agreement.rs
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
//! Create Quote Example
#[cfg(all(feature = "tmf632", feature = "build-V4"))]
use tmflib::tmf632::organization_v4::Organization;
#[cfg(all(feature = "tmf632", feature = "build-V5"))]
use tmflib::tmf632::organization_v5::Organization;
use tmflib::tmf648::{quote::Quote, quote_item::QuoteItem, quote_price::QuotePrice};
use tmflib::common::price::Price;
use tmflib::common::related_party::RelatedParty;
use tmflib::tmf651::agreement::Agreement;
use tmflib::{HasName, HasRelatedParty};
fn main() {
// Create a quote using various components
// First create a quote item
let mut item = QuoteItem::new();
// Create a price for this item
let price = Price::new_ex(100.0);
// Add price to QuotePrice and set period
let quote_price = QuotePrice::new("Subscription").price(price).period("Monthly");
// add QuotePrice to item
item.price(quote_price);
// Create the new Quote
let mut quote = Quote::new();
quote.set_name("My Quote");
// Add the item to the quote
let _result = quote.add_quote_item(item);
// Set the external Id
let _result = quote.with_external_id(String::from("EXT123"));
// Create a total price for the quote
let total_price = Price::new_ex(3600.0);
// Create QuotePrice object for the total price and set period
let quote_total_price = QuotePrice::new("Total Contract").price(total_price).period("Contract");
// Add QuotePrice to quote
quote.price(quote_total_price);
// Add an organisation
let org = Organization::new("A Customer");
quote.add_party(RelatedParty::from(&org));
let agreement = Agreement::from("e);
dbg!(&agreement);
}