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

📄 diss_s.c

📁 税控收款机软件。包括底层驱动和上层的应用一起。是一个完整的税控收款机软件方案
💻 C
📖 第 1 页 / 共 5 页
字号:
				DisHzLinYm("1.请确认用户卡已插入!",Col2);
				DL();
                while(1)
                {
    				if(invoice_input.index==19)
    				{ 
    					DisHzLinYm("发票存储已满",Col4);
    					DL();
    					return;
    				}
    				for(i=0;i<20;i++)
    				{
    					if(invoice_input.invoice_info[i].end_id==0) break;
    				}
	   
    				distribute_invoice();
    				if(stat==1) 
    				{
    					DisHzLinYm("用户卡不匹配或用户卡错误",Col4);	
    					DL();
    					return;
    				}
    				if(stat>=2) 
    				{ 
    					DisHzLinYm("无发票可分或用户卡错误!",Col4);	
    					DL();
    					return;
    				}

                    //if((invoice_input.invoice_info[i].start_id==3557876)&&(invoice_input.invoice_info[i].end_id==3909944608))memset(&invoice_input.invoice_info[i].vcode,0,0x16);
    				else 
                    {
                        memcpy(invoice_input.invoice_info[i].vcode,icc_buff,0x16);
						memcpy(invoice_input1.invoice_info[i].vcode,icc_buff,0x16);
						invoice_input.index++;
    	            }
    				DisHzLinYm("发票分发中,请稍候...",Col4);//13856822352
    				DL();
                }
				break;

			case 2:
                cls();DisHzLinYm("    ESC键退出翻页",Col4); 
				if(memcmp(&invoice_input1,&invoice_input,sizeof(invoice_input))!=0)memcpy(&invoice_input,&invoice_input1,sizeof(invoice_input1));
				for(i=0;i<20;i++)
				{
                    sstat=(i+1)%3;
                    if(i%3==0)memset(prn_page_buf,32,220);
                    //prn_page_buf[i%5][15]='-',
                    long_to_asc (&prn_page_buf[i%3][4],  10, &invoice_input.invoice_info[i].start_id);
                    //long_to_asc (&prn_page_buf[i%5][17], 10, &invoice_input.invoice_info[i].end_id);
                    if(invoice_input.invoice_info[i].start_id==invoice_input.invoice_info[i].end_id)prn_page_buf[i%3][4]=0;
                    prn_page_buf[i%3][1]=i/10+0x30;prn_page_buf[i%3][2]=i%10+0x30;prn_page_buf[i%3][3]='>';
                    DisHzLinYm(&prn_page_buf[i%3],(i%3)*2+Col1);
					                    
                    if((sstat==0)||(i==19))
                    {
                        GetKey();
                        if(keyc==KEY_ESC)i=20;
                        else cls();
                    }
				}
                DisHzLinYm("索引号:",Col4);
                getstr(2,temp,Col4);
                if(keyc==KEY_ESC)break;
                i=(temp[0]-48)*10+temp[1]-48;
                if(i>20)break;
                cls();
                if(invoice_input.invoice_info[i].start_id==invoice_input.invoice_info[i].end_id)
				{
                    DisHzLinYm("没有本卷发票",Col2);
                    DL();
                    break;
                }
				memcpy(icctempp,invoice_input.invoice_info[i].vcode,22);
				//p=   icctempp;
                sstat=input_invoice();
				if(sstat!=0)	 
				{   
					DisHzLinYm("当前发票卷没用完",Col2);
					DL();
					break;
				}
				memcpy(&inv_cur_vol,&invoice_input.invoice_info[i],18);
                memcpy(&inv_cur_info,&invoice_input.invoice_info[i].start_id,8);
				inv_cur_info.f_first=1;
				memset(&invoice_input.invoice_info[i],0,sizeof(invoice_input.invoice_info[i]));
				invoice_input.index--;
				DisHzLinYm("发票录入完成",Col3);
				memcpy(&invoice_input1,&invoice_input,sizeof(invoice_input));
				DL();
				break;
            case 3:
                cls();
                DisHzLinYm("请输入索引号(两位数):",Col3);
                getstr(2,temp,Col4);
                if(keyc==KEY_ESC)break;
                i=(temp[0]-48)*10+temp[1]-48;
				if(i>20)break;
                memset(&invoice_input.invoice_info[i],0,sizeof(invoice_input.invoice_info[i]));
				memset(&invoice_input1.invoice_info[i],0,sizeof(invoice_input.invoice_info[i]));
                break;
		}
	}while(keyc!=KEY_ESC);
}

code uchar * Fpxe[6] = {
	"退票累计限额(分):",
	"纳税人名称:",
	"开票截止日期:",
	"    年  月  日",
	"开票累计限额(分):"
};



uchar fiscal_check_getadr(uchar n)
{   
	uchar sstat;
	ulong xdata i,Temp1,Temp2;
	uchar xdata strTemp1[10],strTemp2[10],bcdTemp1[4],bcdTemp2[4];
	memset(&fiscal_ck_index,0,sizeof(fiscal_ck_index));
	memset(&strTemp1,0,10);
	memset(&strTemp2,0,10);
	cls();
	/*
	DisHzLinYm("   请输入核查类别:",0);
	DisHzLinYm("1.某日的日交易数据",1);
	DisHzLinYm("2.时间段的日交易数据",2);
	DisHzLinYm("3.号码查询单卷发票的汇总数据",3);
	DisHzLinYm("4.时间段的单卷发票的汇总数据",4);
	DisHzLinYm("5.起止号码查询发票打印数据",5);
	DisHzLinYm("6.时间段的发票打印数据",6);
	DisHzLinYm("7.时间段的申报数据",7);
	*/
	switch(n)
	{
		case 1:
		case 2:
			cls();
			if(!F_rs232)
			{	
				DisHzLinYm("请输入首交易日期:",Col1);
				sstat=getstr(8,strTemp1,Col2);
				StrToHex1(strTemp1, bcdTemp1,8);
				cls();
				DisHzLinYm("正在查找交易首日期...",Col2);
			}
			else
			{
				memcpy(bcdTemp1,chCommData.commbuf,4);
			}
			for(i=ST_DAY_ADR;i<ED_DAY_ADR;i+=256)
			{  
				rd_buf1(i);
				if(flash_temp[0]==255)
				{
					i=i+65536-i%65536;
					goto adr1;
				}
				//memcpy(&inv_tmp_day,flash_temp,sizeof(inv_tmp_day));
				if(memcmp(flash_temp,bcdTemp1,4)==0)// >=0非法日期输入模糊
				{
					fiscal_ck_index.index1=i;
					if(n==1)return 0;
					else break;
				}
				adr1:_nop_();
			}
			if(i>=ED_DAY_ADR) return 1;
			
			if(!F_rs232)
			{
				cls();
				DisHzLinYm("请输入尾交易日期:",Col3);
				sstat=getstr(8,strTemp2,Col4);
				
				StrToHex1(strTemp2,bcdTemp2,8);
				cls();
				DisHzLinYm("正在查找交易尾日期...",Col2);



				//sstat=getstr(8,strTemp1,Col4);
				//StrToHex1(strTemp1, bcdTemp1,8);
			}
			else
			{ 
				memcpy(bcdTemp2,chCommData.commbuf+4,4);
			}

			for(i=fiscal_ck_index.index1;i<ED_DAY_ADR;i+=256)
			{  
				rd_buf1(i);
				if(flash_temp[0]==255)
				{
					i=i+65536-i%65536;
					goto adr2;
				}
				_nop_();
				ES=0;
				for(sstat=0;sstat<4;sstat++)rs232_send_byte(flash_temp[sstat]);
				ES=1;
				//memcpy(&inv_tmp_day,flash_temp,sizeof(inv_tmp_day));
				if(memcmp(flash_temp,bcdTemp2,4)==0)//>=0
				{
					fiscal_ck_index.index2=i;
					fiscal_ck_index.n=(fiscal_ck_index.index2-fiscal_ck_index.index1)/256+1;
					return 0;
				}
				else _nop_();
				adr2:_nop_();
			}
			return 1;
			/*
		case 3:
			cls();
			if(!F_rs232)
			{
				DisHzLinYm("请输入发票起止号码:",1);
				DisHzLinYm("起始号:",2);
				DisHzLinYm("终止号:",3);
				sstat=getstr(10,strTemp1,2);
				sscanf(strTemp1,"%lu",&fiscal_ck_index.index1);
				sstat=getstr(10,strTemp1,2);
				sscanf(strTemp1,"%lu",&fiscal_ck_index.index2);
			}
			else
			{ 
				memcpy(&fiscal_ck_index.index1,chCommData.commbuf,4);
				memcpy(&fiscal_ck_index.index2,chCommData.commbuf+4,4);
			}
			for(i=ST_PRN_ADR;i<ED_PRN_ADR;i+=256)
			{  
				rd_buf(i);
				if(flash_temp[0]==255){i=i+65536-i%65536;goto adr3;}
				memcpy(inv_prn_tmp_info.date,flash_temp,sizeof(inv_prn_tmp_info));
				if(inv_prn_tmp_info.id==fiscal_ck_index.index1)
				{
					fiscal_ck_index.index1=i;
					break;
				}
				adr3:goto adr3;
			}
			for(i=fiscal_ck_index.index1;i<ED_PRN_ADR;i+=256)
			{  
				rd_buf(i);
				if(flash_temp[0]==255){i=i+65536-i%65536;goto adr4;}
				memcpy(&inv_prn_tmp_info,flash_temp,sizeof(inv_prn_tmp_info));
				if(inv_prn_tmp_info.id==fiscal_ck_index.index2)
				{
					fiscal_ck_index.index2=i;
					fiscal_ck_index.n=(fiscal_ck_index.index2-fiscal_ck_index.index1)/256+1;
					return 0;
				}
				adr4:_nop_();
			}
			fiscal_ck_index.index1=0;
			return 1;*/
		case 4:		//0k
			
			if(!F_rs232)
			{
				cls();
				DisHzLinYm("请输入发票卷起止使用时间:",Col2);
				DisHzLinYm("起始:",Col3);
				DisHzLinYm("终止:",Col4);
				sstat=getstr(8,strTemp1,Col3);
				StrToHex1(strTemp1, bcdTemp1,8);
				
				sstat=getstr(8,strTemp2,Col4);
				StrToHex1(strTemp2, bcdTemp2,8);
			}
            else
			{
				memcpy(bcdTemp1,chCommData.commbuf,4);
				memcpy(bcdTemp2,chCommData.commbuf+4,4);
			}
			cls();
			DisHzLinYm("  正在查找发票卷信息...",Col2);
            for(i=ST_VOL_ADR;i<ED_VOL_ADR;i+=256)
			{  
				rd_buf1(i);
				if(flash_temp[0]==255){i=i+65536-i%65536;goto adr5;}
				memcpy(&inv_tmp_vol,flash_temp,sizeof(inv_tmp_vol));
				if(memcmp(inv_tmp_vol.end_time,bcdTemp1,4)>=0)
				{
					fiscal_ck_index.index1=i;
					break;
				}
				adr5:_nop_();
			}
			for(i=fiscal_ck_index.index1;i<ED_VOL_ADR;i+=256)
			{  
				rd_buf1(i);
				if(flash_temp[0]==255){i=i+65536-i%65536;goto adr6;}
				memcpy(&inv_tmp_vol,flash_temp,sizeof(inv_tmp_vol));
				if(memcmp(inv_tmp_vol.end_time,bcdTemp2,4)>0)
				{
					
					fiscal_ck_index.n=(fiscal_ck_index.index2-fiscal_ck_index.index1)/256+1;
					return 0;
				}
				fiscal_ck_index.index2=i;
				adr6:_nop_();
			}
			fiscal_ck_index.n=(fiscal_ck_index.index2-fiscal_ck_index.index1)/256+1;
			return 0;

		case 5:
			if(!F_rs232)
			{
				cls();
				DisHzLinYm("起止号码查询发票打印数据:",Col1);
				DisHzLinYm("起始号码:",Col2);
				DisHzLinYm("结束号码:",Col4);
				Temp1=(ulong)CalDataInput(Col2);
				//getstr(8,strTemp1,Col2);
				//sscanf(strTemp1,"%lu",&Temp1);

				//getstr(8,strTemp1,Col4);
				//sscanf(strTemp1,"%lu",&Temp2);
				Temp2=(ulong)CalDataInput(Col4);
			}
			else
			{
				memcpy(&Temp1,chCommData.commbuf,4);
				memcpy(&Temp2,chCommData.commbuf+4,4);

			}
			cls();
			DisHzLinYm("  正在查找发票信息...",Col2);
			for(i=ST_PRN_ADR;i<ED_PRN_ADR;i+=256)		  //   ED_PRN_ADR
			{  
				
				rd_buf1(i);
				if(flash_temp[0]==255){i=i+65536-i%65536;goto adr7;}
				memcpy(&inv_prn_tmp_info,flash_temp,9);
				if(inv_prn_tmp_info.id==Temp1)
				{
					fiscal_ck_index.index1=i;
					break;
				}
				adr7:_nop_();
			}

			if(i>=ED_PRN_ADR) return 1;

			for(i=fiscal_ck_index.index1;i<ED_PRN_ADR;i+=256)
			{  
				rd_buf1(i);
				if(flash_temp[0]==255){i=i+65536-i%65536;goto adr8;}
				memcpy(&inv_prn_tmp_info,flash_temp,9);
				if(inv_prn_tmp_info.id==Temp2)
				{
					fiscal_ck_index.index2=i;
					fiscal_ck_index.n=(fiscal_ck_index.index2-fiscal_ck_index.index1)/256+1;
					return 0;

				}
				adr8:_nop_();
			}
			break;
		case 6:
            if(!F_rs232)
            {
				cls();
				DisHzLinYm("时间段查询发票打印数据:",Col2);
				DisHzLinYm("起始时间:",Col3);
				sstat=getstr(8,strTemp1,Col3);
				StrToHex1(strTemp1, bcdTemp1,8);
				DisHzLinYm("结束时间:",Col4);
				sstat=getstr(8,strTemp2,Col4);
				StrToHex1(strTemp2, bcdTemp2,8);
			}
			else
			{
				memcpy(bcdTemp1,chCommData.commbuf,4);
				memcpy(bcdTemp2,chCommData.commbuf+4,4);
			}
			cls();
			DisHzLinYm("  正在查找发票信息...",Col2);
            for(i=ST_PRN_ADR;i<ED_PRN_ADR;i+=256)
            {  
				rd_buf1(i);
				if(flash_temp[0]==255){i=i+65536-i%65536;goto adr9;}
				//memcpy(&inv_prn_tmp_info,flash_temp,sizeof(inv_prn_tmp_info));
				if(memcmp(flash_temp,bcdTemp1,4)>=0)//older is ==
				{
					fiscal_ck_index.index1=i;
					 break;
				}
				adr9:_nop_();
			}
			if(i>=ED_PRN_ADR)return 1;
			for(i=fiscal_ck_index.index1;i<ED_PRN_ADR;i+=256)
			{  
				rd_buf1(i);
				if(flash_temp[0]==255){i=i+65536-i%65536;goto adr10;}
				//memcpy(&inv_prn_tmp_info,flash_temp,sizeof(inv_prn_tmp_info));
				if(memcmp(flash_temp,bcdTemp2,4)>0)
				{fiscal_ck_index.n=(fiscal_ck_index.index2-fiscal_ck_index.index1)/256+1;return 0;}

				fiscal_ck_index.index2=i; 
				adr10:_nop_();
			}
			fiscal_ck_index.n=(fiscal_ck_index.index2-fiscal_ck_index.index1)/256+1;
			return 0;

		case 7:
			cls();
			DisHzLinYm("申报数据查询",Col2);
			DisHzLinYm("起始时间:",Col3);
			sstat=getstr(8,strTemp1,Col3);
			StrToHex1(strTemp1, bcdTemp1,8);
			DisHzLinYm("结束时间:",Col4);
			sstat=getstr(8,strTemp2,Col4);
			StrToHex1(strTemp2, bcdTemp2,8);
			cls();
			DisHzLinYm("  正在查找报税历史信息...",Col2);
            for(i=ST_DCL_ADR;i<ED_DCL_ADR;i+=256)
			{  
				rd_buf1(i);
				if(flash_temp[0]==255){i=i+65536-i%65536;goto adr12;}
				//memcpy(&declare_data,flash_temp,sizeof(declare_data));
				if(memcmp(&flash_temp[12],bcdTemp1,4)>=0)
				{
					fiscal_ck_index.index1=i;
					break;
				}
				adr12:_nop_();
			}
			if(i>=ED_DCL_ADR)return 1;
			for(i=fiscal_ck_index.index1;i<ED_DCL_ADR;i+=256)
			{  
				rd_buf1(i);
				if(flash_temp[0]==255){i=i+65536-i%65536;goto adr13;}
				//memcpy(&declare_data,flash_temp,sizeof(declare_data));
				//if(memcmp(declare_data.ed_date,bcdTemp2,4)>=0)
				if(memcmp(&flash_temp[12],bcdTemp2,4)>=0)
				{
					fiscal_ck_index.n=(fiscal_ck_index.index2-fiscal_ck_index.index1)/256+1;
					return 0;
				}
				fiscal_ck_index.index2=i;
				adr13:_nop_();
			}
			fiscal_ck_index.n=(fiscal_ck_index.index2-fiscal_ck_index.index1)/256+1;
			return 0;
		case 8:
			if(!F_rs232)
			{
				cls();
				DisHzLinYm("起止号码查询发票卷数据:",Col1);

				DisHzLinYm("起始号码:",Col2);
				
				DisHzLinYm("结束号码:",Col3);
				Temp1=(ulong)CalDataInput(Col2);
				Temp2=(ulong)CalDataInput(Col3);
				//sstat=getstr(8,strTemp1,Col2);
				//sscanf(strTemp1,"%lu",&Temp1);
				//sstat=getstr(8,strTemp1,Col3);
				//sscanf(strTemp1,"%lu",&Temp2);
			}
			else
			{
				memcpy(&Temp1,chCommData.commbuf,4);
				memcpy(&Temp2,chCommData.commbuf+4,4);
			}
			cls();
			DisHzLinYm("  正在查找发票卷信息...",Col2);
            for(i=ST_VOL_ADR;i<ED_VOL_ADR;i+=256)
			{  
				rd_buf1(i);
				if(flash_temp[0]==255){i=i+65536-i%65536;goto adr18;}
				//memcpy(&inv_tmp_vol,flash_temp,sizeof(inv_tmp_vol));
				//if(memcmp(&inv_tmp_vol.start_id,&Temp1,4)<=0)
				if(memcmp(&flash_temp[10],&Temp1,4)<=0)
				{
					fiscal_ck_index.index1=i;
					break;
				}
				adr18:_nop_();
			}
			if(i>=ED_VOL_ADR) return 1;

			for(i=fiscal_ck_index.index1;i<ED_VOL_ADR;i+=256)
			{  
				rd_buf1(i);
				if(flash_temp[0]==255){i=i+65536-i%65536;goto adr20;}
				//memcpy(&inv_tmp_vol,flash_temp,sizeof(inv_tmp_vol));
				//if(memcmp(&inv_tmp_vol.end_id,&Temp2,4)>=0)
				if(memcmp(&flash_temp[14],&Temp2,4)>=0)
				{
					fiscal_ck_index.index2=i;
					fiscal_ck_index.n=(fiscal_ck_index.index2-fiscal_ck_index.index1)/256+1;
					return 0;
				}
				adr20:_nop_();
			}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -