Exemplo n.º 1
0
void save_paper(struct paper *newpaper, 
		unsigned int batch_number)
{
        PGconn *conn = connect_db_host(DATABASE_NAME, SERVER_ADDRESS);
	struct predefined_batch *batch;
	char *electorate_name, *paper_table_name;
	unsigned int electorate_code;

	/* get electorate code */
	batch = resolve_batch_source(conn, batch_number);
	electorate_code = batch->electorate_code;

	/* get electorate name in order to access that Electorates
	   paper table*/
	electorate_name = resolve_electorate_name(conn,electorate_code);
	paper_table_name = sprintf_malloc("%s_paper",electorate_name);

	SQL_command(conn, 
		    "INSERT into %s(batch_number,index,supervisor_tick) "
		    "values(%u, %u, 'f');",
		    paper_table_name,
		    batch_number, 
		    newpaper->p.index);

	free(electorate_name);
	free(paper_table_name);
	free(batch);

	PQfinish(conn);
}
Exemplo n.º 2
0
Arquivo: batch.c Projeto: patcon/eVACS
void save_paper(struct paper *newpaper, unsigned int batch_number)
{
    PGconn *conn = connect_db_host(DATABASE_NAME, SERVER_ADDRESS);

    SQL_command(conn,
                "INSERT into paper(batch_number,index,supervisor_tick) "
                "values(%u, %u, 'f');",
                get_current_batch_number(), newpaper->p.index);

    PQfinish(conn);
}
Exemplo n.º 3
0
Arquivo: batch.c Projeto: patcon/eVACS
void save_entry(struct entry *newentry, unsigned int batch_number,
                unsigned int paper_index)
{
    PGconn *conn = connect_db_host(DATABASE_NAME, SERVER_ADDRESS);

    unsigned int pvn = newentry->e.paper_version_num;

    append_entry(conn, newentry, batch_number, paper_index, pvn);

    PQfinish(conn);
}
Exemplo n.º 4
0
Arquivo: batch.c Projeto: patcon/eVACS
/* DDSv2C: Get Paper  */
struct paper *get_paper(unsigned int batch_number, unsigned int paper_index)

{
    PGconn *conn = connect_db_host(DATABASE_NAME, SERVER_ADDRESS);
    struct paper *ret;
    unsigned int paper_id, electorate_code;
    char *electorate_table_name;
    struct predefined_batch *batch;

    /* get electorate code */
    batch = resolve_batch_source(conn, batch_number);
    electorate_code = batch->electorate_code;

    /* get electorate name in order to access that Electorates
       preference table */
    electorate_table_name = resolve_electorate_name(conn,electorate_code);


    /* find the (internal database) paper_id */
    paper_id = SQL_singleton_int(conn,
                                 "SELECT id "
                                 "FROM paper "
                                 "WHERE batch_number = %u "
                                 "AND index = %u;",
                                 batch_number, paper_index);

    ret = malloc(sizeof(*ret));

    if (paper_id ==(unsigned int) -1) {
        /* new paper  */
        ret->p.index = paper_index;
        ret->p.supervisor_tick = false;
        ret->entries = NULL;
    } else {
        ret = malloc(sizeof(*ret));
        ret->entries = get_entries_for_paper(conn, paper_id,
                                             electorate_table_name);
    }

    free(electorate_table_name);
    PQfinish(conn);

    return ret;
}