<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
1. С интерфейса сними галку «Переключаемый»
2. В интерфейсе не только панели, но и меню пропиши (до 2 отчетов только через операции добраться можно)
3. В документы «НачальныеОстатки» и «Приход» добавь номенклатуру
4. Для Номенклатуры нужен количественный учет
5. Нужен документ списания (порча, утеря, etc) — оприходование, в принципе, можно делать вводом начальных остатков…
—
Пока без плюса…
молодца, просто и удобно!
На скриншоте порадовало — «начальный остаток = 0», «расход» и «конечный остаток = «35 000» 😀
Я не даром написал камеральная, количественный учет здесь лишнее. Я для жены писал, а она не заморачивается. Для того чтобы это всё работало надо совершить как минимум два подвига: первое это не забыть чек взять в магазине, а второе не полениться и забить эти циферки в документ вечером. Когда вы это поделаете систематически, то думаю довольно быстро пошлете по дальше количественный учет… Считаю чем проще и быстрее тем лучше.
По поводу 35000 это былобы хорошо, но изображение видимо искажено и цифра там к сожалению гораздо большая. Я по умолчанию колонку прихода отключил, потому что если у вас оклад, то вам это не будет интересно смотреть каждый раз. Вы и так знаете эту цифру. Ну если всеже интересно то поставите галочку в настройках СКД и будет видна…
По поводу номенклатуры в документе прихода тут я принципиально парирую. Мне глубоко фиолетово, что приход идет на пустую номенклатуру и регистр в ноль не выводится. Я же не экзамен сдаю на специалиста по платформе… Жена довольна и это святое!!! И отчет ей удобно смотреть нажав на кнопочку панели и в меню она даже и не залезает. Интерфейс зачем переключаемый? Я его пользователю назначил.
(4) >потому что если у вас оклад, то вам это не будет интересно смотреть каждый раз.
Стоит дополнительные заработки добавлять, «халтуру» никто не отменял.
Понравилось, сразу сделала автоматическую нумерацию на номенклатуре, еще диаграмму отдельно сделаю, она конечно впечатляет — салоны красоты — самая большая статья затрат, надо снижать 🙁
Вы можете добавить новую группировку контрагента в настройках СКД и приход в выбранные поля и там будет вся ваша халтура видна 🙂
(7) Да я много чего могу. Могу и свою конфигурацию написать…
Ну одно дело конфу писать, совсем другое дело настройки отчета подправить
(9) По скорости — примерно одно и тоже.
(11) Блин не могу удержаться… А когда будет вариант?
Ну не платно а вот так просто в противовес? Да и выбор какой никакой будет и реклама таже…
Не я че я ниче просто идея хорошая dushelov заинтересовался надо его брать «тепленьким» его продукты славятся завидным качеством.
тогда назови это не «домашняя бухгалтерия», а «учет наличных средств» — правдивее будет
(в домашнюю бухгалтерию кроме этого неплохо бы включить взаимоотношения с банками, долги, материальные поступления в количественном и материальном выражении (бабушка картину подарила :-)), доходы/расходы будущих периодов, планирование расходов и пр. — блин! самому писать некогда, а кроме типовой бухгалтерии ничего не могу найти стоящего для дома…)
(13) Ну это для тех, кто «над златом чахнет» 😉
Для транжир — что попроще, чтобы хоть как-то заставить привести в порядок траты (это я про себя)… Мне достаточно геморроя с бухгалтерией своей ИП, нал не должен отнимать более 5 минут в неделю 😀
(10)»По скорости — примерно одно и тоже.»
Совсем не одно и тоже. Настройки в СКД делаются за несколько секунд в пользовательском режиме. Если вам надо, то сами можете сделать.
Вообще можете называть это как угодно. Но я считаю что правильнее всего называть камеральная бухгалтерия. Камеральная, это когда нет пассивов, а актив состоит из одной только кассы. Можете почитать Соколова «Теория бух учета».
кому не нравится — можно и аналогами ведь пользоваться, благо сайт отображает аналогичные разработки 😉
вот только один вопрос — а многие домашний бюджет ведут на 8ке?
(15) >Настройки в СКД делаются за несколько секунд в пользовательском режиме. Если вам надо, то сами можете сделать.
Спасибо, буду знать.
(16) Я пользуюсь самописной для покет-пс. Все расходы фиксируются сразу же, иначе потом, либо лень, либо забываешЬ 🙂
Я пользуюсь 1С:Деньги на 7.7. Древняя небольшая конфигурация, но функций больше, например учет на разных счетах (наличные, кредитная карта), дебиторы-кредиторы (кто мне должен, кому я) и пр.
Будет так же предпочтительно если добавить учет по различным кассам, в разрезе различных валют, так же добавить документ обмен валюты
Если бы я писал для себя что-то подобное, то из соображений простоты сделал бы примерно так же. Единственное что я бы добавил — статью затрат в номенклатуре. Конечно можно использовать справочник номенклатуры в качестве справочника статей затрат… но тогда теряется информация о вещах. А в общем считаю что разработка имеет право жить, особенно в качестве «канвы» для доработок под себя.
«Я пользуюсь 1С:Деньги на 7.7. Древняя небольшая конфигурация, но функций больше, например учет на разных счетах (наличные, кредитная карта), дебиторы-кредиторы (кто мне должен, кому я) и пр.»
Это уже двойная запись. Надо на регистре бухгалтерии делать. Я об этом думал сначала потом забил. Таких как вы мало. Я например варюсь в собственном соку и долгов никому не раздаю. А вести учет сколько у меня лежит в правом кармане, сколко в левом и т.д. тоже не хочется. Для большинства это подходит.
очередной велосипед, причём заржавеет через месяц пользования 😥
пользую для этих целей AbilityCash. хотя это и не принципиально. подобного софта пруд пруди.
Мы уже пол года пользуемся и никаких изменений в конфу не вносил.
Я вообще не понимаю почему пишут комменты только сюда. Я это не считаю такой уж важной своей публикацией…
К вопросу что же было «в семейных финансах» ? 😀
Бордак —http://dic.academic.ru/dic.nsf/vasmer/37048/бордак
http://www.edudic.ru/oje/1316/
или
Бардак —
(24)
Бардак — это прежде всего порядок. Если в бардаке порядка не будет, бардак прогорает махом.
А мене понравилась конфигурация! Есть конечно что доработать, но все равно гуд!