📄 cash_manage.c
字号:
if (i < count)//输入的数量超过库存
{
/*提示超过库存量*/
messagebox(stdscr,7,19,44,12,PAUSE,"金额不足");
sign=1;
}
}
else
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入数字");
/*提示有非数字字符*/
}
break;
case 2:
mvwprintw((*(d->f))->win,10,10,"%.1f",i - count);
wrefresh(d->f[0]->win);
(*(d->b))->pitch_on(*(d->b));
sign=(*(d->b))->attack(*(d->b),1,3,3);
if(sign == 0)
{
result=1;
}
break;
case 3:
(*((d->b)+1))->pitch_on(*((d->b)+1));
sign=(*((d->b)+1))->attack(*((d->b)+1),2,1,1);
if(sign == 0)
{
result=0;
}
break;
}
}
while (sign);
return result;
}
SELL_LIST *settle_accounts(ROLL *r,char *date,char *number,EMP *e)
{
if(r->link->count == 0)
{
messagebox(stdscr,7,19,44,12,PAUSE,"没有货物");
return NULL;
}
float count=0;
FRAME *f[2];
BUTTON *b[2];
INPUT *i;
int result=0;
SELL_LIST *list=(SELL_LIST *)malloc(sizeof(SELL_LIST));
memset(list,0,sizeof(SELL_LIST));
char *str[6]={"收银","单号:","付款金额:","应收金额:","实收金额:","找零:"};
f[0]=creat_frame(3,19,17,34,3);
f[1]=creat_frame(11,29,1,18,1);
b[0]=createButton(15,25,3,8,"确定");
b[1]=createButton(15,39,3,8,"取消");
i=create_input(f[1],8,0,2,2);
DIALOG *d=create_dialog(f,&i,b,str,r->link);
count=accounts(r->link);
mvwprintw((*(d->f))->win,2,10,"%s",number);
mvwprintw((*(d->f))->win,4,10,"%f",count);
mvwprintw((*(d->f))->win,6,10,"%.1f",count);
show_settle_accounts(d);
result=action_settle_accounts(d,r);
if(result)
{
list->sell_ID=get_sell_id();
strcpy(list->employee_ID,e->emp_id);
strcpy(list->list_num,number);
strcpy(list->sell_date,date);
list->payment_money=count;
list->must_pay_money=count;
list->fact_money=atof(i->str);
list->give_change=list->fact_money-count;
list->sell_fettle=1;
}
else
{
free(list);
list=NULL;
}
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i->free(&i);
scr_restore("scan3.dat");//屏幕恢复
return list;
}
///////////////////////////////////////////////////挂单
int hang_up(ROLL *r)
{
if(r->link->count == 0)
{
messagebox(stdscr,7,19,44,12,PAUSE,"没有单可以挂");
return 0;
}
int result=0;
result=messagebox(stdscr,7,19,44,12,YORN,"您确定要将此单挂起到后台");
return result;
}
////////////////////////////////////////////////////取单
void show_get_list(DIALOG *d,LINK *link)
{
int i=0;
NODE *temp=link->rearptr->prior;
scr_dump("scan4.dat");//屏幕保存
box((*(d->f))->win,0,0);
mvwprintw((*(d->f))->win,0,15,"%s",*(d->str));
mvwprintw((*(d->f))->win,2,5,"%s",*(d->str+1));
mvwprintw((*(d->f))->win,10,1,"%s",*(d->str+2));
for(i=0;i<link->count;i++)
{
mvwprintw((*(d->f))->win,3+i,10,"<%d>%s",i+1,((HMSG *)(temp->data))->number);
temp=temp->prior;
}
(*(d->f))->draw(*(d->f));
(*((d->f)+1))->draw(*((d->f)+1));
(*(d->b))->setColor(*(d->b),3,1,4);
(*((d->b)+1))->setColor(*((d->b)+1),3,1,4);
(*(d->b))->show(*(d->b));
(*((d->b)+1))->show(*((d->b)+1));
}
int action_get_list(DIALOG *d,ROLL *r,LINK *link)
{
int result=0,sign=1;
int node_exist=0;
int count=0;
float i=0;
NODE *temp=NULL;
do
{
switch (sign)
{
case 1:
sign=(*((d->i)))->input_char(*((d->i)),1,0,1);//输入个数
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=1;
}
}
/*数目有没有超过*/
del_blank((*(d->i))->str);
if(isdigital((*(d->i))->str)&&strlen((*(d->i))->str)!=0)//输入的数目不否合法
{
i=atoi((*(d->i))->str);
count=link->count;
if (i > count||i<= 0)//输入的数量超过库存
{
/*提示超过库存量*/
messagebox(stdscr,7,19,44,12,PAUSE,"输入的数字不在范围内");
sign=1;
}
}
else
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入数字");
/*提示有非数字字符*/
}
break;
case 2:
(*(d->b))->pitch_on(*(d->b));
sign=(*(d->b))->attack(*(d->b),1,3,3);
if(sign == 0)
{
result=1;
}
break;
case 3:
(*((d->b)+1))->pitch_on(*((d->b)+1));
sign=(*((d->b)+1))->attack(*((d->b)+1),2,1,1);
if(sign == 0)
{
result=0;
}
break;
}
}
while (sign);
return result;
}
int get_list(ROLL *r,LINK *link)
{
if(link->count == 0)
{
messagebox(stdscr,7,19,44,12,PAUSE,"没有单可以取");
return 0;
}
if(r->link->count!=0)
{
messagebox(stdscr,7,19,44,12,PAUSE,"收银中,禁止取单");
return 0;
}
FRAME *f[2];
BUTTON *b[2];
INPUT *i;
int result=0;
char *str[3]={"取单","单号:","单号编号:"};
f[0]=creat_frame(3,19,17,34,3);
f[1]=creat_frame(13,29,1,18,1);
b[0]=createButton(15,25,3,8,"确定");
b[1]=createButton(15,39,3,8,"取消");
i=create_input(f[1],8,0,2,2);
DIALOG *d=create_dialog(f,&i,b,str,link);
show_get_list(d,link);
result=action_get_list(d,r,link);
if(result)
{
result=atoi((*(d->i))->str);
}
else
{
result=0;
}
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i->free(&i);
scr_restore("scan4.dat");//屏幕恢复
return result;
}
///////////////////////////////////////////////////撤单
int remove_list(ROLL *r)
{
if(r->link->count == 0)
{
messagebox(stdscr,7,19,44,12,PAUSE,"没有单可以撤");
return 0;
}
int result=0;
result=messagebox(stdscr,7,19,44,12,YORN,"您确定要撤销此次交易?");
return result;
}
//////////////////////////////////////注销用户
int logout(ROLL *r,LINK *link)
{
if(r->link->count != 0 || link->count !=0)
{
messagebox(stdscr,7,19,44,12,PAUSE,"还在销售状态中,禁止注销");
return 0;
}
int result=0;
result=messagebox(stdscr,7,19,44,12,YORN,"您确定要注销此用户吗?");
return result;
}
//////////////////////////////////////////////////退货用户
void show_login(DIALOG *d)
{
scr_dump("scan16.dat");//屏幕保存
box((*(d->f))->win,0,0);
mvwprintw((*(d->f))->win,0,13,"%s",*(d->str));
mvwprintw((*(d->f))->win,2,11,"%s",*(d->str+1));
mvwprintw((*(d->f))->win,4,11,"%s",*(d->str+2));
(*(d->f))->draw(*(d->f));
(*((d->f)+1))->draw(*((d->f)+1));
(*((d->f)+2))->draw(*((d->f)+2));
(*(d->b))->setColor(*(d->b),3,1,4);
(*((d->b)+1))->setColor(*((d->b)+1),3,1,4);
(*(d->b))->show(*(d->b));
(*((d->b)+1))->show(*((d->b)+1));
}
int action_tuihuo_login(EMP *e,DIALOG *d)
{
int result=0,sign=1;
int node_exist=0;
int count=0;
do
{
switch (sign)
{
case 1:
sign=(*((d->i)))->input_char(*((d->i)),1,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=1;
}
}
del_blank((*(d->i))->str);
if(isdigital((*((d->i)))->str)&&strlen((*((d->i)))->str)!=0)
{
break;
}
else
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"请正确输入正确的用户ID");
/*提示有非数字字符*/
}
break;
case 2:
sign=(*((d->i+1)))->input_char(*((d->i+1)),0,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=2;
}
}
del_blank((*(d->i+1))->str);
if(strlen((*((d->i+1)))->str)!=0)//输入的数目不否合法
{
break;
}
else
{
sign=2;
messagebox(stdscr,7,19,44,12,PAUSE,"密码不能为空格");
/*提示有非数字字符*/
}
break;
case 3:
(*(d->b))->pitch_on(*(d->b));
sign=(*(d->b))->attack(*(d->b),1,3,3);
if(sign == 0)
{
result=login((*((d->i)))->str,(*(d->i+1))->str,e);
switch (result)
{
case 0:
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"该用户不存在,请重新输入或离开!");
(*(d->i+1))->del_str((*(d->i+1)));
(*((d->i)))->del_str((*((d->i))));
break;
case 1:
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"该用户已被禁用,请重新输入或离开!");
(*(d->i+1))->del_str((*(d->i+1)));
(*(d->i))->del_str((*(d->i)));
break;
case 2:
messagebox(stdscr,7,19,44,12,PAUSE,"密码错误!");
(*(d->i+1))->del_str((*(d->i+1)));
sign=2;
break;
case 3:
result=1;
break;
case 4:
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"该用户不是退货员");
(*(d->i+1))->del_str((*(d->i+1)));
(*(d->i))->del_str((*(d->i)));
break;
case 5:
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"该用户不是退货员");
(*(d->i+1))->del_str((*(d->i+1)));
(*(d->i))->del_str((*(d->i)));
break;
}
}
break;
case 4:
(*((d->b)+1))->pitch_on(*((d->b)+1));
sign=(*((d->b)+1))->attack(*((d->b)+1),2,1,1);
if(sign==0)
{
result=0;
}
break;
}
}
while (sign);
}
int tuihuo_login(EMP *e)
{
FRAME *f[3];
BUTTON *b[2];
INPUT *i[2];
int result=0;
char *str[3]={"退货用户登陆","帐号:","密码:"};
f[0]=creat_frame(6,19,12,40,3);
f[1]=creat_frame(8,35,1,16,1);
f[2]=creat_frame(10,35,1,16,1);
b[0]=createButton(12,25,3,8,"确定");
b[1]=createButton(12,44,3,8,"退出");
i[0]=create_input(f[1],6,1,2,4);
i[1]=create_input(f[2],12,1,3,4);
DIALOG *d=create_dialog(f,i,b,str,NULL);
show_login(d);
result=action_tuihuo_login(e,d);
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
f[2]->free(&f[2]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i[0]->free(&i[0]);
i[1]->free(&i[1]);
scr_restore("scan16.dat");//屏幕恢复
return result;
}
void show_tuihuo(DIALOG *d)
{
scr_dump("scan17.dat");//屏幕保存
box((*(d->f))->win,0,0);
mvwprintw((*(d->f))->win,0,9,"%s",*(d->str));
mvwprintw((*(d->f))->win,3,1,"%s",*(d->str+1));
(*(d->f))->draw(*(d->f));
(*((d->f)+1))->draw(*((d->f)+1));
(*(d->b))->setColor(*(d->b),3,1,4);
(*((d->b)+1))->setColor(*((d->b)+1),3,1,4);
(*(d->b))->show(*(d->b));
(*((d->b)+1))->show(*((d->b)+1));
}
int action_tuihuo(DIALOG *d,SELL_GOODS_LIST *s,LINK *note)
{
int result=0,sign=1;
int exist=0;
int count=0,i=0;
do
{
switch (sign)
{
case 1:
sign=(*((d->i)))->input_char(*((d->i)),1,0,1);
if(sign==27)
{
sign=messagebox(stdscr,7,19,44,12,YORN,"确认要退出");
if(sign)
{
sign=0;
break;
}
else
{
sign=1;
}
}
del_blank((*(d->i))->str);
if(isdigital((*(d->i))->str)&&strlen((*(d->i))->str)!=0)
{
exist=select_sell_list_by_ID(s,(*(d->i))->str,note);//看看存在不
switch (exist)
{
case 0:
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"没有此次交易");
(*(d->i))->del_str(*(d->i));
break;
case 1:
break;
}
}
else
{
sign=1;
messagebox(stdscr,7,19,44,12,PAUSE,"请输入数字");
(*(d->i))->del_str(*(d->i));
/*提示有非数字字符*/
}
break;
case 2:
(*(d->b))->pitch_on(*(d->b));
sign=(*(d->b))->attack(*(d->b),1,3,3);
if(sign == 0)
{
result=1;
}
break;
case 3:
(*((d->b)+1))->pitch_on(*((d->b)+1));
sign=(*((d->b)+1))->attack(*((d->b)+1),2,1,1);
if(sign == 0)
{
result=0;
}
break;
}
}
while (sign);
return result;
}
void tuihuo()
{
FRAME *f[2];
BUTTON *b[2];
INPUT *i;
SELL_GOODS_LIST sl;
memset(&sl,0,sizeof(SELL_GOODS_LIST));
SELL_GOODS_LIST *s=&sl;
LINK *note=new_link();
int result=0;
char *str[2]={"请输入销售单号","单号:"};
char *str1[5]={"明细ID","条形码","销售ID","数量","单价"};
f[0]=creat_frame(1,24,11,30,3);
f[1]=creat_frame(4,33,1,18,1);
b[0]=createButton(6,27,3,8,"确定");
b[1]=createButton(6,42,3,8,"取消");
i=create_input(f[1],6,0,2,2);
DIALOG *d=create_dialog(f,&i,b,str,NULL);
FRAME *frame[2];
INPUT *input[1];
int color[2]={3,6};
frame[0]=creat_frame(13,15,14,48,3);
frame[1]=creat_frame(16,17,1,44,6);
input[0]=create_input(frame[1],0,1,2,9);
ROLL_BAR *r=create_roll_bar(¬e,frame,input,16,17,5,44,color);
show_tuihuo(d);
result=action_tuihuo(d,s,note);
if(result)
{
box(frame[0]->win,0,0);
wattron(frame[0]->win,COLOR_PAIR(3));
wbkgd(frame[0]->win,COLOR_PAIR(3));
mvwhline(frame[0]->win,2,1,0,46);
mvwaddch(frame[0]->win,2,0,ACS_LTEE);
mvwaddch(frame[0]->win,2,47,ACS_RTEE);
mvwhline(frame[0]->win,8,1,0,46);
mvwaddch(frame[0]->win,8,0,ACS_LTEE);
mvwaddch(frame[0]->win,8,47,ACS_RTEE);
wrefresh(frame[0]->win);
mvwprintw(frame[0]->win,1,4,"%-8s%-10s%-8s%-8s%-8s",str1[0],str1[1]
,str1[2],str1[3],str1[4]);
mvwprintw(frame[0]->win,10,33,"用Tab键切换");
wrefresh(frame[0]->win);
print_aa_page(r);
action_roll_bar(r,note);
erase();
wbkgd(stdscr,COLOR_PAIR(2));
refresh();
}
free(d);
f[0]->free(&f[0]);
f[1]->free(&f[1]);
b[0]->free(&b[0]);
b[1]->free(&b[1]);
i->free(&i);
frame[0]->free(&frame[0]);
frame[0]->free(&frame[1]);
input[0]->free(&input[0]);
note->del_all(¬e);
r->free(&r);
scr_restore("scan17.dat");//屏幕恢复
}
void tuihuo_user(ROLL *r,LINK *link)
{
if(r->link->count != 0 || link->count !=0)
{
messagebox(stdscr,7,19,44,12,PAUSE,"还在销售状态中,禁止退货");
return ;
}
int result=0;
EMP emp;
memset(&emp,0,sizeof(EMP));
EMP *e=&emp;
result=tuihuo_login(e);
if(result)
{
tuihuo();
}
}
/*
int main()
{
initscr();
refresh();
if(has_colors==FALSE)
{
endwin();
exit(0);
}
start_color();
init_pair(1,COLOR_BLACK,COLOR_WHITE);
init_pair(2,COLOR_WHITE,COLOR_BLACK);
init_pair(3,COLOR_BLACK,COLOR_RED);
init_pair(4,COLOR_BLACK,COLOR_YELLOW);
//////////////////////////////////////////////////
add_list();
//////////////////////////////////////////////////
attroff(COLOR_PAIR(1));
attroff(COLOR_PAIR(2));
attroff(COLOR_PAIR(3));
endwin();
return 0;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -