📄 query.c
字号:
len=(PRINTAL_NUM-16)/2;
add_blank(len,buf);
strcat(buf,"商品销售查询报表");
if(funtion==PLU_SELL_REPORT_DEL)
memcpy(&buf[len+8],qj,4);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"机器号:");
HexToStr(g_manufacturer_info.machinery_no,&buf[5],8);
error=print_str(buf);
if(error) return(error);
error = read_eeprom((uint)5+REPORT_DATE,5,report_date);
if(error) return READ_EEPROM_FAIL;
for(i=0;i<5;i++) buf1[i] = report_date[i];//起始时间
read_rtc(buf);
for(i=0;i<5;i++) buf1[i+6] = buf[i];//当前时间
sprintf(buf,"20%02bx年%02bx月%02bx日至20%02bx年%02bx月%02bx日"
,buf1[0],buf1[1],buf1[2],buf1[6],buf1[7],buf1[8]);
error=print_str(buf);
if(error) return(error);
total_cash=0;
//total_negative=0;
for(j=plu_start-1;j<plu_end;j++)
{
error=read_plu(j,&plu_t);
if(error) return error;
k=1;
if(plu_t.quantity&&plu_t.money)
{
sprintf(buf,"%04u ",j+1);
pri_format(plu_t.quantity,5,buf1);
print_format(PRINTAL_NUM-15,&buf[4],buf1);
pri_format(plu_t.money,6,&buf[PRINTAL_NUM-15]);
total_cash+=plu_t.money;
error=print_str(buf);
if(error) return(error);
k=0;
}
if(plu_t.retreat_num&&plu_t.retreat_money)
{
if(k) sprintf(buf,"%04u ",j+1);
else strcpy(buf," ");
pri_format3(plu_t.retreat_num,5,buf1);
print_format(PRINTAL_NUM-15,&buf[4],buf1);
pri_format3(plu_t.retreat_money,7,&buf[PRINTAL_NUM-11]);
error=print_str(buf);
if(error) return(error);
total_cash-=plu_t.retreat_money;
t_cash=plu_t.money-plu_t.retreat_money;
sprintf(buf,"合计金额:");
add_blank(PRINTAL_NUM-22,&buf[9]);
pri_format(t_cash,7,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-10]);
error=print_str(buf);
if(error) return(error);
}
}
sprintf(buf,"总计金额:");
add_blank(PRINTAL_NUM-19,&buf[9]);
pri_format(total_cash,7,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-10]);
error=print_str(buf);
if(error) return(error);
if(g_printer_sel!=1)
{
#ifdef C6_VER
error=Fast_feed_paper_hang(160);//fpaper(8);
error=Fast_feed_paper_hang(140);//fpaper(8);
if(error) return LINE_FEED_FAIL;
#else
feed_on_line(8);
#endif
}
else
{
Wei_printer_feed_paper(8);
}
if(funtion==PLU_SELL_REPORT_DEL)
{ //清除数据
for(j=plu_start-1;j<plu_end;j++)
{
error=read_plu(j,&plu_t);
if(error) return error;
plu_t.quantity = 0;
plu_t.money = 0;
plu_t.retreat_num = 0; //plu退款数量
plu_t.retreat_money = 0; //plu退款额
error=write_plu(j,&plu_t);
if(error) return error;
}
read_rtc(report_date);
error = write_eeprom((uint)5+REPORT_DATE,5,report_date);
if(error) return WRITE_EEPROM_FAIL;
}
return OK;
}
#endif
#ifdef QY_DAY_RPT
/*==================================================================
函数功能:打印日查询或清机报表
入口参数:funtion--功能号
出口参数:
返回值: ==OK,成功
!=0k,失败
全局变量:
编制人: 日期:2003-06-30
==================================================================*/
uchar print_day_rpt(uchar function)
{
uchar error,len;
uchar i;
uchar xdata buf[160],buf1[15];
uchar qj[]={"清机"};
struct day_report_struct day;
//----检查清除权限---//
if(function==DAY_REPORT_DEL&&check_user_card())
return USERCARD_MAC_ERROR;
error = read_eeprom(DAY_ADDR,DAY_STRUCT_LEN,buf);
if(error) return READ_EEPROM_FAIL;
//HYS620
error = GotoHomePosition();
if(error)
return PRINT_FAIL;
//END HYS620
memcpy((uchar *)&day,buf,DAY_STRUCT_LEN);
len=(PRINTAL_NUM-14)/2;
add_blank(len,buf);
strcat(buf,"日销售查询报表");
if(function==DAY_REPORT_DEL)
memcpy(&buf[len+6],qj,4);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"机器号:");
HexToStr(g_manufacturer_info.machinery_no,&buf[5],8);
error=print_str(buf);
if(error) return(error);
for(i=0;i<5;i++) buf1[i] = day.time[i];//起始时间
read_rtc(buf);
for(i=0;i<5;i++) buf1[i+6] = buf[i];//当前时间
sprintf(buf,"20%02bx年%02bx月%02bx日至20%02bx年%02bx月%02bx日"
,buf1[0],buf1[1],buf1[2],buf1[6],buf1[7],buf1[8]);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"总交易:");
sprintf(buf1,"%5lu",day.trade);
print_format(PRINTAL_NUM-17,&buf[7],buf1);
pri_format(day.money,7,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-10]);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"退货: ");
sprintf(buf1,"%5lu",day.retreat_num);
print_format(PRINTAL_NUM-17,&buf[7],buf1);
pri_format(day.retreat_money,7,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-10]);
error=print_str(buf);
if(error) return(error);
for(i=0;i<8;i++)
{
if(!day.cash_num[i]) continue;
//sprintf(buf,"%8s:",money_name[i]);
sprintf(buf,"%6s:",money_name[i]);
buf[6]=':';
sprintf(buf1,"%5lu",day.cash_num[i]);
print_format(PRINTAL_NUM-17,&buf[7],buf1);
pri_format(day.cash[i],7,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-10]);
error=print_str(buf);
if(error) return(error);
}
if(day.not_sell_earning)
{
sprintf(buf,"人民币非交易收入: ");
add_blank(PRINTAL_NUM-28,&buf[19]);
pri_format(day.not_sell_earning,6,&buf[19]);//&buf[PRINTAL_NUM-9]);
error=print_str(buf);
if(error) return(error);
}
if(day.not_sell_defray)
{
sprintf(buf,"人民币非交易支出: ");
add_blank(PRINTAL_NUM-28,&buf[19]);
pri_format(day.not_sell_defray,6,&buf[19]);//&buf[PRINTAL_NUM-9]);
error=print_str(buf);
if(error) return(error);
}
strcpy(buf,"折扣总额:");
add_blank(PRINTAL_NUM-18,&buf[9]);
pri_format(day.discount_money,6,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-9]);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"加成总额:");
add_blank(PRINTAL_NUM-18,&buf[9]);
pri_format(day.service_money,6,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-9]);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"直接折扣总额:");
add_blank(PRINTAL_NUM-22,&buf[13]);
pri_format(day.decrease_money,6,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-9]);
error=print_str(buf);
if(error) return(error);
if(g_printer_sel!=1)
{
#ifdef C6_VER
error=Fast_feed_paper_hang(160);//fpaper(8);
error=Fast_feed_paper_hang(140);//fpaper(8);
if(error) return LINE_FEED_FAIL;
#else
feed_on_line(8);
#endif
}
else
{
Wei_printer_feed_paper(8);
}
if(function==DAY_REPORT_DEL)
{
day.money = 0;
day.trade = 0;
day.discount_money = 0;
day.service_money = 0;
day.decrease_money = 0;
day.retreat_num = 0; /*日退货数*/
day.retreat_money = 0; /*日退款额*/
read_rtc(buf);
memcpy(day.time,buf,(uint)sizeof(day.time));
for(i=0;i<8;i++)
{
day.cash[i] = 0;
day.cash_num[i] = 0;
}
day.not_sell_earning = 0;
day.not_sell_defray = 0;
day.lrc=lrcdata(DAY_STRUCT_LEN-1,1,&day);
error = write_eeprom(DAY_ADDR,DAY_STRUCT_LEN,(uchar *)&day);
if(error) return WRITE_EEPROM_FAIL;
}
return OK;
}
#endif
#ifdef QY_MONTH_RPT
/*==================================================================
函数功能:打印月查询或清机报表
入口参数:funtion--功能号
出口参数:
返回值: ==OK,成功
!=0k,失败
全局变量:
编制人: 日期:2003-06-30
==================================================================*/
uchar print_month_rpt(uchar nubemer)
{
uchar xdata error;
uchar xdata i,len;
uchar xdata buf[60],buf1[15];
uchar xdata qj[]={"清机"};
struct month_report_struct xdata month;
//----检查清除权限---//
if(nubemer==MONTH_REPORT_DEL&&check_user_card())
return USERCARD_MAC_ERROR;
error = read_eeprom(MONTH_ADDR,MONTH_STRUCT_LEN,(uchar *)&month);
if(error) return READ_EEPROM_FAIL;
//HYS620
error = GotoHomePosition();
if(error)
return PRINT_FAIL;
//END HYS620
len=(PRINTAL_NUM-14)/2;
add_blank(len,buf);
strcat(buf,"月销售查询报表");
if(nubemer==MONTH_REPORT_DEL)
memcpy(&buf[len+6],qj,4);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"机器号:");
HexToStr(g_manufacturer_info.machinery_no,&buf[5],8);
error=print_str(buf);
if(error) return(error);
for(i=0;i<5;i++) buf1[i] = month.time[i];//起始时间
read_rtc(buf);
for(i=0;i<5;i++) buf1[i+6] = buf[i];//当前时间
sprintf(buf,"20%02bx年%02bx月%02bx日至20%02bx年%02bx月%02bx日"
,buf1[0],buf1[1],buf1[2],buf1[6],buf1[7],buf1[8]);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"总交易:");
sprintf(buf1,"%5lu",month.trade);
print_format(PRINTAL_NUM-17,&buf[7],buf1);
pri_format(month.money,7,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-10]);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"退货: ");
sprintf(buf1,"%5lu",month.retreat_num);
print_format(PRINTAL_NUM-17,&buf[7],buf1);
pri_format(month.retreat_money,7,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-10]);
error=print_str(buf);
if(error) return(error);
for(i=0;i<8;i++)
{
if(!month.cash_num[i]) continue;
//sprintf(buf,"%8s:",money_name[i]);
sprintf(buf,"%6s:",money_name[i]);
buf[6]=':';
sprintf(buf1,"%5lu",month.cash_num[i]);
print_format(PRINTAL_NUM-17,&buf[7],buf1);
pri_format(month.cash[i],7,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-10]);
error=print_str(buf);
if(error) return(error);
}
if(month.not_sell_earning)
{
sprintf(buf,"人民币非交易收入: ");
add_blank(PRINTAL_NUM-28,&buf[19]);
pri_format(month.not_sell_earning,6,&buf[19]);//&buf[PRINTAL_NUM-9]);
error=print_str(buf);
if(error) return(error);
}
if(month.not_sell_defray)
{
sprintf(buf,"人民币非交易支出: ");
add_blank(PRINTAL_NUM-28,&buf[19]);
pri_format(month.not_sell_defray,6,&buf[19]);//&buf[PRINTAL_NUM-9]);
error=print_str(buf);
if(error) return(error);
}
strcpy(buf,"折扣总额:");
add_blank(PRINTAL_NUM-18,&buf[9]);
pri_format(month.discount_money,6,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-9]);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"加成总额:");
add_blank(PRINTAL_NUM-18,&buf[9]);
pri_format(month.service_money,6,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-9]);
error=print_str(buf);
if(error) return(error);
strcpy(buf,"直接折扣总额:");
add_blank(PRINTAL_NUM-22,&buf[13]);
pri_format(month.decrease_money,6,&buf[PRINTAL_NUM-15]);//&buf[PRINTAL_NUM-9]);
error=print_str(buf);
if(error) return(error);
if(g_printer_sel!=1)
{
#ifdef C6_VER
error=Fast_feed_paper_hang(160);//fpaper(8);
error=Fast_feed_paper_hang(140);//fpaper(8);
if(error) return LINE_FEED_FAIL;
#else
feed_on_line(8);
#endif
}
else
{
Wei_printer_feed_paper(8);
}
if(nubemer==MONTH_REPORT_DEL)
{
month.money = 0;
month.trade = 0;
month.discount_money = 0;
month.service_money = 0;
month.decrease_money = 0;
month.retreat_num = 0; /*月退货数*/
month.retreat_money = 0; /*月退款额*/
read_rtc(buf);
memcpy(month.time,buf,(uint)sizeof(month.time));
for(i=0;i<8;i++)
{
month.cash[i] = 0;
month.cash_num[i] = 0;
}
month.not_sell_earning = 0;
month.not_sell_defray = 0;
month.lrc=lrcdata(MONTH_STRUCT_LEN-1,1,&month);
error = write_eeprom(MONTH_ADDR,MONTH_STRUCT_LEN,(uchar *)&month);
if(error) return WRITE_EEPROM_FAIL;
}
return OK;
}
#endif
#ifdef QY_RECEIVER_RPT
/*==================================================================
函数功能:打印收款员查询或清机报表
入口参数:funtion--功能号
出口参数:
返回值: ==OK,成功
!=0k,失败
全局变量:
编制人: 日期:2003-06-30
==================================================================*/
uchar print_receiver_rpt(uchar function)
{
uchar error;
uchar receiver_number;
uchar i;
uchar xdata buf[60],buf1[15];
//uchar t_negative; //1:t_cash为负数 0:t_cash为正数
// uchar no_space; //用于计算负号的打印位置
long t_cash;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -