📄 datam.c
字号:
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;
}
/*构造销售凭证 Att=1表示补打的销售凭证*/
int CreateXspz_tax(_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;
if(Param.bz[0]=='1'||Param.bz[0]=='2')
j = CreateXspz_tax(SPLists,0,g_now,0);
else
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; //不提交
}
void TaxLogStart(char *taxCmd)
{
struct dosdate_t date;
struct dostime_t time;
FILE *f_taxlog;
_dos_getdate(&date);
_dos_gettime(&time);
f_taxlog=fopen("taxlog.txt","a");
fprintf(f_taxlog,"%d-%d-%d %02d:%02d\n",
date.year,date.month,date.day,time.hour,time.minute);
fprintf(f_taxlog,"%s\n\UnitMsg.txt:",taxCmd);
fclose(f_taxlog);
}
void TaxLogEnd()
{
char msg[61];
FILE *f_taxlog,*f_taxmsg;
if((f_taxmsg=fopen("unitmsg.txt","r"))==NULL)
{
MsgBoxEx("打开UnitMsg.txt失败",3);
return;
}
fgets(msg,61,f_taxmsg);
f_taxlog=fopen("taxlog.txt","a");
fprintf(f_taxlog,"%s\n",msg);
fclose(f_taxlog);
fclose(f_taxmsg);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -