00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef CONTRACT_IDL
00031 #define CONTRACT_IDL
00032
00033 #include "corba_utility.idl"
00034 #include "persproduct.idl"
00035 #include "product.idl"
00036 #include "balancesheet.idl"
00037
00038 module corba {
00039 module cadmin {
00040 module contract {
00042
00043
00044 enum BillCycleType {
00045 btUnknown,
00046 btIntervalBillCycle,
00047 btDateBillCycle
00048 };
00049
00053 struct BillCycle {
00055 BillCycleId id;
00056
00058 common::Utf8String name;
00059
00061 common::Utf8String desc;
00062 };
00063
00064 typedef sequence<BillCycle> BillCycleSeq;
00066
00068 enum AccountingType {
00070 atUnknown,
00071
00073 atCustomer,
00074
00079 atSupplier
00080 };
00081
00083 enum StatementType {
00085 stUnknown,
00086
00088 stInvoice,
00089
00091 stReconciliation
00092 };
00093
00098 struct InvoiceInfo {
00100 BsPageId bpId;
00101
00103 common::Utf8String invoiceNumber;
00104
00106 ContractId conId;
00107
00109 StatementType type;
00110
00112 common::Date billDate;
00113
00115 common::Date startDate;
00116
00118 common::Date endDate;
00119
00121 common::Money amt;
00122
00124 common::Utf8String hostName;
00125
00127 common::Utf8String fileInfo;
00128 };
00129
00131 typedef sequence<InvoiceInfo> InvoiceInfoSeq;
00132
00134 interface ContractWriter {
00136 readonly attribute ContractId id;
00143 readonly attribute cadmin::AssociateId owner;
00144
00146 readonly attribute common::TaxKeyId tkId;
00147
00149 readonly attribute AccountingType acctType;
00150
00152 readonly attribute BillCycleId bcId;
00153
00155 readonly attribute common::DateTime createdDate;
00156
00158 readonly attribute Status effStatus;
00159
00161 readonly attribute Status prefStatus;
00162
00164 readonly attribute common::DateTime effStatusDate;
00165
00170 readonly attribute common::DateTime prefStatusDate;
00171
00173 readonly attribute common::Money creditLimit;
00174
00186 StatusValue requestedStatus(
00187 in common::DateTime ts
00188 ) raises (common::OsbCorbaException);
00189
00200 StatusHistory statusHistory(
00201 in common::DateTime from,
00202 in common::DateTime to,
00203 in boolean noWait
00204 ) raises (common::OsbCorbaException);
00205
00213 common::Utf8String getStatement(
00214 in common::Utf8String fileInfo
00215 ) raises (common::OsbCorbaException);
00216
00228 InvoiceInfoSeq getStatements(
00229 in StatementType type,
00230 in boolean noWait
00231 ) raises (common::OsbCorbaException);
00232
00240 BalanceSheetWriter getBalanceSheet(
00241 in boolean noWait
00242 ) raises (common::OsbCorbaException);
00243
00253 cadmin::persprod::PersProductWriter getPersProduct(
00254 in cadmin::PersProdId id,
00255 in boolean noWait
00256 ) raises (common::OsbCorbaException);
00257
00259 cadmin::persprod::PersProdSeq getPersProducts(
00260 in boolean noWait
00261 ) raises (common::OsbCorbaException);
00262
00264 boolean setTaxKey(in common::TaxKeyId tkId);
00265
00267 boolean setBillCycle(in BillCycleId bcId);
00268
00270 boolean setCreditLimit(in common::Money credit);
00271
00287 cadmin::persprod::PersProductWriter addPersProduct(
00288 in pcat::pd::ProductId id,
00289 in cadmin::AssociateId userId,
00290 in boolean noWait
00291 ) raises (common::OsbCorbaException);
00292
00305 boolean removePersProduct(
00306 in cadmin::PersProdId id,
00307 in boolean noWait
00308 ) raises (common::OsbCorbaException);
00309
00326 cadmin::ContractId create(
00327 in cadmin::AssociateId owner,
00328 in boolean noWait
00329 ) raises (common::OsbCorbaException);
00330
00332 boolean commitChanges(
00333 in boolean noWait
00334 ) raises (common::OsbCorbaException);
00335
00337
00338
00352 boolean changeStatus(
00353 inout StatusRequest status,
00354 in boolean noWait,
00355 out common::CfgErrorSeq errors
00356 ) raises (common::OsbCorbaException);
00358 };
00359 };
00360 };
00361 };
00362 #endif // #ifndef CONTRACT_IDL