コード例 #1
0
ファイル: QTicketsBox.cpp プロジェクト: rbemmanuel/kwama
long
QTicketsBox::onDelete(FXObject*,FXSelector,void*)
{
  char buf[512];
  long  id;
  if (lstTickets->getNumItems()==0)
    return -1;
  FXFoldingItem *lastItem = lstTickets->getLastItem();

  if (FXMessageBox::question(this,MBOX_YES_NO,_("Confirm"),
			     _("Do you really want to delete all these tickets?")) == MBOX_CLICKED_YES) {
    for (FXFoldingItem *tktItem = lstTickets->getFirstItem(); ; tktItem = tktItem->getNext()){
      id = (long) tktItem->getData();
      if (id >0 ){
	CCL_member_flags_toggle(id,MEMBER_DELETED,TRUE);
	sprintf(buf, "delete from tickets where id = %ld", id);
#ifdef DEBUG
	printf("QTicketsBox::onDelete(): %s\n", buf);
#endif
	CCL_member_ticket_del(-1, buf);
#ifdef DEBUG
	printf("QTicketsBox::onDelete(): %s\n", buf);
#endif
      }
      if (lastItem ==  tktItem)
	break;
    }
    lstTickets->clearItems();
  }

  return 0;
}
コード例 #2
0
ファイル: MembersFrame.cpp プロジェクト: rbemmanuel/kwama
long
MembersFrame::onApplyChanges(FXObject*,FXSelector,void*)
{
  FXFoldingItem *mitem = memberslist->findItemByData((void*)editedmember);
  FXString newname = nametf->getText();
  FXString newlogin = logintf->getText();

  if (mitem) {
    newname.trim();
    newlogin.trim();
    CCL_member_tarif_set(editedmember,tarifset);
    if (!newname.empty() && -1 == CCL_member_find(newname.text()))
      CCL_member_name_set(editedmember,nametf->getText().text());
    CCL_member_email_set(editedmember,emailtf->getText().text());
    CCL_member_other_set(editedmember,phonetf->getText().text());
    if (newlogin.empty() && CCL_data_key_exists(CCL_DATA_MEMBER,editedmember,
						"login_name"))
      CCL_data_key_delete(CCL_DATA_MEMBER,editedmember,"login_name");
    else if (-1 == CCL_data_find_by_key_sval(CCL_DATA_MEMBER,"login_name",
					     newlogin.text()))
      CCL_data_set_string(CCL_DATA_MEMBER,editedmember,"login_name",
			  newlogin.text());
    mitem->setText(FXStringVal((FXint)editedmember) + "\t" + CCL_member_name_get(editedmember));
    memberslist->updateItem(mitem);
  }
#ifdef DEBUG
  printf("onApplyChanges(): Apply Changes Button was pressed\n");
#endif
  
  return 1;
}
コード例 #3
0
ファイル: QTicketsBox.cpp プロジェクト: rbemmanuel/kwama
long 
QTicketsBox::printTickets()
{
  char              buf[32], num[32], stdate[15], expdate[15];
  float             faceval, curval;
  CCL_ticket_entry  te;
  char              misc[64];
  struct tm         tm, *rtm;
  time_t            t = time(NULL);
  char             *notes = "";
  int               retval = 1;

  if (lstTickets->getNumItems()>0){
    FXFoldingItem  *lastItem = lstTickets->getLastItem();
    FXString        tickettext = "<html><head><title>Mkahawa Tickets</title></head>\n";
    int             counter = 0;

    tickettext += "<body>\n";
    tickettext += "<table border=1 cellpadding=2 cellspacing=1 frame=void>\n";
    for (FXFoldingItem *tktItem = lstTickets->getFirstItem(); ; tktItem = tktItem->getNext()){
      if (!(counter % COLS)){ //break up every 4 cells
	tickettext += "<tr>";
      }
      tickettext += "\n <td>";
      sscanf(tktItem->getText().text(), "%s\t%s\t%f\t%f\t%s\t%s", 
	     buf,te.name,&faceval,&curval,stdate,expdate); 
#ifdef DEBUG
      printf("QTicketsBox::printTickets(): %s=%s=%s\n", tktItem->getText().text(),
	     stdate, expdate);
#endif      
      te.stdate = date2time_t(stdate);
      te.enddate = date2time_t(expdate);
      te.faceval = faceval * 100;
      formatTicket(tickettext, notes, te);
      tickettext += "</td>";
      if (lastItem ==  tktItem){
	tickettext += "</tr>\n";
	break;
      }
      if ((counter % COLS) == COLS-1){
	tickettext += "</tr>\n";
      }
      counter++;
    }
    tickettext += "</table>";
    //printString(tickettext);
    FXString fname = outputToHTML(tickettext);
    FXString msg(_("Tickets have been saved in "));
    msg += fname;
    msg += "\n Open the file with any browser and print.";
    FXMessageBox::information(this,MBOX_OK,_("Ticket Printing"), msg.text());
  }

  return retval;
}
コード例 #4
0
FXFoldingItem *FOX16_GuiSortingList::getItem(int index) {
  FXFoldingItem *ti;
  int i=index;

  ti=getFirstItem();
  while(ti && i) {
    ti=ti->getNext();
    i--;
  }

  return ti;
}
コード例 #5
0
ファイル: NotpaidFrame.cpp プロジェクト: rbemmanuel/kwama
long
NotpaidFrame::onSelected(FXObject*,FXSelector,void* ptr)
{
  FXFoldingItem* item = (FXFoldingItem*) ptr;
  long session = (long) item->getData();

  cashingframe->setSession(session);
  mainwin->showCashing();
  /* sideshow */
#ifdef DEBUG
  if (isUnpaid(0, session))
    printf ("Unpaid: Session %d\n", session);
  if (isUnpaid(0, session+1))
    printf ("Unpaid: Session %d\n", session+1);
#endif
  return 1;
}
コード例 #6
0
ファイル: MembersFrame.cpp プロジェクト: rbemmanuel/kwama
long
MembersFrame::onSetTarif(FXObject*,FXSelector,void*)
{
  int tarif = tarifset;
  FXDialogBox dlg(this,_("Tariff"));
  FXVerticalFrame *vframe =
    new FXVerticalFrame(&dlg,LAYOUT_FILL_X|LAYOUT_FILL_Y);
  FXVerticalFrame *tlistframe =
    new FXVerticalFrame(vframe,FRAME_SUNKEN|LAYOUT_FILL_X|LAYOUT_FILL_Y,
			0,0,0,0,0,0,0,0);
  FXFoldingList *tlist =
    new FXFoldingList(tlistframe,NULL,0,
		      LAYOUT_FILL_X|LAYOUT_FILL_Y|FOLDINGLIST_SINGLESELECT);
  new FXButton(vframe,_("Select Tariff"),dbIcon3,&dlg,FXDialogBox::ID_ACCEPT,
	       FRAME_RAISED|FRAME_THICK|LAYOUT_RIGHT);

  tlist->appendHeader(_("ID"),NULL,40);
  tlist->appendHeader(_("Name"),NULL,180);
  dlg.resize(250,200);

  tlist->appendItem(NULL,_("0\tNo special tariff"),NULL,NULL,(void*)0);
  
  for (int i = 0, t; -1 != (t = CCL_tarif_get_nth(i)); i++) {
    const char *name = NULL;
    char buf[256];

    //name = CCL_data_get_string(CCL_DATA_TARIF,t,"name",NULL);
    name = CCL_tarif_name_get(t);
    snprintf(buf,256,"%d\t%s",t,name);
    CCL_free(name);
    tlist->appendItem(NULL,buf,NULL,NULL,(void*)(long)t);
  }

  FXFoldingItem *ctitem = tlist->findItemByData((void*)(long)tarif);
  if (ctitem) tlist->selectItem(ctitem);

  if (dlg.execute()) {
    FXFoldingItem *sitem = tlist->getCurrentItem();

    if (sitem)
      tarifset = (long)(sitem->getData());
  }

  return 1;
}