📄 setup.c
字号:
con_disp(1,0,strlen(buf),buf);
break;
//-------选择开票时打印 税目/部门--------//
case PRINT_ITEM_SELECT:
//检查权限
if(check_user_card())
{
clear_lcd(0,4);
result=get_authority_now(&temp_authority);
if(result) break;
if(temp_authority!=1)
{
result=POWER_FAIL;
break;
}
}
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
clear_lcd(0,4);
result=read_eeprom(PRINT_ITEM_FLG,2,buf);//&g_print_item_sel);
if(result==READ_EEPROM_FAIL) break;
g_print_item_sel=buf[0];
//----------提示当前功能--------------//
get_menu_name_sp(MAX_LAYER_MENU,function_no,buf);
lcd_disp(0,0,buf);
if(g_print_item_sel) strcpy(buf,"当前状态: 部门/商品名称\r");
else strcpy(buf,"当前状态: 税目名称\r");
strcat(buf," 按[确认]切换\0");
lcd_disp(1,0,buf);
//----等待按键,确认则执行设置操----//
result=wait_usal_key(1);
if(result==POWER_OFF) return POWER_OFF;
else if(result==CANCEL) break;
result=set_switch_para(&g_print_item_sel,PRINT_ITEM_FLG);
if(result==0) result=OK;
clear_lcd(0,4);
result=read_eeprom(PRINT_ITEM_FLG,2,buf);//&g_print_item_sel);
if(result==READ_EEPROM_FAIL) break;
g_print_item_sel=buf[0];
//strcpy(buf,"是否打印税目名称\r");
if(g_print_item_sel) strcpy(buf,"当前状态: 部门/商品\0");
else strcpy(buf,"当前状态: 税目名称\0");
lcd_disp(1,0,buf);
break;
//-------权限设置--------//
case AUTHORITY_SETUP:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
//先检查是否有权执行该项功能(插入用户卡或者登录的收款员本身是管理员的权限)
if(check_user_card()) //如果插入了用户卡则不用检查当前登录者的权限
{
clear_lcd(0,4);
result=get_authority_now(&temp_authority);
if(result) break;
if(temp_authority!=1)
{
result=POWER_FAIL;
break;
}
}
//如果满足权限
strcpy(buf,"请输入要设置的营业员号\0");
lcd_disp(0,0,buf);
clear_lcd(1,3);
memset(buf,0,50);
result=get_num(buf);
if(result) break;
if(strlen(buf)>2) //如果输入的数字大于2位则返回错误
{
result=OVER_RANGE_ERROR;
break;
}
if(strlen(buf)==1) //如果只输入了一位则转换成两位 1->01
{
buf[1]=buf[0];
buf[0]='0';
}
temp_rec_no=(buf[0]-'0')*10+buf[1]-'0';
if(temp_rec_no>MAX_RECEIVER_NUM) //如果输入的数字大于最大收款员号也返回错误
{
result=OVER_RANGE_ERROR;
break;
}
result=get_authority_flg(temp_rec_no,&temp_authority);//获取收款员权限
if(result) break;
clear_lcd(0,4);
memset(buf,0,50);
sprintf(buf,"%2bu号营业员\r",temp_rec_no);
strcat(buf,"当前权限 ");
if(temp_authority)
strcat(buf,"管理员\r");
else
strcat(buf,"营业员\r");
strcat(buf,"按[确认]键切换\0");
lcd_disp(0,0,buf);
//----等待按键,确认则执行设置操----//
result=wait_usal_key(1);
if(result==POWER_OFF) return POWER_OFF;
else if(result==CANCEL) break;
if(temp_authority) temp_authority=0;
else temp_authority=1;
result=set_authority_flg(temp_rec_no,temp_authority);//设置收款员权限
if(result) break;
result=OK;
break;
//-------设置最大Plu号--------//
case SET_MAX_PLU:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
result=check_user_card();
if(result) break;
result=set_max_plu_no();
if(result==POWER_OFF) return result;////断电,返回
break;
//--设置交易项目(包括部门名称、plu的单价、所属部门、库存量、名称)--//
/* case PLU_PRICE:
case PLU_BRANCH:
case SET_STOCKS:
case PLU_NAME:
case BRANCH_NAME:
*/
case PLU_MANAGEMENT:
case BRANCH_MANAGEMENT:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
//检查权限
if(check_user_card())
{
clear_lcd(0,4);
result=get_authority_now(&temp_authority);
if(result) break;
if(temp_authority!=1)
{
result=POWER_FAIL;
break;
}
}
result=set_trade_item(function_no);
if(result==POWER_OFF) return result;////断电,返回
break;
//-------设置收款员密码--------//
case SET_RECEIVER_PASSWORD:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
result=set_receiver_password();
if(result==POWER_OFF) return result;////断电,返回
break;
//-------完税处理--------//
case UPDATE_CONTROL_MSG:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
//-------检查用户卡合法性--------//
result=check_user_card();
if(result)
{
result=CARD_ERROR;
break;
}
//-------完税处理--------//
shut_bat(0); //
result=update_control_msg();
shut_bat(1); //
//send_char(result);
break;
//-------设置时间--------//
case SET_TIME:
read_eeprom(PIN_TMP1,10,buf);
if(!((buf[0]==0|| buf[0]==0xFF) && (buf[1]==0 || buf[1]==0xFF) &&
(buf[2]==0 || buf[2]==0xFF) && (buf[3]==0 || buf[3]==0xFF) &&
(buf[4]==0 || buf[4]==0xFF) && (buf[5]==0 || buf[5]==0xFF) &&
(buf[6]==0 || buf[6]==0xFF) && (buf[7]==0 || buf[7]==0xFF)))
{
result=253;//CANCE;
break; //机器已初始化
/*result=enter_application_direct(USER_CARD);
if(result) return result;
result=check_clear_card(1,k);
if(result==POWER_OFF) return POWER_OFF;
else if(result) break;//==CANCEL //机器已初始化
*/
}
/*if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
*/
//-------设置时间--------//
result=set_time(1);
//if((result==POWER_OFF)||(result!=OK)){Write_FAU_data(TIMEUPDATE,1); return result;}////断电,返回
// Write_FAU_data(TIMEUPDATE,0);
//delayms(200);
break;
#ifdef ANOTHER_SET_INDEX
//-------设置项目对应税目编码--------//
case SET_BRANCH_INDEX:
case SET_PLU_INDEX:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
//-------检查是否插入用户卡--------//
result=check_user_card();
if(result)
{
result=CARD_ERROR;
break;
}
//-------设置过程--------//
result=set_trade_item(function_no);
if(result==POWER_OFF) return result;////断电,返回
break;
#endif
//更新税控信息
case UPDATA_INFO_PAYER:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
clear_lcd(0,4);
//----------提示当前功能--------------//
get_menu_name_sp(MAX_LAYER_MENU,function_no,buf);
lcd_disp(0,0,buf);
result=enter_application_direct(USER_CARD);
if(result) return result;
result=Get_Info_payer();
if(result) return(result);
result=read_control_msg(0);
//send_char(result);
if(result) return(result);
break;
//-------打印查询机器税控信息(用户、监控、税目信息)--------//
case PRINT_FISCAL_MSG:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
clear_lcd(0,4);
//----------提示当前功能--------------//
get_menu_name_sp(MAX_LAYER_MENU,function_no,buf);
lcd_disp(0,0,buf);
//----------提示下一步操作---------------//
strcpy(buf,"请先换上普通打印纸!!!\r");
lcd_disp(1,0,buf);
con_disp(1,0,strlen(buf),buf);
//----------等待按键,确认则打印---------------//
result=wait_usal_key(0);
if(result==POWER_OFF) return POWER_OFF;
else if(result==CANCEL) break;
result=print_fiscal_msg();
if(result==0) result=OK;
break;
//-------打印一卷发票使用数据--------//
case PRINT_INV_ROLL:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
clear_lcd(0,4);
//----------提示当前功能--------------//
get_menu_name_sp(MAX_LAYER_MENU,function_no,buf);
lcd_disp(0,0,buf);
//----------提示下一步操作---------------//
strcpy(buf,"请先换上普通打印纸!!!\r");
lcd_disp(1,0,buf);
con_disp(1,0,strlen(buf),buf);
result=wait_usal_key(0);
if(result==POWER_OFF) return POWER_OFF;
else if(result!=OK) break;
//----------等待确认打印某一卷发票汇总数据---------------//
strcpy(buf,"请输入发票卷号!!!\r");
lcd_disp(2,0,buf);
i = 0;
while(1)
{
key = get_key();
if(key>='0'&&key<='9')
{
no[i] = key;
i++;
no[i] = 0;
lcd_disp(3,0,no);
}
if(key==ENTER)
{
crctemp = 0;
for(j=0;j<i;j++)
{
crctemp = 10*crctemp;
crctemp = crctemp + no[j] - '0';
}
if(crctemp)
crctemp--;
break;
}
else if(key==VOID)
{
crctemp = 0;
break;
}
}
result=select_inv_roll(MAX_ROLL_NUM,crctemp,&inv_roll);
if(result==POWER_OFF) return POWER_OFF;
else if(result!=OK) break;
//打印三卷发票的数据,考试使用
/*{
num=INVOICE_ROLL_START_ADDR;
for(i=0;i<3;i++)
{
if(read_flash(num,INV_ROLL_STRUCT_LENGTH,&inv_roll))
return(READ_FLASH_FAIL);
num+=INV_ROLL_STRUCT_LENGTH;
result=print_invoice_roll(&inv_roll);
}
}
*/
result=print_invoice_roll(&inv_roll);
if(result==0)
{
clear_lcd(1,2); //清除残余字样
result=OK;
}
break;
//-------打印电子票根--------//
case PRINT_INV_DATA:
if(!mach_initial)
{
result=MACH_NO_INITIALED;
break;
}
clear_lcd(0,4);
//----------提示当前功能--------------//
get_menu_name_sp(MAX_LAYER_MENU,function_no,buf);
lcd_disp(0,0,buf);
//----------提示下一步操作---------------//
strcpy(buf,"请先换上普通打印纸!!!\r");
lcd_disp(1,0,buf);
con_disp(1,0,strlen(buf),buf);
result=check_user_card();
if(result)
{
result=CARD_ERROR;
break;
}
result=wait_usal_key(0);
if(result==POWER_OFF) return POWER_OFF;
else if(result!=OK) break;
result=get_roll_no(tempbuf);
if(result) break;
//result=get_inv_roll_add(tempbuf,buf);
//if(result) break;
strcpy(buf,"请输入原发票的号码:");
lcd_disp(2,0,buf);
memset(buf,0,50);
result=get_num(buf);
if(result) break;
num=numstr_to_long(buf,0,2);
if(num==0)
{
//无效票号
result=INVO_NO_ERROR;
break;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -