📄 deal_data.c
字号:
break;
case RETREAT_INVOICE:
invoice_roll.retreat_num++;
invoice_roll.retreat_money+=record.invoice_money;
//send_str(4,&invoice_roll.retreat_money);
day.retreat_num++;
for(j=0;j<CATALOG_NUM;j++)
day.retreat_money[j]+=class_money[j];
break;
case RESCISSORY_INVOICE:
invoice_roll.resissory_num++;
day.rescissory_num++;
break;
}
}
//send_char(2);
if(is_trade==YES)
{
if(trade_info->invoice_type==NORMAL_INVOICE)
{
receiver_report.total_money+=trade_info->total_money;
day_report.money+=trade_info->total_money;
month_report.money+=trade_info->total_money;
money_add.add_money+=trade_info->total_money;
if(trade_info->trader_no)
{
trade_report.total_money+=trade_info->total_money;
trade_report.total_trade++;
}
//交易次数
receiver_report.total_trade++;
day_report.trade++;
month_report.trade++;
//折扣总额
receiver_report.total_discount_money+=trade_info->discount_money;
day_report.discount_money+=trade_info->discount_money;
month_report.discount_money+=trade_info->discount_money;
//服务费总额
receiver_report.total_service_money+=trade_info->service_money;
day_report.service_money+=trade_info->service_money;
month_report.service_money+=trade_info->service_money;
//直接折扣总额
receiver_report.total_decrease_money+=trade_info->decrease_money;
day_report.decrease_money+=trade_info->decrease_money;
month_report.decrease_money+=trade_info->decrease_money;
//8种现金额(每次交易只有一种付款方式)
receiver_report.total_cash[trade_info->pay_way]+=trade_info->total_money;
day_report.cash[trade_info->pay_way]+=trade_info->total_money;
month_report.cash[trade_info->pay_way]+=trade_info->total_money;
//8种销售次数(每次交易只有一种付款方式)
receiver_report.cash_num[trade_info->pay_way]++;
day_report.cash_num[trade_info->pay_way]++;
month_report.cash_num[trade_info->pay_way]++;
}
else if(trade_info->invoice_type==RETREAT_INVOICE)
{
receiver_report.retreat_money+=trade_info->total_money;
day_report.retreat_money+=trade_info->total_money;
month_report.retreat_money+=trade_info->total_money;
money_add.retreat_money+=trade_info->total_money;
//退货次数
receiver_report.retreat_num++;
day_report.retreat_num++;
month_report.retreat_num++;
if(trade_info->trader_no)
{
trade_report.retreat_money+=trade_info->total_money;
trade_report.retreat_num++;
}
}
//发票卷暂存到EEPROM
invoice_roll.lrc=lrcdata((uint)sizeof(invoice_roll)-1,1,&invoice_roll);
//strncpy(buf,&invoice_roll,(uint)sizeof(invoice_roll));
//invoice_roll.lrc=0;
//for(j=0;j<(uint)sizeof(invoice_roll)-1;j++)invoice_roll.lrc^=buf[j];
//send_str(4,&invoice_roll.retreat_money);
if(write_eeprom(INVOICE_ROLL,(uint)sizeof(invoice_roll),&invoice_roll))
{ //send_char(3);
invoice_roll.lrc=lrcdata((uint)sizeof(invoice_roll)-1,1,&invoice_roll);
if(write_eeprom(INVOICE_ROLL,(uint)sizeof(invoice_roll),&invoice_roll))
return(WRITE_EEPROM_FAIL);
}
/*if(low_pwr==1)
{
invoice_roll.lrc=lrcdata((uint)sizeof(invoice_roll)-1,1,&invoice_roll);
if(read_eeprom(INVOICE_ROLL,(uint)sizeof(invoice_roll),buf))
return(READ_EEPROM_FAIL);
if(memcmp(&invoice_roll,buf,(uint)sizeof(invoice_roll))!=0)
{
if(write_eeprom(INVOICE_ROLL,(uint)sizeof(invoice_roll),&invoice_roll))
return(WRITE_EEPROM_FAIL);
}
}
*/
//日记录暂存更新到EEPROM 如果天变了就存到FLASH中去
day.lrc=lrcdata((uint)sizeof(day)-1,1,&day);
if(write_eeprom(DAY,(uint)sizeof(day),&day))
{ //send_char(4);
day.lrc=lrcdata((uint)sizeof(day)-1,1,&day);
if(write_eeprom(DAY,(uint)sizeof(day),&day))
return(WRITE_EEPROM_FAIL);
}
/* if(low_pwr==1)
{
day.lrc=lrcdata((uint)sizeof(day)-1,1,&day);
if(read_eeprom(DAY,(uint)sizeof(day),buf))
return(READ_EEPROM_FAIL);
if(memcmp(&day,buf,(uint)sizeof(day))!=0)
{
if(write_eeprom(DAY,(uint)sizeof(day),&day))
return(WRITE_EEPROM_FAIL);
}
}
*/
if(trade_info->invoice_type!=RESCISSORY_INVOICE) //废票不更新这几种报表
{
//收款员报表更新到EEPROM
receiver_report.lrc=lrcdata((uint)sizeof(receiver_report)-1,1,
&receiver_report);
if(write_eeprom(RECEIVER_ADDR+(uint)((trade_info->receiver_no-1)*sizeof(receiver_report)),
(uint)sizeof(receiver_report),&receiver_report))
{ //send_char(5);
receiver_report.lrc=lrcdata((uint)sizeof(receiver_report)-1,1,
&receiver_report);
if(write_eeprom(RECEIVER_ADDR+(uint)((trade_info->receiver_no-1)*sizeof(receiver_report)),
(uint)sizeof(receiver_report),&receiver_report))
return(WRITE_EEPROM_FAIL);
}
/*if(low_pwr==1)
{
receiver_report.lrc=lrcdata((uint)sizeof(receiver_report)-1,1,&receiver_report);
if(read_eeprom(RECEIVER_ADDR+(uint)((trade_info->receiver_no-1)*sizeof(receiver_report)),
(uint)sizeof(receiver_report),buf))
return(READ_EEPROM_FAIL);
if(memcmp(&receiver_report,buf,(uint)sizeof(receiver_report))!=0)
{
if(write_eeprom(RECEIVER_ADDR+(uint)((trade_info->receiver_no-1)*sizeof(receiver_report)),
(uint)sizeof(receiver_report),&receiver_report))
return(WRITE_EEPROM_FAIL);
}
}
*/
//日报表更新到EEPROM
day_report.lrc=lrcdata((uint)sizeof(day_report)-1,1,&day_report);
if(write_eeprom(DAY_ADDR,(uint)sizeof(day_report),&day_report))
{//send_char(6);
day_report.lrc=lrcdata((uint)sizeof(day_report)-1,1,&day_report);
if(write_eeprom(DAY_ADDR,(uint)sizeof(day_report),&day_report))
return(WRITE_EEPROM_FAIL);
}
//send_str((uint)sizeof(day_report)-50,&day_report+50);
/*if(low_pwr==1)
{
day_report.lrc=lrcdata((uint)sizeof(day_report)-1,1,&day_report);
if(read_eeprom(DAY_ADDR,(uint)sizeof(day_report),buf))
return(READ_EEPROM_FAIL);
//send_str((uint)sizeof(day_report)-50,buf);
if(memcmp(&day_report,buf,(uint)sizeof(day_report))!=0)
{
if(write_eeprom(DAY_ADDR,(uint)sizeof(day_report),&day_report))
return(WRITE_EEPROM_FAIL);
}
}
*/
//月报表更新到EEPROM
month_report.lrc=lrcdata((uint)sizeof(month_report)-1,1,&month_report);
if(write_eeprom(MONTH_ADDR,(uint)sizeof(month_report),&month_report))
{// send_char(7);
if(write_eeprom(MONTH_ADDR,(uint)sizeof(month_report),&month_report))
return(WRITE_EEPROM_FAIL);
}
/* if(low_pwr==1)
{
month_report.lrc=lrcdata((uint)sizeof(month_report)-1,1,&month_report);
if(read_eeprom(MONTH_ADDR,(uint)sizeof(month_report),buf))
return(READ_EEPROM_FAIL);
if(memcmp(&month_report,buf,(uint)sizeof(month_report))!=0)
{
if(write_eeprom(MONTH_ADDR,(uint)sizeof(month_report),&month_report))
return(WRITE_EEPROM_FAIL);
}
}
*/
#ifdef C8_VER
//营业员报表更新到EEPROM
if(trade_info->trader_no)
{
trade_report.trade_no=trade_info->trader_no;
trade_report.lrc=lrcdata((uint)sizeof(trade_report)-1,1,&trade_report);
if(write_eeprom(TRADE_ADDR+(trade_info->trader_no-1)*(uint)sizeof(trade_report),
(uint)sizeof(trade_report),&trade_report))
return(WRITE_EEPROM_FAIL);
}
#endif
//累加金额更新到EEPROM
money_add.crc=crcxdata((uint)sizeof(money_add)-2,&money_add);
if(write_eeprom(MONEY_ADD,(uint)sizeof(money_add),&money_add))
{ //send_char(8);
if(write_eeprom(MONEY_ADD,(uint)sizeof(money_add),&money_add))
return(WRITE_EEPROM_FAIL);
}
/*if(low_pwr==1)
{
money_add.crc=crcxdata((uint)sizeof(money_add)-2,&money_add);
if(read_eeprom(MONEY_ADD,(uint)sizeof(money_add),buf))
return(READ_EEPROM_FAIL);
if(memcmp(&money_add,buf,(uint)sizeof(money_add))!=0)
{
if(write_eeprom(MONEY_ADD,(uint)sizeof(money_add),&money_add))
return(WRITE_EEPROM_FAIL);
}
}
*/
}
}//发票完
//定金清0
trade_info->pre_money=0;
if(is_trade==YES && trade_info->table_no>0)
if(write_sramb(MENU_START_ADDR+(ulong)((trade_info->table_no-1)*
((uint)sizeof(menu)+4)),4,&trade_info->pre_money))
{ //send_char(9);
return(WRITE_SRAM_FAIL);
}
//将record的数据暂存入print_rec,在打印时送入打印函数的参数为print_rec的数据
memcpy(&print_rec,&record,(uint)sizeof(record));
//send_char(3);
//如果选择的不是打印税目名称则需要修改print_rec的数据,改动内容为项目数,名称和金额
if(read_eeprom(PRINT_ITEM_FLG,2,tmp))//&g_print_item_sel))
return(READ_EEPROM_FAIL);
g_print_item_sel=tmp[0];
//2005.8.9
if(!g_print_item_sel)//打印打印税目名称
{
print_rec.item_num=trade_info->menu_num; //打印打印税目名称
for(j=0;j<trade_info->menu_num;j++)
{
if(menu[j].no) //如果是PLU输入
{
rlt=get_plu(&plu,menu[j].no-1);
if(rlt) return(rlt);
p=get_tax_item_index(plu.tax_item);
memcpy(print_rec.item[j].item_name,g_tax_catalog[p].tax_chinese_name,20);
//memcpy(print_rec.item[j].item_name,g_tax_catalog[plu.tax_item-1].tax_chinese_name,20);
//memcpy(print_rec.item[j].item_name,plu.name,20);
}
else //部门输入
{
rlt=get_branch(&branch,menu[j].branch-1);
if(rlt) { return(rlt); }
//2005.8.9
p=get_tax_item_index(branch.tax_item);
memcpy(print_rec.item[j].item_name,g_tax_catalog[p].tax_chinese_name,20);
//memcpy(print_rec.item[j].item_name,g_tax_catalog[branch.tax_item-1].tax_chinese_name,20);
//memcpy(print_rec.item[j].item_name,branch.name,20);
}
memcpy((uchar *)&print_rec.item[j].money,(uchar *)&menu[j].money,4); //获得金额
}
}
//菜单清0
set_value0(menu,(uint)sizeof(*menu));
if(is_trade==YES && trade_info->table_no>0)
if(write_sramb(MENU_START_ADDR+
(ulong)((trade_info->table_no-1)*
((uint)sizeof(*menu)+4)+4),(uint)sizeof(*menu),menu))
return(WRITE_SRAM_FAIL);
set_value0(&record,(uint)sizeof(record));
invoice_roll_end=0;
//send_char(4);
if(is_trade==YES)
{
//检查发票是否用完,用完则保存到FLASH,并且打印该卷发票信息
//从税控卡获得发票卷的信息
rlt=get_invoice_roll_info(&invoice_roll_info);
if(rlt==INVO_ROLL_END)
{
read_eeprom(RECORD_ADDR1,(uint)sizeof(RecordAddr),&RecordAddr);
if(crcxdata((uint)sizeof(RecordAddr)-2,&RecordAddr)!=RecordAddr.crc)
{
if(read_eeprom(RECORD_ADDR2,(uint)sizeof(RecordAddr),&RecordAddr))
return(READ_EEPROM_FAIL);
if(crcxdata((uint)sizeof(RecordAddr)-2,&RecordAddr)!=RecordAddr.crc)return(CRC_ERROR);
}
invoice_roll.invoice_end_add=RecordAddr.record_addr;//当前的发票明细记录作为发票卷的结束地址
invoice_roll.lrc=lrcdata((uint)sizeof(invoice_roll)-1,1,&invoice_roll);
rlt=save_invoice_roll(&invoice_roll);
if(rlt)
return(rlt);
//发票数据清0
set_value0(buf,(uint)sizeof(invoice_roll));
memcpy(&buf[37],(uchar*)&RecordAddr.record_addr,4);//当前的发票明细记录作为发票卷的起始地址
buf[(uint)sizeof(invoice_roll)-1]=lrcdata((uint)sizeof(invoice_roll)-1,1,buf);
if(write_eeprom(INVOICE_ROLL,(uint)sizeof(invoice_roll),buf))
{
if(write_eeprom(INVOICE_ROLL,(uint)sizeof(invoice_roll),buf))
return(WRITE_EEPROM_FAIL);
}
invoice_roll_end=1;
}
else if(rlt)
{
return(rlt);
}
}
//send_char(print_rec.invoice_type);
if(trade_info->invoice_type!=RESCISSORY_INVOICE) //废票不打印
{
//打印
strcpy(buf,"正在打印...");
clear_lcd(3,1);
lcd_disp(3,0,buf);
//2005.9。14
gb_temp=0;
for(j=0;j<=print_rec.item_num;j++)
{
if(j==print_rec.item_num)
end=1;
else
end=0;
rlt=print_record_item(&print_rec,j,end,&invoice_roll_info,is_trade);
//打印错误暂不返回
if(rlt)
{
print_error=rlt;
}
}
strcpy(buf,"谢谢,交易成功!");
clear_lcd(0,MAX_LCD_NUM);
lcd_disp(3,0,buf);
}
else
{
clear_lcd(0,MAX_LCD_NUM);
strcpy(buf,"谢谢,废票成功!");
lcd_disp(2,0,buf);
}
//交易信息更新
init_trade_info(trade_info);
/*set_value0(&record,(uint)sizeof(record));
invoice_roll_end=0;
if(is_trade==YES)
{
//检查发票是否用完,用完则保存到FLASH,并且打印该卷发票信息
//从税控卡获得发票卷的信息
rlt=get_invoice_roll_info(&invoice_roll_info);
if(rlt==INVO_ROLL_END)
{
rlt=save_invoice_roll(&invoice_roll);
if(rlt)
return(rlt);
//发票数据清0
set_value0(buf,(uint)sizeof(invoice_roll));
if(write_eeprom(INVOICE_ROLL,(uint)sizeof(invoice_roll),buf))
return(WRITE_EEPROM_FAIL);
invoice_roll_end=1;
}
else if(rlt)
return(rlt);
}
*/
if(invoice_roll_end && is_trade==YES)
{
//打印该卷发票信息
//send_str(4,&invoice_roll.retreat_money);
rlt=print_invoice_roll(&invoice_roll);
//打印错误暂不返回
if(rlt)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -