Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.064 c
1-1085982786
artem_123
2004-05-31 09:53
2004.06.13
ini файлы и dll в delphi 8


1-1086067714
Master Paleva
2004-06-01 09:28
2004.06.13
Имитация нажатия клавиш на клавиатуре


1-1086024148
Delphin
2004-05-31 21:22
2004.06.13
Есть код, только при попытке компиляции, орёт, что какая-то там о


6-1082705726
lightix
2004-04-23 11:35
2004.06.13
Получить список рабочих групп и список компьютеров в них


14-1085423991
Drakon
2004-05-24 22:39
2004.06.13
Новый движок форума