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

📄 setup.c

📁 税控收款机源码:拼音输入法,LCD,VFD驱动,IC卡驱动,税控国标
💻 C
📖 第 1 页 / 共 5 页
字号:
          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 + -