1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267 |
- #include <stdio.h> /*標準輸入輸出定義*/
- #include <stdlib.h> /*標準函數庫定義*/
- #include <string.h>
- #include <stdint.h>
- #include <time.h>
- #include "../Config.h"
- #include "../Log/log.h"
- #include "../Define/define.h"
- #include "../ShareMemory/shmMem.h"
- //------------------------------------------------------------------------------
- #define DB_FILE "/Storage/ChargeLog/localCgargingRecord.db"
- #define DEDUCT_FILE "/Storage/ChargeLog/CreditCardRecord.db"
- #define PARKINGDEDUCT_FILE "/Storage/ChargeLog/ParkingCreditCardRecord.db"
- #define POWER_FILE "/Storage/ChargeLog/PowerConsumption.db"
- //------------------------------------------------------------------------------
- static sqlite3 *localDb;
- static sqlite3 *deductDb;
- static sqlite3 *parkingDb;
- static sqlite3* powerDb;
- static DcCommonInfo* ShmDcCommonData = NULL;
- //------------------------------------------------------------------------------
- //===============================================
- // SQLite3 related routine
- //===============================================
- int DB_Open(void)
- {
- int result = PASS;
- char *errMsg = NULL;
- char *createRecordSql = "CREATE TABLE IF NOT EXISTS charging_record("
- "idx integer primary key AUTOINCREMENT, "
- "reservationId text, "
- "transactionId text, "
- "startMethod text, "
- "userId text, "
- "dateTimeStart text, "
- "dateTimeStop text,"
- "socStart text, "
- "socStop text, "
- "chargeEnergy text, "
- "stopReason text"
- ");";
- /*char *createCfgSql = "CREATE TABLE IF NOT EXISTS `config` ( "
- "`idx` INTEGER PRIMARY KEY AUTOINCREMENT, "
- "`IsAvailable` TEXT NOT NULL, "
- "`connector` INTEGER NOT NULL, "
- "`val` TEXT NOT NULL, unique(IsAvailable,connector) on conflict replace);";
- */
- //DS60-120 add
- char *createCfgSql = "CREATE TABLE IF NOT EXISTS `config` ( "
- "`idx` INTEGER PRIMARY KEY AUTOINCREMENT, "
- "`item` TEXT NOT NULL, "
- "`connector` INTEGER NOT NULL, "
- "`val` TEXT NOT NULL, unique(item,connector) on conflict replace);";
- char *createrecordSql = "CREATE TABLE IF NOT EXISTS `event_record` ( "
- "`idx` INTEGER PRIMARY KEY AUTOINCREMENT, "
- "`occurDatetime` TEXT NOT NULL, "
- "`statusCode` TEXT NOT NULL, unique(occurDatetime,statusCode) on conflict replace);";
- char *createrebootSql = "CREATE TABLE IF NOT EXISTS `reboot_record` ( "
- "`idx` INTEGER PRIMARY KEY AUTOINCREMENT, "
- "`rebootDatetime` TEXT NOT NULL, unique(rebootDatetime) on conflict replace);";
- if (sqlite3_open(DB_FILE, &localDb)) {
- result = FAIL;
- log_info( "Can't open database: %s", sqlite3_errmsg(localDb));
- sqlite3_close(localDb);
- } else {
- //log_info( "Local charging record database open successfully.");
- if (sqlite3_exec(localDb, createRecordSql, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info( "Create local charging record table error message: %s", errMsg);
- } else {
- log_info( "Opened local charging record table successfully");
- }
- if (sqlite3_exec(localDb, createCfgSql, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info( "Create local config table error message: %s", errMsg);
- } else {
- log_info( "Opened local config table successfully");
- }
- //DS60-120
- if (sqlite3_exec(localDb, createrecordSql, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info( "Create local record table error message: %s", errMsg);
- } else {
- log_info( "Opened local record table successfully");
- }
- if (sqlite3_exec(localDb, createrebootSql, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info( "Create reboot record table error message: %s", errMsg);
- } else {
- log_info( "Opened reboot record table successfully");
- }
- //-----
- sqlite3_close(localDb);
- }
- ShmDcCommonData = (DcCommonInfo*)GetShmDcCommonData();
- return result;
- }
- int DB_Insert_Record(int gunIndex)
- {
- int result = PASS;
- char *errMsg = NULL;
- char insertSql[1024];
- struct ChargingInfoData *pDcChargingInfo = (struct ChargingInfoData *)GetDcChargingInfoData(gunIndex);
- struct OCPP16Data *ShmOCPP16Data = (struct OCPP16Data *)GetShmOCPP16Data();
- sprintf(insertSql, "insert into charging_record(reservationId, transactionId, startMethod, userId, dateTimeStart, dateTimeStop, socStart, socStop, chargeEnergy, stopReason) "
- "values('%d', '%d', '%d', '%s', '%s', '%s', '%d', '%d', '%f', '%s');",
- pDcChargingInfo->ReservationId, //DS60-120 add
- ShmOCPP16Data->StartTransaction[gunIndex].ResponseTransactionId,
- pDcChargingInfo->StartMethod,
- pDcChargingInfo->StartUserId,
- pDcChargingInfo->StartDateTime,
- pDcChargingInfo->StopDateTime,
- pDcChargingInfo->EvBatteryStartSoc,
- pDcChargingInfo->EvBatterySoc,
- pDcChargingInfo->PresentChargedEnergy,
- ShmOCPP16Data->StopTransaction[gunIndex].StopReason);
- //if (sqlite3_open("/Storage/ChargeLog/localCgargingRecord.db", &db)) {
- if (sqlite3_open(DB_FILE, &localDb)) { //DS60-120 add
- result = FAIL;
- log_info( "Can't open database: %s", sqlite3_errmsg(localDb));
- sqlite3_close(localDb);
- } else {
- //log_info( "Local charging record database open successfully.");
- if (sqlite3_exec(localDb, insertSql, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info( "Insert local charging record error message: %s", errMsg);
- } else {
- //log_info( "Insert local charging record successfully");
- }
- //DS60-120 add
- sprintf(insertSql, "delete from charging_record where idx < (select idx from charging_record order by idx desc limit 1)-2000;");
- if (sqlite3_exec(localDb, insertSql, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info( "delete local charging error message: %s", errMsg);
- } else {
- //log_info( "delete local charging record successfully");
- }
- sqlite3_close(localDb);
- }
- return result;
- }
- int DB_Update_Operactive(uint8_t gunIndex, uint8_t IsAvailable)
- {
- uint8_t result = false;
- char *errMsg = NULL;
- char sqlStr[1024];
- srand(time(NULL));
- if (sqlite3_open(DB_FILE, &localDb)) {
- result = FAIL;
- log_info( "Can't open database: %s", sqlite3_errmsg(localDb));
- sqlite3_close(localDb);
- } else {
- //log_info( "Local charging record database open successfully (%d).", IsAvailable);
- //sprintf(sqlStr, "insert or replace into config (IsAvailable, connector, val) values('IsAvailable', %d, %d);", gunIndex, IsAvailable);
- sprintf(sqlStr,
- "insert or replace into config (item, connector, val) values('IsAvailable', %d, %d);",
- gunIndex,
- IsAvailable); //DS60-120 add
- //log_info("sqlStr= %s", sqlStr);
- if (sqlite3_exec(localDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info( "update config error message: %s", errMsg);
- } else {
- log_info("update connector-%d config item isOperactive to %d", gunIndex, IsAvailable);
- }
- sqlite3_close(localDb);
- }
- return result;
- }
- int DB_Get_Operactive(uint8_t gunIndex)
- {
- uint8_t result = true;
- char *errMsg = NULL;
- char sqlStr[1024];
- char **rs;
- int rows, cols;
- //sprintf(sqlStr, "select * from config where IsAvailable='IsAvailable' and connector=%d;", gunIndex);
- sprintf(sqlStr, "select * from config where item='IsAvailable' and connector=%d;", gunIndex); //DS60-120 add
- //DEBUG_INFO("sqlStr= %s", sqlStr);
- if (sqlite3_open(DB_FILE, &localDb)) {
- result = FAIL;
- log_info( "Can't open database: %s", sqlite3_errmsg(localDb));
- sqlite3_close(localDb);
- } else {
- log_info( "Local config query database open successfully.");
- sqlite3_get_table(localDb, sqlStr, &rs, &rows, &cols, &errMsg);
- if (rows > 0) {
- for (int idxRow = 1; idxRow <= rows; idxRow++) {
- if (strcmp(rs[(idxRow * cols) + 3], "0") == 0) {
- result = false;
- }
- log_info("Query connector-%d isOperactive: %s", gunIndex, rs[(idxRow * cols) + 3]);
- }
- } else {
- log_info("Query connector-%d fail, set default value to operactive.", gunIndex);
- }
- sqlite3_free_table(rs);
- sqlite3_close(localDb);
- }
- return result;
- }
- int DB_Reboot_Record(void)
- {
- int result = PASS;
- char *errMsg = NULL;
- char insertSql[256];
- sprintf(insertSql, "insert into reboot_record(rebootDatetime) values(CURRENT_TIMESTAMP);");
- if (sqlite3_open(DB_FILE, &localDb)) {
- result = FAIL;
- log_info( "Can't open database: %s", sqlite3_errmsg(localDb));
- sqlite3_close(localDb);
- } else {
- //log_info( "Local charging record database open successfully.");
- if (sqlite3_exec(localDb, insertSql, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info( "Insert reboot record error message: %s", errMsg);
- } else {
- log_info( "Insert reboot record successfully");
- }
- sprintf(insertSql, "delete from reboot_record where idx < (select idx from charging_record order by idx desc limit 1)-2000;");
- if (sqlite3_exec(localDb, insertSql, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info( "delete reboot record error message: %s", errMsg);
- } else {
- log_info( "delete reboot record successfully");
- }
- sqlite3_close(localDb);
- }
- return result;
- }
- //------------------------------------------------------------------------------
- //for Module_EventLog
- //------------------------------------------------------------------------------
- int CreateEventRecord(void)
- {
- int result = PASS;
- char *errMsg = NULL;
- char *createRecordSql = "CREATE TABLE IF NOT EXISTS event_record("
- "idx integer primary key AUTOINCREMENT, "
- "occurDatetime text NOT NULL, "
- "statusCode text NOT NULL"
- ");";
- if (sqlite3_open(DB_FILE, &localDb)) {
- result = FAIL;
- log_error( "Can't open database: %s", sqlite3_errmsg(localDb));
- sqlite3_close(localDb);
- } else {
- log_info( "Local event record database open successfully.");
- if (sqlite3_exec(localDb, createRecordSql, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_error( "Create local event record table error message: %s", errMsg);
- } else {
- log_info( "Opened local event record table successfully");
- }
- sqlite3_close(localDb);
- }
- return result;
- }
- int InsertEventRecord(uint8_t *statusCode)
- {
- int result = PASS;
- char *errMsg = NULL;
- char sqlStr[1024] = {0};
- sprintf(sqlStr, "insert into event_record(occurDatetime, statusCode) values(CURRENT_TIMESTAMP, '%s');", statusCode);
- if (sqlite3_open(DB_FILE, &localDb)) {
- result = FAIL;
- log_info( "Can't open database: %s", sqlite3_errmsg(localDb));
- sqlite3_close(localDb);
- } else {
- //log_info( "Local event record database open successfully.");
- if (sqlite3_exec(localDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info( "Insert local event record error message: %s", errMsg);
- } else {
- //log_info( "Insert local event record successfully");
- }
- sprintf(sqlStr, "delete from event_record where idx < (select idx from event_record order by idx desc limit 1)-2000;");
- if (sqlite3_exec(localDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info( "delete local event_record error message: %s", errMsg);
- } else {
- //log_info( "delete local event record successfully");
- }
- sqlite3_close(localDb);
- }
- return result;
- }
- void CreditCardTimeSet(char *_time, RecordTransactionInfo* deductInfo)
- {
- _time[0] = '2';
- _time[1] = '0';
- _time[2] = (char)deductInfo->pCreditCard.TransDate[0];
- _time[3] = (char)deductInfo->pCreditCard.TransDate[1];
- _time[4] = '-';
- _time[5] = (char)deductInfo->pCreditCard.TransDate[2];
- _time[6] = (char)deductInfo->pCreditCard.TransDate[3];
- _time[7] = '-';
- _time[8] = (char)deductInfo->pCreditCard.TransDate[4];
- _time[9] = (char)deductInfo->pCreditCard.TransDate[5];
- _time[10] = ' ';
- _time[11] = (char)deductInfo->pCreditCard.TransTime[0];
- _time[12] = (char)deductInfo->pCreditCard.TransTime[1];
- _time[13] = ':';
- _time[14] = (char)deductInfo->pCreditCard.TransTime[2];
- _time[15] = (char)deductInfo->pCreditCard.TransTime[3];
- _time[16] = ':';
- _time[17] = (char)deductInfo->pCreditCard.TransTime[4];
- _time[18] = (char)deductInfo->pCreditCard.TransTime[5];
- _time[19] = '\0';
- }
- int DeductDB_Open(void)
- {
- int result = PASS;
- char* errMsg = NULL;
- char* createDeductInfoSql="CREATE TABLE IF NOT EXISTS report_credit_deduct("
- "idx integer primary key AUTOINCREMENT, "
- "gun_index text, "
- "reportDate text, "
- "vemData text, "
- "txId text, "
- "creditNo text, "
- "amount text, "
- "storeId text, "
- "approvalNo text, "
- "RRN text, "
- "ROC text, "
- "isDonateInvoice text, "
- "isDeductResult text, "
- "isIntoCharge text, "
- "isUpload text, "
- "lineSn text, "
- "Energy text, "
- "RedeductTime "
- ");";
- if(sqlite3_open(DEDUCT_FILE, &deductDb))
- {
- result = FAIL;
- log_info("Can't open deduct database: %s", sqlite3_errmsg(deductDb));
- sqlite3_close(deductDb);
- }
- else
- {
- //log_info("Deduct database open successfully.");
- if (sqlite3_exec(deductDb, createDeductInfoSql, 0, 0, &errMsg) != SQLITE_OK)
- {
- result = FAIL;
- log_info("Create deduct info table error message: %s", errMsg);
- }
- else
- {
- log_info("Opened deduct info table successfully");
- }
-
- sqlite3_close(deductDb);
- }
- return result;
- }
- int InsertDeductInfo(int gunIndex, RecordTransactionInfo *deductInfo)
- {
- int result = PASS;
- char *errMsg = NULL;
- char sqlStr[1024] = {0};
- char approNo[13];
- char carNo[21];
- char vemData[65];
- char storeId[18];
- char RRN[12];
- char ROC[12];
- char lineSn[20];
- char _time[20];
- memset(approNo, '\0', sizeof(approNo));
- memset(carNo, '\0', sizeof(carNo));
- memset(vemData, '\0', sizeof(vemData));
- memset(storeId, '\0', sizeof(storeId));
- memset(RRN, '\0', sizeof(RRN));
- memset(ROC, '\0', sizeof(ROC));
- memset(lineSn, '\0', sizeof(lineSn));
- strncpy(approNo, (char *)&deductInfo->pCreditCard.ApprovalNo,9);
- strncpy(carNo, (char *)&deductInfo->pCreditCard.CardNo,20);
- strncpy(vemData, (char *)&deductInfo->pCreditCard.VemData,64);
- strncpy(storeId, (char *)&deductInfo->pCreditCard.StoreId,18 );
- strncpy(RRN,(char *)&deductInfo->pCreditCard.RRN,12);
- strncpy(ROC,(char *)&deductInfo->pCreditCard.ROC,12);
- CreditCardTimeSet(&_time[0], deductInfo);
- //sprintf(reportDate, "%s%s", deductInfo->pCreditCard.TransDate, deductInfo->pCreditCard.TransTime);
- sprintf(sqlStr, "insert into report_credit_deduct(gun_index, reportDate, vemData, txId, creditNo, amount, storeId, approvalNo, RRN, ROC, isDonateInvoice, isDeductResult, isIntoCharge, isUpload, lineSn, Energy, RedeductTime) "
- "values('%d', '%s', '%s', '%d', '%s', '%.1f', '%s', '%s', '%s', '%s', '%d', '%d', '%d' , '%d', '%d', '%.4f', '%d');",
- gunIndex,
- _time,
- vemData,
- deductInfo->TransactionId,
- carNo,
- deductInfo->Amount,
- storeId,
- approNo,
- RRN,
- ROC,
- (int)deductInfo->IsDonateInvoice,
- (int)deductInfo->DeductResult,
- (int)deductInfo->isIntoCharge,
- (int)deductInfo->IsUpload,
- deductInfo->LineStatus,
- deductInfo->Energy,
- deductInfo->RedeductTime);
- //log_info("%s",sqlStr);
- if (sqlite3_open(DEDUCT_FILE, &deductDb))
- {
- result = FAIL;
- log_info( "Can't open deduct database: %s", sqlite3_errmsg(deductDb));
- sqlite3_close(deductDb);
- }
- else
- {
- //log_info( "Local event record database open successfully.");
- if (sqlite3_exec(deductDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK)
- {
- result = FAIL;
- log_info( "Insert deduct record error message: %s", errMsg);
- }
- else
- {
- //log_info( "Insert local event record successfully");
- }
- sprintf(sqlStr, "delete from report_credit_deduct where idx < (select idx from report_credit_deduct order by idx desc limit 1)-10000;");
- if (sqlite3_exec(deductDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK)
- {
- result = FAIL;
- log_info("delete deduct record error message: %s", errMsg);
- }
- else
- {
- //log_info("delete local charging record successfully");
- }
- sqlite3_close(deductDb);
- }
- return result;
- }
- int UpdateDeductInfoStatus(int gunIndex, RecordTransactionInfo *deductInfo)
- {
- int result = PASS;
- char *errMsg = NULL;
- char sqlStr[1024] = {0};
- char ApprovalNo[10] = {0};
- memset(ApprovalNo, '\0', 10);
- strncpy(ApprovalNo, (char*)&deductInfo->pCreditCard.ApprovalNo,9);
- sprintf(sqlStr, "update report_credit_deduct set isUpload = %d , isIntoCharge = %d, amount = %.1f, txId = %d, isDeductResult = %d, Energy = %.4f, lineSn = %d, RedeductTime = %d where approvalNo = '%s'; ",
- (int)deductInfo->IsUpload,
- (int)deductInfo->isIntoCharge,
- deductInfo->Amount,
- deductInfo->TransactionId,
- (int)deductInfo->DeductResult,
- deductInfo->Energy,
- deductInfo->LineStatus,
- deductInfo->RedeductTime,
- ApprovalNo);
- //log_info("%s",sqlStr);
- if (sqlite3_open(DEDUCT_FILE, &deductDb))
- {
- result = FAIL;
- log_info( "Can't open deduct database: %s", sqlite3_errmsg(deductDb));
- sqlite3_close(deductDb);
- }
- else
- {
- //log_info( "Local event record database open successfully.");
- if (sqlite3_exec(deductDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK)
- {
- result = FAIL;
- log_info( "update deduct record error message: %s!", errMsg);
- }
- else
- {
- //log_info( "update deduct record successfully");
- }
- sqlite3_close(deductDb);
- }
- return result;
- }
- int UpdateRedeuctBill(int Txid,float amount)
- {
- int result = PASS;
- char* errMsg = NULL;
- char sqlStr[1024] = { 0 };
- sprintf(sqlStr, "update report_credit_deduct set amount = %.1f where txId = '%d'; ",
- amount,
- Txid);
- //log_info("%s",sqlStr);
- if (sqlite3_open(DEDUCT_FILE, &deductDb))
- {
- result = FAIL;
- log_info("Can't open deduct database: %s", sqlite3_errmsg(deductDb));
- sqlite3_close(deductDb);
- } else
- {
- //log_info( "Local event record database open successfully.");
- if (sqlite3_exec(deductDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK)
- {
- result = FAIL;
- log_info("update deduct record error message: %s!", errMsg);
- } else
- {
- //log_info( "update deduct record successfully");
- }
- sqlite3_close(deductDb);
- }
- return result;
- }
- int DB_GetDeductInfo(int deductResult, int uploadState, int *gunIndex, RecordTransactionInfo *deductInfo)
- {
- int result = PASS;
- char *errMsg = NULL;
- char sqlStr[1024];
- char **rs;
- int rows, cols;
- if(deductResult >= 0 && uploadState >= 0)
- {
- sprintf(sqlStr, "select * from report_credit_deduct where isDeductResult = %d and isUpload = %d;", deductResult > 0 ? 1 : 0, uploadState > 0 ? 1 : 0);
- }
- else if(deductResult >= 0 && uploadState < 0)
- {
- sprintf(sqlStr, "select * from report_credit_deduct where isDeductResult = 0 OR isDeductResult = 3;");
- }
- else if(deductResult < 0 && uploadState >= 0)
- {
- sprintf(sqlStr, "select * from report_credit_deduct where isUpload = %d;", uploadState > 0 ? 1 : 0);
- }
- else
- {
- sprintf(sqlStr, "select * from report_credit_deduct;");
- }
- if (sqlite3_open(DEDUCT_FILE, &deductDb))
- {
- result = FAIL;
- log_info("Can't open deduct database: %s", sqlite3_errmsg(deductDb));
- sqlite3_close(deductDb);
- }
- else
- {
- sqlite3_get_table(deductDb, sqlStr, &rs, &rows, &cols, &errMsg);
- if (rows > 0)
- {
- for (int idxRow = 1; idxRow <= rows; idxRow++)
- {
- *gunIndex = atoi(rs[(idxRow * cols) + 1]);
- deductInfo->TransactionId = atoi(rs[(idxRow * cols) + 2]);
- deductInfo->DeductResult = atoi(rs[(idxRow * cols) + 3]);
- deductInfo->IsDonateInvoice = atoi(rs[(idxRow * cols) + 4]);
- strcpy((char *)&deductInfo->pCreditCard.ApprovalNo, rs[(idxRow * cols) + 5]);
- strcpy((char *)&deductInfo->pCreditCard.CardNo, rs[(idxRow * cols) + 6]);
- strcpy((char *)&deductInfo->pCreditCard.VemData, rs[(idxRow * cols) + 7]);
- deductInfo->Amount = atoi(rs[(idxRow * cols) + 8]);
- deductInfo->IsUpload = atoi(rs[(idxRow * cols) + 9]);
- break;
- }
- }
- else
- {
- result = FAIL;
- }
- sqlite3_free_table(rs);
- sqlite3_close(deductDb);
- }
- return result;
- }
- int DB_GetReDeductInfo(int *gunIndex, RecordTransactionInfo *deductInfo)
- {
- int result = PASS;
- if(DB_GetDeductInfo(0, -1, gunIndex, deductInfo) == PASS)
- {
- //log_info("GetReDeductInfo OK");
- }
- else
- {
- result = FAIL;
- //log_info("GetReDeductInfo NG");
- }
- return result;
- }
- int DB_GetReUploadDeduct(int *gunIndex, RecordTransactionInfo *deductInfo)
- {
- int result = PASS;
- if(DB_GetDeductInfo(-1, 0, gunIndex, deductInfo) == PASS)
- {
- //log_info("GetReUploadDeduct OK");
- }
- else
- {
- result = FAIL;
- //log_info("GetReUploadDeduct NG");
- }
- return result;
- }
- void GetDeductTime(char* _time,RecordTransactionInfo* deductInfo)
- {
- deductInfo->pCreditCard.TransDate[0] = (unsigned char)_time[2];
- deductInfo->pCreditCard.TransDate[1] = (unsigned char)_time[3];
- deductInfo->pCreditCard.TransDate[2] = (unsigned char)_time[5];
- deductInfo->pCreditCard.TransDate[3] = (unsigned char)_time[6];
- deductInfo->pCreditCard.TransDate[4] = (unsigned char)_time[8];
- deductInfo->pCreditCard.TransDate[5] = (unsigned char)_time[9];
- deductInfo->pCreditCard.TransTime[0] = (unsigned char)_time[11];
- deductInfo->pCreditCard.TransTime[1] = (unsigned char)_time[12];
- deductInfo->pCreditCard.TransTime[2] = (unsigned char)_time[14];
- deductInfo->pCreditCard.TransTime[3] = (unsigned char)_time[15];
- deductInfo->pCreditCard.TransTime[4] = (unsigned char)_time[17];
- deductInfo->pCreditCard.TransTime[5] = (unsigned char)_time[18];
- }
- // return quantity of DeductInfo
- int DB_GetMultiDeductInfo(int deductResult, int uploadState, int *gunIndex, RecordTransactionInfo *deductInfo)
- {
- char *errMsg = NULL;
- char sqlStr[1024];
- char **rs;
- int rows = 0, cols = 0;
- if(deductResult >= 0 && uploadState >= 0)
- {
- sprintf(sqlStr, "select * from report_credit_deduct where isDeductResult = %d and isUpload = %d;", deductResult > 0 ? 1 : 0, uploadState > 0 ? 1 : 0);
- }
- else if(deductResult >= 0 && uploadState < 0)
- {
- sprintf(sqlStr, "select * from report_credit_deduct where isDeductResult IN (0,3) AND RedeductTime < 10;");
- }
- else if(deductResult < 0 && uploadState >= 0)
- {
- sprintf(sqlStr, "select * from report_credit_deduct where isUpload = %d;", uploadState > 0 ? 1 : 0);
- }
- else
- {
- sprintf(sqlStr, "select * from report_credit_deduct;");
- }
- if (sqlite3_open(DEDUCT_FILE, &deductDb))
- {
- log_info("Can't open deduct database: %s", sqlite3_errmsg(deductDb));
- sqlite3_close(deductDb);
- }
- else
- {
- sqlite3_get_table(deductDb, sqlStr, &rs, &rows, &cols, &errMsg);
- if (rows > 0)
- {
- for (int idxRow = 1; idxRow <= rows; idxRow++)
- {
- //gunIndex[idxRow - 1] = atoi(rs[(idxRow * cols) + 1]);
- deductInfo[idxRow - 1].ConnectorID = atoi(rs[(idxRow * cols) + 1]);
- // GetDeductTime(rs[(idxRow * cols) + 1], deductInfo);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.VemData, rs[(idxRow * cols) + 3],64);
- deductInfo[idxRow - 1].TransactionId = atoi(rs[(idxRow * cols) + 4]);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.CardNo, rs[(idxRow * cols) + 5],20);
- deductInfo[idxRow - 1].Amount = atoi(rs[(idxRow * cols) + 6]);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.StoreId, rs[(idxRow * cols) + 7],18);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.ApprovalNo, rs[(idxRow * cols) + 8],9);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.RRN, rs[(idxRow * cols) + 9],12);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.ROC, rs[(idxRow * cols) + 10],12);
- deductInfo[idxRow - 1].IsDonateInvoice = atoi(rs[(idxRow * cols) + 11]);
- deductInfo[idxRow - 1].DeductResult = atoi(rs[(idxRow * cols) + 12]);
- deductInfo[idxRow - 1].isIntoCharge = atoi(rs[(idxRow * cols) + 13]);
- deductInfo[idxRow - 1].IsUpload = atoi(rs[(idxRow * cols) + 14]);
- deductInfo[idxRow - 1].LineStatus = atoi(rs[(idxRow * cols) + 15]);
- deductInfo[idxRow - 1].Energy = atof(rs[(idxRow * cols) + 16]);
- deductInfo[idxRow - 1].RedeductTime = atoi(rs[(idxRow * cols) + 17]);
- if(idxRow >= 128)
- {
- rows = 128;
- break;
- }
- }
- }
- sqlite3_free_table(rs);
- sqlite3_close(deductDb);
- }
- return rows;
- }
- int DB_GetMultiReDeductInfo(int *gunIndex, RecordTransactionInfo *deductInfo)
- {
- int quantity = 0;
- quantity = DB_GetMultiDeductInfo(0, -1, gunIndex, deductInfo);
- return quantity;
- }
- int DB_GetMultiReUploadDeduct(int *gunIndex, RecordTransactionInfo *deductInfo)
- {
- int quantity = 0;
- quantity = DB_GetMultiDeductInfo(-1, 0, gunIndex, deductInfo);
- return quantity;
- }
- void ReDeductTest()
- {
- int quantity = 0;
- int gunList[128];
- RecordTransactionInfo deductInfo[128];
- quantity = DB_GetMultiReDeductInfo(gunList, deductInfo);
- if(quantity > 0)
- {
- for(int i = 0; i < quantity; i++)
- {
- printf("Gun %d Rededuct CardNo: %s", gunList[i], deductInfo[i].pCreditCard.VemData);
- }
- }
- }
- int PowerDB_Open(void)
- {
- int result = PASS;
- char* errMsg = NULL;
- char* createPowerConsumption = "CREATE TABLE IF NOT EXISTS power_consumption( "
- "idx INTEGER PRIMARY KEY AUTOINCREMENT, "
- "connector TEXT, "
- "val TEXT);";
- if (sqlite3_open(POWER_FILE, &powerDb))
- {
- result = FAIL;
- log_info("Can't open deduct database: %s", sqlite3_errmsg(powerDb));
- sqlite3_close(powerDb);
- } else
- {
- if (sqlite3_exec(powerDb, createPowerConsumption, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info("Create power consumption record table error message: %s", errMsg);
- } else {
- log_info("Opened power consumption record table successfully");
- }
- sqlite3_close(powerDb);
- }
- return result;
- }
- int DB_Insert_PowerConsumption(uint8_t gunIndex, float energy)
- {
- uint8_t result = false;
- char* errMsg = NULL;
- char sqlStr[1024];
- srand(time(NULL));
- if (sqlite3_open(POWER_FILE, &powerDb)) {
- result = FAIL;
- log_info("Can't open database: %s", sqlite3_errmsg(powerDb));
- sqlite3_close(powerDb);
- } else {
- //log_info("Local charging record database open successfully (%f).", energy);
- sprintf(sqlStr, "insert into power_consumption (connector, val) values (%d, %f);",
- gunIndex,
- energy); //DS60-120 add
- //log_info("sqlStr= %s", sqlStr);
- if (sqlite3_exec(powerDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info("Insert power consumption error message: %s", errMsg);
- } else {
- log_info("Insert connector-%d config item PowerComsumption to %f", gunIndex, energy);
- }
- sqlite3_close(powerDb);
- }
- return result;
- }
- int DB_Update_PowerConsumption(uint8_t gunIndex, float energy)
- {
- uint8_t result = false;
- char* errMsg = NULL;
- char sqlStr[1024];
- srand(time(NULL));
- if (sqlite3_open(POWER_FILE, &powerDb)) {
- result = FAIL;
- log_info("Can't open database: %s", sqlite3_errmsg(powerDb));
- sqlite3_close(powerDb);
- } else {
- //log_info("Local charging record database open successfully.");
- sprintf(sqlStr, "update power_consumption set val = %f where connector = %d; ",
- energy,
- gunIndex); //DS60-120 add
- //log_info("sqlStr= %s", sqlStr);
- if (sqlite3_exec(powerDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK) {
- result = FAIL;
- log_info("update config error message: %s", errMsg);
- } else {
- //log_info("update connector-%d config item PowerComsumption to %f", gunIndex, energy);
- }
- sqlite3_close(powerDb);
- }
- return result;
- }
- int DB_Get_PowerConsumption(uint8_t gunIndex)
- {
- uint8_t result = true;
- char* errMsg = NULL;
- char sqlStr[1024];
- char** rs;
- int rows, cols;
- //sprintf(sqlStr, "select * from config where IsAvailable='IsAvailable' and connector=%d;", gunIndex);
- sprintf(sqlStr, "select * from power_consumption where connector=%d;", gunIndex); //DS60-120 add
- //DEBUG_INFO("sqlStr= %s", sqlStr);
- if (sqlite3_open(POWER_FILE, &powerDb)) {
- result = FAIL;
- log_info("Can't open database: %s", sqlite3_errmsg(powerDb));
- sqlite3_close(powerDb);
- } else {
- //log_info("Local config query database open successfully.");
- sqlite3_get_table(powerDb, sqlStr, &rs, &rows, &cols, &errMsg);
- if (rows > 0) {
- for (int idxRow = 1; idxRow <= rows; idxRow++) {
- ShmDcCommonData->pGunInfo[gunIndex].PowerConsumption = atof(rs[(idxRow * cols) + 2]);
- log_info("Query connector-%d PowerConsumption: %s", gunIndex, rs[(idxRow * cols) + 2]);
- }
- } else {
- log_info("Query connector-%d fail, set default value to operactive.", gunIndex);
- result = false;
- }
- sqlite3_free_table(rs);
- sqlite3_close(powerDb);
- }
- return result;
- }
- int ParkingDB_Open(void)
- {
- int result = PASS;
- char* errMsg = NULL;
- char* createDeductInfoSql="CREATE TABLE IF NOT EXISTS report_Parking_deduct("
- "idx integer primary key AUTOINCREMENT, "
- "gun_index text, "
- "vemData text, "
- "OccupancySN text, "
- "duration text, "
- "creditNo text, "
- "amount text, "
- "storeId text, "
- "approvalNo text, "
- "RRN text, "
- "ROC text, "
- "isDonateInvoice text, "
- "isDeductResult text, "
- "isUpload text, "
- "lineSn text, "
- "StartTime text, "
- "RedeductTime "
- ");";
- if(sqlite3_open(PARKINGDEDUCT_FILE, &parkingDb))
- {
- result = FAIL;
- log_info("Can't open Parking deduct database: %s", sqlite3_errmsg(parkingDb));
- sqlite3_close(parkingDb);
- }
- else
- {
- //log_info("Deduct database open successfully.");
- if (sqlite3_exec(parkingDb, createDeductInfoSql, 0, 0, &errMsg) != SQLITE_OK)
- {
- result = FAIL;
- log_info("Create Parking deduct info table error message: %s", errMsg);
- }
- else
- {
- log_info("Opened Parking deduct info table successfully");
- }
-
- sqlite3_close(parkingDb);
- }
- return result;
- }
- int InsertParkingDeductInfo(int gunIndex, RecordTransactionInfo *deductInfo)
- {
- int result = PASS;
- char *errMsg = NULL;
- char sqlStr[1024] = {0};
- char approNo[13];
- char carNo[21];
- char OccupancySN[37];
- char storeId[18];
- char RRN[12];
- char ROC[12];
- char lineSn[20];
- char _time[33];
- char vemData[65];
- memset(approNo, '\0', sizeof(approNo));
- memset(carNo, '\0', sizeof(carNo));
- memset(OccupancySN, '\0', sizeof(OccupancySN));
- memset(storeId, '\0', sizeof(storeId));
- memset(RRN, '\0', sizeof(RRN));
- memset(ROC, '\0', sizeof(ROC));
- memset(lineSn, '\0', sizeof(lineSn));
- memset(_time,'\0',sizeof(_time));
- memset(vemData,'\0',sizeof(vemData));
- strncpy(approNo, (char *)&deductInfo->pCreditCard.ApprovalNo,9);
- strncpy(carNo, (char *)&deductInfo->pCreditCard.CardNo,20);
- strncpy(OccupancySN, (char *)&deductInfo->OccupancySN,36);
- strncpy(storeId, (char *)&deductInfo->pCreditCard.StoreId,18 );
- strncpy(RRN,(char *)&deductInfo->pCreditCard.RRN,12);
- strncpy(ROC,(char *)&deductInfo->pCreditCard.ROC,12);
- strncpy(_time,(char *)&deductInfo->ParkingStartTime,33);
- strncpy(vemData,(char *)&deductInfo->pCreditCard.VemData,64);
- //sprintf(reportDate, "%s%s", deductInfo->pCreditCard.TransDate, deductInfo->pCreditCard.TransTime);
- sprintf(sqlStr, "insert into report_Parking_deduct(gun_index, vemData, OccupancySN, duration, creditNo, amount, storeId, approvalNo, RRN, ROC, isDonateInvoice, isDeductResult, isUpload, lineSn, StartTime, RedeductTime) "
- "values('%d', '%s', '%s', '%d', '%s', '%.1f', '%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d', '%s', '%d');",
- gunIndex,
- vemData,
- OccupancySN,
- deductInfo->ParkingDuration,
- carNo,
- deductInfo->Amount,
- storeId,
- approNo,
- RRN,
- ROC,
- (int)deductInfo->IsDonateInvoice,
- (int)deductInfo->DeductResult,
- (int)deductInfo->IsUpload,
- deductInfo->LineStatus,
- _time,
- deductInfo->RedeductTime);
- //log_info("%s",sqlStr);
- if (sqlite3_open(PARKINGDEDUCT_FILE, &parkingDb))
- {
- result = FAIL;
- log_info( "Can't open deduct database: %s", sqlite3_errmsg(parkingDb));
- sqlite3_close(parkingDb);
- }
- else
- {
- //log_info( "Local event record database open successfully.");
- if (sqlite3_exec(parkingDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK)
- {
- result = FAIL;
- log_info( "Insert deduct record error message: %s", errMsg);
- }
- else
- {
- //log_info( "Insert local event record successfully");
- }
- sprintf(sqlStr, "delete from report_Parking_deduct where idx < (select idx from report_Parking_deduct order by idx desc limit 1)-10000;");
- if (sqlite3_exec(parkingDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK)
- {
- result = FAIL;
- log_info("delete deduct record error message: %s", errMsg);
- }
- else
- {
- //log_info("delete local charging record successfully");
- }
- sqlite3_close(parkingDb);
- }
- return result;
- }
- // return quantity of DeductInfo
- int DB_GetParkingDeductUpload(int *gunIndex, RecordTransactionInfo *deductInfo)
- {
- char *errMsg = NULL;
- char sqlStr[1024];
- char **rs;
- int rows = 0, cols = 0;
- sprintf(sqlStr, "select * from report_Parking_deduct where isUpload = 0;");
- if (sqlite3_open(PARKINGDEDUCT_FILE, &parkingDb))
- {
- log_info("Can't open parking database: %s", sqlite3_errmsg(parkingDb));
- sqlite3_close(parkingDb);
- }
- else
- {
- sqlite3_get_table(parkingDb, sqlStr, &rs, &rows, &cols, &errMsg);
- if (rows > 0)
- {
- for (int idxRow = 1; idxRow <= rows; idxRow++)
- {
- //gunIndex[idxRow - 1] = atoi(rs[(idxRow * cols) + 1]);
- deductInfo[idxRow - 1].ConnectorID = atoi(rs[(idxRow * cols) + 1]);
- // GetDeductTime(rs[(idxRow * cols) + 1], deductInfo);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.VemData, rs[(idxRow * cols) + 2],64);
- memcpy((char*)&deductInfo[idxRow - 1].OccupancySN, rs[(idxRow * cols) + 3],36);
- deductInfo[idxRow - 1].ParkingDuration = atoi(rs[(idxRow * cols) + 4]);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.CardNo, rs[(idxRow * cols) + 5],20);
- deductInfo[idxRow - 1].Amount = atoi(rs[(idxRow * cols) + 6]);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.StoreId, rs[(idxRow * cols) + 7],18);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.ApprovalNo, rs[(idxRow * cols) + 8],9);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.RRN, rs[(idxRow * cols) + 9],12);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.ROC, rs[(idxRow * cols) + 10],12);
- deductInfo[idxRow - 1].IsDonateInvoice = atoi(rs[(idxRow * cols) + 11]);
- deductInfo[idxRow - 1].DeductResult = atoi(rs[(idxRow * cols) + 12]);
- deductInfo[idxRow - 1].IsUpload = atoi(rs[(idxRow * cols) + 13]);
- deductInfo[idxRow - 1].LineStatus = atoi(rs[(idxRow * cols) + 14]);
- memcpy((char*)&deductInfo[idxRow - 1].ParkingStartTime, rs[(idxRow * cols) + 15],32);
- deductInfo[idxRow - 1].RedeductTime = atoi(rs[(idxRow * cols) + 16]);
- if(idxRow >= 128)
- {
- rows = 128;
- break;
- }
- }
- }
- sqlite3_free_table(rs);
- sqlite3_close(parkingDb);
- }
- return rows;
- }
- int DB_GetParkingDeductResult(int *gunIndex, RecordTransactionInfo *deductInfo)
- {
- char *errMsg = NULL;
- char sqlStr[1024];
- char **rs;
- int rows = 0, cols = 0;
- sprintf(sqlStr, "select * from report_Parking_deduct where isDeductResult = 0 OR isDeductResult = 3;");
- if (sqlite3_open(PARKINGDEDUCT_FILE, &parkingDb))
- {
- log_info("Can't open parking database: %s", sqlite3_errmsg(parkingDb));
- sqlite3_close(parkingDb);
- }
- else
- {
- sqlite3_get_table(parkingDb, sqlStr, &rs, &rows, &cols, &errMsg);
- if (rows > 0)
- {
- for (int idxRow = 1; idxRow <= rows; idxRow++)
- {
- //gunIndex[idxRow - 1] = atoi(rs[(idxRow * cols) + 1]);
- deductInfo[idxRow - 1].ConnectorID = atoi(rs[(idxRow * cols) + 1]);
- // GetDeductTime(rs[(idxRow * cols) + 1], deductInfo);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.VemData, rs[(idxRow * cols) + 2],64);
- memcpy((char*)&deductInfo[idxRow - 1].OccupancySN, rs[(idxRow * cols) + 3],36);
- deductInfo[idxRow - 1].ParkingDuration = atoi(rs[(idxRow * cols) + 4]);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.CardNo, rs[(idxRow * cols) + 5],20);
- deductInfo[idxRow - 1].Amount = atoi(rs[(idxRow * cols) + 6]);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.StoreId, rs[(idxRow * cols) + 7],18);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.ApprovalNo, rs[(idxRow * cols) + 8],9);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.RRN, rs[(idxRow * cols) + 9],12);
- memcpy((char*)&deductInfo[idxRow - 1].pCreditCard.ROC, rs[(idxRow * cols) + 10],12);
- deductInfo[idxRow - 1].IsDonateInvoice = atoi(rs[(idxRow * cols) + 11]);
- deductInfo[idxRow - 1].DeductResult = atoi(rs[(idxRow * cols) + 12]);
- deductInfo[idxRow - 1].IsUpload = atoi(rs[(idxRow * cols) + 13]);
- deductInfo[idxRow - 1].LineStatus = atoi(rs[(idxRow * cols) + 14]);
- memcpy((char*)&deductInfo[idxRow - 1].ParkingStartTime, rs[(idxRow * cols) + 15],10);
- deductInfo[idxRow - 1].RedeductTime = atoi(rs[(idxRow * cols) + 16]);
- if(idxRow >= 128)
- {
- rows = 128;
- break;
- }
- }
- }
- sqlite3_free_table(rs);
- sqlite3_close(parkingDb);
- }
- return rows;
- }
- int UpdateParkingUpload(char* OccupancySN,int is_upload)
- {
- int result = PASS;
- char* errMsg = NULL;
- char sqlStr[1024] = { 0 };
- if (strcmp((char*)OccupancySN,"") == EQUAL) {
- log_info("OccupancySN is NULL");
- return;
- }
- char SN[37];
- memset(SN,'\0',sizeof(SN));
- memcpy((char*)SN,OccupancySN,36);
-
- sprintf(sqlStr, "update report_Parking_deduct set IsUpload = %d where OccupancySN = '%s'; ",
- is_upload,
- SN);
- //log_info("%s",sqlStr);
- if (sqlite3_open(PARKINGDEDUCT_FILE, &parkingDb))
- {
- result = FAIL;
- log_info("Can't open parking database: %s", sqlite3_errmsg(parkingDb));
- sqlite3_close(parkingDb);
- } else
- {
- //log_info( "Local event record database open successfully.");
- if (sqlite3_exec(parkingDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK)
- {
- result = FAIL;
- log_info("update parkingDB record error message: %s!", errMsg);
- } else
- {
- //log_info( "update deduct record successfully");
- }
- sqlite3_close(parkingDb);
- }
- return result;
- }
- int UpdateParkingDeductInfo(int gunIndex, RecordTransactionInfo *deductInfo)
- {
- int result = PASS;
- char *errMsg = NULL;
- char sqlStr[1024] = {0};
- char OccupancySN[37] = {0};
- memset(OccupancySN, '\0', 37);
- strncpy(OccupancySN, (char*)&deductInfo->OccupancySN,36);
- if (strcmp((char*)deductInfo->OccupancySN,"") == EQUAL) {
- log_info("OccupancySN is NULL");
- return;
- }
- sprintf(sqlStr, "update report_Parking_deduct set isUpload = %d ,amount = %.1f, isDeductResult = %d, RedeductTime = %d where OccupancySN = '%s'; ",
- (int)deductInfo->IsUpload,
- deductInfo->Amount,
- (int)deductInfo->DeductResult,
- deductInfo->RedeductTime,
- deductInfo->OccupancySN);
- // log_info("%s",sqlStr);
- if (sqlite3_open(PARKINGDEDUCT_FILE, &parkingDb))
- {
- result = FAIL;
- log_info( "Can't open deduct database: %s", sqlite3_errmsg(parkingDb));
- sqlite3_close(parkingDb);
- }
- else
- {
- //log_info( "Local event record database open successfully.");
- if (sqlite3_exec(parkingDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK)
- {
- result = FAIL;
- log_info( "update deduct record error message: %s!", errMsg);
- }
- else
- {
- //log_info( "update deduct record successfully");
- }
- sqlite3_close(parkingDb);
- }
- return result;
- }
|