Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Вниз

Есть еще варианты?   Найти похожие ветки 

 
Mike Kouzmine ©   (2004-05-19 17:25) [0]

Задача. Под одной крышей несколько организаций у каждой свой склад, но есть табличка в которой указано какие склады (других организаций) она дополнительно видит. При выписке счета они могут цеплять не только свой товар, но и чужой (если разрешено).
Получается типа
Заголовок
СЛД  НОМЕР  ОРГАНИЗАЦЯ
1        1   Рога и Копыта
Содержание
СКЛ   НОМЕР    АРТ      НАЗВАНИЕ                        
1        1     345     Тра-та-та
3        1     222     Пам-па-ра        

У организации с номером склада 3 должен сформироваться запрос на товар
Заг.
1        1    Рога и Копыта
Содержание
3        1     222     Пам-па-ра

Сейчас делаю через ХП с ограничением по датам перебором. Или можно (нужно) как-то иначе?


 
Johnmen ©   (2004-05-19 17:33) [1]

Честно говоря, не очень понял.
Можно формализовать задачу ? Структура таблиц, пример данных в них и какой НД надо получить (поля и значения).


 
Курдль ©   (2004-05-19 17:37) [2]

Ну здесь взрослые люди собрались! Можете говорить открыто:

"Есть таблицы:
ОРГАНИЗАЦИИ
ОРГ_ИД
ОРГ_ИМЯ

СКЛАДЫ
СКЛ_ИД
ОРГ_ИД
СКЛ_ИМЯ

ТОВАРЫ
ТОВ_ИД
СКЛ_ИД
"

Так?
Что нужно выбрать?


 
Mike Kouzmine ©   (2004-05-19 17:39) [3]

ЗАГОЛОВКИ
TABLE HEADERS (
   SCLAD       INTEGER NOT NULL,
   VID         INTEGER NOT NULL,
   STATUS      INTEGER NOT NULL,
   MOVE        INTEGER NOT NULL,
   DAT_CREATE  DATE NOT NULL,
   DAT_OTGR    DATE NOT NULL,
   NUM         INTEGER NOT NULL,
   PARTNER     INTEGER DEFAULT 0 NOT NULL,
   ORG         INTEGER NOT NULL,
   SUMMA       NUMERIC(15,2) DEFAULT 0 NOT NULL,
   SUMMA_OPL   NUMERIC(15,2) NOT NULL,
   NDS         NUMERIC(15,7) DEFAULT 0 NOT NULL,
   ZAKAZ       INTEGER DEFAULT 0 NOT NULL,
   ZAK_STATUS  INTEGER DEFAULT 0 NOT NULL,
   TUSER       INTEGER NOT NULL,
   OWNER       INTEGER DEFAULT 0 NOT NULL,
   DAT_CREAT   DATE DEFAULT "NOW" NOT NULL,
   LAST_EDIT   DATE DEFAULT "NOW" NOT NULL,
   DAT_IMPORT  DATE,
   DAT_EXPORT  DATE
);
СОДЕРЖАНИЕ
TABLE MOVE (
   SCLAD       INTEGER NOT NULL,
   VID         INTEGER NOT NULL,
   STATUS      INTEGER NOT NULL,
   MOVE        INTEGER NOT NULL,
   DAT_CREATE  DATE NOT NULL,
   DAT_OTGR    DATE NOT NULL,
   NUM         INTEGER NOT NULL,
   PARTNER     INTEGER NOT NULL,
   ORG         INTEGER NOT NULL,
   MNUM        INTEGER NOT NULL,
   GROUPS      INTEGER NOT NULL,
   ARTICUL     VARCHAR(30) NOT NULL COLLATE PXW_CYRL,
   NAME        VARCHAR(80) NOT NULL COLLATE PXW_CYRL,
   ZAKAZ       INTEGER DEFAULT 0 NOT NULL,
   ZAK_STATUS  INTEGER DEFAULT 0 NOT NULL,
   CNT         NUMERIC(15,2) DEFAULT 0 NOT NULL,
   PRICE       NUMERIC(15,2) DEFAULT 0 NOT NULL,
   ITOG        COMPUTED BY (PRICE * CNT),
   FROM_SCLAD  NUMERIC(15,2) DEFAULT 0 NOT NULL,
   FROM_ZAL    NUMERIC(15,2) DEFAULT 0 NOT NULL,
   GTD         VARCHAR(50) COLLATE PXW_CYRL,
   COUNTRY     INTEGER NOT NULL,
   OWNER       INTEGER NOT NULL,
   DAT_CREAT   DATE DEFAULT "NOW" NOT NULL,
   DAT_EXPORT  DATE,
   LAST_EDIT   DATE DEFAULT "NOW" NOT NULL,
   DAT_IMPORT  DATE
);
ДОПОЛНИТЕЛЬНЫЕ СКЛАДЫ
TABLE SCLAD_VISIBLE (
   SCLAD          INTEGER NOT NULL,
   SCLAD_VISIBLE  INTEGER NOT NULL,
   DAT_CREAT      DATE DEFAULT "NOW" NOT NULL,
   LAST_EDIT      DATE DEFAULT "NOW" NOT NULL,
   DAT_IMPORT     DATE,
   DAT_EXPORT     DATE
);


 
Курдль ©   (2004-05-19 17:41) [4]

Тогда я - пас! :(


 
Соловьев ©   (2004-05-19 17:43) [5]


> организаций) она дополнительно видит. При выписке счета
> они могут цеплять не только свой товар, но и чужой (если
> разрешено).

если есть условия то только ХП.


 
Соловьев ©   (2004-05-19 17:44) [6]


> Сейчас делаю через ХП с ограничением по датам перебором.
> Или можно (нужно) как-то иначе?

что уже сделал? покажи


 
Mike Kouzmine ©   (2004-05-19 17:44) [7]

Суть в чем. У каждой организации свой склад (один), но необходимо предусмотреть возможность выписки товара и из других складов. При этом на товар с других складов должны формироваться пакеты документов по правилам.
Напрмер
возврат поставщику -> оприходование -> отгрузка или
продажа -> отгрузка

Ты со своего склада выписал чужой товар. По правилу 1 необходимо: чужая организация возвращает товар поставщику, затем он оприходуется на тебя и происходит отгрузка


 
Курдль ©   (2004-05-19 17:45) [8]

Может все-таки убедить того, кто придумал такую структуру сделать все по-человечески? Или это не реально?


 
Mike Kouzmine ©   (2004-05-19 17:46) [9]

Соловьев ©   (19.05.04 17:44) [6] Сейчас корябую. Да не думаю, что будут проблемы. Вопрос в чем, может быстрее будет запросом одним получить заголовки?


 
Mike Kouzmine ©   (2004-05-19 17:48) [10]

Курдль ©   (19.05.04 17:45) [8] А что здесь нечеловеческого. Группа компаний под одной крышей, но у каждой своя бухгалтерия и свой склад.


 
-SeM-   (2004-05-19 17:54) [11]


> А что здесь нечеловеческого
> со своего склада выписал чужой товар
> у каждой своя бухгалтерия и свой склад


[8]


 
Курдль ©   (2004-05-19 17:54) [12]


> А что здесь нечеловеческого.

Да даже названия! Если есть компании - вполне логично завести таблицу "КОМПАНИИ". Несколько складов, причем, как я понимаю, у одной компании может быть не один склад - значит таблица "СКЛАДЫ", имеющая отношение "много-к-одному" к т."КОМПАНИИ". Если есть какой-то товар - пусть себе хранится в таблице "СПРАВОЧНИК_ТОВАРОВ", а к складам привязывается ассоциативной таблицей "ЕСТЬ_НА_СКЛАДЕ".
Ну и т.д.


 
Mike Kouzmine ©   (2004-05-19 17:58) [13]

Курдль ©   (19.05.04 17:54) [12] Вопрос не об этом.
Соловьев ©   (19.05.04 17:44) [6] Примерно так
begin
 FOR SELECT STATUS, MOVE, DAT_CREATE, NUM, ORG, TUSER FROM HEADERS
  WHERE SCLAD = :SCLAD AND VID = 2 AND DAT_CREATE BETWEEN :DAT_OT AND :DAT_DO
  INTO :STATUS, :MOVE, :DAT_CREATE, :NUM, :ORG, :TUSER DO
    BEGIN
      SELECT COUNT(*) FROM MOVE
         WHERE MOVE.NUM = :NUM AND MOVE.SCLAD <> :SCLAD INTO :RECCOUNT;
      if (RECCOUNT > 0) then
        BEGIN
          Дальнейшая обработка
          SUSPEND;
        END
    END
end


 
Mike Kouzmine ©   (2004-05-19 18:01) [14]

Вопрос снят. Сейчас допишу и пусть будет так.


 
Mike Kouzmine ©   (2004-05-19 18:12) [15]

Все написал. Все нормально, всем спасибо.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.032 c
14-1085509938
тихий вовочка
2004-05-25 22:32
2004.06.13
Как работать с XML


4-1083820741
Chris
2004-05-06 09:19
2004.06.13
Помогите извлечь флешку


1-1086015332
Санек
2004-05-31 18:55
2004.06.13
Как использовать системную переменную %TEMP% в пути файла?


4-1080755212
Def_E
2004-03-31 21:46
2004.06.13
Создание CAB архивов


1-1086150441
ZHK
2004-06-02 08:27
2004.06.13
ReadCоmponent и WriteComponent





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский