<?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С? Тем, что бесплатное? 😉
(3) NOVOPRO, здравствуйте.
В планах серьезная поддержка этой программы, можно будет обновляться через Play Market. Так что глюки выявляемые будут устраняться.
Уже лет 5 пишу всяческие программы на эту тему. В данном приложении заложил 3 идеи:
1.Ввод данных о расходах должны вводиться сразу после покупки
2.Должна быть возможность обрабатывать данные позже на десктопе
3.Должен быть какой то стимул вводить туда данные помимо понимания, что нужно следить за своими расходами. Такой мини стимул — получение новый званий за ввод данных. А новые звания в будущем откроют новые возможности в программе. И возможно создам таблицу рейтинга.
(4) _also, здравствуйте. Я надеюсь что данная программа в итоге будет не лучше и не хуже. Начитавшись всяких умных людей про то как важно управлять своими финансами ,начав с их инвентаризации, хочу помочь людям действительно этим заняться. И основной упор в программе будет на то ,чтобы людям было интересно это делать.
чет не смог скачать как не пытался , хотя $m сняли 🙁 … надеюсь программа написана на java + sqlite, а не на 1с?
(7) eugeniezheludkov, судя по скринам, написана она на мобильной платформе 1С
(7) eugeniezheludkov, написано на мобильной платформе 1с. Скачиваться должна без проблем.
В новой версии 1С Денег изменены названия многих объектов, загрузка работать не будет
(10) GAMLET, проверю. Если подтвердится — выложу новую версию импорта.
(10) GAMLET, выложил новую версию импорта
чего то я не сообразил как обмен с настольной версией провести — просветите? десктопная программа файл из телефона забирает — и всё, ничего больше не происходит
(13) mirkwood89, а обработку по импорту скачали? Открыли ее в 1С:Деньги? Выбрали в ней ваш файл для загрузки?
так файл даже получить не получается.Путь для сохранения копии кривой,редактированию не поддается,вдобавок по этому пути выгрузки не наблюдается.Короче без подробной инструкции обычный чел выгрузить данные в десктопную версию не сможет.Да и разместите обработку для импорта на версию 1с деньги 1.0 так же как и на 2.0 на другом серваке,не все могут качать от сюда.Если можно объясните подробно как сделать выгрузку в десктопную версию.А так прога зачетная,мне понравилась.
(15) pinkinni, на разных аппаратах выгружается по разному. У меня путь такой — storage/emulated/0/Android/data/ru.asist.finance/files либо с точки зрения пользователя — Меню/Мои файлы/Device storage/Android/data/ru.asist.finance/files
Ссылки на сторонние ресурсы не могу давать, поэтому обработку можно скачать только здесь.
Разместил новые версии файлов