📄 diss_s.c
字号:
void InvGet()
{
memcpy(icctempp,invoice_input.invoice_info[0].vcode,22);
input_invoice();
if(stat!=0)return;
memcpy(&inv_cur_vol,&invoice_input.invoice_info[0],18);
memcpy(&inv_cur_info,&invoice_input.invoice_info[0].start_id,8);
inv_cur_info.f_first=1;
memset(&invoice_input.invoice_info[0],0,sizeof(invoice_input.invoice_info[0]));
}
void com_process(void)
{
uchar i;
U32 data adr;
uint cs;
cls();
DisHzLinYm(" 串口通讯中请稍候ESC退出",Col3);
while(1)
{
ES=1;
GetKey();
if(keyc==KEY_ESC){ES=0;return;}
f_shouxie=0;
DisHzLinYm(" 串口通讯中请稍候ESC退出",Col3);
if(keyc==0xf0)
{
ES=0;
cs=crcbuf(chCommData.len,&chCommData.head1);
if(cs!=chCommData.commbuf[chCommData.len-5]*256+chCommData.commbuf[chCommData.len-4])
{
chCommData.cla=0xfc;
}
ES=1;
switch(chCommData.cla)
{
case CMD_SC_POWER_ON:
icc_reset();
chCommData.id=0x00;
chCommData.len=length+4;
memcpy(chCommData.commbuf,icc_buff,length);
rs232_s();
break;
case CMD_SC_ISO_IN:
memcpy(icc_buff,chCommData.commbuf,chCommData.len-5);
icc_in();
chCommData.id=0x00;
chCommData.len=length+4;
memcpy(chCommData.commbuf,icc_buff,length);
rs232_s();
break;
case CMD_SC_ISO_OUT:
memcpy(icc_buff,chCommData.commbuf,chCommData.len-5);
icc_out();
chCommData.id=0x00;
chCommData.len=length+4;
memcpy(chCommData.commbuf,icc_buff,length);
rs232_s();
break;
case CMD_SC_POWER_OFF:
icc_off();
chCommData.id=0x00;
chCommData.len=7;
chCommData.commbuf[0]=0x90;
chCommData.commbuf[1]=0x00;
chCommData.commbuf[2]=0x00;
rs232_s();
break;
case CMD_SAM_ISO_IN:
memcpy(icc_buff,chCommData.commbuf,chCommData.len-5);
icc_sam_in();
chCommData.id=0x00;
chCommData.len=length+4;
memcpy(chCommData.commbuf,icc_buff,length);
rs232_s();
break;
case CMD_SAM_ISO_OUT:
memcpy(icc_buff,chCommData.commbuf,chCommData.len-5);
icc_sam_out();
chCommData.id=0x00;
chCommData.len=length+4;
memcpy(chCommData.commbuf,icc_buff,length);
rs232_s();
break;
case CMD_SAM_POWER_ON:
icc_reset_sam();
chCommData.id=0x00;
chCommData.len=length+4;
memcpy(chCommData.commbuf,icc_buff,length);
rs232_s();
//rs232_s(&chCommData.type,length+1);
break;
case CMD_SAM_POWER_OFF:
icc_off_sam();
chCommData.id=0x00;
chCommData.len=7;
chCommData.commbuf[0]=0x90;
chCommData.commbuf[1]=0x00;
chCommData.commbuf[2]=0x00;
rs232_s();
break;
case CMD_CONNECT:
chCommData.id=0;
chCommData.len=4;
rs232_s();
break;
case CMD_GET_INIT_DATA:
chCommData.id=0x00;
chCommData.len=132;
memcpy(chCommData.commbuf,&user,128);
rs232_s();
break;
case CMD_GET_ONE_DAILY:
F_rs232=1;
if(fiscal_check_getadr(1))
{
ES=0;
rs232_send_byte ('E');
rs232_send_byte ('R');
ES=1;
break;
}
F_rs232=0;
adr=fiscal_ck_index.index1;
rd_buf(adr);
memcpy(chCommData.commbuf,flash_temp,sizeof(inv_tmp_day));
chCommData.id=0x00;
chCommData.len=sizeof(inv_tmp_day)+4;
rs232_s();
break;
case CMD_GET_SPAN_DAILY:
F_rs232=1;
if(fiscal_check_getadr(2))
{
ES=0;
rs232_send_byte ('E');
rs232_send_byte ('R');
ES=1;
break;
}
F_rs232=0;
for(i=0;i<fiscal_ck_index.n;i++)
{
adr=fiscal_ck_index.index1+i*256;
rd_buf(adr);
memcpy(&inv_tmp_day,flash_temp,sizeof(inv_cur_day));
if(i==fiscal_ck_index.n-1)
{
chCommData.id=0;
}
else if(i%2)
{
chCommData.id=2;
}
else
{
chCommData.id=1;
}
chCommData.len=sizeof(inv_tmp_day)+4;
memcpy(chCommData.commbuf,flash_temp,sizeof(inv_tmp_day));
rs232_s();
}
break;
case CMD_GET_ID_VOL:
F_rs232=1;
if(fiscal_check_getadr(8))
{
ES=0;
rs232_send_byte ('E');
rs232_send_byte ('R');
ES=1;
break;
}
F_rs232=0;
for(i=0;i<fiscal_ck_index.n;i++)
{
adr=fiscal_ck_index.index1+i*256;
rd_buf(adr);
memcpy(&inv_tmp_vol,flash_temp,sizeof(inv_tmp_vol));
if(i==fiscal_ck_index.n-1)
{
chCommData.id=0;
}
else if(i%2)
{
chCommData.id=2;
}
else
{
chCommData.id=1;
}
chCommData.len=sizeof(inv_tmp_vol)+4;
memcpy(chCommData.commbuf,flash_temp,sizeof(inv_tmp_vol));
rs232_s();
}
break;
case CMD_GET_SPAN_VOL:
F_rs232=1;
if(fiscal_check_getadr(4))
{
ES=0;
rs232_send_byte ('E');
rs232_send_byte ('R');
ES=1;
break;
}
F_rs232=0;
for(i=0;i<fiscal_ck_index.n;i++)
{
adr=fiscal_ck_index.index1+i*256;
rd_buf(adr);
//memcpy(&inv_tmp_vol,flash_temp,sizeof(inv_tmp_vol));
if(i==fiscal_ck_index.n-1)
{
chCommData.id=0;
}
else if(i%2)
{
chCommData.id=2;
}
else
{
chCommData.id=1;
}
chCommData.len=sizeof(inv_tmp_vol)+4;
memcpy(chCommData.commbuf,flash_temp,sizeof(inv_tmp_vol));
rs232_s();
}
break;
case CMD_GET_ID_PRN:
F_rs232=1;
//fiscal_check_getadr(5);
if(fiscal_check_getadr(5))
{
ES=0;
rs232_send_byte ('E');
rs232_send_byte ('R');
ES=1;
break;
}
F_rs232=0;
for(i=0;i<fiscal_ck_index.n;i++)
{
adr=fiscal_ck_index.index1+i*256;
rd_buf(adr);
//memcpy(&inv_prn_tmp_info,flash_temp,sizeof(inv_prn_tmp_info));
if(i==fiscal_ck_index.n-1)
{
chCommData.id=0;
}
else if(i%2)
{
chCommData.id=2;
}
else
{
chCommData.id=1;
}
chCommData.len=178;//sizeof(inv_prn_tmp_info)+4;
memcpy(chCommData.commbuf,flash_temp,174);
rs232_s();
}
break;
case CMD_GET_SPAN_PRN:
F_rs232=1;
//fiscal_check_getadr(6);
if(fiscal_check_getadr(6))
{
ES=0;
rs232_send_byte ('E');
rs232_send_byte ('R');
ES=1;
break;
}
F_rs232=0;
for(i=0;i<fiscal_ck_index.n;i++)
{
adr=fiscal_ck_index.index1+i*256;
rd_buf(adr);
//memcpy(&inv_prn_tmp_info,flash_temp,sizeof(inv_prn_tmp_info));
if(i==fiscal_ck_index.n-1)
{
chCommData.id=0;
}
else if(i%2)
{
chCommData.id=2;
}
else
{
chCommData.id=1;
}
chCommData.len=178;//sizeof(inv_prn_tmp_info)+4;
memcpy(chCommData.commbuf,flash_temp,174);
rs232_s();
}
break;
case CMD_GET_UPDATE_DATA:
chCommData.id=0x00;
chCommData.len=34;
memcpy(chCommData.commbuf,user.end_time,30);
rs232_s();
break;
case CMD_SET_UPDATE_DATA:
chCommData.id=0;
chCommData.len=4;
memcpy(user.end_time,chCommData.commbuf,30);
rs232_s();
break;
default:
ES=0;
rs232_send_byte ('E');
rs232_send_byte ('R');
ES=1;
break;
}
}
}
}
uchar InvoiceStatus()
{
uchar i=0,*p;
cls();
p=Readtime1();
memcpy(inv_cur_vol.end_time,p,4);
P3_4=1;
if(P3_4)
{
DisHzLinYm(" 请装入发票或空白纸",Col2);
do
{
P3_4=1;
i++;
FfLine();
if(P3_4==0)i=0;
}while((i!=0)&&(i!=255));
if(i>50)i=1;
}
_nop_();
if(inv_cur_vol.start_id==inv_cur_vol.end_id)
{
DisHzLinYm(" 发票用完请录入新发票",Col3);
i = 1;
}
_nop_();
if(jinechaoxian==1)
{
DisHzLinYm(" 发票累计总金额超限,请报税",Col4);
i = 1;
}
_nop_();
if(jinechaoxian==2)
{
DisHzLinYm(" 请回送申报监控信息",Col1);
i = 1;
}
_nop_();
if(i)
{
DL();
DL();
}
_nop_();
return i;
}
void UserBaseInfo()
{
uchar *p;
uchar i,j;
uchar xdata temp1[40];
DisHzLinYm("1.显示用户基本信息",Col2); //test ok
j=0;
do
{
cls();
//DisHzLinYm("左右键看更多信息",7);
if(keyc==KEY_PUP){if(j>0)j--;}
if(keyc==KEY_PDN){if(j<7)j++;}
switch(j)
{
case 0:
DisHzLinYm(Fpxe[1],Col1);
DisHzLinYm(user.user_name,Col2);
if(user.user_name[24]!=0)DisHzLinYm(&user.user_name[24],Col3);
for(i=10;i<30;i++)DisAsc(&PrnVAsc,Col3,i);
DisHzLinYm(Fpxe[2],Col4);
DL();cls();
DisHzLinYm(Fpxe[3],Col1);
DisAsc(&D00+(user.end_time[0]&0xf0),Col1,Row1);
DisAsc(&D00+(user.end_time[0]%16)*0x10,Col1,Row2);
DisAsc(&D00+(user.end_time[1]&0xf0),Col1,Row3);
DisAsc(&D00+(user.end_time[1]%16)*0x10,Col1,Row4);
DisAsc(&D00+(user.end_time[2]&0xf0),Col1,Row7);
DisAsc(&D00+(user.end_time[2]%16)*0x10,Col1,Row8);
DisAsc(&D00+(user.end_time[3]&0xf0),Col1,Row11);
DisAsc(&D00+(user.end_time[3]%16)*0x10,Col1,Row12);
p=Fpxe[4];
memset(temp1,0,sizeof(temp1));
sprintf(temp1,"%lu",user.zc_total_top);
for(i=0;i<15;i++)temp1[i+17]=temp1[i];
for(i=0;i<17;i++)temp1[i]=*(p+i);
DisHzLinYm(temp1,Col2);
p=Fpxe[0];
memset(temp1,0,sizeof(temp1));
sprintf(temp1,"%lu",user.tp_total_top);
for(i=0;i<15;i++)temp1[i+17]=temp1[i];
for(i=0;i<17;i++)temp1[i]=*(p+i);
DisHzLinYm(temp1,Col3);//退票累计限额(分)
break;
case 1:
DisHzLinYm("纳税人编码:",Col1);
memset(Hz_Record,0,sizeof(Hz_Record));
for(i=0;i<8;i++)
{
Hz_Record[i+i ] =user.user_id[i]/16+48;
Hz_Record[i+i+1]=user.user_id[i]%16+48;
}
DisHzLinYm(Hz_Record,Col2);
DisHzLinYm("税号:",Col3);
//DisHzLinYm(user.fiscal_id,Col4);
memset(Hz_Record,0,40);
memcpy(Hz_Record,user.fiscal_id,sizeof(user.fiscal_id));
DisHzLinYm(Hz_Record,Col1);
DisAsc(&PrnVAsc,Col4,20);
memset(temp1,0,sizeof(temp1));
DL();
DisHzLinYm("单张发票开票限额(分):",Col1);
sprintf(temp1,"%lu",user.one_top);
DisHzLinYm(temp1,Col2);
break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
memset(Hz_Record,0x20,40);
HexToStr(&tax[j-2].tax_id, &Hz_Record[13], 1);
DisHzLinYm(Hz_Record,Col1);
memset(Hz_Record,0x20,40);
HexToStr(tax[j-2].tax_code, &Hz_Record[13], 4);//older is 12
DisHzLinYm(Hz_Record,Col3);
memset(Hz_Record,0x20,40);
HexToStr(tax[j-2].tax_count, &Hz_Record[13], 2);
DisHzLinYm(Hz_Record,Col2);
DisHzLinYm("税目索引:",Col1);
DisHzLinYm("税率:",Col2);
DisHzLinYm("税种项目代码:",Col3);
DL();DL();cls();
memset(Hz_Record,0,40);
DisHzLinYm("经营项目中文名称:",Col1);
memcpy(Hz_Record,tax[j-2].sale_cn_name,sizeof(tax[j-2].sale_cn_name));
DisHzLinYm(Hz_Record,Col2);
memset(Hz_Record,0,40);
DisHzLinYm("经营项目英文名称:",Col3);
memcpy(Hz_Record,tax[j-2].sale_en_name,sizeof(tax[j-2].sale_en_name));
DisHzLinYm(Hz_Record,Col4);
break;
}
GetKey();
}while(keyc!=KEY_ESC);
}
uchar PassWord2()
{
uchar j;
memset(Hz_Record,0,13);
for(j=0;j<=12;j++)
{
GetKey();
if(keyc==0x1b)return 1;
else if(keyc==KEY_CR)
{
Hz_Record[0]=Hz_Record[0]*16 + Hz_Record[1];
Hz_Record[1]=Hz_Record[2]*16 + Hz_Record[3];
Hz_Record[2]=Hz_Record[4]*16 + Hz_Record[5];
Hz_Record[3]=Hz_Record[6]*16 + Hz_Record[7];
Hz_Record[4]=Hz_Record[8]*16 + Hz_Record[9];
Hz_Record[5]=Hz_Record[10]*16+ Hz_Record[11];
Hz_Record[6]=(j+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -