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

📄 datam.c

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