Главная » Айтида » Айтида. Колонка Кассир
Русфонд

Айтида. Колонка Кассир

24 апреля 2013 - Рубрики Айтида

1193 просмотров

В сайдбар справа добавлена кнопка Google+. Если вам поможет данный материал, прошу вас нажмите на кнопку - порекомендуйте сайт в Google.

Добрый день, уважаемые читатели блога ItRecords.ru!

Сегодня небольшая статья как добавить колонку Кассир в журнал документов кассовой смены.

Есть 2 подхода к отображению: выбираем первого кассира, который встретится в транзакциях, либо выводим всех кассиров за эту дату.
Сразу скажу, что данная колонка привязывается к дате кассовой смены, поэтому если изменить дату документа, то и кассиры будут выводиться другие.

Второй момент — справочник пользователей во Frontol и справочник сотрудников в Айтиде должны быть синхронизированы, иначе также будет выводится некорректная информация. Как это сделать можно посмотреть в статье про выгрузку кассиров из Айтиды во Фронтол

Третий момент — для вывода информации поиск производится по самой большой таблице базы данных, поэтому данная колонка может замедлить открытие журнала документов кассовых смен.

Теперь смотрим реализацию.

Открываем справочник точек зрения в Айтиде (Сервис — Справочник точек зрения). Слева в документах находим Документ кассовой смены, выбираем подпункт Вид и добавляем новую колонку.

Название поля и заголовок даем Кассир, ставим ширину 10 символов, ставим галочку Не вычислять значение выражения.

В само поле выражение вводим следующий запрос

1. первый вариант (выводим первого встретившегося кассира)

select top 1 rtrim(name )
from sprempl
where maincode in (
select top 1 Seller from frontol__tranzt
where DATEDIFF(DAY,TranzDate,dateadd(d,-1,convert(datetime,sprdoc.date)))<=0 
and DATEDIFF(DAY,TranzDate,convert(datetime,sprdoc.date))>=0
)

2. вариант (выводим всех кассиров за эту дату)

select dbo.kassir(sprdoc.date) from spr008 where identity_column=sprdoc.ic

Для второго варианта также необходимо создать саму функцию. Сделать это можно либо в SQL Managment Studio, либо из самой Айтды (Сервис — Работа с базой — Запрос к базе)

Текст для создания функции

create function dbo.kassir(@dt date)
RETURNS varchar(250)
as
begin
declare @kassir varchar(250);
set @kassir='';
select @kassir=@kassir+ rtrim(name)+' ' from 
(select distinct name 
from sprempl
where maincode in (
select top 1 Seller from frontol__tranzt 
where DATEDIFF(DAY,TranzDate,dateadd(d,-1,convert(datetime,@dt)))<=0 
  and DATEDIFF(DAY,TranzDate,convert(datetime,@dt))>=0
)) m;
RETURN (@kassir);
end;

Также записал небольшое видео по данной теме, кассиры там не появились, но перезаписывать третий раз было лень :)

This movie requires Flash Player 9

На этом на сегодня все, пишите комментарии, спрашивайте…

Если этот материал оказался вам полезен, порекомендуйте его в в Google, нажав кнопку Google+ справа в сайдбаре или через кнопки социальных сервисов ниже.

П.С. не забудьте оставить комментарий к статье, а также поделиться ссылкой с друзьями и коллегами через социальные сервисы или скопировав ссылку на статью ниже. Кроме того, вы можете предложить тему статьи через кнопку слева "Предложить тему статьи". Там же можно оставить пожелания, идеи по развитию сайта, а также благодарности (ну а вдруг)
П.П.С. предлагаю вам также вступить в Группа Вконтакте!группу Вконтакте, где вы сможете пообщаться с участниками на интересующие вас темы. Смелее!!!
Если вы больше времени проводите в Twitter, то за обновлениями на сайте можно следить, подписавшись на мою лентуTwitter: follow me!

Возможно вам также будут интересны статьи :

 

Предыдущие материалы из данной категории:

Комментариев: 0 , ,

Понравилась статья? Поделитесь ссылкой




Оставьте комментарий:




:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

Я человек, а не бот.