Platon Technologies
neprihlásený Prihlásiť Registrácia
SlovakEnglish
open source software development oslavujeme 10 rokov vývoja otvoreného softvéru! Utorok, 20. máj 2025

Súbor: [Platon] / tucniak / lib / lt_s_item.c (stiahnutie)

Revízia 1.1.1.1, Fri Nov 11 16:08:30 2005 UTC (19 years, 6 months ago) by koli


Zmeny od 1.1: +0 -0 [lines]

Initial import

// Copyright (c) 2003,2004,2005 Juraj Kolesár <koli@koli.sk>               
#include "lt.h"
/* data init {{{ **************************************************************/
int lt_s_item_data_init(T_ITEM *item) {
    register int i;
    for (i=0;i<__LT_S_ITEM_PARAM_COUNT;i++) item->status[i] = false;
    SET_CELL(item->pk,         "", "pk_s_items",     0);
    SET_CELL(item->number,    "", "number",         10);
    SET_CELL(item->name,    "", "name",         20);
    SET_CELL(item->code,    "", "code",         __LT_S_ITEM_WIDTH_CODE);
    SET_CELL(item->messure,    "", "messure",        __LT_S_ITEM_WIDTH_MESSURE);
    SET_CELL(item->price,    "", "price",        10);
    return(__LT_OK);
}
/* }}} */
/* data clear {{{ *************************************************************/
int lt_s_item_data_clear(T_ITEM *item) {
    register int i;
    item->pk.value[0] = '\0';
    item->number.value[0] = '\0';
    item->name.value[0] = '\0';
    item->code.value[0] = '\0';
    item->messure.value[0] = '\0';    
    item->price.value[0] = '\0';
    for (i=0;i<__LT_S_ITEM_PARAM_COUNT;i++) item->status[i] = false;
    return(__LT_OK);
}
/* }}} */
/* data get {{{ ***************************************************************/
int lt_s_item_data_get(T_DB *tdb, T_ITEM *item) {
    if (!(item->status[__LT_S_ITEM_NAME])) {
        tdb_query_cell(tdb, item->name.value, g_strdup_printf(
            "SELECT name FROM s_items WHERE pk_s_items='%s'", item->pk.value));
        item->status[__LT_S_ITEM_NAME] = true;
    }
    if (!(item->status[__LT_S_ITEM_NUMBER])) {
        tdb_query_cell(tdb, item->number.value, g_strdup_printf(
            "SELECT number FROM s_items WHERE pk_s_items='%s'", item->pk.value));
        item->status[__LT_S_ITEM_NUMBER] = true;
    }
    if (!(item->status[__LT_S_ITEM_CODE])) {
        tdb_query_cell(tdb, item->code.value, g_strdup_printf(
            "SELECT pk_s_codes "
            "FROM s_codes "
            "INNER JOIN s_items "
            "ON pk_s_codes=fk_s_codes "
            "WHERE pk_s_items='%s'", item->pk.value));
        tdb_query_cell(tdb, item->code.name, g_strdup_printf(
            "SELECT code "
            "FROM s_codes "
            "INNER JOIN s_items "
            "ON pk_s_codes=fk_s_codes "
            "WHERE pk_s_items='%s'", item->pk.value));
        item->status[__LT_S_ITEM_CODE] = true;
    }
    if (!(item->status[__LT_S_ITEM_MESSURE])) {
        tdb_query_cell(tdb, item->messure.value, g_strdup_printf(
            "SELECT pk_s_messures "
            "FROM s_messures "
            "INNER JOIN s_items "
            "ON pk_s_messures=fk_s_messures "
            "WHERE pk_s_items='%s'", item->pk.value));
        tdb_query_cell(tdb, item->messure.name, g_strdup_printf(
            "SELECT messure "
            "FROM s_messures "
            "INNER JOIN s_items " 
            "ON pk_s_messures=fk_s_messures "
            "WHERE pk_s_items='%s'", item->pk.value));
        item->status[__LT_S_ITEM_CODE] = true;
    }
    if (!(item->status[__LT_S_ITEM_PRICE])) {
        tdb_query_cell(tdb, item->price.value, g_strdup_printf(
            "SELECT price "
            "FROM s_add "
            "WHERE fk_s_items='%s' "
            "ORDER BY pk_s_add DESC", item->pk.value));
        item->status[__LT_S_ITEM_PRICE] = true;
    }
    return(__LT_OK);
}
/* }}} */
/* data set {{{ ***************************************************************/
int lt_s_item_data_set(T_DB *tdb, T_ITEM *item) {
    if (!(item->status[__LT_S_ITEM_PK])) {
        tdb_query(tdb, g_strdup_printf(
            "INSERT INTO s_items (number, name, fk_s_codes, fk_s_messures) " 
            "VALUES ('%s', '%s', '%s', '%s')",
            item->number.value, 
            item->name.value, 
            item->code.value, 
            item->messure.value));
        tdb_query_lastid(tdb, item->pk.value);
        item->status[__LT_S_ITEM_PK] = true;
        item->status[__LT_S_ITEM_NUMBER] = true;
        item->status[__LT_S_ITEM_NAME] = true;
        item->status[__LT_S_ITEM_CODE] = true;
        item->status[__LT_S_ITEM_MESSURE] = true;
    }
    return(__LT_OK);
}
/* }}} */
/* data remove {{{ ************************************************************/
int lt_s_item_data_remove(T_DB *tdb, T_ITEM *item) {
    tdb_query(tdb, g_strdup_printf(
        "DELETE FROM s_items WHERE pk_s_items='%s'", item->pk.value)
    );
    return(__LT_OK);
}
/* }}} */
/* next number {{{ ************************************************************/
int lt_s_item_next_number(T_DB *tdb, T_ITEM *item) {
    tdb_query_cell(tdb, item->number.value, "SELECT MAX(number) FROM s_items");
    str_inc(item->number.value);
    item->status[__LT_S_ITEM_NUMBER] = true;
    item->status[__LT_S_ITEM_NAME] = true;
    item->status[__LT_S_ITEM_CODE] = true;
    item->status[__LT_S_ITEM_MESSURE] = true;
    return(__LT_OK);
}
/* }}} */
/* qs init {{{ ****************************************************************/
int lt_s_item_qs_init(T_ITEM *item, T_COLS **cols, T_QS *qs) {
    *cols = g_slist_append(*cols, &(item->pk));    
    *cols = g_slist_append(*cols, &(item->number));    
    *cols = g_slist_append(*cols, &(item->code));    
    *cols = g_slist_append(*cols, &(item->name));    
    if (strlen(qs->columns) == 0) tdb_qs_set_columns(qs, *cols);
    if (strlen(qs->from) == 0)     
        strcpy(qs->from, "s_items INNER JOIN s_codes ON fk_s_codes=pk_s_codes");
    return(__LT_OK);
}
/* }}} */
/* qs overview {{{ ************************************************************/
int lt_s_item_qs_overview(T_QS *qs) {
    strcpy(qs->columns, "pk_s_items, number, code, name, sum(count)");
    strcpy(qs->from, "s_add "
                        "INNER JOIN s_items ON pk_s_items=fk_s_items "
                        "INNER JOIN s_codes ON fk_s_codes=pk_s_codes");
    strcpy(qs->group, "pk_s_items");
    return(__LT_OK);
}
/* }}} */
/* get codes {{{ **************************************************************/
int lt_s_item_get_codes(T_DB *tdb, T_MATRIX *matrix) {
    tdb_table_fill(tdb, matrix, "SELECT pk_s_codes, code FROM s_codes ORDER BY code");
    return(__LT_OK);
}
/* }}} */
/* get messures {{{ ***********************************************************/
int lt_s_item_get_messures(T_DB *tdb, T_MATRIX *matrix) {
    tdb_table_fill(tdb, matrix, "SELECT pk_s_messures, messure FROM s_messures");
    return(__LT_OK);
}
/* }}} */
/* new code {{{ **************************************************************/
int lt_s_item_new_code(T_DB *tdb, T_ITEM *item) {
    tdb_query(tdb, g_strdup_printf(
        "INSERT INTO s_codes (code)    VALUES ('%s')", item->code.name));
    tdb_query_lastid(tdb, item->code.value);
    return(__LT_OK);
}
/* }}} */
/* new messure {{{ **************************************************************/
int lt_s_item_new_messure(T_DB *tdb, T_ITEM *item) {
    tdb_query(tdb, g_strdup_printf(
        "INSERT INTO s_messures (messure) VALUES ('%s')", item->messure.name));
    tdb_query_lastid(tdb, item->messure.value);
    return(__LT_OK);
}
/* }}} */

Platon Group <platon@platon.sk> http://platon.sk/
Copyright © 2002-2006 Platon Group
Stránka používa redakčný systém Metafox
Na začiatok