Beispiel #1
0
void	sort_individu(t_individu **individu)
{
  t_individu *current;
  t_individu *next;

  current = *individu;
  while (current != NULL && current->next != NULL)
    {
      next = current->next;
      if (date_cmp(current->date, next->date) == 1)
	{
	  swap(individu, &current, &next);
	  current = *individu;
	}
      else
	current = current->next;
    }
}
void
emf_detail_verify_cb(Widget w,
                   XtPointer client_data,
                   XmPushButtonCallbackStruct *call_data)
{
EXTERNAL_ID_DATA_TYPE modify_order;
int status;
RETCODE ret_code;
int valid_date_found;
char *valid_date = NULL;
ARBOR_EXTERNAL_ID_MAP old_id_map;
ARBOR_EXTERNAL_ID_MAP new_id_map;

  valid_date_found = validate_date (emf_iddetail_start_txt,&valid_date);
  if (!valid_date_found)
  {
    return;
  }

  free (valid_date);

  valid_date_found = validate_date (emf_iddetail_end_txt,&valid_date);
  if (!valid_date_found)
  {
    return;
  }

  free (valid_date);

  memset (&modify_order,0,sizeof(EXTERNAL_ID_DATA_TYPE));
  get_emf_external_id_data_from_screen (&modify_order);

  if (strcmp(modify_order.external_id,"") == 0)
  {
     post_dialog (emf_iddetail_shell,XmDIALOG_ERROR, "External Id is a required field");
     XmProcessTraversal(emf_iddetail_id_txt, XmTRAVERSE_CURRENT);
     return;
  }
  if (strcmp(modify_order.active_dt,"") == 0)
  {
     post_dialog (emf_iddetail_shell,XmDIALOG_ERROR, "Start Date is a required field");
     XmProcessTraversal(emf_iddetail_start_txt, XmTRAVERSE_CURRENT);
     return;
  }
  if (strcmp(modify_order.inactive_dt,"") != 0)
  {
      if (date_cmp (modify_order.active_dt, modify_order.inactive_dt, &status) > 0)
      {
         post_dialog (emf_iddetail_shell,XmDIALOG_ERROR,"End Date must be after Start Date.");
         XmProcessTraversal(emf_iddetail_end_txt, XmTRAVERSE_CURRENT);
         return;
      }
  }
  
  if (modify_order.external_id_type == 0)
  {
     post_dialog (emf_iddetail_shell,XmDIALOG_ERROR, "Source is a required field");
     XmProcessTraversal(emf_iddetail_source_txt, XmTRAVERSE_CURRENT);
     return;
  }
/* save external id to db */

  if (emfx_modify_flag)
  {

    /* UPDATE the existing CIEM entry */
    old_id_map.account_no       = emf_active_account_no;
    old_id_map.external_id_type =
      active_external_ids[emf_external_id].external_id_type;
    strcpy(old_id_map.active_date,
           active_external_ids[emf_external_id].full_active_dt);
  
    new_id_map.account_no       = emf_active_account_no;
    new_id_map.subscr_no        = emf_active_subscr_no;
    new_id_map.subscr_no_resets = emf_active_subscr_no_resets;
    strcpy(new_id_map.external_id,
           active_external_ids[emf_external_id].external_id);
    new_id_map.external_id_type =
      modify_order.external_id_type;
    strcpy(new_id_map.active_date,
           modify_order.active_dt);
    strcpy(new_id_map.inactive_date, modify_order.inactive_dt);
    new_id_map.server_id = gserver_id;

    ret_code = update_equip_external_id(dbcatalog,
                                        dbproc1,
                                        &old_id_map,
                                        &new_id_map);

  }
  else
  {
    /* INSERT a new CIEM entry */

    new_id_map.account_no          = emf_active_account_no;
    new_id_map.subscr_no           = emf_active_subscr_no;
    new_id_map.subscr_no_resets    = emf_active_subscr_no_resets;
    strcpy(new_id_map.external_id,   modify_order.external_id);
    new_id_map.external_id_type    = modify_order.external_id_type;
    strcpy(new_id_map.active_date,   modify_order.active_dt);
    strcpy(new_id_map.inactive_date, modify_order.inactive_dt);
    new_id_map.server_id           = gserver_id;

    ret_code = insert_equip_external_id(dbcatalog,
                                       dbproc1,
                                       &new_id_map);

  }

  if (ret_code == SUCCESS)
  {
    populate_emf_external_id_scrolled_list();

    XtUnmanageChild (emf_iddetail_form);
    XtPopdown (emf_iddetail_shell);
  }
}