BG Development


Страници: (14) « първа ... 3 4 [5] 6 7 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Delphi и фискален принтер
Dido
Публикувано на: 04-11-2011, 16:44
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 52
Регистриран на: 17.11.10



Кога обработвате/показвате грешките /статуса/ на принтера,
на всяко пакетирано съобщение или
на последното?

напр.
1. отваряне на бон
2. продажба
3. плащане
4. затваряне

до сега ги обработвам и показвам на всяко,
но мисля да го направя само на последното.
PMEmail Poster
Top
0xdeadc0de
Публикувано на: 04-11-2011, 16:54
Quote Post


Group Icon
Име:
Група: BG Dev модератори
Ранг: Почетен член

Мнения: 1987
Регистриран на: 26.07.04



Ако става въпрос за грешки, то много зависи дали можеш да продължиш със следващите стъпки.

Примерно при грешка в "отваряне на бон" едва ли може да продължиш нататък и следователно ще си покажеш грешката веднага.

Ако продължиш, ще имаш три допълнителни (и ненужни) грешки:

CODE
ГРЕШКА ПРИ ОТВАРЯНЕ НА БОН
ГРЕШКА ПРИ ПРОДАЖБА (която е следствие от това, че не си отворил бона)
ГРЕШКА ПРИ ПЛАЩАНЕ (която е следствие от 1 или 2)
ГРЕШКА ПРИ ЗАТВАРЯНЕ (която е следствие от това, че не си отворил бона)


Безсмислено е да засипваш потребителя с всичко това, като единствената грешка в случая е първата.

Ако грешката може да се "преодолее" с няколко опита (примерно ПРОДАЖБА не успява, но при повторен опит - минава), то това е по-скоро предупреждение за някакъв (евентуално временен) проблем (примерно комуникация) и нормалния потребител не се интересува от него. Прекрасно място за подобни неща е някакъв вид лог, който вие си анализирате при по-дебели проблеми.

Като цяло трябва много да се внимава какво точно се показва на потребителя, защото в повечето случаи става въпрос за не много технически грамотни хора (т.е. продавачи в магазин), които излишно се стресират при всяко нещо, което е малко по-различно от нормалния работен процес.


--------------------
One OS to rule them all, One OS to find them,
One OS to bring them all and in the darkness bind them ... MS-DOS FoReVeR!
PMEmail PosterYahoo
Top
JanBirdX
Публикувано на: 04-11-2011, 18:23
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1818
Регистриран на: 21.02.05



1. Взимане на статус
2. При код за грешка в статуса опит за фиксирането и (това си е...)
3. Отваряне на бон
4. Имали отстъпки които трябва да бъда пуснати за целия бон?
5. Продажби (отстъпки?)
6. Междинна сума (отстъки?)
7. Плащания
8. Затваряне на бона

При която и команда ако има грешка в отговора "казваш" не мога да изпълня продажбата и подобаващо съобщение за грешката.
QUOTE
Ако става въпрос за грешки, то много зависи дали можеш да продължиш със следващите стъпки.

При каквато и да е грешка при фискализация не може да си затвори очите.
PMEmail Poster
Top
wqw
Публикувано на: 05-11-2011, 00:33
Quote Post


Group Icon
Име: Владимир Висулчев
Група: VIP
Ранг: Почетен член

Мнения: 6379
Регистриран на: 10.06.04



@JanBirdX: Аз лично си правя труда да откажа фискалния бон ако стане грешка в 4. до 8. Иначе 1. и 2. се случват естествено в момента в който го питаш ФП дали има outstanding бон. Аз тука си правя труда да го откажа (което не винаги е лесно) преди да мина към 3.

Всъщност примерно ако е започната фискална фактура, тя не може да се откаже преди да се подаде инфо за контрагент. WTF?! Има и други простотии, които зависят от модела (и firmware) на ФП.

При касите картинката е още по-тъжна: ред по ред трябва да се войдира за да се откаже "забил" бон.

cheers,
</wqw>

Това мнение е било редактирано от wqw на 05-11-2011, 00:37


--------------------
PMEmail PosterUsers Website
Top
JanBirdX
Публикувано на: 05-11-2011, 11:49
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1818
Регистриран на: 21.02.05



За 2. точно това имах предвид(с тези машини обеднява речта), то ясно че ако е свършила хартията ,има препълване или някоя подобна грешка не може да продължи.
PMEmail Poster
Top
Dido
Публикувано на: 22-11-2011, 13:18
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 52
Регистриран на: 17.11.10



Поведение при отворен фискален бон
/при инициализация на нова транзакция/:


1. Опит за анулиране с команда 60 (3Ch) - това е възможно преди
да е била изпълнена команда 53 (35h) Total.
2. Ако е изпълнена 35h е възможно да има недостатъчна платена сума,
вземаме я от отговора на Total, добавяме я и затваряме бона.


Поведение при
* "Обща грешка"
* "Обща фискална грешка"
* Ако няма модул фискална памет
* Препълване на някои от полетата от сумите:

Спираме изпълнението на фискалната транзакция.

Поведение при
* Часовника не е установен
* Ако капака на принтера е отворен
* Ако е останала малко хартия на лентата за бонове и/или контр. лента:

Показваме като статус и продължаваме.

Поправете ме, ако съм изпуснал нещо или бъркам.



Това мнение е било редактирано от Dido на 22-11-2011, 16:43
PMEmail Poster
Top
wqw
Публикувано на: 22-11-2011, 23:28
Quote Post


Group Icon
Име: Владимир Висулчев
Група: VIP
Ранг: Почетен член

Мнения: 6379
Регистриран на: 10.06.04



QUOTE (Dido @ 22-11-2011, 14:18)
2. Ако е изпълнена 35h е възможно да има недостатъчна платена сума,
вземаме я от отговора на Total, добавяме я и затваряме бона.

35h само с <Tab> плаща всичко, не е нужно да изчисляваш остатък.

Часовникът предпочитам винаги да го сверявам със системното време при стартиране на приложението, без да задавам въпроси ("Don't make me think").

Принципно много разсъждения ми изглеждат. Аз лично просто гледам бит "Обща грешка" (0.5 от статуса) и сглобявам error message от статуса, без да разсъждавам защо и спирам изпълнението на печата. Специално за фискалните бележки си правя труда да ги откажа, но и при започване на печат пак проверявам дали има нещо неприключено за отказване.

cheers,
</wqw>


--------------------
PMEmail PosterUsers Website
Top
Dido
Публикувано на: 23-11-2011, 11:48
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 52
Регистриран на: 17.11.10



wqw мерси за отговора,
това само с Tab (09h) не го знаех.

Само не ми е ясно кога е имало някакъв тотал (53) в бона.
Мисля, че става въпрос за команда (76) /Статус на фискалната транзакция/
и Tender от отговора й.
PMEmail Poster
Top
wqw
Публикувано на: 24-11-2011, 01:12
Quote Post


Group Icon
Име: Владимир Висулчев
Група: VIP
Ранг: Почетен член

Мнения: 6379
Регистриран на: 10.06.04



Да, аз правя проверка за Amount > Tender, ако въобще имам Amount.

Сега погледнах CancelReceipt при мене как е направена:
- на 76 проверява Open дали е "1"
- ако е проверява на статуса бит 2.3 дали е отворен фискален бон
-- ако не е -- праща 39 - затваряне на служебен бон
-- ако е -- праща 60 - анулиране на бон
- пак проверява бит 2.3 от статуса дали е вдигнат
- ако отново е -- значи не може да откаже фискалния бон
-- 53 (плащане) с параметър <Tab>
-- 57 (информация за клиент) с параметър "0000000000" -- това за да може да откаже фискална бележка тип фактура
-- 56 (затваряне на фискален бон)

За съжаление при форс-мажорно затваряне на фискален бон, сумата по него влиза във фискалната памет и трябва да се сторнира на ръка (с фискална бележка от кочан).

cheers,
</wqw>


--------------------
PMEmail PosterUsers Website
Top
Delegate
Публикувано на: 25-11-2011, 12:11
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2735
Регистриран на: 30.05.09



Чакайте да попитам нещо във връзка с тия принтери (или по-скоро въпроса е относно портовете ).
Да кажем, че става дума за DATECS някакъв, дето се управлява от приложение по RS-232 порт.
Само едно приложение ли (Уиндоус) в даден момент може да чете данните от тоя порт ? Ако е така, ще се наложи ли да се прави "мастер" приложение, което да чете/пише по въпросния порт, а другите да се обръщат към него и то да разпределя ?
PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (14) « първа ... 3 4 [5] 6 7 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0