📄 declare.c
字号:
menu_num=strlen(menu_L2_DR);
break;
case MAX_LAYER_MENU:
display_menu_page(switch_mode,layer,menu_Lmax_DR[last_line-1],cur_line);
menu_num=strlen(menu_Lmax_DR[last_line-1]);
break;
default://若到达功能级,则转到功能设置
break;
}
//===============2.2 功能设置=========================//
if(layer==FUNCTION_LAYER)//若到达功能级
{
//-----------2.2.1 执行相应功能------------//
//----------提示当前功能--------------//
clear_lcd(0,4);
get_menu_name_dr(MAX_LAYER_MENU,function_no,buf);
lcd_disp(0,0,buf);
switch(function_no)
{
//-------------卡申报统计-----------//
case DECLARE_DUTY_CARD:
result=save_day_data();
if(result)
{
break;
}
//-------检查用户卡合法性--------//
result=check_user_card();
if(result)
{
break;
}
result=check_usrcard_dec();
if(result)
{
break;
}
//-----判断是否已汇总---//
result=is_collected();
if(result)
{
//2005.11.29
strcpy(buf,"请用重复申报数据功能");
lcd_disp(1,0,buf);
//已汇总,则写入原已汇总数据
/*result=SelFile_id(SAM_CARD,0xEF04);//从税控卡中读申报备份
if(result) break;
result=ReadRec(SAM_CARD,1,1,83,&buf[8]);
if(result) break;
*/
/*
strcpy(buf,"正在写入上次的申报数据"); //校验用户卡的PIN码
lcd_disp(1,0,buf);
memcpy(buf,g_user_info.register_no,8);
result=get_declare_addr_struct(&declare_addr);
if(result) break;
//result = read_flash(declare_addr.delare_addr-DECLARE_LEN+83,DECLARE_LEN-83,&buf[91]);
result = read_flash(declare_addr.delare_addr-DECLARE_LEN,DECLARE_LEN,&buf[8]);
if(result) break;
buf[219]=lrcdata(219,1,buf);
//2005.7.27
memcpy(start_date,&buf[9],3);
memcpy(end_date,&buf[13],3);
// Declare_Day_List(start_date,end_date);break;
for(i=0;i<3;i++)
{
result = data_collect(buf);
if(result) continue;
else break;
}*/
//2005.7.28
//break;
}
//----------取得起止日期------------//
//result=input_date_range(&start_date,&end_date);
//if(result==POWER_OFF) return result;//断电,返回
//if(result!=OK) break;
//------申报汇总的起始日期是上一次申报(已做完税处理)的结束日期加1-----//
//if(read_eeprom(END_DATE_ADDR,3,start_date))
//return(READ_EEPROM_FAIL);
//sprintf(buf,"20%02bd年%02bd月%02bd日----\0",start_date[0],start_date[1],start_date[2]);
//lcd_disp();
else
{
result=get_declare_date(start_date,end_date);
//send_str(3,start_date);send_str(3,end_date);return 0;
if(result==POWER_OFF) return result;//断电,返回
if(result!=OK) break;
read_rtc(buf);
if(memcmp(start_date,end_date,3)>0) //截至日期不能小于起始日期
{
result=OVER_RANGE_ERROR;
break;
}
if((memcmp(buf,end_date,3)<0)||(memcmp(buf,end_date,3)==0))//不可报当天的税
{
result=OVER_RANGE_ERROR;
break;
}
//2005.8.14
strcpy(buf,"正在报申报数据...");
lcd_disp(1,0,buf);
clear_lcd(2,2);
//------------申报统计---------------//
result=card_declare_duty(start_date,end_date);//报税
if(result==0)
{
result=OK;
//-----------本机最后一次申报的截至日期写入temp_end_date(完税处理后写入temp_end)---------//
if(write_eeprom(END_DATE_TMP_ADDR,3,end_date))
return(READ_EEPROM_FAIL);
}
}
if((result)&&(result!=OK))break;
//send_char(result);
//2005.12.27
result = declare_invoice_roll(start_date,end_date);
if(result)
return result;
result = Declare_Day_List(start_date,end_date);
if(result)
return result;
//result=0;
break;
//-------------卡申报统计-----------//
case DECLARE_DUTY_BYMONTH:
result=save_day_data();
if(result)
{
break;
}
//-------检查用户卡合法性--------//
result=check_user_card();
if(result)
{
break;
}
result=check_usrcard_dec();
if(result)
{
break;
}
//-----判断是否已汇总---//
result=is_collected();
if(result)
{
//已汇总,则写入原已汇总数据
/*result=SelFile_id(SAM_CARD,0xEF04);//从税控卡中读申报备份
if(result) break;
result=ReadRec(SAM_CARD,1,1,83,&buf[8]);
if(result) break;
*/
//2005.11.29
strcpy(buf,"请用重复申报数据功能");
lcd_disp(1,0,buf);
/* strcpy(buf,"正在写入上次的申报数据"); //校验用户卡的PIN码
lcd_disp(1,0,buf);
memcpy(buf,g_user_info.register_no,8);
result=get_declare_addr_struct(&declare_addr);
if(result) break;
//result = read_flash(declare_addr.delare_addr-DECLARE_LEN+83,DECLARE_LEN-83,&buf[91]);
result = read_flash(declare_addr.delare_addr-DECLARE_LEN,DECLARE_LEN,&buf[8]);
if(result) break;
buf[219]=lrcdata(219,1,buf);
//2005.7.27
memcpy(start_date,&buf[9],3);
memcpy(end_date,&buf[13],3);
//send_str(220,buf);break;
for(i=0;i<3;i++)
{
result = data_collect(buf);
if(result) continue;
else break;
}
//2005.7.28
// break;
*/
}
else
{
if(read_eeprom(END_DATE_ADDR,3,temp_buf))
return(READ_EEPROM_FAIL);
calc_date(temp_buf,1,start_date);
read_rtc(buf);
if((buf[1]>start_date[1])||((start_date[1]==0x12)&&(buf[1]!=0x12)))
{
//------------申报统计---------------//
memcpy(end_date,start_date,2);
end_date[2]=0x31;
if((end_date[1]==4)||(end_date[1]==6)||(end_date[1]==9)||(end_date[1]==0x11))end_date[2]=0x30;
else if(end_date[1]==2)
{
i=(buf[0]>>4)*10+buf[0]&0x0f;
if(!(i%4))end_date[2]=0x29;
else end_date[2]=0x28;
}
//send_str(3,start_date);send_str(3,end_date);
//2005.8.14
strcpy(buf,"正在报申报数据...");
lcd_disp(1,0,buf);
clear_lcd(2,2);
// send_str(3,start_date);send_str(3,end_date);return 0;
result=card_declare_duty(start_date,end_date);//报税
if(result==0)
{
result=OK;
//-----------本机最后一次申报的截至日期写入temp_end_date(完税处理后写入temp_end)---------//
if(write_eeprom(END_DATE_TMP_ADDR,3,end_date))
return(READ_EEPROM_FAIL);
}
}
else result=RANGE_ERROR_BYMONTH;
}
if((result)&&(result!=OK))break;
//2005.7.27
result = Declare_Day_List(start_date,end_date);
if(result)
return result;
// result=0;
break;
//-------------重复申报数据-----------//
//2005.11.29
case DECLARE_DUTY_AGAIN:
result=save_day_data();
if(result)
{
break;
}
//-------检查用户卡合法性--------//
result=check_user_card();
if(result)
{
break;
}
//判断用户卡是否已报税
result=check_usrcard_dec();
if(result)
{
break;
}
//-----判断是否已汇总---//
result=is_collected();
if(result)
{
//已汇总,则写入原已汇总数据
/*result=SelFile_id(SAM_CARD,0xEF04);//从税控卡中读申报备份
if(result) break;
result=ReadRec(SAM_CARD,1,1,83,&buf[8]);
if(result) break;
*/
strcpy(buf,"正在写入上次的申报数据"); //校验用户卡的PIN码
lcd_disp(1,0,buf);
memcpy(buf,g_user_info.register_no,8);
result=get_declare_addr_struct(&declare_addr);
if(result) break;
//result = read_flash(declare_addr.delare_addr-DECLARE_LEN+83,DECLARE_LEN-83,&buf[91]);
result = read_flash(declare_addr.delare_addr-DECLARE_LEN,DECLARE_LEN,&buf[8]);
if(result) break;
buf[219]=lrcdata(219,1,buf);
//2005.7.27
memcpy(start_date,&buf[9],3);
memcpy(end_date,&buf[13],3);
//send_str(220,buf);break;
for(i=0;i<3;i++)
{
result = data_collect(buf);
if(result) continue;
else break;
}
//2005.12.27
result = declare_invoice_roll(start_date,end_date);
if(result)
return result;
result = Declare_Day_List(start_date,end_date);
if(result)
return result;
//2005.7.28
// break;
}
else
{
strcpy(buf,"不能重复申报数据");
lcd_disp(1,0,buf);
/* if(read_eeprom(END_DATE_ADDR,3,temp_buf))
return(READ_EEPROM_FAIL);
calc_date(temp_buf,1,start_date);
read_rtc(buf);
if((buf[1]>start_date[1])||((start_date[1]==0x12)&&(buf[1]!=0x12)))
{
//------------申报统计---------------//
memcpy(end_date,start_date,2);
end_date[2]=0x31;
if((end_date[1]==4)||(end_date[1]==6)||(end_date[1]==9)||(end_date[1]==0x11))end_date[2]=0x30;
else if(end_date[1]==2)
{
i=(buf[0]>>4)*10+buf[0]&0x0f;
if(!(i%4))end_date[2]=0x29;
else end_date[2]=0x28;
}
//2005.8.14
strcpy(buf,"正在报申报数据...");
lcd_disp(1,0,buf);
clear_lcd(2,2);
// send_str(3,start_date);send_str(3,end_date);return 0;
result=card_declare_duty(start_date,end_date);//报税
if(result==0) result=OK;
//-----------本机最后一次申报的截至日期写入temp_end_date(完税处理后写入temp_end)---------//
if(write_eeprom(END_DATE_TMP_ADDR,3,end_date))
return(READ_EEPROM_FAIL);
}
else result=RANGE_ERROR_BYMONTH;
*/
}
if((result)&&(result!=OK))break;
//2005.7.27
// result=0;
break;
#ifdef DECLARE_INVOICE//
//-------------卡申报明细-----------//
case DECLARE_LIST_CARD:
//-------检查用户卡合法性--------//
result=check_user_card();
if(result) break;
//----------取得起止日期------------//
result=input_date_range(&start_date,&end_date);
if(result==POWER_OFF) return result;//断电,返回
if(result!=OK) break;
read_rtc(buf);
if((memcmp(buf,end_date,3)<0)||(memcmp(buf,end_date,3)==0))//不可报当天的税
{
result=OVER_RANGE_ERROR;
break;
}
//------------申报明细---------------//
result=card_declare_list(start_date,end_date);
break;
#endif
case DECLARE_INVOICE_ROLL_CARD:
//-------检查用户卡合法性--------//
//result=check_user_card_get_fileid(temp_buf,0);//检查用户卡及反回发票使用信息文件标示符
//send_str(2,temp_buf);//0xef11
//temp_len=temp_buf[0];
//temp_len<<=8;
//temp_len|=temp_buf[1];
//if(result) break;
//----------取得起止日期------------//
result=input_date_range(start_date,end_date);
if(result==POWER_OFF) return result;//断电,返回
if(result!=OK) break;
read_rtc(buf);
if((memcmp(buf,&end_date,3)<0)||(memcmp(start_date,end_date,3)>0) )
{
result=OVER_RANGE_ERROR;
break;
}
result = declare_invoice_roll(start_date,end_date);
if(result)
return result;
//-------------用户卡报日记录-----------//
/* case DECLARE_DAY_RECORD:
result=check_user_card_get_fileid(temp_buf,1);//检查用户卡及反回日记录文件标示符
temp_len=temp_buf[0];
temp_len<<=8;
temp_len|=temp_buf[1];
if(result) break;
//----------取得起止日期------------//
result=input_date_range(&start_date,&end_date);
if(result==POWER_OFF) return result;//断电,返回
if(result!=OK) break;
read_rtc(buf);
if((memcmp(buf,end_date,3)<0)||(memcmp(buf,end_date,3)==0))//不可报当天的税
{
result=OVER_RANGE_ERROR;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -