📄 datamp.txt
字号:
FILE *f_dj;
if(Param.Dysyt[0]=='0') return;
f_dj=fopen("wqr.txt","w");
if(!f_dj){MsgBoxEx("不能打开文件wqr.txt!",1);return;}
for(i=0;i<MaxLines;i++)
fprintf(f_dj,__Preview[i]);
if(Param.Tjfs[0]=='0')
fprintf(f_dj, _pFeedLine);
fclose(f_dj);
if(Param.SyjLx[0]=='4')
{
fst_dyzb("wqr.txt","dj3.txt");
dyfile("dj3.txt","");
}
else dyfile("wqr.txt","");
return;
}
//
//打印信用卡对帐单
void dyxyk(void) //zh****
{
int k=2,i=0;
FILE *xyk_dj;
if(SPLists->fklp.xykje==0) return;
if((xyk_dj=fopen("xyk.txt","w"))==NULL)
{ MsgBoxEx("不能打开文件xyk.txt!",1);return; }
k=2;
rdxykfh();
while(k)
{
for(i=0;i<_MAXXYK;i++)
if(SPLists->fklp.xyk[i].kh[0]!='\0'&&
SPLists->fklp.xyk[i].km[0]!='\0')
{
fprintf(xyk_dj,"\n%s 银行卡销售凭证\n",g_scmc);
if(k==2)
fprintf(xyk_dj," (顾客联)\n");
else
fprintf(xyk_dj," (银行对帐联)\n");
if (SPLists->fklp.xykje<0)
fprintf(xyk_dj,"交易类型:冲正 时间:%s\n",g_now);
else
fprintf(xyk_dj,"交易类型:消费 时间:%s\n",g_now);
fprintf(xyk_dj,"---------------------------------------\n");
fprintf(xyk_dj,"银行卡卡名: %s\n",xyk_fhxx.CardName);
fprintf(xyk_dj,"银行卡卡号: %s\n",xyk_fhxx.CardNo);
fprintf(xyk_dj," 发卡银行: %s\n",xyk_fhxx.BankName);
fprintf(xyk_dj,"本次交易额: %s\n",xyk_fhxx.Amount);
fprintf(xyk_dj,"银行流水号: %s\n",xyk_fhxx.PosSer);
fprintf(xyk_dj," 授权号: %s\n",xyk_fhxx.AuthNo);
fprintf(xyk_dj,"系统参考号: %s\n",xyk_fhxx.HostSer);
fprintf(xyk_dj,"收银机:%s 收银员:%s 班次:%s\n",Param.SyjNo,Syy_No,g_bc);
fprintf(xyk_dj,"---------------------------------------\n");
fprintf(xyk_dj,"持卡人签名:\n");
fprintf(xyk_dj,"身份证号码:\n");
fprintf(xyk_dj,"收银员:\n");
fprintf(xyk_dj,"欢迎使用银行卡!请妥善保存此凭证\n");
}
fprintf(xyk_dj,"\n\n\n");
k--;
if(k) fprintf(xyk_dj,"Pause"); //暂停标记
}
fclose(xyk_dj);
if(Param.SyjLx[0]=='4')
{
fst_dyzb("xyk.txt","dj2.txt");
dyfile("dj2.txt","");
}
else
dyfile("xyk.txt","");
}
//打印提货卡对帐单
void dythk(void)
{
int k=2,i=0;
FILE *thk_dj;
if(SPLists->fklp.thkje==0||Param.Dysyt[1]=='0') return;
if((thk_dj=fopen("thk.txt","w"))==NULL)
{ MsgBoxEx("不能打开文件thk.txt!",1);return; }
if(Param.PFeed[7]=='0') k = 1;
while(k)
{
fprintf(thk_dj,"\n%s提货卡销售凭证\n",g_scmc);
if(Param.PFeed[7]!='0')
{
if(k==2) fprintf(thk_dj," (顾客联)\n");
else fprintf(thk_dj," (收银联)\n");
}
fprintf(thk_dj,"流水号:%-4d 时间:%s\n",SPLists->lsh,g_now);
fprintf(thk_dj,"-------------------------------------\n");
fprintf(thk_dj,"卡号 原 余 额 本次消费 现 余 额\n");
for(i=0;i<_MAXTHK;i++)
if(SPLists->fklp.thk[i].kh[0]!='\0')
fprintf(thk_dj,"%10s%8.2f%8.2f%8.2f\n",SPLists->fklp.thk[i].kh,
SPLists->fklp.thk[i].dqye,SPLists->fklp.thk[i].xzje,
SPLists->fklp.thk[i].xye);
fprintf(thk_dj,"-------------------------------------\n");
fprintf(thk_dj,"收银机:%s 收银员:%s 班次:%s\n",
Param.SyjNo,Syy_No,g_bc);
fprintf(thk_dj,"谢谢光临!请妥善保存此凭证\n");
fprintf(thk_dj,"\x1b\x64%c\n",8);
fprintf(thk_dj, _pFeedLine);
k--;
if(k) fprintf(thk_dj,"Pause");
// MsgBoxEx("按回车键继续打印提货卡收银联.",1);
}
fclose(thk_dj);
if(Param.SyjLx[0]=='4')
{
fst_dyzb("thk.txt","dj2.txt");
dyfile("dj2.txt","");
}
else
dyfile("thk.txt","");
}
//------------------------------------------------------------------
//清除付款
void ResetFK(_FKStruct *fklp)
{
int i;
fklp->xjje=0;
fklp->thkje=0;
fklp->xykje=0;
fklp->qtje=0;
fklp->zpje=0;
fklp->ssje=0;
fklp->zbje=0;
//清空信用卡数据
for(i=0;i<_MAXXYK;i++)
{
fklp->xyk[i].km[0]='\0';
fklp->xyk[i].yh[0]='\0';
fklp->xyk[i].mc[0]='\0';
fklp->xyk[i].je=0;
}
//清空提货卡数据
for(i=0;i<_MAXTHK;i++)
{
fklp->thk[i].kh[0]='\0';
fklp->thk[i].mm[0]='\0';
fklp->thk[i].cklx[0]='\0';
fklp->thk[i].fkje=0;
fklp->thk[i].dqye=0;
fklp->thk[i].xzje=0;
}
}
//
void ResetYHK(_FKStruct *fklp)
{
//清空优惠卡数据
fklp->yhk.kh[0]='\0';
fklp->yhk.mm[0]='\0';
fklp->yhk.xm[0]='\0';
fklp->yhk.yhl=0;
fklp->yhk.ljss=0;
fklp->yhk.ljys=0;
fklp->yhk.VIP=0; //lijing
}
//复位数据
void Reset(_SPLists *lp)
{
//全部成功提交,清空数据
lp->RecNo=0;
lp->RecordCount=0;
lp->state=0;
lp->spje=0;
lp->ysje=0;
lp->lsh=g_lsh;
lp->sl=0;
lp->SPList[1].sswr = 0;
ResetYHK(&(lp->fklp));
ResetFK(&(lp->fklp));
}
void ResetAll(void)
{
int i;
Reset(&__SPLists[0]);
for(i=0;i<__WorkBuffer;i++)
__GQList[i].lsh=0;
}
//
void FormatPreview(_SPStruct *_SP,int *_Index,int Fixed)
{
int i,j,Index;
char value[9][35],c,_Blank[31];
Index = *_Index;
strcpy(value[0],_SP->spbm); //商品编码
strcat(value[0]," ");
strcpy(value[1],_SP->sptm); //商品条码
strcat(value[1]," ");
if(Fixed&&Param.Dyspbm[9]=='1')
strcpy(value[2],_SP->spbm);
else
value[2][0]='\0';
strcat(value[2],_SP->spmc);
__process(value[2]); //处理商品名称
strcpy(value[3],_SP->jldw); //单位
GetDec(value[4],_SP->sl,_xsdws,1); //处理数量小数
GetJE(value[5],_SP->sj,Param.Dyspbm[5], "",5);
GetJE(value[6],_SP->sjsj,Param.Dyspbm[6],"",6);
GetJE(value[7],_SP->je,Param.Dyspbm[7], "",7);
GetJE(value[8],_SP->ssje,Param.Dyspbm[8],"",8);
__Preview[Index][0]='\0'; //清空
for(i=0;i<9;i++)
if(Param.Dyspbm[i]!='0')
{
strcat(__Preview[Index],value[i]);
if(i==2) //商品名称一项
{
c = p_Formats[7][2];
if(c>='0'&&c<='9')
{
strcat(__Preview[Index],"\n");
Index++;
__Preview[Index][0] = '\0';
for(j=0;j<2*(c-'0')+4;j++)
_Blank[j] = ' ';
_Blank[j] = '\0';
strcat(__Preview[Index],_Blank);
}
}
}
strcat(__Preview[Index],"\n");
*_Index = Index;
}
//提交
int fun_qrsy(void)
{
int i,tjcs=0;
char fkfs[2]="0";
double _bx=0,bx=0,f_ssje=0;
int bloop=1;
//打开钱箱
//提交提货卡信息
for(i=0;i<_MAXTHK;i++)
if(SPLists->fklp.thk[i].kh[0]!='\0') //有付款
sql_insertthk(&(SPLists->fklp.thk[i]),g_now,SPLists->RecordCount,
SPLists->ysje,SPLists->spje);
//提交信用卡
for(i=0;i<_MAXXYK;i++)
if(SPLists->fklp.xyk[i].km[0]!='\0') // 有付款
sql_insertxyk(SPLists->fklp.xyk[i].km,SPLists->fklp.xyk[i].kh,
g_now,SPLists->fklp.xyk[i].je);
//提交优惠卡
//向服务器记录优惠卡使用信息(优惠卡指针,销售时间,商品数,应收金额,实收金额),
//成功-1,失败-0
if(SPLists->fklp.yhk.kh[0]!='\0')
sql_insertyhk(&(SPLists->fklp.yhk),g_now,SPLists->RecordCount,
SPLists->spje,SPLists->ysje);
//提交商品
if(SPLists->fklp.thkje) fkfs[0]='3';
else if(SPLists->fklp.xykje) fkfs[0]='2';
else if(SPLists->fklp.zpje) fkfs[0]='1';
else if(SPLists->fklp.qtje) fkfs[0]='4';
switch(fkfs[0])
{
case '3':bx+=SPLists->fklp.xykje;
case '2':bx+=SPLists->fklp.zpje;
case '1':bx+=SPLists->fklp.qtje;
case '4':bx+=SPLists->fklp.xjje-SPLists->fklp.zbje;
}
_bx = bx;
for(i=1;i<=SPLists->RecordCount;i++)
{
dbf_insertspb(&(SPLists->SPList[i]),SPLists->lsh,g_now,fkfs,bx);
bx = 0;
}
bx = _bx;
for(i=1;i<=SPLists->RecordCount;i++)
{
sql_insertspb(&(SPLists->SPList[i]),SPLists->lsh,g_now,fkfs,bx);
bx = 0;
}
g_lsh++;
//ShowGuXian("",0,1); //打开钱箱
return 1;
}
void dywqr_fun(void)
{
int j=0,i;
char buf[81];
strcpy(buf,p_Formats[1]);
Trim(buf);
if(Param.Tjfs[0]=='0')
{
strcpy(__Preview[j++],p_Formats[1]);
if(p_Formats[2][0]!='\0')
strcpy(__Preview[j++],p_Formats[2]);
}
sprintf(__Preview[j++],"时间:%s\n",g_now);
if(p_Formats[5][0]!='\0') //分隔行1
sprintf(__Preview[j++],p_Formats[5]);
sprintf(__Preview[j++],p_Formats[6]);
for(i=1;i<=SPLists->RecordCount;i++)
{
FormatPreview(&(SPLists->SPList[i]),&j,0);
j++;
}
if(p_Formats[8][0]!='\0') //分隔行1
sprintf(__Preview[j++],p_Formats[8]);
sprintf(__Preview[j++],"YTPOS收银机:%s收银员:%s班次:%s\n",
Param.SyjNo,Syy_No,g_bc);
strcpy(__Preview[j++],"!!不确认打印,请收银员凭此条签字后对账\n");
if(Param.Tjfs[0]=='1')
{
strcpy(__Preview[j++],_pFeedLine);
for(i=0;i<23-_nFormat;i++)
strcpy(__Preview[j++],"\n");
strcpy(__Preview[j++],p_Formats[1]); //凭证标题
if(p_Formats[2][0]!='\0')
strcpy(__Preview[j++],p_Formats[2]);
i = 21;
while(i<_nFormat) //打印广告词
strcpy(__Preview[j++],p_Formats[i++]);
}
dywqr(j); //打印收银条
return; //提交成功
}
//未提交商品记录
void fun_wtjsp(void)
{
int i=0;
char fkfs[2]="0";
double bx=0;
//提交商品
if(SPLists->fklp.zpje) fkfs[0]='1';
else if(SPLists->fklp.xykje) fkfs[0]='2';
else if(SPLists->fklp.thkje) fkfs[0]='3';
else if(SPLists->fklp.qtje) fkfs[0]='4';
switch(fkfs[0])
{
case '3':bx+=SPLists->fklp.xykje;
case '2':bx+=SPLists->fklp.zpje;
case '1':bx+=SPLists->fklp.qtje;
case '4':bx+=SPLists->fklp.xjje-SPLists->fklp.zbje;
}
for(i=1;i<=SPLists->RecordCount;i++)
{
sql_insertwqrb(&(SPLists->SPList[i]),SPLists->lsh,g_now,fkfs,bx);
bx=0;
}
if(Param.Wtjdy[0]=='1')
dywqr_fun();
Reset(SPLists);
}
/*构造销售凭证 Att=1表示补打的销售凭证*/
int CreateXspz(_SPLists *_SPList,int Att,char *_Time,int Fixed)
{
int j=0,i;
double spje,ssje,ysje,yhje,zbje;
char buf[81];
//计算差额
spje=_SPList->spje; //商品金额
ssje=_SPList->fklp.ssje; //实收金额
ysje=_SPList->ysje; //应收金额
yhje=spje-ysje; //优惠金额
zbje=_SPList->fklp.zbje; //找补金额
if(Att)
strcpy(__Preview[j++],"!!! 重打印 !!!");
if(Param.Tjfs[0]=='0')
{
strcpy(__Preview[j++],p_Formats[1]); //凭证标题
if(p_Formats[2][0]!='\0')
strcpy(__Preview[j++],p_Formats[2]);
}
if(Att==0&&p_Formats[3][0]!='\0'&&_SPList->fklp.yhk.kh[0]!='\0') //会员
sprintf(__Preview[j++],p_Formats[3],
_SPList->fklp.yhk.kh,_SPList->fklp.yhk.xm);
sprintf(__Preview[j++],p_Formats[4],_SPList->lsh,_Time); //流水号
if(p_Formats[5][0]!='\0') //分隔行1
sprintf(__Preview[j++],p_Formats[5]);
if(p_Formats[6][0]!='\0')
sprintf(__Preview[j++],p_Formats[6]);
//处理商品
for(i=1;i<=_SPList->RecordCount;i++)
{
FormatPreview(&(_SPList->SPList[i]),&j,Fixed);
j++;
}
if(p_Formats[8][0]!='\0') //分隔行2
sprintf(__Preview[j++],p_Formats[8]);
if((yhje>=0.01||yhje<=-0.01)&&spje)
{
GetJE(buf,spje,'6',Param.Dyyhj,-1);
sprintf(__Preview[j++],p_Formats[9],buf);
GetJE(buf,yhje,'6',Param.Dyyhj,-1);
sprintf(__Preview[j++],p_Formats[10],100*yhje/spje,buf);
GetJE(buf,ysje,'6',Param.Dyyhj,-1);
sprintf(__Preview[j++],p_Formats[11],buf);
}
else
{
if(Param.Dyssje[0]=='1')
{
GetJE(buf,ysje,'6',Param.Dyyhj,-1);
sprintf(__Preview[j++],p_Formats[11],buf);
}
else
{
GetJE(buf,spje,'6',Param.Dyyhj,-1);
sprintf(__Preview[j++],p_Formats[9],buf);
}
}
sprintf(__Preview[j++],p_Formats[12]);
if(_SPList->fklp.xjje)
{
GetJE(buf,_SPList->fklp.xjje,'6',Param.Dyyhj,-1);
sprintf(__Preview[j++],p_Formats[13],buf);
}
if(_SPList->fklp.zpje)
{
GetJE(buf,_SPList->fklp.zpje,'6',Param.Dyyhj,-1);
sprintf(__Preview[j++],p_Formats[14],buf);
}
if(_SPList->fklp.xykje)
{
GetJE(buf,_SPList->fklp.xykje,'6',Param.Dyyhj,-1);
sprintf(__Preview[j++],p_Formats[15],buf);
}
if(_SPList->fklp.thkje)
{
GetJE(buf,_SPList->fklp.thkje,'6',Param.Dyyhj,-1);
sprintf(__Preview[j++],p_Formats[16],buf);
}
if(_SPList->fklp.qtje)
{
GetJE(buf,_SPList->fklp.qtje,'6',Param.Dyyhj,-1);
sprintf(__Preview[j++],p_Formats[17],buf);
}
if(Att==0&&_SPList->fklp.zbje) //补打,不打印找补金额
{
GetJE(buf,_SPList->fklp.zbje,'6',Param.Dyyhj,-1);
sprintf(__Preview[j++],p_Formats[18],buf);
}
sprintf(__Preview[j++],p_Formats[19]);
sprintf(__Preview[j++],p_Formats[20],Param.SyjNo,Syy_No,g_bc);
for(i=_nFormat;i<_nFormatx;i++) //广告词
strcpy(__Preview[j++],p_Formats[i]);
if(Param.Tjfs[0]=='1')
{
sprintf(__Preview[j++],_pFeedLine);
for(i=0;i<23-_nFormat;i++)
strcat(__Preview[j-1],"\n");
strcpy(__Preview[j++],p_Formats[1]); //凭证标题
if(p_Formats[2][0]!='\0')
strcpy(__Preview[j++],p_Formats[2]);
i=21;
while(i<_nFormat) //打印广告词
strcpy(__Preview[j++],p_Formats[i++]);
}
return j;
}
//提交确认窗口,确认时返回1
int TiJiaoPingZheng(void)
{
int j;
j = CreateXspz(SPLists,0,g_now,0);
if(TiJiaoQueRen(j,1)) //提交确认
{
fun_qrsy(); //提交商品
ShowGuXian("",0,1);
if(Param.Dysyt[0]!='0') dysyt(j); //打印收银条
if(Param.Dysyt[1]!='0') dythk(); //打印提货卡
if(Param.Dysyt[2]!='0') dyxyk(); //打印信用卡
Reset(SPLists); //复位数据
return 1; //提交
}
else
return 0; //不提交
}
前台收银系统3.X数据管理模块(Datam.c) 运通资讯
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -