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

📄 taxctrl.c

📁 本程序在S3C44B0 uClinux的嵌入式GUI
💻 C
📖 第 1 页 / 共 4 页
字号:
     	ShowTaxMessage( inf, errStr );	LCD6963_ClearScreen();   //清屏幕后,再显示		LCD_DisplayOneLine( 0,0 ,errStr,'D',1,1 );             LCD_DisplayOneLine( 2,0 ,"分发发票失败.",'D',0,1 );        TC_PressAnyKey(); //等待用户按任意键     }     TaxStatusDisplay(); //在状态行显示 税控状态     return inf;  }//三、纳税申报 struct  TaxReportData TaxReportDataBuf;/*{  BYTE BeginDate[11];		//申报起算日期   YYYY-MM-DD 10 ASC STR   BYTE CountDate[11];		//申报截至日期   YYYY-MM-DD 10 ASC STR   BYTE InvoiceCnt[8];		//正常发票份数 "0000000" (不足前面补空格)   BYTE ReturnCnt[8];		//退票份数 "0000000" (不足前面补空格)   BYTE CancelCnt[8];		//废票份数 "0000000" (不足前面补空格)   BYTE TaxTypeIndex[13];	//税种税目索引号  "010203040506"   BYTE SubTotal[6][13];        //正常发票分类累计金额 000,000,000·00 (不足前面补空格)   BYTE SubRetVal[6][13];       //退票分类累计金额 000,000,000·00 (不足前面补空格)   BYTE TotalVal[13];           //正常发票累计金额 000,000,000·00 (不足前面补空格)   BYTE RetVal[13];             //退票累计金额 000,000,000·00 (不足前面补空格)};*///+++++++++++++++++++++++++++++++++++++++++++++++++//处理过程参考://+++++++++++++++++++++++++++++++++++++++++++++++++//提示 "今日是"//YYYY-MM-DD//提示 插入用户卡//按<CR>键//纳税申报函数:    int TaxPro_3( struct TaxReportData *Data );//参数 struct  TaxReportData *Data//功能:函数要判断是否需要进行发票分发,需:进入发票分发;不需:只向结构填入数据返回//返回:int 成功=0; 不到申报时间=1; 不成功=见错误表;//申报成功:显示 申报数据 TaxReportData.BeginDate,.CountDate,.InvoiceCnt,.ReturnCnt//				.CancelCnt,.TaxTypeIndex,.TotalVal,.RetVal// TaxStatus.TaxReporting = 1; //=1->进入纳税申报,未确认完税 //三、纳税申报int  TaxReport( void ) { //struct  TaxReportData  *TaxReportDataBuf;   char DateStr[11];   int key_in,inf;   LCD6963_ClearScreen();   //清屏幕   //提示 插入用户卡   //显示 当前系统 日期,提示 用户确认日期正确,按 Enter 进入 税控初始化,   //提示 "税控初始化中,请稍候..."   LCD_DisplayOneLine( 0,0 ,"插入用户卡",'D',1,0 );   LCD_DisplayOneLine( 2,0 ,"今日:",'D',1,0 );   //得到系统日期字符串 YYYY-MM-DD   TC_GetSysDateStr( DateStr );   LCD_DisplayOneLine( 2,5*FONT_WIDTH ,DateStr,'D',0,0 );   LCD_DisplayOneLine( 6,0 ,"<CR>开始纳税申报:",'D',1,0 );   //等待用户按<CR>键   if( TC_WaitUserPressAnyKey( XK_Return )!= 0 ) //等待用户按 某一特定键         return -1; //用户不确认,返回   #ifdef V_DRAGON_VER   LCD_DisplayOneLine( 6,0 ,"纳税申报中..",'D',0,1 ); //将第6行内容覆盖   #else   LCD_DisplayOneLine( 6,0 ,"纳税申报中..",'D',0,1 ); //将第6行内容覆盖   #endif         //纳税申报函数:    int TaxPro_3( struct TaxReportData *TaxReportDataBuf );   //参数 struct  TaxReportData *TaxReportDataBuf   //功能:函数要判断是否需要进行纳税申报,需:进入纳税申报;   //返回:int 成功=0; 不到申报时间=1; 不成功=见错误表;   inf = TAX_DECLARE( &TaxReportDataBuf );   //inf = TaxPro_3( &TaxReportDataBuf );   switch(inf){     case 0: //申报成功:显示 申报数据 TaxReportData.BeginDate,.CountDate,.InvoiceCnt,.ReturnCnt	     //				.CancelCnt,.TaxTypeIndex,.TotalVal,.RetVal	     TaxReportDisplay( &TaxReportDataBuf ); 	     TaxStatusData.TaxReporting = 1; //=1->进入纳税申报,未确认完税             kds_WriteDefVal( (char *)IniFileName,"[TaxStatus]","TaxReportting",TaxStatusData.TaxReporting );             break;	     case 1:    	     LCD_DisplayOneLine( 6,0 ,"未到申报日期.",'D',0,1 ); //将第6行内容覆盖	     inf = 0;	     TC_PressAnyKey();  //等待 按任意键             break;     default:	     LCD_DisplayOneLine( 6,0 ,"申报不成功.",'D',0,1 ); //将第6行内容覆盖	     TC_PressAnyKey();  //等待 按任意键             break;           }   TaxStatusDisplay(); //在状态行显示 税控状态   return inf;  	 } //四、申报完成(完税回插) / 查看监控数据/*struct  CtrlData {     BYTE InvalidDate[11];		//开票截止日期 YYYY-MM-DD   BYTE OneInvoiceValLimit[13];		//单张开票限额 000,000,000·00 (不足前面补空格)   BYTE TotalLimit[13];			//开票累计金额限额    BYTE ReturnTotalLimit[13];		//退票累计金额限额    BYTE TaxTypeIndex[13];		//税种税目索引号  "010203040506"};*///+++++++++++++++++++++++++++++++++++++++++++++++++//处理过程参考://+++++++++++++++++++++++++++++++++++++++++++++++++//提示 插入用户卡//回读监控数据函数: int TaxPro_4( struct CtrlData *Data );//参数 struct  CtrlData *Data//功能:函数要判断是否需要进行"完税回插",需:进入"完税回插"//返回:int 成功=0; 不需进行"完税回插"=1; 不成功=见错误表;// TaxStatus.TaxReporting = 0; //=0->正常使用中//显示 新的监控数据 内容  struct  CtrlData CtrlDataBuf;  //四、申报完成(完税回插) / 查看监控数据 //flg = 1->完税回插, = 0->查看监控数据int  GetCtrlData( int flg ) { //struct  CtrlData  *CtrlDataBuf;   char DateStr[11]; unsigned char errStr[50];   int key_in,inf;   LCD6963_ClearScreen();   //清屏幕   if( TaxStatusData.TaxReporting != 1 ){       LCD_DisplayOneLine( 0,0 ,"未报税,不需回读监控数据",'D',0,1 ); //将第6行内容覆盖       TC_PressAnyKey();  //等待 按任意键       TaxStatusDisplay(); //在状态行显示 税控状态       return 0;   }   //提示 插入用户卡   //显示 当前系统 日期,提示 用户确认日期正确,按 Enter 进入 税控初始化,   //提示 "税控初始化中,请稍候..."   if( flg == 1 ) LCD_DisplayOneLine( 0,0 ,"插入用户卡",'D',1,0 );   LCD_DisplayOneLine( 2,0 ,"今日:",'D',1,0 );   //得到系统日期字符串 YYYY-MM-DD   TC_GetSysDateStr( DateStr );   LCD_DisplayOneLine( 4,3*FONT_WIDTH ,DateStr,'D',0,0 );   if( flg == 1 ) LCD_DisplayOneLine( 6,0 ,"<CR>卡完税回插:",'D',1,0 );   else LCD_DisplayOneLine( 6,0 ,"<CR>查看监控数据:",'D',0,0 );   //等待用户按<CR>键   if( TC_WaitUserPressAnyKey( XK_Return )!= 0 ) //等待用户按 某一特定键         return -1; //用户不确认,返回   LCD_DisplayOneLine( 6,0 ,"监控数据回读中..",'D',0,1 ); //将第6行内容覆盖     //回读监控数据函数: int TaxPro_4( struct CtrlData *Data );   //参数 struct  CtrlData *Data   //功能:函数要判断是否需要进行"完税回插",需:进入"完税回插"   //返回:int 成功=0; 不需进行"完税回插"=1; 不成功=见错误表;     inf = TAX_READ_VIGIL_FILE( &CtrlDataBuf );   //inf = TaxPro_4( &CtrlDataBuf );      // TaxStatus.TaxReporting = 0; //=0->正常使用中   //显示 新的监控数据 内容   switch(inf){     case 0: //回读成功:显示 监控数据 	         TaxStatusData.TaxReporting = 0; //=1->进入纳税申报,未确认完税,=0->正常使用中                 kds_WriteDefVal( (char *)IniFileName,"[TaxStatus]","TaxReportting",TaxStatusData.TaxReporting );             //将 数据保存在 PosDef.ini 中			 kds_WriteDefTxt( (char *)IniFileName,"[TaxStatus]","InvalidDate",(char*)CtrlDataBuf.InvalidDate );			 kds_WriteDefTxt( (char *)IniFileName,"[TaxStatus]","OneInvoiceValLimit",(char*)CtrlDataBuf.OneInvoiceValLimit );			 kds_WriteDefTxt( (char *)IniFileName,"[TaxStatus]","TotalLimit",(char*)CtrlDataBuf.TotalLimit );			 kds_WriteDefTxt( (char *)IniFileName,"[TaxStatus]","ReturnTotalLimit",(char*)CtrlDataBuf.ReturnTotalLimit );			 kds_WriteDefTxt( (char *)IniFileName,"[TaxStatus]","TaxTypeIndex",(char*)CtrlDataBuf.TaxTypeIndex );			 //读出新的纳税单位名称			 ReadFlash(40,FlashYHCardFile1Info_9,TaxInitDataBuf.UserName); //读纳税人单位名称			 kds_WriteDefTxt( (char *)IniFileName,"[TaxStatus]","UserName",(char*)TaxInitDataBuf.UserName );                          //"UserEditListFlg=1",				//是否允许用户修改编辑 部类表 0->不允许,1->允许(default)          if( kds_ReadDefVal( (char *)IniFileName,"[TaxStatus]","UserEditListFlg") == 1 )          {                      //struct user_ware_info UserGoodsTypeList;			 //功能: 读出I Open 部类数据列表 返回: =0:操作成功 !=0:见错误对照表             OpenUserList( &UserGoodsTypeList );             //保存入 gt_list.ini  const char GT_FileName[]={"/mnt/nand_disk1/gt_list.ini"}; //商品部类表文件             save_gt_list_file( &UserGoodsTypeList ); //将 "商品部类表" 数据保存入 gt_list.ini           }  	   TaxReportedDisplay( &CtrlDataBuf );           break;	     case 1:    	     LCD_DisplayOneLine( 6,0 ,"不需完税回插.",'D',0,1 ); //将第6行内容覆盖	     TC_PressAnyKey();  //等待 按任意键	     inf = 0;             break;     default:             ShowTaxMessage( inf , errStr );             LCD_DisplayOneLine( 0,0 ,errStr,'D',1,1 ); 	     LCD_DisplayOneLine( 6,0 ,"完税回插不成功.",'D',0,1 ); //将第6行内容覆盖	     TC_PressAnyKey();  //等待 按任意键             break;           }   TaxStatusDisplay(); //在状态行显示 税控状态   return inf;  }//五、发票卷汇总 / 查看发票卷汇总/*struct  InvoiceRollData {     int  flg;				//   BYTE InvoiceCode[21];		//发票代码   20 ASC STR   BYTE BeginCode[11];			//起始号码   10 ASC STR   BYTE EndCode[11];			//截止号码   10 ASC STR    BYTE InvoiceCnt[4];			//正票份数    "000"   BYTE ReturnCnt[4];			//退票份数    "000"   BYTE CancelCnt[4];			//废票份数    "000"   BYTE TotalVal[13];			//正票总金额  000,000,000·00 (不足前面补空格)   BYTE RetVal[13];			//废票总金额  000,000,000·00 (不足前面补空格)   BYTE BeginDate[11];			//开票起始时间   YYYY-MM-DD 10 ASC STR   BYTE StopDate[11];			//开票截止时间   YYYY-MM-DD 10 ASC STR};*/ //+++++++++++++++++++++++++++++++++++++++++++++++++//处理过程参考://+++++++++++++++++++++++++++++++++++++++++++++++++//提示 插入 用户卡//发票卷汇总函数: int TaxPro_5( struct InvoiceRollData *Data );//参数 struct  InvoiceRollData *Data//flg = 0 -> 只需 读出 发票卷统计内容; flg = 1 发票卷汇总//功能:函数要判断是否需要进行"发票卷汇总",需:进入"发票卷汇总";不需:向结构填入 发票卷统计数据//返回:int 成功=0; 不需进行"发票卷汇总"=1; 不成功=见错误表;//      InvoiceRollData.flg == 1 -> 需要 进行发票卷汇总//可先用 InvoiceData.flg = 0,从 函数中返回结构数据 ,返回时 flg == 0->不需 发票汇总,flg == 1->要汇总//汇总成功:显示 发票卷汇总内容 InvoiceRollData.InvoiceCode,.BeginCode,.EndCode,//					.InvoiceCnt,.ReturnCnt,.CancelCnt,.TotalVal,.RetVal,.//					.BeginDate,.StopDate//          TaxStatus.PaperRollStatus = 0; //=0->未登记发票卷,=1->已登记发票卷  struct  InvoiceRollData  InvoiceRollDataBuf; //flg = 0 -> 只需 读出 发票卷统计内容; flg = 1 发票卷汇总int  TaxPaperRollCollect( int flg ) { //struct  InvoiceRollData  *Data;   char DateStr[11],errStr[50];   int key_in,inf;   LCD6963_ClearScreen();   //清屏幕   if( TaxStatusData.PaperRollStatus != 2 ) //不需发票汇总   {   LCD_DisplayOneLine( 6,30 ,"不需发票卷汇总.",'D',0,1 ); //将第6行内容覆盖       TC_PressAnyKey();  //等待 按任意键       TaxStatusDisplay(); //在状态行显示 税控状态       return 0;   }   //提示 插入用户卡   //显示 当前系统 日期,提示 用户确认日期正确,按 Enter 进入 税控初始化,   //提示 "税控初始化中,请稍候..."   if( flg == 1 ) LCD_DisplayOneLine( 0,0 ,"插入用户卡",'D',1,0 );   LCD_DisplayOneLine( 2,0 ,"今日:",'D',1,0 );   //得到系统日期字符串 YYYY-MM-DD   TC_GetSysDateStr( DateStr );   LCD_DisplayOneLine( 4,3*FONT_WIDTH ,DateStr,'D',0,0 );   if( flg == 1 ) LCD_DisplayOneLine( 6,0 ,"<CR>发票卷汇总:",'D',1,0 );   else LCD_DisplayOneLine( 6,0 ,"<CR>查看汇总数据:",'D',1,0 );   //等待用户按<CR>键   if( TC_WaitUserPressAnyKey( XK_Return )!= 0 ) //等待用户按 某一特定键         return -1; //用户不确认,返回   LCD_DisplayOneLine( 6,0 ,"汇总数据整理中..",'D',0,1 ); //将第6行内容覆盖//发票卷汇总函数: int TaxPro_5( struct InvoiceRollData *Data );

⌨️ 快捷键说明

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