|
@@ -370,37 +370,36 @@ int DeductDB_Open(void)
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
-int InsertDeductInfo(uint8_t gunIndex, RecordTransactionInfo *deductInfo)
|
|
|
+
|
|
|
+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];
|
|
|
+
|
|
|
+ memset(approNo, 0x00, sizeof(approNo));
|
|
|
+ memset(carNo, 0x00, sizeof(carNo));
|
|
|
+ memset(vemData, 0x00, sizeof(vemData));
|
|
|
+
|
|
|
+ memcpy(approNo, (char *)&deductInfo->ApprovalNo, sizeof(deductInfo->ApprovalNo));
|
|
|
+ memcpy(carNo, (char *)&deductInfo->CardNo, sizeof(deductInfo->CardNo));
|
|
|
+ memcpy(vemData, (char *)&deductInfo->VemData, sizeof(deductInfo->VemData));
|
|
|
|
|
|
sprintf(sqlStr, "insert into deduct_record(gunIndex, transactionId, deductResult, isDonate, approvalNo, cardNo, vemData, amount, isUpload) "
|
|
|
- "values('%d', '%d', '%d', '%d', '%s', '%s', '%s' , '%f', '%d');",
|
|
|
+ "values('%d', '%d', '%d', '%d', '%s', '%s', '%s', '%f', '%d');",
|
|
|
gunIndex,
|
|
|
deductInfo->TransactionId,
|
|
|
deductInfo->DeductResult,
|
|
|
deductInfo->IsDonateInvoice,
|
|
|
- deductInfo->ApprovalNo,
|
|
|
- deductInfo->CardNo,
|
|
|
- deductInfo->VemData,
|
|
|
+ approNo,
|
|
|
+ carNo,
|
|
|
+ vemData,
|
|
|
deductInfo->Amount,
|
|
|
deductInfo->IsUpload);
|
|
|
|
|
|
- log_info( "insert into charging_record(gunIndex, transactionId, deductResult, isDonate, approvalNo, cardNo, vemData, amount, isReport) "
|
|
|
- "values('%d', '%d', '%d', '%d', '%s', '%s', '%s', '%d', '%f', '%d');",
|
|
|
- gunIndex,
|
|
|
- deductInfo->TransactionId,
|
|
|
- deductInfo->DeductResult,
|
|
|
- deductInfo->IsDonateInvoice,
|
|
|
- deductInfo->ApprovalNo,
|
|
|
- deductInfo->CardNo,
|
|
|
- deductInfo->VemData,
|
|
|
- deductInfo->Amount,
|
|
|
- deductInfo->IsReportTransactionInfo);
|
|
|
-
|
|
|
if (sqlite3_open(DEDUCT_FILE, &deductDb))
|
|
|
{
|
|
|
result = FAIL;
|
|
@@ -425,61 +424,136 @@ int InsertDeductInfo(uint8_t gunIndex, RecordTransactionInfo *deductInfo)
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
-*/
|
|
|
-int InsertDeductInfo(uint8_t gunIndex, RecordTransactionInfo *deductInfo)
|
|
|
+
|
|
|
+int UpdateDeductInfoStatus(int gunIndex, RecordTransactionInfo *deductInfo)
|
|
|
{
|
|
|
- int result = PASS;
|
|
|
- char *errMsg = NULL;
|
|
|
- char sqlStr[1024] = {0};
|
|
|
- char approNo[13];
|
|
|
- char carNo[21];
|
|
|
- char vemData[65];
|
|
|
+ int result = PASS;
|
|
|
+ char *errMsg = NULL;
|
|
|
+ char sqlStr[1024] = {0};
|
|
|
|
|
|
- memset(approNo, 0x00, sizeof(approNo));
|
|
|
- memset(carNo, 0x00, sizeof(carNo));
|
|
|
- memset(vemData, 0x00, sizeof(vemData));
|
|
|
+ sprintf(sqlStr, "update deduct_record set deductResult = %d, isUpload = %d where transactionId = %d;",
|
|
|
+ deductInfo->DeductResult,
|
|
|
+ deductInfo->IsUpload,
|
|
|
+ deductInfo->TransactionId);
|
|
|
|
|
|
- memcpy(approNo, (char *)&deductInfo->ApprovalNo, sizeof(deductInfo->ApprovalNo));
|
|
|
- memcpy(carNo, (char *)&deductInfo->CardNo, sizeof(deductInfo->CardNo));
|
|
|
- memcpy(vemData, (char *)&deductInfo->VemData, sizeof(deductInfo->VemData));
|
|
|
+ if (sqlite3_open(DEDUCT_FILE, &deductDb))
|
|
|
+ {
|
|
|
+ result = FAIL;
|
|
|
+ log_info( "Can't open deduct database: %s", sqlite3_errmsg(deductDb));
|
|
|
+ sqlite3_close(deductDb);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ if (sqlite3_exec(deductDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK)
|
|
|
+ {
|
|
|
+ result = FAIL;
|
|
|
+ log_info( "update deduct record error message: %s", errMsg);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- sprintf(sqlStr, "insert into deduct_record(gunIndex, transactionId, deductResult, isDonate, approvalNo, cardNo, vemData, amount, isUpload) "
|
|
|
- "values('%d', '%d', '%d', '%d', '%s', '%s', '%s', '%f', '%d');",
|
|
|
- gunIndex,
|
|
|
- deductInfo->TransactionId,
|
|
|
- deductInfo->DeductResult,
|
|
|
- deductInfo->IsDonateInvoice,
|
|
|
- approNo,
|
|
|
- carNo,
|
|
|
- vemData,
|
|
|
- deductInfo->Amount,
|
|
|
- deductInfo->IsUpload);
|
|
|
+ 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 (sqlite3_open(DEDUCT_FILE, &deductDb))
|
|
|
- {
|
|
|
- result = FAIL;
|
|
|
- log_info( "Can't open deduct database: %s", sqlite3_errmsg(deductDb));
|
|
|
- sqlite3_close(deductDb);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
-
|
|
|
- if (sqlite3_exec(deductDb, sqlStr, 0, 0, &errMsg) != SQLITE_OK)
|
|
|
- {
|
|
|
- result = FAIL;
|
|
|
- log_info( "Insert deduct record error message: %s", errMsg);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
+ if(deductResult >= 0 && uploadState >= 0)
|
|
|
+ {
|
|
|
+ sprintf(sqlStr, "select * from deduct_record where deductResult = %d and isUpload = %d;", deductResult > 0 ? 1 : 0, uploadState > 0 ? 1 : 0);
|
|
|
+ }
|
|
|
+ else if(deductResult >= 0 && uploadState < 0)
|
|
|
+ {
|
|
|
+ sprintf(sqlStr, "select * from deduct_record where deductResult = %d;", deductResult > 0 ? 1 : 0);
|
|
|
+ }
|
|
|
+ else if(deductResult < 0 && uploadState >= 0)
|
|
|
+ {
|
|
|
+ sprintf(sqlStr, "select * from deduct_record where isUpload = %d;", uploadState > 0 ? 1 : 0);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sprintf(sqlStr, "select * from deduct_record;");
|
|
|
+ }
|
|
|
|
|
|
- sqlite3_close(deductDb);
|
|
|
- }
|
|
|
+ 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->ApprovalNo, rs[(idxRow * cols) + 5]);
|
|
|
+ strcpy((char *)&deductInfo->CardNo, rs[(idxRow * cols) + 6]);
|
|
|
+ strcpy((char *)&deductInfo->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;
|
|
|
|
|
|
- return result;
|
|
|
+ if(DB_GetDeductInfo(0, -1, gunIndex, deductInfo) == PASS)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ result = FAIL;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
}
|
|
|
+
|
|
|
+int DB_GetReUploadDeduct(int *gunIndex, RecordTransactionInfo *deductInfo)
|
|
|
+{
|
|
|
+ int result = PASS;
|
|
|
+
|
|
|
+ if(DB_GetDeductInfo(-1, 0, gunIndex, deductInfo) == PASS)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ result = FAIL;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|