logo
logo

Форум Операции с суммой 0,00. Возможно?

создать новую тему раскрыть все
Операции с суммой 0,00. Возможно? Mechanic 02/03/2017 23:58 #написать ответ
Объясню точнее.
Программа настолько удобна и универсальна, что я начал вести в ней и учёт деятельности. Одно из примечаний назвал "Время" и вписываю туда затраченное время. Не пинайте сильно, понимаю, что AbilityCash не для этого. В поле "сумма" мне приходится вносить 1 коп., так как нулевые суммы сейчас невозможны. А может, все-таки можно их сделать?
Сложно. Dervish 03/03/2017 13:11 #написать ответ
Дело в том, что тип операции (приход/расход) определяется по знаку в поле суммы. От типа операции зависит набор классификаторов, которые можно назначить операции (чтоб разделить приходные и расходные деревья)... А еще есть операции перевода, а еще фиксации остатка... В общем, страшно мне в этот зоопарк влезать.
только чур не падать в обморок... Daniil 05/03/2017 01:35 #написать ответ
то что предложу похоже на бред сивой кобылы, но есть "НО" - в программе я уже неоднократно замечал "красный ноль". отсюда и предложение (типа заумного ковыряния в носу) - учитывать каким-то образом "-0" и "+0", тем более что они по факту есть.
когда я первый раз увидел "красный ноль" в балансе (самый верхний счет), то не сразу поверил глазам своим. но это дело регулярно повторяется.
валюты дают курсовую разницу, я ее списываю в "прибыль/убыток" что бы сходился баланс (верхний счет) и в зависимости от той операции что я делаю (одинарная запись прихода/расхода в учете двойной записью) меняется цвет нуля.
есть подозрение, что программа считает более двух цифр после запятой и их не видно (как вариант - "проделки округления"), или действительно где-то "программа считает" что есть нули с "-" и "+".
предложение в том что бы это "узаконить" что ли. тогда можно будет вводить записи с нулем.
 
зы
в общем я от красного нуля в обморок не упал, нашел в себе силы пережить этот трудный для понимания момент)))))))))) чего и другим желаю после прочтения оного предложения.
Поясню. Dervish 05/03/2017 01:59 #написать ответ
Первоначально в AbilityCash использовалось представление денежных сумм, аналогичное представлению от Microsoft:
A currency number stored as an 8-byte, two's complement integer, scaled by 10,000 to give a fixed-point number with 15 digits to the left of the decimal point and 4 digits to the right. This <...> resentation provides a range of 922337203685477.5807 to -922337203685477.5808.
 
The CURRENCY data type is useful for calculations involving money, or for any fixed-point calculation where accuracy is particularly important.

 
Другими словами, берем 8-байтовое двоичное значение и называем его денежкой. Если нужно показать сумму человеку, преобразуем его в десятичное число, отсчитываем 4 знака после запятой, округляем сколько нужно (обычно до двух знаков после запятой) и показываем. Зачем нужны дополнительные два знака? В них собираются ошибки округления.
 
Кстати, если в Excel-е попробовать отформатировать денежную сумму, то там максимум можно указать 4 знака после запятой. Потому что вот такое представление.
 
Как я уже сказал, первоначально в AbilityCash использовалось то же самое представление. Пока не возникло желание сделать произвольное количество знаков после запятой (сейчас для валюты можно указать количество знаков после запятой более 4). Но чтобы не возникали ошибки округления программа всегда использует для представления на два десятичных дополнительных знака больше.
 
Поэтому, если Вы видите сумму "-0.00", то на самом деле это не нулевая сумма. Это может быть и "-0.004" и "-0.0001". Просто при округлении там получается ноль. А знак я просто забыл убрать. И сейчас не знаю, нужно ли его убирать или нет.
на счет знака Вам виднее, но... Daniil 05/03/2017 03:44 #написать ответ
логично наблюдать черный ноль,  что бы не было впечатления, что в программе произошел сбой.
тут срочности нет, тем более, после такого подробного пояснения что и откуда берется.
Спасибо за терпение - очень много букв))) а не отписка.
 
по вводу нуля, как я понял, лучше не приставать, или просить переписать всю программу заново.
 
с нулем нельзя… пристанем со звездочкой))) в смысле что бы программа отрабатывала строку со звездочкой (в графе "сумма") не как "денежку", а как текст, который не участвует в расчетах (для возможности вводить строки комменты/памятки и пр.).
 
на счет классификаторов - можно этой строке назначить по умолчанию классифакаторы прихода.
в графе сумма "*", классификаторы прихода, но вот еще "выполнено и заблокировано" остается.
"выполнено" теряет смысл и его наверно лучше убрать (и визуально от юзера и программно от фильтра), а замочек хорошо бы оставить, что бы была защита от случайного удаления записи, но при этом, что бы эта строка игнорировалась фильтром "заблокирована", иначе комменты (со * в графе сумма) полезут в выборки по признаку блокировки.
 
звездочка как некая аналогия с Икселевской решеткой.
может этот вариант осуществимо сделать?
ночь другую не поспать, забыть про еду, в эйфории от умственной деятельности, делов-то ......
шутка)))
 
наверно лучше классификаторы "перевода" их больше по количеству должно получиться вроде.
дополнение... Daniil 05/03/2017 13:21 #написать ответ
классификаторы лучше назначать как они и назначаются, что отчекбоксил, то и применять, кроме "сальдо" наверно (его в игнор).  
сумму "закомментированную" в расчеты не брать.
"выполнена и заблокирована" игнорировать, что бы там не было "отчекбоксено". иначе строка коммента в выборки по фильтрам "полезет". хорошо бы еще и в строке записи не отображать квадрат и замок тогда.
 
в интерфейсе ввода операции ничего менять не надо, ставь галочку или нет в "выполнена/заблокирована/остаток" она будет программой игнорироваться. оставить реакцию программы на "приход/расход/перевод" для выбора юзером нужного набора классификаторов и "счета/пары счетов" (для сторно).
 
чего я с комментами пристал?
платишь провам всяким через платежные системы, а они проценты за переводы или вводят или меняют. постоянно приходится вспоминать кому и через что лучше оплатить, в смысле где 0% за транзакцию берут.
лучше иметь эту инфу "под рукой".
 
"повесил" подобную запись будущей датой, что бы вверху висела и сразу все видно, понятно, как только счет открыл.
 
учитывая, появление дополнительного окна - "Действительно удалить запись или Вы сошли с ума?" - можно отказаться от замка, фиг с ним.
 
практика "закомментить строку" что бы она обрабатывалась как комментарий распространенное дело. можно и точку с запятой использовать вместо звездочки - Вам виднее.
 
тогда в графе "сумма" можно и ";+500"/";-500" написать будет.
";+500"/";-500" - это вместо сторно. строка (сумма) в расчеты не принимается, обороты не накручивает, но при этом информация о сумме сторно сохраняется, вместе с другой нужной инфой по операциям.
 
даже можно будет ноль вводить - ";0.00", если вдруг приспичит.
ноль он и есть ноль, его считай - не считай толк один.
 
фантазия разыгралась, кажется пора умолкать))))))
 
зы
ввел знак ";" в графу сумма в операции фиксации остатка = получил стандартное предупреждение об ошибке ввода суммы.
можно так и по расходу. оставить комменты только для прихода и перевода, что бы можно было по необходимости и в один счет и в два сразу (сторно - тот же ноль/коммент, не чего ему в расчетах участвовать) комменты добавлять.
"тут Остапа понесло..." Daniil 05/03/2017 13:48 #написать ответ
как юзеры узнают о возможности комментов?
справки по программе-то нет.
 
сделать на сайте глоссарий с юрлами ведущими на определенный пост на форуме. все... справка по программе готова. редактировать легко - только юрлы меняй и глоссарий (фак) дополняй ссылками.
пополнять его потихоньку, по мере возникающих вопросов. писанины лишней не требуется, на форуме все что надо есть, но вот искать не просто. будет глоссарий - нажал и сразу попал на ответ в форуме. в глоссарии можно и разделы сделать по смыслу.