📄 proscenium.c
字号:
}
}
else if (ch == KEY_F(4)&& backlist->count > 0)
{
result = sale_optionf4(linklist,backlist,temp);
if(result == 4)
{
free_all_node(linklist);
free_all_node(backlist);
flag = 0;
werase(info);
wrefresh(info);
}
else
{
print_info(info,linklist,flag,offset,1);
wrefresh(info);
}
}
else if (ch == KEY_F(9))
{
scr_dump("temp1.scr");
int result = 0;
WINDOW *check = NULL;
check = create_default_color_window(8,35,8,20,1);
mvwprintw(check,0,13,"是否退出");
wrefresh(check);
delwin(check);
if(result = yes_or_no(10,28,1,10))
{
delwin(info);
return 1;
}
else
{
scr_restore("temp1.scr");
print_info(info,linklist,flag,offset,1);
continue;
}
}
else
print_info(info,linklist,flag,offset,1);
}
}
int sale_optionf9(LINKLIST *linklist,LINKLIST *sale_temp,sale_record *temp)
{
scr_dump("temp1.scr");
if(linklist->count > 0)
{
scr_restore("temp1.scr");
return 0;
}
if(sale_temp->count > 0)
{
message("还有单未处理!您可以撤销所有的单,或者进行取单处理",8,26);
scr_restore("temp1.scr");
return 0;
}
int result = 0;
WINDOW *check = NULL;
check = create_default_color_window(8,35,8,20,1);
mvwprintw(check,0,13,"是否退出");
wrefresh(check);
delwin(check);
if(result = yes_or_no(10,28,1,10))
{
scr_restore("temp1.scr");
return 9;
}
scr_restore("temp1.scr");
return 0;
}
int get_vir_money(LINKLIST *linklist)//应收
{
NODE *p;
p = linklist->head;
float sum = 0;
int i = 1;
for(i;i <= linklist->count;i++)
{
sum = ((for_sale *)(p->node_data))->sum + sum;
p = p->next;
}
return sum;
}
void init_sale_record(sale_record *temp,char *user)
{
memset(temp,0,sizeof(sale_record));
int num = 0;
char time[17] = {0};
char id[5] = {0};
sale_time(time);
num = get_trans_id();
sprintf(id,"%d",num);
sprintf(temp->sale_id,"%s%d",time,num);
strcpy(temp->date,time);
strcpy(temp->trans_id,id);
strcpy(temp->staff_id,user);
temp->sale_state = 0;
}
void update_sale_count(LINKLIST *linklist,int style)
{
int count = 0;
NODE *p;
p = linklist->head;
int i = 1;
for(i;i <= linklist->count;i++)
{
if(style == 0)
count = (((for_sale *)(p->node_data))->storage) + (((for_sale *)(p->node_data))->count);
else
count = (((for_sale *)(p->node_data))->storage) - (((for_sale *)(p->node_data))->count);
update_product(((for_sale *)(p->node_data))->bar_code,count);
p = p->next;
}
}
void insert_all_detail(LINKLIST *linklist,sale_record *temp)
{
int i = 1,result = 0;
int num = 0;
char detail_id[19] = {0};
NODE *p;
p = linklist->head;
if(temp->sale_state == 1)//记录退货时间
{
sale_time(temp->date);
}
num = get_detail_id();
rtrim(temp->date);
sprintf(detail_id,"%s%d",temp->date,num);
while(i <= (linklist->count))
{
result = insert_sale_detail(((for_sale *)(p->node_data))->bar_code,((for_sale *)(p->node_data))->count,((for_sale *)(p->node_data))->sale_price,detail_id,temp);
num = get_detail_id();
sprintf(detail_id,"%s%d",temp->date,num);
p = p->next;
i++;
}
}
int list_for_f6_f7(LINKLIST *sale_temp,char *str,int style)
{
NODE *p;
int ch = 0,result = 0;
int flag = 1;
int *cur = &flag;
WINDOW *check = NULL,*list = NULL;
check = create_default_color_window(13,35,6,20,2);
if (style == 1)
mvwprintw(check,0,15,"撤单");
if (style == 0)
mvwprintw(check,0,15,"取单");
wrefresh(check);
delwin(check);
yes_or_no(15,30,0,10);
list = newwin(7,19,7,28);
wbkgd(list,COLOR_PAIR(2));
p = sale_temp->head;
while(p != NULL)
{
mvwaddstr(list,flag-1,0,(char *)p->node_data);
flag++;
p = p->next;
}
flag = 1;
wattron(list,A_REVERSE);
mvwaddstr(list,flag-1,0,(char *)sale_temp->head->node_data);
wrefresh(list);
keypad(list,true);
while(1)
{
ch = wgetch(list);
if(ch == KEY_DOWN||ch == KEY_UP)
{
wattroff(list,A_REVERSE);
p = get_node_by_index(sale_temp,flag);
mvwaddstr(list,flag-1,0,(char *)p->node_data);
KEY_UP_DOWN(sale_temp->count,ch,cur);
wattron(list,A_REVERSE);
p = get_node_by_index(sale_temp,flag);
mvwaddstr(list,flag-1,0,(char *)p->node_data);
}
else if(ch == 10)
{
if(result = yes_or_no(15,30,1,10))
{
p = get_node_by_index(sale_temp,flag);
strcpy(str,(char *)p->node_data);
free_at(sale_temp,flag);
delwin(list);
return 1;
}
else
break;
}
else
continue;
}
delwin(list);
return 0;
}
int back_login(char *user_out)
{
scr_dump("temp1.scr");
WINDOW *login = NULL, *username = NULL ,*passwd = NULL;//登陆窗口,用户窗口,密码窗口
staff_info *check;
check =(staff_info *)malloc(sizeof(staff_info));
memset(check,0,sizeof(staff_info));
login = create_default_color_window(10,40,6,20,1);
mvwprintw(login,0,17,"退货");
mvwprintw(login,2,9,"帐号:");
mvwprintw(login,4,9,"密码:");
wrefresh(login);
delwin(login);
username = create_no_border_color_window(1,12,8,35,4);
wrefresh(username);
passwd = create_no_border_color_window(1,12,10,35,4);
wrefresh(passwd);
yes_or_no(12,31,0,10);
char user[20] = {0};
char password[20] = {0};
int ch = 0;
int flag = 1,result = 0;
int *p = &flag;
keypad(username,true);
keypad(passwd,true);
while(1)
{
switch(flag)
{
case 1:
user_input(username,user,p);
break;
case 2:
passwd_input(passwd,password,p);
break;
case 3:
result = yes_or_no(12,31,1,10);
if (result == -1)
{
*p = 2;
}
else if (result == 0)
{
delwin(username);
delwin(passwd);
return 0;
}
else if (result == 1)
{
if(strlen(user) == 0)
message("用户名不能为空!",17,25);
else if(strlen(password) == 0)
message("密码不能为空!",17,25);
else if(strlen(user)!=6||str_isdigit(user))
message("用户名为6位数字!",17,25);
else if(strlen(password)<6||strlen(password)>12)
message("密码为6位至12位!",17,25);
else
{
result = user_confirm(user,check);
if(result == -1)//用户名不存在
{
*p = 1;
message("用户名不存在!",17,25);
}
else
{
if(strcmp(password,check->passwd) == 0) // 正确
{
if(result == 0)
{
strcpy(user_out,user);
delwin(username);
delwin(passwd);
scr_restore("temp1.scr");
return 1;
}
else
message("这个帐户没有退货权限!",8,25);
}
else
{
//密码错误
message("密码错误!",17,25);
}
}
}
*p = 1;
memset(user,0,20*sizeof(char));
memset(password,0,20*sizeof(char));
mvwaddnstr(username,0,0," ",10);
wrefresh(username);
mvwaddnstr(passwd,0,0," ",10);
wrefresh(passwd);
}
break;
}
}
return 0;
}
int back_get_id(LINKLIST *linklist,char *str)
{
scr_dump("temp1.scr");
int ch = 0,flag = 1,result = 0,i = 0;
int *p = &flag;
WINDOW *check = NULL;
check = create_default_color_window(8,35,8,20,1);
mvwprintw(check,2,2,"销售单号:");
wrefresh(check);
delwin(check);
yes_or_no(12,30,0,10);
WINDOW *for_id = NULL;
WINDOW *confirm = NULL,*cancel = NULL;
for_id = newwin(1,21,10,31);
wbkgd(for_id,COLOR_PAIR(5));
wrefresh(for_id);
keypad(for_id,true);
while(1)
{
switch(flag)
{
case 1:
i = strlen(str);
wmove(for_id,0,i);
ch = wgetch(for_id);
if(ch == 10||ch == KEY_DOWN)
{
*p = 2;
break;
}
else
{
get_info(for_id,str,ch,2,20);
}
break;
case 2:
result = yes_or_no(12,30,1,10);
if(result == 1)
{
if(is_sale_id(str))
{
scr_restore("temp1.scr");
return 1;
}
else
{
message("单号输入错误或不存在!",8,30);
memset(str,0,21*sizeof(char));
mvwaddnstr(for_id,0,0," ",21);
wrefresh(for_id);
*p = 1;
break;
}
}
else if (result == -1)
{
*p = 1;
break;
}
else
{
scr_restore("temp1.scr");
return 0;
}
break;
}
}
return 0;
}
int display_control(int *cur,int *offset,int change,int limit)
{
int temp = 0;
*offset = *offset + change;
temp = *offset;
if (temp > limit)
{
*offset = 1;
*cur = (*cur)-limit+1;
return 1;
}
else if (temp < 1)
{
*offset = 1;
return 1;
}
else
{
return 0;
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -