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 _PERSPRODUCTGW_H_
00031 #define _PERSPRODUCTGW_H_
00032
00033
00034
00035
00036 #include "persproduct.h"
00037 #include "osbconst.h"
00038
00039
00040
00041 namespace OSB_LIB {
00042 class Contract;
00043 class PersProductItem;
00044 class PersProduct;
00045 class PersProductNode;
00046 }
00047
00048 namespace OSB_DB {
00049 class Session;
00050 }
00051
00052
00053
00054 namespace OSB_DB {
00055
00056
00057
00058
00066 class PersProductGw {
00068 PersProductGw(const PersProductGw&);
00070 PersProductGw& operator=(const PersProductGw&);
00078 friend class OSB_LIB::PersProductItem;
00079 friend class OSB_LIB::PersProduct;
00080 friend class OSB_LIB::PersProductNode;
00081 public:
00089 PersProductGw() {}
00090
00104 long fetch(
00105 const Session& session,
00106 OSB_LIB::Contract& co
00107 );
00108
00119 bool fetch(
00120 const Session& session,
00121 OSB_LIB::PersProduct& pp
00122 );
00123
00134 bool fetch(
00135 const Session& session,
00136 OSB_LIB::PersProductNode& pn
00137 );
00138
00155 long fetchNodes(
00156 const Session& session,
00157 OSB_LIB::PersProduct& pp
00158 );
00159
00186 long fetchItems(
00187 const Session& session,
00188 OSB_LIB::PersProductNode& persNode
00189 );
00190
00200 OSB_LIB::Id<OSB_LIB::Contract> getContract(
00201 const Session& session,
00202 const OSB_LIB::PersProduct::Oid& ppId
00203 );
00204
00227 bool incPersProdObjVs(
00228 const Session& session,
00229 const OSB_LIB::PersProduct::Oid& ppId,
00230 long& objVs,
00231 bool& uptodate);
00232
00244 bool incObjVs(
00245 const Session& session,
00246 OSB_LIB::PersProduct& pp
00247 );
00248
00249 private:
00257 bool insPersProduct(
00258 const Session& session,
00259 OSB_LIB::PersProduct& pp
00260 );
00261
00269 bool delPersProduct(
00270 const Session& session,
00271 const OSB_LIB::PersProduct& pp
00272 );
00273
00287 bool insPersNode(
00288 const Session& session,
00289 OSB_LIB::PersProductNode& persNode
00290 );
00291
00303 bool delPersNode(
00304 const Session& session,
00305 const OSB_LIB::PersProductNode::Oid& oid
00306 );
00307
00308
00332 bool fetch(
00333 const Session& session,
00334 OSB_LIB::PersProductItem& item
00335 );
00336
00350 bool insPersProductItem(
00351 const Session& session,
00352 OSB_LIB::PersProductItem& item
00353 );
00354
00373 bool updPersProductItem(
00374 const Session& session,
00375 OSB_LIB::PersProductItem& item
00376 );
00377
00393 bool updPpiAssignTs(
00394 const Session& session,
00395 OSB_LIB::PersProductItem& item,
00396 const OSB_LIB::DateTime& newTs
00397 );
00398
00418 bool delPersProductItem(
00419 const Session& session,
00420 OSB_LIB::PersProductItem& item
00421 );
00423
00425
00426
00433 void storeRequest(
00434 const Session& session,
00435 const OSB_LIB::PersProduct::Oid& ppId,
00436 OSB_LIB::StatusRequest& status
00437 );
00438
00446 void storeChange(
00447 const Session& session,
00448 const OSB_LIB::PersProduct::Oid& ppId,
00449 OSB_LIB::StatusChange& change
00450 );
00451
00460 bool setPrefStatus(
00461 const Session& session,
00462 const OSB_LIB::PersProduct& pp
00463 );
00464
00473 bool setEffStatus(
00474 const Session& session,
00475 const OSB_LIB::PersProduct& pp
00476 );
00478
00480
00481
00488 void storeRequest(
00489 const Session& session,
00490 const OSB_LIB::PersProductNode::Oid& ppnId,
00491 OSB_LIB::StatusRequest& status
00492 );
00493
00501 void storeChange(
00502 const Session& session,
00503 const OSB_LIB::PersProductNode::Oid& ppnId,
00504 OSB_LIB::StatusChange& change
00505 );
00506
00515 bool setPrefStatus(
00516 const Session& session,
00517 const OSB_LIB::PersProductNode& persNode
00518 );
00519
00528 bool setEffStatus(
00529 const Session& session,
00530 const OSB_LIB::PersProductNode& persNode
00531 );
00533
00544 OSB_LIB::ObjectStatus checkObjVs(
00545 const Session& session,
00546 const OSB_LIB::PersProduct& pp
00547 );
00548
00558 OSB_LIB::ObjectStatus lock(
00559 const Session& session,
00560 const OSB_LIB::PersProduct::Oid& ppId,
00561 bool noWait
00562 );
00563
00573 OSB_LIB::ObjectStatus lock(
00574 const Session& session,
00575 const OSB_LIB::PersProduct& pp,
00576 bool noWait
00577 );
00578
00589 bool updProductUser(
00590 const Session& session,
00591 const OSB_LIB::PersProduct& pp
00592 );
00593 };
00594 }
00595 #endif // #ifndef _PERSPRODUCTGW_H_