⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datamp.txt

📁 dos下pos机程序 连接sybase数据库 使用Microsoft c7 编译
💻 TXT
📖 第 1 页 / 共 3 页
字号:
  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 + -