Есть доп. действие таблицы "Cчета" - формируем акт, в нем и выполняется данный код.
Сделано это для проверки наличия существования у счета экземпляра акта.
т.е. при нажатии на кнопку доп. действия выполняется код (ниже)
в поле Акт таблицы Счет заносится id номер соответствующего ему акта
и если в счете меняются позиции счета, возникает проблема при формировании акта - путаница и плодятся акты и его позиции
сам акт удаляется (работает) и на его место добавляется новый, а позиции удалить не получается
$sch = data_table("Счета","id={ID}");
if ($sch['Акт']!='') {
delete_query("Позиции акта", "'Акт'='".$sch['Акт']."'");
delete_query("Акт", "id=".$sch['Акт']);
}
$new_id = insert_query(array(), "Акт");
$data['По счету'] = {ID};
$data['Номер'] = $sch['Номер'];
$data['Дата'] = $sch['Дата'];
$data['На кого'] = $sch['На кого'];
$data['Выписал'] = $user['id'];
$data['Кол-во'] = $sch['Кол-во'];
$data['Сумма'] = $sch['Сумма'];
$data['Оплачено'] = $sch['Оплачено'];
$data['Остаток'] = $sch['Остаток'];
$data['Наша компания'] = $sch['Наша компания'];
update_query($data, "Акт", "id=".$new_id);
$data1['Акт'] = $new_id;
update_query($data1, "Счета", "id={ID}");
$sqlQuery = "SELECT id FROM ".DATA_TABLE."74 WHERE status=0 AND f807=".$sch['ID'];
$result = mysql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
while ($row = mysql_fetch_array($result)) {
$poz_zay = data_table("Позиции счета","id=".$row['id']);
$poz['Акт'] = $new_id;
$poz['К Акту'] = $sch['Номер'];
$poz['Описание'] = $poz_zay['Описание'];
$poz['Ед. изм'] = $poz_zay['Ед. изм'];
$poz['Цена'] = $poz_zay['Цена'];
$poz['Кол-во'] = $poz_zay['Кол-во'];
$poz['Сумма'] = $poz_zay['Сумма'];
insert_query($poz, "Позиции акта");
}
echo "<script>location.href='".$config["site_root"]."/view_line.php?table=81&line=".$new_id."'</script>";
это стандартная функция, с корректировкой под себя
Счета.Акт - текстовое поле
Позиции акта.Акт - связь с Акт.Номер (текстовое) хранит номер счета(совпадает с нмером акта)
Акт.По счету - связь с Счет.Номер
не работает строка
delete_query("Позиции акта", "'Акт'='".$sch['Акт']."'");
или другими словами надо удалить находясь в записи таблицы СЧЕТА (доп действие)
связанные с ней записи из таблицы АКТ и связанные с таблицей АКТ записи в таблице ПОЗИЦИИ АКТА.
спасибо.