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

📄 struct.h

📁 税控收款机源码:拼音输入法,LCD,VFD驱动,IC卡驱动,税控国标
💻 H
📖 第 1 页 / 共 2 页
字号:
 /*-------------------------------------------------------------
 说明:结构定义及其长度 日期:2004年3月 作者: 
 ---------------------------------------------------------------*/ 
 #ifndef __STRUCT_H__ 
 #define __STRUCT_H__ 
 #include "constant.h"

//明细记录87+item_num*33
struct  record_struct
{
   
	uchar date[4];             //开票日期
	uchar invoice_type;        //发票类型
	ulong invoice_no;          //发票号码,流水号(暂定为HEX)
	ulong invoice_money;	   //发票合计金额
	uchar anti_forge_code[8];  //税控码
	ulong valid_inv_no;	       //原票号码,流水号(暂定为HEX)
	uchar invoice_code[10];    //发票代码
    uchar disburse_unit[40];   //付款单位,不足后面补0
	uchar receiver_no[10];     //收款员号码
	uchar item_num;			   //一张发票的经营项目数
	struct item_struct
	{
		uchar item_name[20];      //项目名称
		ulong num;                //商业,项目数量
	    ulong price;			  //单价
		ulong money;             //项目金额
		uchar tax_item;
	}item[PAGE_ITEM_NUM];//项目	
	uchar lrc;    //记录+所有经营项目的累加和
};
/*
struct  record_struct
{	
    uchar item_num;			   //一张发票的经营项目数
	uchar date[3];             //开票日期
	uchar invoice_type;        //发票类型
	ulong invoice_no;          //发票号码,流水号(暂定为HEX)
	ulong invoice_money;	   //发票合计金额
	uchar anti_forge_code[8];  //税控码
	ulong valid_inv_no;	       //原票号码,流水号(暂定为HEX)
	uchar reservation[2];	   //保留
	uchar disburse_choice;     //付款方式
	uchar receiver_no;         //收款员号码
	uchar disburse_unit[40];    //付款单位,不足后面补0
	struct item_struct
	{
		uint  no;                   //项目编号(高位为1时为PLU编号,为0时为部门编号)
		uchar item_name[20];        //项目名称
		//#ifdef TRADE
		ulong num;                //商业,项目数量
		//#endif
		ulong money;             //项目金额
				
	}item[PAGE_ITEM_NUM];//项目	
	uchar lrc;    //记录+所有经营项目的累加和
};
*/
//二、单卷发票
//每卷发票的统计数据结构
struct invoice_roll_struct
{
	uchar invoice_code[10];                  //发票代码
	ulong invoice_start_no;                  //发票起始号
	ulong invoice_end_no;                    //发票终止号
	uchar normal_num;                        //正常发票使用数
	uchar retreat_num;                       //退票总数
	uchar resissory_num;                     //废票总数
	ulong trade_money;                       //开票总金额(包含退票金额)
	ulong retreat_money;                     //退票总金额
	uchar issue_start_date[4];				//开票起始日期
	uchar issue_end_date[4];					//开票截止日期
  
	ulong invoice_start_add;                 //发票在flash中的起始地址
	ulong invoice_end_add;                   //发票在flash中的结束地址

	uchar lrc;                                //累加和校验
};
//发票卷数据结构共46个BYTE,

//日汇总数据结构
struct day_struct
{
	uchar date[3];                  //日期
	uint  invoice_num;             //发票使用总数
	uint  retreat_num;             //退票总数
	uint  rescissory_num;          //废票总数
	uchar tax_item_code[6];        //税目编码
	ulong sale_money[6];           //开票金额(包含退票金额 分)
	ulong retreat_money[6];        //退票金额
	uchar lrc;                     //累加和校验 
};
//共64byte 
//日记录存于黑匣子(FLASH)中,永不擦除。税控机占用FLASH的硬件资源29扇区(64k)、30扇区(64k)、31扇区(32k);(税控器和票据机从28-31扇区???)。顺序存放。可采用顺序或者二分法查找,视最终的反应速度定。
//固定6个税目的情况下:length=64byte,记录数=2560,可保证7年。

//五、申报数据
//申报数据存于黑匣子(FLASH)中,永不擦除。税控机占用FLASH的硬件资源34扇区(16k);
//申报数据:每期长度=211BYTES, 可存期数=16*1024/211=77, 可保证6年零5个月。

//EEPROM中需要保存的重要结构
//1、电子票根的当前笔地址结构
struct record_addr_struct 
{
	ulong record_addr;		                 //电子票根当前地址
	uchar record_sector;        	             //记录当前扇区
	uchar start_sector;                       //电子票根的起始扇区
	uint crc;			                     //电子票根的CRC
};
//共7字节
//2、单卷发票的当前卷地址结构
struct invoice_roll_addr_struct 
{
	ulong invoice_roll_addr;		             //发票卷当前地址
	uint  invoice_roll_sector;        	     //记录当前扇区
	uint crc;			                     //CRC校验
};
//共8字节
//3、日记录的当前日地址结构
struct day_addr_struct 
{
	ulong day_addr;		             //日记录当前地址
	uint  day_sector;                //日记录当前扇区
	//uint  day_num;        	         //累加的天数
	uint crc;			             //CRC校验
};
//4、申报数据的当前期地址结构
struct delare_addr_struct 
{
	ulong delare_addr;		             //申报数据当前地址
	uint  delare_num;        	         //累加的期数
	uint crc;			                 //CRC校验
};

//共8字节
//5、部门结构
struct branch_struct 
{
	ulong quantity;                                //部门销售量
	ulong money;                                  //部门总收款额
	ulong retreat_num;                           //部门退款项数
	ulong retreat_money;                        //部门退款额
	uchar name[20];//[11];	                  //部门名称
	uchar tax_item;                           //税目编码
	uchar lrc;                               //累加和校验
};
//共38个字节
//6、PLU结构51BYTE

struct plu_struct 
{
	uchar name[20];		            //PLU名称
	ulong price;			            //PLU单价
	uchar unitname;                  //单位名称(克..等)
	uchar bar_code[6];		        //条形码
	ulong quantity;		            //销售量
	ulong money;			            //销售额
	ulong retreat_num;               //plu退款数量
	ulong retreat_money;             //plu退款额
	ulong stocks;				    //库存量
	uchar branch;		            //PLU所属部门
	uchar tax_item;                  //税目编码
	uint  crc;			            //累加和校验
};

//共57个字节
//7、收款员报表结构
struct receiver_report_struct
{
	ulong total_money;		                   //总收款额
	ulong total_trade;		                   //总交易次数
	ulong total_discount_money;	               //折扣总额
	ulong total_service_money;	               //服务费总额
	ulong total_decrease_money;	               //直接折扣总额
	ulong open_cashbox_num;	                   //非销售开钱箱次数
	uchar time[6];		                       //上班时间
	uchar receiver_no;		                   //收款员号
	ulong total_cash[8];		                   //现金额
	ulong cash_num[8];		                   //现金销售项数
	ulong not_sell_earning ;	                   //非销售收入
	ulong not_sell_defray ;	                   //非销售支出
	ulong retreat_money;		                   //总退款额
	ulong retreat_num;		                   //总退货次数
	uchar lrc;								   //累加和
};
//共112字节
//8、日报表结构

⌨️ 快捷键说明

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