eis/src/dbax/Pr.cpp

456 lines
13 KiB
C++
Raw Normal View History

//-- Version: 2018.7.9 10:44:17
////////////////////////////////////////////////////////////////////////
#include "Pr.h"
Pr::Pr()
:
dbAccess (true),
dbMessage (NULL)
{
ptrPrLogPro = NULL;
ptrPrOrdPro = NULL;
ptrPrPhyPro = NULL;
emptyObjects();
}
Pr::~Pr()
{
if(ptrPrLogPro != NULL) delete ptrPrLogPro;
if(ptrPrOrdPro != NULL) delete ptrPrOrdPro;
if(ptrPrPhyPro != NULL) delete ptrPrPhyPro;
}
// Parameters of table:PrLogPro
// muCode1
// arg2 = source = 所有者
// Parameters of table:PrOrdPro
// muCode3
// arg4 = source = 所有者
// Parameters of table:PrPhyPro
// muCode5
// arg6 = source
Pr::Pr( MU_CODE muCode1 ,const char* arg2 , MU_CODE muCode3 ,const char* arg4 , MU_CODE muCode5 ,const char* arg6 )
{
ptrPrLogPro = NULL;
ptrPrOrdPro = NULL;
ptrPrPhyPro = NULL;
dbAccess = true;
dbMessage = NULL;
ptrPrLogPro = new T_PDO_LO( muCode1 , arg2);
if ( ptrPrLogPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrLogPro->dbMessage; emptyObjects(); return; }
ptrPrOrdPro = new T_PDO_OR( muCode3 , arg4);
if ( ptrPrOrdPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; emptyObjects(); return; }
ptrPrPhyPro = new T_PDO_PH( muCode5 , arg6);
if ( ptrPrPhyPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrPhyPro->dbMessage; emptyObjects(); return; }
}
// Parameters of table:PrLogPro
// muCode1
// arg2 = source = 所有者
// Parameters of table:PrOrdPro
// muCode3
// arg4 = source = 所有者
// Parameters of table:PrPhyPro
// muCode5
// arg6 = source
void
Pr::initInsertKeys( MU_CODE muCode1 ,const char* arg2 , MU_CODE muCode3 ,const char* arg4 , MU_CODE muCode5 ,const char* arg6 )
{
setPrimKey( muCode1 , arg2 , muCode3 , arg4 , muCode5 , arg6 );
ptrPrLogPro->initInsertKeys( muCode1.actual.muId , muCode1.actual.muCreator , muCode1.actual.musId , arg2);
ptrPrOrdPro->initInsertKeys( muCode3.actual.muId , muCode3.actual.muCreator , muCode3.actual.musId , arg4);
ptrPrPhyPro->initInsertKeys( muCode5.actual.muId , muCode5.actual.muCreator , muCode5.actual.musId , arg6);
}
// Parameters of table:PrLogPro
// muCode1
// arg2 = source = 所有者
// Parameters of table:PrOrdPro
// muCode3
// arg4 = source = 所有者
// Parameters of table:PrPhyPro
// muCode5
// arg6 = source
void
Pr::setPrimKey( MU_CODE muCode1 ,const char* arg2 , MU_CODE muCode3 ,const char* arg4 , MU_CODE muCode5 ,const char* arg6 )
{
ptrPrLogPro->setPrimKey( muCode1.actual.muId , muCode1.actual.muCreator , muCode1.actual.musId , arg2);
ptrPrOrdPro->setPrimKey( muCode3.actual.muId , muCode3.actual.muCreator , muCode3.actual.musId , arg4);
ptrPrPhyPro->setPrimKey( muCode5.actual.muId , muCode5.actual.muCreator , muCode5.actual.musId , arg6);
}
// muCode1
// arg2 = source = 所有者
Pr::Pr( MU_CODE muCode1 ,const char* arg2 )
{
ptrPrLogPro = NULL;
ptrPrOrdPro = NULL;
ptrPrPhyPro = NULL;
dbAccess = true;
dbMessage = NULL;
MatStruct material( muCode1 );
if ( !material.dbAccess ){
dbAccess = false;
if ( strlen ( material.dbMessage ) < 200 )
{
strncpy( messageBuffer , material.dbMessage,sizeof(messageBuffer));
}
else
{
messageBuffer[0] = '\0';
}
dbMessage = messageBuffer;
emptyObjects();
return;
}
dbAccess = true;
if ( material.matUnits.actLogicalIndex == -1 )
{
ptrPrLogPro = new T_PDO_LO(material.matUnits.logMuCode[0] , arg2);
if ( ptrPrLogPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrLogPro->dbMessage; emptyObjects(); return; }
}
else
{
ptrPrLogPro = new T_PDO_LO(material.matUnits.logMuCode[material.matUnits.actLogicalIndex] , arg2);
if ( ptrPrLogPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrLogPro->dbMessage; emptyObjects(); return; }
}
if ( material.matUnits.actOrderIndex == -1 )
{
if ( material.matUnits.actLogicalIndex == -1 )
{
ptrPrOrdPro = new T_PDO_OR(material.matUnits.ordMuCode[0][0] , arg2);
if ( ptrPrOrdPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; emptyObjects(); return; }
}
else
{
ptrPrOrdPro = new T_PDO_OR(material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0] , arg2);
if ( ptrPrOrdPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; emptyObjects(); return; }
}
}
else
{
ptrPrOrdPro = new T_PDO_OR(material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex] , arg2);
if ( ptrPrOrdPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrOrdPro->dbMessage; emptyObjects(); return; }
}
ptrPrPhyPro = new T_PDO_PH( material.matUnits.phyMuCode , arg2);
if ( ptrPrPhyPro->dbAccess == false ) { dbAccess = false; dbMessage = ptrPrPhyPro->dbMessage; emptyObjects(); return; }
}
// muCode1
// arg2 = source = 所有者
void
Pr::initInsertKeys( MU_CODE muCode1 ,const char* arg2 )
{
setPrimKey( muCode1 , arg2 );
dbAccess = true;
dbMessage = NULL;
MatStruct material( muCode1 );
if ( !material.dbAccess ){
dbAccess = false;
if ( strlen ( material.dbMessage ) < 200 )
{
strncpy( messageBuffer , material.dbMessage,sizeof(messageBuffer));
}
else
{
messageBuffer[0] = '\0';
}
dbMessage = messageBuffer;
return;
}
dbAccess = true;
if ( material.matUnits.actLogicalIndex == -1 )
{
ptrPrLogPro->initInsertKeys( material.matUnits.logMuCode[0].actual.muId , material.matUnits.logMuCode[0].actual.muCreator , material.matUnits.logMuCode[0].actual.musId , arg2);
}
else
{
ptrPrLogPro->initInsertKeys( material.matUnits.logMuCode[material.matUnits.actLogicalIndex].actual.muId , material.matUnits.logMuCode[material.matUnits.actLogicalIndex].actual.muCreator , material.matUnits.logMuCode[material.matUnits.actLogicalIndex].actual.musId , arg2);
}
if ( material.matUnits.actOrderIndex == -1 )
{
if ( material.matUnits.actLogicalIndex == -1 )
{
ptrPrOrdPro->initInsertKeys( material.matUnits.ordMuCode[0][0].actual.muId , material.matUnits.ordMuCode[0][0].actual.muCreator , material.matUnits.ordMuCode[0][0].actual.musId , arg2);
}
else
{
ptrPrOrdPro->initInsertKeys( material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0].actual.muId , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0].actual.muCreator , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0].actual.musId , arg2);
}
}
else
{
ptrPrOrdPro->initInsertKeys( material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex].actual.muId , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex].actual.muCreator , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex].actual.musId , arg2);
}
ptrPrPhyPro->initInsertKeys( material.matUnits.phyMuCode.actual.muId , material.matUnits.phyMuCode.actual.muCreator , material.matUnits.phyMuCode.actual.musId , arg2);
}
// muCode1
// arg2 = source = 所有者
void
Pr::setPrimKey( MU_CODE muCode1 ,const char* arg2 )
{
dbAccess = true;
dbMessage = NULL;
MatStruct material( muCode1 );
if ( !material.dbAccess ){
dbAccess = false;
if ( strlen ( material.dbMessage ) < 200 )
{
strncpy( messageBuffer , material.dbMessage,sizeof(messageBuffer));
}
else
{
messageBuffer[0] = '\0';
}
dbMessage = messageBuffer;
return;
}
dbAccess = true;
if ( material.matUnits.actLogicalIndex == -1 )
{
ptrPrLogPro->setPrimKey( material.matUnits.logMuCode[0].actual.muId , material.matUnits.logMuCode[0].actual.muCreator , material.matUnits.logMuCode[0].actual.musId , arg2);
}
else
{
ptrPrLogPro->setPrimKey( material.matUnits.logMuCode[material.matUnits.actLogicalIndex].actual.muId , material.matUnits.logMuCode[material.matUnits.actLogicalIndex].actual.muCreator , material.matUnits.logMuCode[material.matUnits.actLogicalIndex].actual.musId , arg2);
}
if ( material.matUnits.actOrderIndex == -1 )
{
if ( material.matUnits.actLogicalIndex == -1 )
{
ptrPrOrdPro->setPrimKey( material.matUnits.ordMuCode[0][0].actual.muId , material.matUnits.ordMuCode[0][0].actual.muCreator , material.matUnits.ordMuCode[0][0].actual.musId , arg2);
}
else
{
ptrPrOrdPro->setPrimKey( material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0].actual.muId , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0].actual.muCreator , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][0].actual.musId , arg2);
}
}
else
{
ptrPrOrdPro->setPrimKey( material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex].actual.muId , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex].actual.muCreator , material.matUnits.ordMuCode[material.matUnits.actLogicalIndex][material.matUnits.actOrderIndex].actual.musId , arg2);
}
ptrPrPhyPro->setPrimKey( material.matUnits.phyMuCode.actual.muId , material.matUnits.phyMuCode.actual.muCreator , material.matUnits.phyMuCode.actual.musId , arg2);
}
///////////////////////////////////////////////////
char*
Pr::readDB()
{
if ( dbAccess == false)
{
return dbMessage;
}
if ( dbAccess == false)
{
return dbMessage;
}
char* ret = NULL;
ret = ptrPrLogPro->readDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrLogPro->dbMessage;
return(ret);
}
ret = ptrPrOrdPro->readDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrOrdPro->dbMessage;
return(ret);
}
ret = ptrPrPhyPro->readDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrPhyPro->dbMessage;
return(ret);
}
return(ret);
}
///////////////////////////////////////////////////
char*
Pr::updateDB()
{
if ( dbAccess == false)
{
return dbMessage;
}
char* ret = NULL;
ret = ptrPrLogPro->updateDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrLogPro->dbMessage;
return(ret);
}
ret = ptrPrOrdPro->updateDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrOrdPro->dbMessage;
return(ret);
}
ret = ptrPrPhyPro->updateDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrPhyPro->dbMessage;
return(ret);
}
return(ret);
}
///////////////////////////////////////////////////
char*
Pr::insertDB()
{
if ( dbAccess == false)
{
return dbMessage;
}
char* ret = NULL;
ret = ptrPrLogPro->insertDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrLogPro->dbMessage;
return(ret);
}
ret = ptrPrOrdPro->insertDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrOrdPro->dbMessage;
return(ret);
}
ret = ptrPrPhyPro->insertDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrPhyPro->dbMessage;
return(ret);
}
return(ret);
}
///////////////////////////////////////////////////
char*
Pr::deleteDB()
{
if ( dbAccess == false)
{
return dbMessage;
}
char* ret = NULL;
ret = ptrPrLogPro->deleteDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrLogPro->dbMessage;
return(ret);
}
ret = ptrPrOrdPro->deleteDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrOrdPro->dbMessage;
return(ret);
}
ret = ptrPrPhyPro->deleteDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrPhyPro->dbMessage;
return(ret);
}
return(ret);
}
///////////////////////////////////////////////////
char*
Pr::storeDB()
{
char* ret = NULL;
ptrPrLogPro->setKeysFromRecord();
ret = ptrPrLogPro->updateDB();
if ( ret != NULL ){
ret = ptrPrLogPro->insertDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrLogPro->dbMessage;
return(ret);
}
}
ptrPrOrdPro->setKeysFromRecord();
ret = ptrPrOrdPro->updateDB();
if ( ret != NULL ){
ret = ptrPrOrdPro->insertDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrOrdPro->dbMessage;
return(ret);
}
}
ptrPrPhyPro->setKeysFromRecord();
ret = ptrPrPhyPro->updateDB();
if ( ret != NULL ){
ret = ptrPrPhyPro->insertDB();
if ( ret != NULL ){
dbAccess = false;
dbMessage = ptrPrPhyPro->dbMessage;
return(ret);
}
}
return(ret);
}
//
//Create empty objects
//===================
//
void
Pr::emptyObjects()
{
if (!ptrPrLogPro) ptrPrLogPro = new T_PDO_LO();
if (!ptrPrOrdPro) ptrPrOrdPro = new T_PDO_OR();
if (!ptrPrPhyPro) ptrPrPhyPro = new T_PDO_PH();
}
//
//O P E R A T O R +
//===================
//
Pr
Pr::operator+(const Pr &inst) const
{
Pr ptrPr(*this);
*ptrPr.ptrPrLogPro = *this->ptrPrLogPro + *inst.ptrPrLogPro;
*ptrPr.ptrPrOrdPro = *this->ptrPrOrdPro + *inst.ptrPrOrdPro;
*ptrPr.ptrPrPhyPro = *this->ptrPrPhyPro + *inst.ptrPrPhyPro;
return(ptrPr);
}
//
//A S S I G N M E N T - O P E R A T O R =
//=======================================
//
const Pr&
Pr::operator=(const Pr &inst)
{
if(this != &inst)
{
*this->ptrPrLogPro = *inst.ptrPrLogPro;
*this->ptrPrOrdPro = *inst.ptrPrOrdPro;
*this->ptrPrPhyPro = *inst.ptrPrPhyPro;
}
return(*this);
}
Pr::Pr(const Pr &inst)
{
ptrPrLogPro = new T_PDO_LO(*inst.ptrPrLogPro);
ptrPrOrdPro = new T_PDO_OR(*inst.ptrPrOrdPro);
ptrPrPhyPro = new T_PDO_PH(*inst.ptrPrPhyPro);
}