📄 charge_public.cpp
字号:
#include "charge_public.h"#include "payment.flds.h"int WriteLog(COracle *cDatabase,char *staff_id,char *window_name,char *comment,char *ret_str){/* char lsSql[2048],lsTemp[1024]; long role_id; int i,isqlcode; sprintf(lsSql,"SELECT role_id FROM ROLES WHERE main_win = '%s'",window_name); ////userlog(comment); ////userlog(ret_str); ////userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); ////userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); ////userlog("检索ROLES返回行数:%d",cDatabase->GetRowCount()); if(isqlcode<0) { cDatabase->Rollback(); strcpy(ret_str,cDatabase->GetSqlErrText()); return(-1); } strcpy(lsTemp,cDatabase->data->GetColData(1,1)); rtrim(lsTemp); ltrim(lsTemp); if(lsTemp==NULL || cDatabase->GetRowCount()!=1 ) { cDatabase->Rollback(); strcpy(ret_str,"取role_id错误,没有对应值或返回多排!"); return(-1); } role_id=atol(lsTemp); sprintf(lsSql, "INSERT INTO SYSLOG(log_id,staff_id,role_id,action_time,comments) " "SELECT SEQ_SYSLOG_ID.NEXTVAL,%d,%d,sysdate,'%s'" "FROM DUAL " ,atol(staff_id),role_id,comment); ////userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); ////userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(ret_str,cDatabase->GetSqlErrText()); cDatabase->Rollback(); return(-1); } if(isqlcode==0) { return(1); }*/ return 1;}int GetSystime(COracle *cDatabase,char *systime,char *ret_str){ char lsSql[200]; int i,isqlcode; strcpy(lsSql,"select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual"); ////userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); ////userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); ////userlog("检索返回行数:%d",cDatabase->GetRowCount()); if(isqlcode<0) { strcpy(ret_str,cDatabase->GetSqlErrText()); return(-1); } strcpy(systime,cDatabase->data->GetColData(1,1)); ////userlog(systime); if(systime==NULL || cDatabase->GetRowCount()!=1 ) { strcpy(ret_str,"未取到系统时间"); return(-1); } if(isqlcode==0) return(1); return 0;}int GetMaxBillNo(COracle *cDatabase,char *ls_staff,char *maxbillno,char *ret_str){ char lsSql[2048]; long staff_id; int i,isqlcode; staff_id=atol(ls_staff); sprintf(lsSql, "UPDATE STAFF " "SET bill_max_no = bill_max_no + 1 " "WHERE staff_id = %d " ,staff_id); ////userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); ////userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(ret_str,cDatabase->GetSqlErrText()); cDatabase->Rollback(); return -1; } sprintf(lsSql, "SELECT to_number('%s'||to_char(sysdate,'yymmdd')) * 1000000 + bill_max_no " "FROM STAFF " "WHERE staff_id = %d " ,ls_staff,staff_id); ////userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); ////userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(ret_str,cDatabase->GetSqlErrText()); return -1; } strcpy(maxbillno,cDatabase->data->GetColData(1,1)); if(maxbillno==NULL || cDatabase->GetRowCount()!=1 ) { strcpy(ret_str,"取最大销帐流水号出错,没有对应值或返回多排!"); return -1; } ////userlog(maxbillno); return 1;}int GetMaxPayNo(COracle *cDatabase,char *ls_staff,char *maxpayno,char *ret_str){ char lsSql[2048]; long staff_id; int i,isqlcode; staff_id=atol(ls_staff); sprintf(lsSql, "UPDATE STAFF " "SET pay_max_no = pay_max_no + 1 " "WHERE staff_id = %d " ,staff_id); ////userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); ////userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(ret_str,cDatabase->GetSqlErrText()); cDatabase->Rollback(); return -1; } sprintf(lsSql, "SELECT to_number('%s'||to_char(sysdate,'yymmdd')) * 1000000 + pay_max_no " "FROM STAFF " "WHERE staff_id = %d " ,ls_staff,staff_id); ////userlog(lsSql); cDatabase->DoSql(lsSql); isqlcode=cDatabase->GetSqlCode(); ////userlog("Sqlcode: %d SqlErrText: %s",isqlcode,cDatabase->GetSqlErrText()); if(isqlcode<0) { strcpy(ret_str,cDatabase->GetSqlErrText()); return -1; } strcpy(maxpayno,cDatabase->data->GetColData(1,1)); if(maxpayno==NULL || cDatabase->GetRowCount()!=1 ) { strcpy(ret_str,"取最大付款流水号出错,没有对应值或返回多排!"); return -1; } ////userlog(maxpayno); return 1;}int GetInputParm(char *pstr,char *lparm[],int maxlen){ char tch[2]; long ltmp,len,pos; long i=0,j,k=-1; len=strlen(pstr); int off=0; if(len<=0) return 0; while(1) { lparm[i]=(char *)malloc(maxlen); //strcpy(lparm[i],NULL); lparm[i][0]=0; for(j=k+1;j<len;j++) { if(pstr[j]!='\t') { //sprintf(tch,"%c",pstr[j]); //strcat(lparm[i],tch); lparm[i][off]=pstr[j]; off++; } else { k=j; break; } } lparm[i][off]=0; off=0; if(j==len) break; i++; } pos=strlen(lparm[i])-1; if(lparm[i][pos]=='\n') lparm[i][pos]='\0'; return i+1;}int GetParmByAny(char *pstr,char *lparm[],char ch,int maxlen){ char tch[2]; long ltmp,len,pos; long i=0,j,k=-1; len=strlen(pstr); if(len<=0) return 0; while(1) { lparm[i]=(char *)malloc(maxlen); strcpy(lparm[i],NULL); for(j=k+1;j<len;j++) { if(pstr[j]!=ch) { sprintf(tch,"%c",pstr[j]); strcat(lparm[i],tch); } else { k=j; break; } } if(j==len) break; i++; } return i+1;}long GetRowCol(char *pstr,long *row,long *col){ long len; long i,j,n=0,k=-1; len=strlen(pstr); if(len<=0) return 0; while(1) { i=0; while(1) { for(j=k+1;pstr[j]!='\n'&&j<len;j++) { if(pstr[j]!='\t') { continue; } else { k=j; break; } } i++; n++; if(pstr[j]=='\n'||j>=len-1) break; } *row=*row+1; if(*row==1) *col=i; else if(*col!=i&&j<len) return -1; if(j>=len-1) break; k=j; } return n;}long GetMulRowData(char *pstr,char **lparm,long *row,long *col,int maxlen){ char tch[2]; long ltmp,len,pos; long i,j,n=0,k=-1; *row=0;*col=0; len=strlen(pstr); if(len<=0) return 0; while(1) { i=0; while(1) { lparm[n]=(char *)malloc(maxlen); strcpy(lparm[n],NULL); for(j=k+1;pstr[j]!='\n'&&j<len;j++) { if(pstr[j]!='\t') { sprintf(tch,"%c",pstr[j]); strcat(lparm[n],tch); } else { k=j; break; } } pos=strlen(lparm[n])-1; if(lparm[n][pos]=='\r') lparm[n][pos]='\0'; ////userlog("lparm[%d]= %s",n,lparm[n]); i++; n++; if(pstr[j]=='\n'||j>=len-1) break; } *row=*row+1; if(*row==1) *col=i; else if(*col!=i&&j<len) return -1; if(j>=len-1) break; k=j; } return n;}void lpfree(char *pt[],int num){ for(int i=0;i<num;i++) free(pt[i]);}void StrReturn(int liRet,char *lsData){ long lLen; char *lsRet; char lstmp[50]; lLen = strlen(lsData); lsRet = 0; lsRet = tpalloc("STRING",NULL,lLen+1); if (lsRet == NULL) { sprintf(lstmp,"Tpalloc failed !Return : %d",liRet); lsRet = tpalloc("STRING",NULL,50); strcpy(lsRet,lstmp); liRet=-1; } else { if (lLen <= 0) strcpy(lsRet,NULL); else strcpy(lsRet,lsData); } tpreturn(TPSUCCESS, liRet, lsRet, 0L, 0);}int is_number(char *pStr){ int i; for (i=0;i<strlen(pStr);i++) if ((pStr[i]>='0' && pStr[i]<='9') || (pStr[i] == '.')) ; else return FALSE; return TRUE;}char* ltrim(char * pStr){ char lsTemp[1024],*p; int i,j,l; j = 0; l = strlen(pStr); p = pStr; for(i=0;i<l;i++) { if( (*p)!= ' ') break; p++; } strcpy(lsTemp,p); strcpy(pStr,lsTemp); return pStr;}char* rtrim(char *pStr){ int i,l; l = strlen(pStr); for(i=l-1;i>=0;i--) if((pStr[i] == ' ') || (pStr[i] == '\r') ||(pStr[i] == '\n')) continue; else { pStr[i+1]= '\0'; break; } return pStr;}void GetProfileString(char *filename,char *areaname,char *keyname,char *keydata){ FILE *fp; long flen; char *filedata,area[256],*areabegin,*areaend,*areadata; char *databegin,*dataend,*keybegin; if((fp=fopen(filename,"r"))==NULL) { printf("Cannot open the configure file %s\n",filename); exit(0); } fseek(fp,0L,SEEK_END); flen=ftell(fp); filedata=(char *)calloc(1,flen); fseek(fp,0L,SEEK_SET); fread(filedata,1,flen,fp); fclose(fp); sprintf(area,"[%s]",areaname); areabegin=strstr(filedata,area); areaend=strstr(areabegin+1,"["); if(areaend==NULL) { areaend=filedata+flen-1; } keybegin=strstr(areabegin,keyname); if(keybegin==NULL||keybegin>areaend) { return; } databegin=strstr(keybegin,"="); dataend=strstr(keybegin,"\n"); if(dataend==NULL) { dataend=areaend; } while(*(databegin+1)==' ') { databegin++; } strncpy(keydata,databegin+1,dataend-databegin-1); keydata[dataend-databegin-1] = '\0';}//函数:用于从字符串中导出某位置开始指定数量的字符串void MidOfStr(char* outstr, char* instr, int pos, int count){ int i; for(i = 0; i < count; i ++) { outstr[i] = instr[pos+i]; } outstr[count] = '\0';}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -