?? qtsylibp.txt
字號(hào):
//時(shí)點(diǎn)打折函數(shù)
double sql_sddz(_SPStruct *rec,char *dzlx)
{
DBFLT8 yhl=0.0;
DBCHAR _dzlx[2]="0";
if(!__syfs||dbproc==NULL||DBDEAD(dbproc)) //單計(jì)時(shí)點(diǎn)打折
yhl = dbf_sddz(rec->spbm,_dzlx);
else
{
//求符合條件的最大編碼
dbfreebuf(dbproc);
dbcmd(dbproc, "select yhl,dzlx ");
dbcmd(dbproc, "from jxc_sddzb ");
dbfcmd(dbproc,"where '%s'like ltrim(rtrim(bm))+'%%'",rec->spbm);
dbcmd(dbproc," and getdate() between stime and etime and qfbz='1' ");
dbcmd(dbproc," and convert(char(8),getdate(),8) between convert(char(8),stime,8) ");
dbcmd(dbproc," and convert(char(8),etime,8)");
dbsqlexec(dbproc);
while ((result_code = dbresults(dbproc)) != NO_MORE_RESULTS)
if(result_code == SUCCEED)
{
dbbind(dbproc, 1, FLT8BIND, (DBINT) 0,(BYTE *) &yhl);
dbbind(dbproc, 2, NTBSTRINGBIND, (DBINT) 0,_dzlx);
while (dbnextrow(dbproc) != NO_MORE_ROWS);
if(DBCOUNT(dbproc)==0)
{
yhl = 0.0;
break;
}
}
}
strcpy(dzlx,_dzlx);
return yhl;
}
//取商品類別優(yōu)惠率(類別編碼)
double sql_yhl(char *splb)
{
DBFLT8 yhl=0.0;
char _buf[21];
if(!__syfs||dbproc==NULL||DBDEAD(dbproc)) //單機(jī)優(yōu)惠率
{
if(!GetDataFromDbf(&_LBBDataSet,_LBBFields,"lbbm",splb)) //找到
GetDataFromField(_LBBDataSet.FieldCount,_LBBFields,"yhl",_buf,&yhl);
}
else
{
dbfreebuf(dbproc);
dbcmd(dbproc, " select isnull(yhl,1) ");
dbcmd(dbproc, " from jxc_lbb ");
dbfcmd(dbproc," where lbbm='%s' ",splb);
dbsqlexec(dbproc);
while((result_code=dbresults(dbproc))!=NO_MORE_RESULTS)
if(result_code==SUCCEED)
{
dbbind(dbproc, 1, FLT8BIND, (DBINT) 0,(BYTE *) &yhl);
while(dbnextrow(dbproc)!=NO_MORE_ROWS);
}
else break;
// printf("%s %f\n",splb,yhl);
// getchar();
}
return (yhl<0)?0.0:yhl;
}
//從條碼稱表中取商品編碼
int sql_spbm(_SPStruct *CurrSP,char *_spbm)
{
DBCHAR spbm[9],spmc[51];
DBFLT8 sj;
char _buf[21];
int Result=2;
if(!__syfs||dbproc==NULL||DBDEAD(dbproc)) //單機(jī)優(yōu)惠率
{
Result=GetDataFromDbf(&_TMCDataSet,_TMCFields,"tplu",_spbm);
if(!Result)
{
GetDataFromField(_TMCDataSet.FieldCount,_TMCFields,"spbm",spbm,NULL);
GetDataFromField(_TMCDataSet.FieldCount,_TMCFields,"spmc",spmc,NULL);
GetDataFromField(_TMCDataSet.FieldCount,_TMCFields,"sj",_buf,&sj);
}
}
else
{
dbfreebuf(dbproc);
dbcmd(dbproc, " select spbm,spmc,sj from jxc_tmcb ");
dbfcmd(dbproc," where tplu='%s' ",_spbm);
dbsqlexec(dbproc);
while((result_code=dbresults(dbproc))!=NO_MORE_RESULTS)
if(result_code==SUCCEED)
{
dbbind(dbproc,1,NTBSTRINGBIND,(DBINT) 0, spbm);
dbbind(dbproc,2,NTBSTRINGBIND,(DBINT) 0, spmc);
dbbind(dbproc,3,FLT8BIND,(DBINT)0, (BYTE *)&sj);
while(dbnextrow(dbproc)!=NO_MORE_ROWS);
if(!DBCOUNT(dbproc))
Result=1;
else
Result=0;
break;
}
else
break;
}
if(!Result)
{
strcpy(CurrSP->spbm,spbm);
strcpy(CurrSP->spmc,spmc);
CurrSP->sj=sj;
CurrSP->yhj=sj;
CurrSP->sjsj=sj;
return 0;
}
else return -1;
}
//從商品表中取
int sql_spbmex(_SPStruct *CurrSP,char *_spbm)
{
DBCHAR spbm[9],spmc[51];
DBFLT8 sj;
char _buf[21];
int Result=2;
if(!__syfs||dbproc==NULL||DBDEAD(dbproc)) //單機(jī)優(yōu)惠率
{
Result=GetDataFromDbf(&_SPBDataSet,_SPBFields,"spbm",_spbm);
if(!Result)
{
GetDataFromField(_SPBDataSet.FieldCount,_SPBFields,"spbm",spbm,NULL);
GetDataFromField(_SPBDataSet.FieldCount,_SPBFields,"spmc",spmc,NULL);
GetDataFromField(_SPBDataSet.FieldCount,_SPBFields,"sj",_buf,&sj);
}
}
else
{
dbfreebuf(dbproc);
dbcmd(dbproc, " select spbm,rtrim(spmc)+isnull(ggxh,''),sj from jxc_spb");
dbfcmd(dbproc," where spbm='%s'",_spbm);
dbsqlexec(dbproc);
while((result_code=dbresults(dbproc))!=NO_MORE_RESULTS)
if(result_code==SUCCEED)
{
dbbind(dbproc,1,NTBSTRINGBIND,(DBINT) 0, spbm);
dbbind(dbproc,2,NTBSTRINGBIND,(DBINT) 0, spmc);
dbbind(dbproc,3,FLT8BIND,(DBINT)0, (BYTE *)&sj);
while(dbnextrow(dbproc)!=NO_MORE_ROWS);
if(!DBCOUNT(dbproc))
Result=1;
else
Result=0;
break;
}
else
break;
}
switch(Result)
{
case 0:strcpy(CurrSP->spbm,spbm);
strcpy(CurrSP->spmc,spmc);
CurrSP->sj=sj;
CurrSP->sjsj=sj;
break;
case 1:MsgBoxEx("無該條碼秤商品!",1);
break;
case 2:MsgBoxEx("無法查詢到相關(guān)的商品!",1);
break;
}
return (!Result)?0:-1;
}
//取商品明細(xì)
int sql_spxx(_SPStruct *CurrSP)
{
DBCHAR spmc[51],gg[11],gzbm[5],csbm[7],splb[7],jyfs[3],jldw[5];
DBFLT8 sj,yhj,jj,spsl;
char tmpstr[7],_buf[30],dzlx[2];
double tmpyhl=0;
int Result=0,FCount;
if(!__syfs||(dbproc==NULL||DBDEAD(dbproc))) //單機(jī)收銀方式
{ //或者無法聯(lián)通數(shù)據(jù)庫
//從本地查詢商品
Result=GetDataFromDbf(&_SPBDataSet,_SPBFields,"spbm",CurrSP->spbm);
if(!Result) //找到
{
FCount = _SPBDataSet.FieldCount;
GetDataFromField(FCount,_SPBFields,"spmc",spmc,NULL);
GetDataFromField(FCount,_SPBFields,"ggxh",gg,NULL);
strcat(spmc,"(");
strcat(spmc,gg);
strcat(spmc,")");
GetDataFromField(FCount,_SPBFields,"gzbm",gzbm,NULL);
GetDataFromField(FCount,_SPBFields,"csbm",csbm,NULL);
GetDataFromField(FCount,_SPBFields,"splb",splb,NULL);
GetDataFromField(FCount,_SPBFields,"jyfs",jyfs,NULL);
GetDataFromField(FCount,_SPBFields,"jldw",jldw,NULL);
GetDataFromField(FCount,_SPBFields,"sj",_buf,&sj);
GetDataFromField(FCount,_SPBFields,"yhj",_buf,&yhj);
GetDataFromField(FCount,_SPBFields,"jj",_buf,&jj);
GetDataFromField(FCount,_SPBFields,"spsl",_buf,&spsl);
}
}
else
{
dbfreebuf(dbproc);
dbcmd(dbproc, " select rtrim(spmc)+isnull(ggxh,''),jldw,splb,gzbm,csbm,jyfs, ");
dbcmd(dbproc, " isnull(jj,0),isnull(sj,0),isnull(yhj,0),isnull(spsl,1)");
dbcmd(dbproc, " from jxc_spb");
dbfcmd(dbproc," where spbm='%s'",CurrSP->spbm);
dbsqlexec(dbproc);
Result = 2;
while((result_code=dbresults(dbproc))!=NO_MORE_RESULTS)
if(result_code==SUCCEED)
{
dbbind(dbproc,1,NTBSTRINGBIND,(DBINT) 0, spmc);
dbbind(dbproc,2,NTBSTRINGBIND,(DBINT) 0, jldw);
dbbind(dbproc,3,NTBSTRINGBIND,(DBINT) 0, splb);
dbbind(dbproc,4, NTBSTRINGBIND, (DBINT) 0, gzbm);
dbbind(dbproc,5, NTBSTRINGBIND, (DBINT) 0, csbm);
dbbind(dbproc,6, NTBSTRINGBIND, (DBINT) 0, jyfs);
dbbind(dbproc,7, FLT8BIND, (DBINT) 0,(BYTE *) &jj);
dbbind(dbproc,8, FLT8BIND, (DBINT) 0,(BYTE *) &sj);
dbbind(dbproc,9, FLT8BIND, (DBINT) 0,(BYTE *) &yhj);
dbbind(dbproc,10, FLT8BIND, (DBINT) 0,(BYTE *) &spsl);
Result = 0;
while(dbnextrow(dbproc)!=NO_MORE_ROWS);
if(!DBCOUNT(dbproc)) //無該商品
{
Result=1;
break;
}
}
else
{
Result=2;
break;
}
}
switch(Result)
{
case 0:break;
case 1:MsgBoxEx("找不到商品!",1);
return -1;
case 2:MsgBoxEx("尋找商品失敗!",1);
return -1;
}
if(CurrSP->state!=1)
strcpy(CurrSP->spmc,spmc);
strcpy(CurrSP->jldw,jldw);
strcpy(CurrSP->gzbm,gzbm);
strcpy(CurrSP->splb,splb);
strcpy(CurrSP->csbm,csbm);
strcpy(CurrSP->jyfs,jyfs);
CurrSP->jj=jj;
CurrSP->spsl=spsl;
CurrSP->yhl=1.0;
if(CurrSP->state==0) //
{
if(CurrSP->sl==0)
CurrSP->sl=1;
CurrSP->sj=sj;
if(CurrSP->sjsj==0)
CurrSP->sjsj=sj;
CurrSP->yhj=yhj;
if(sj&&yhj) CurrSP->yhl=yhj/sj; //優(yōu)惠率默認(rèn)等于1
else CurrSP->yhj=sj;
}
//檢查時(shí)點(diǎn)打折表
if(!(Param.Bzspdz[0]=='0'&&CurrSP->state==2)&&
!(Param.Tmspdz[0]=='0'&&CurrSP->state==1))
{
if(Param.Sddz[0]!='0') //允許時(shí)點(diǎn)打折
{
tmpyhl=sql_sddz(CurrSP,dzlx);
}
if(tmpyhl) //有時(shí)點(diǎn)打折
{
CurrSP->state=5; //設(shè)置時(shí)點(diǎn)打折商品標(biāo)記
if(Param.Sddz[0]=='1') //負(fù)數(shù)方式
{
if(tmpyhl<0)
{
CurrSP->yhj=0-tmpyhl; //優(yōu)惠價(jià)
if(CurrSP->sj)
CurrSP->yhl=CurrSP->yhj/CurrSP->sj; //時(shí)點(diǎn)優(yōu)惠率
else
CurrSP->yhl=1.0;
}
else
{
CurrSP->yhj=CurrSP->sj*tmpyhl;
CurrSP->yhl=tmpyhl;
}
}
else if(Param.Sddz[0]=='2') //小于1方式
{
if(tmpyhl<0) tmpyhl=0-tmpyhl;
if(tmpyhl>=1)
{
CurrSP->yhj=tmpyhl; //優(yōu)惠價(jià)
if(CurrSP->sj)
CurrSP->yhl=CurrSP->yhj/CurrSP->sj; //時(shí)點(diǎn)優(yōu)惠率
else
CurrSP->yhl=1.0;
}
else
{
CurrSP->yhj=CurrSP->sj*tmpyhl;
CurrSP->yhl=tmpyhl;
}
}
else //按打折類型打折
{
if(tmpyhl<0) tmpyhl=0-tmpyhl;
if(dzlx[0]=='0') //打折率
{
CurrSP->yhj=CurrSP->sj*tmpyhl;
CurrSP->yhl=tmpyhl;
}
else //打折價(jià)
{
CurrSP->yhj=tmpyhl*CurrSP->bzsl; //優(yōu)惠價(jià)
if(CurrSP->sj)
CurrSP->yhl=CurrSP->yhj/CurrSP->sj; //時(shí)點(diǎn)優(yōu)惠率
else
CurrSP->yhl=1.0;
}
}
}
else //無時(shí)點(diǎn)打折,求類別打折
if(CurrSP->yhl==1&&yhj==0) //尚未優(yōu)惠
{
tmpyhl=sql_yhl(splb);
if(tmpyhl==0) //取類別優(yōu)惠價(jià)
{
uf_strmid(tmpstr,splb,0,4);
tmpyhl=sql_yhl(tmpstr);
if(tmpyhl==0)
{
uf_strmid(tmpstr,splb,0,2);
tmpyhl=sql_yhl(tmpstr);
if(!tmpyhl) tmpyhl=1;
}
}
CurrSP->yhl=tmpyhl;
CurrSP->yhj=CurrSP->sj*CurrSP->yhl;
}
}
//計(jì)算實(shí)際價(jià)
if(Param.PFeed[3]!='0'&&SPLists->fklp.yhk.kh[0]!='\0') //已刷優(yōu)惠卡
{
// printf("\nok yhj:%f",CurrSP->yhj);
if(Param.Gbksy[0]!='0'&&SPLists->fklp.yhk.VIP==1&&
CurrSP->sj!=CurrSP->yhj) //lijing VIP卡(特價(jià)商品除外)
CurrSP->sjsj=CurrSP->sj*SPLists->fklp.yhk.yhl;
else
CurrSP->sjsj=CurrSP->yhj;
}
//檢查商品類型
switch(CurrSP->state)
{
case 0://正常商品
CurrSP->je = CurrSP->sj*CurrSP->sl;
CurrSP->ssje = CurrSP->sjsj*CurrSP->sl;
break;
case 2://二次包裝商品
CurrSP->je=CurrSP->sj; //計(jì)算金額
CurrSP->ssje=CurrSP->sjsj; //計(jì)算金額
break;
case 1://條碼稱商品
if(strcmp(CurrSP->jyfs,"10")==0&&Param.Xzbm[5]=='1')
{
CurrSP->sl = 1.0;
CurrSP->sj = CurrSP->je;
CurrSP->sj = CurrSP->ssje;
CurrSP->sjsj = CurrSP->ssje;
}
break;
case 3://改銷價(jià)商品
break;
case 4://打折商品
break;
case 5://時(shí)點(diǎn)銷售商品
CurrSP->je=CurrSP->sj; //計(jì)算金額
CurrSP->sjsj=CurrSP->yhj;
CurrSP->ssje=CurrSP->sjsj; //計(jì)算金額
break;
//lijing
case 8://聯(lián)營商品
CurrSP->je=CurrSP->sj;
CurrSP->sjsj=CurrSP->yhj;
CurrSP->ssje=CurrSP->sjsj;
break;
//
}
//設(shè)置工作方式
strcpy(CurrSP->gzbm,g_gz_mode);
return 0x21;
}
//檢查商品是否已經(jīng)存在于銷售列標(biāo)中
//返回1時(shí)表示已經(jīng)存在
int sql_checkop(double sls,double sld)
{
switch(Param.PFeed[5])
{
case '0':if(sls<0) return 0; //負(fù)數(shù)不疊加
break;
case '1':if((sls<0&&sld>0)||(sls>0&&sld<0)) //不同符號(hào)疊加
return 0;
break;
case '2':if(sls<0||(sls<0&&sld>0)||(sls>0&&sld<0))
return 0;
}
return 1;
}
int sql_spexists(_SPStruct *CurrSP)
{
int i;
_SPStruct *Orig=NULL;
if(Param.Sldjfs[0]=='0') return 0;
for(i=SPLists->RecordCount;i>=1;i--)
if(CurrSP->mark==SPLists->SPList[i].mark&&
strcmp(CurrSP->spbm,SPLists->SPList[i].spbm)==0&&
(CurrSP->mark==0||
(CurrSP->mark==1&&strcmp(CurrSP->spmc,SPLists->SPList[i].spmc)==0)||
(CurrSP->mark==2&&strcmp(CurrSP->sptm,SPLists->SPList[i].sptm)==0)))
if(sql_checkop(CurrSP->sl,SPLists->SPList[i].sl))
{ //相等
Orig=&(SPLists->SPList[i]);
if(CurrSP->sl==0) CurrSP->sl=1;
break;
}
if(strcmp(CurrSP->jyfs,"10")==0&&Param.PFeed[4]=='0')
Orig = NULL;
if(Param.Sldjfs[0]!='0'&&Orig) //找到并且允許迭加
if(Orig->RecNo==SPLists->RecordCount||Param.Sldjfs[0]=='2')
{
if(CurrSP->state==1&&strcmp(CurrSP->jyfs,"10")==0&&
Param.Xzbm[5]=='1')
{
Orig->sl = 1.0;
Orig->je+=CurrSP->je;
Orig->ssje+=CurrSP->ssje;
Orig->sj = Orig->je;
Orig->sjsj = Orig->ssje;
}
else
{
Orig->sl+=CurrSP->sl; //計(jì)算數(shù)量
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -