<?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='\
Уважаемый Арчибальд, переходите на 8 , тогда будет , что обсудить.
А пока только о цвете. Существует правило разработчика по умолчанию :
даёшь нестандартный цвет — давай и возможности по его изменению.
Игнорирование этого правила вызывает грусть.
Мдя, цвет, конечно, оччень тяжел для глаз. И не работает, зараза, в отличие от
http://infostart.ru/projects/3744/.. .
(1)Не понял насчет цвета. Все открыто, в т.ч. и свойства формы.
(2)Не работает — это как?
Для тех кто уже перешел на 8-ку:
http://infostart.ru/projects/3295/
На полсотни скачиваний что-то комментов маловато
Мелкая придирка : перед бухгалтерским запросом желательно делать проверку на рассчитанность бухгалтерских итогов для заданной даты , чтобы не вылетало
сообщение.
В (1) ,конечно, имелось ввиду «возможность для пользователя(бухгалтера)»
отчеты запустились
1. в подробном режиме не показывает договор, только контрагента
2. не сразу очевидно что суммы выводятся в тыс. рублей, хотябы в шапке написал
3. не хватает итогов по суммам
4. дата возникн задолженности — не всегда указывает, чаще просто пустая дата
5. не хватает средств проверить почему показываемая сумма задолженности именно такая как показывается — нет расшифровок
Резюме: отчет требует «допиливания» для комфортного использования
(7)
1.Забыл договор вставить. Исторически он был, но потом мои бухи от него отказались. Вставил.
2.Согласен. Вставил.
4.Зависит от того, заполнена ли в справочнике договоров «ДатаВозникновенияОбязательства».
3,5.Это отчетики, чтобы вспомнить о долгах. Расшифровкой должен быть анализ взаиморасчетов с контрагентом — но это отдельная песня.
(6)Правильно, конечно. Но это актуально для документов, скорее. Просто когда квартал меняется, бухи сразу вопят на админа насчет периода. Пока до задолженносте дело дойдет, итоги уже будут готовы.
а зачем это,для взаимозачета?проводки формирует?
(10) Для формирования проводок ОБЯЗАТЕЛЕН документ-основание — это фундаментальное правило бухучета. Здесь мы просто ищем контрагентов, с которыми пора разбираться.
Скинь пож. на мыло а то не могу скачать gtsy@yandex.ru Дебиторка, кредиторка со сроками задолженности (Бух 7.7)
Хорошая обработка нареканий нет всем доволен плюсую 🙂
Спасибо, всем рекомендую.
Спасибо, всё очень понравилось.
Цвет меня пугает 🙁
(18) А долги — нет?
(19)
Чужие долги меня не касаются. 🙂
(20) Но они зеленые! :))
(21)
Отчет не скачивала…
Неужели и долги ЗЕЛЕНЫЕ ?
Изврат… :))
ВООЩЕ КЛАСС!!!
Делали отчет для банка (кредит брали) — пошел на УРРРА!!!!
не понимаю для кого делаются подобные отчеты, если более 90% бухгалтеров никогда не заполняют реквизиты в договорах ДатаВозникновенияОбязательства,ДатаПогашенияОбязательства. А без заполнения этих реквизитов эта обработка бесполезна. Почему нельзя было сделать запрос по документам и из них брать дата возникновения задолженности?
(25) Drizer2000,
Я бы больше сказал. Без организации учета все отчеты бесполезны.
В каких документах (кроме договора) фигурирует дата возникновения задолженности? Все ДокументыВСмысле1С имеют единственную дату — ДатаДок.
Ну вы далеки от реальной жизни как работают бухгалтера. Именно по умолчанию дата задолженности — это ДатаДок
(27) Drizer2000, бухгалтерЫ работают так, как им предпишет неачальство. Разгильдяйство в отдельно взятой бухгалтерии не следует выдавать за всеобщий принцип.
Неясно почему выложены два файла, не указаны названия файлов (что это, зачем, для чего ?), нет скриншота самого отчета. Исправьте пожалуйста.