-module(erp_products). -compile(export_all). -include("person.hrl"). -include("product.hrl"). -include("payment.hrl"). -include_lib("kvs/include/kvs.hrl"). -include_lib("kvs/include/cursors.hrl"). 'NYNJA'() -> {ok, NYNJA} = kvs:get("/erp/partners","NYNJA, Inc."), #'Product'{ code = "NYNJA", id = kvs:seq([],[]), organization = NYNJA, url = "nynja.io", engineer = #'Person'{cn = "Maxim Sokhatsky"}, director = #'Person'{cn = "Anton Andonov"}, owner = #'Person'{cn = "Salvator Guerrieri"}, type = virtual }. 'CATALX'() -> {ok, CATALX} = kvs:get("/erp/partners","Catalx Exchange Inc."), #'Product'{ code = "CATALX", id = kvs:seq([],[]), organization = CATALX, url = "catalx.io", engineer = #'Person'{cn = "Vyacheslav Kara"}, director = #'Person'{cn = "Anton Andonov"}, owner = #'Person'{cn = "Justin Kim"}, type = virtual }. products() -> ['NYNJA'(), 'CATALX'()]. payments("CATALX") -> [#'Payment' { invoice = "JAN-2018-001-CX", volume = {0,5000}, price = {0,1}, instrument = "USD", type = crypto }, #'Payment' { invoice = "FEB-2018-001-CX", volume = {0,7000}, price = {0,1}, instrument = "USD", type = crypto }, #'Payment' { invoice = "MAR-2018-001-CX", volume = {0,10000}, price = {0,1}, instrument = "USD", type = crypto }, #'Payment' { invoice = "APR-2018-001-CX", volume = {0,12000}, price = {0,1}, instrument = "USD", type = crypto }, #'Payment' { invoice = "MAY-2018-001-CX", volume = {0,15000}, price = {0,1}, instrument = "USD", type = crypto }, #'Payment' { invoice = "JUN-2018-001-CX", volume = {0,10000}, price = {0,1}, instrument = "USD", type = crypto }, #'Payment' { invoice = "JUL-2018-001-CX", volume = {0,10000}, price = {0,1}, instrument = "USD", type = crypto }, #'Payment' { invoice = "AUG-2018-001-CX", volume = {0,12000}, price = {0,1}, instrument = "USD", type = crypto }, #'Payment' { invoice = "SEP-2018-001-CX", volume = {0,15000}, price = {0,1}, instrument = "USD", type = crypto }, #'Payment' { invoice = "OCT-2018-001-CX", volume = {0,10000}, price = {0,1}, instrument = "USD", type = crypto }, #'Payment' { invoice = "NOV-2018-001-CX", volume = {0,12000}, price = {0,1}, instrument = "USD", type = crypto }, #'Payment' { invoice = "DEC-2018-001-CX", volume = {0,15000}, price = {0,1}, instrument = "USD", type = crypto } ]; payments("NYNJA") -> [#'Payment' { invoice = "JAN-2019-001-NY", volume = {0,5000}, price = {0,1}, instrument = "USD", type = fiat }, #'Payment' { invoice = "FEB-2019-001-NY", volume = {0,7000}, price = {0,1}, instrument = "USD", type = fiat }, #'Payment' { invoice = "MAR-2019-001-NY", volume = {0,10000}, price = {0,1}, instrument = "USD", type = fiat }, #'Payment' { invoice = "APR-2019-001-NY", volume = {0,12000}, price = {0,1}, instrument = "USD", type = fiat }, #'Payment' { invoice = "MAY-2019-001-NY", volume = {0,15000}, price = {0,1}, instrument = "USD", type = fiat } ]. pay_boot() -> lists:map(fun(#'Product'{code=C} = P) -> lists:map(fun(#'Payment'{}=Pay) -> kvs:append(Pay,"/plm/"++C++"/payments") end,payments(C)) end, products()). plm_boot() -> case kvs:get(writer,"/plm/products") of {error,_} -> lists:map(fun(#'Product'{} = P) -> kvs:append(P,"/plm/products") end, products()); {ok,_} -> skip end.