require("./global.php");
$primaryTableName = "Invoice";
if (!checkGlobalPermission('enableInvoices')) {
// header("Location: ./home.php?m=Oops! Error occured");
}
if ($g_modules_global['enableInvoicesProductsItems']) {
$productsJson = [];
$rows = getAll($con, "SELECT * FROM " . $g_projectSlug . "_products ");
foreach ($rows as $row) {
$productsJson[$row['id']] = $row;
}
}
$invoice_id = mb_htmlentities($_GET['invoiceId']);
$invoiceDeets = getRow($con, "SELECT * FROM " . $g_projectSlug . "_invoices where id='$invoice_id' ORDER BY timeAdded ASC ");
$invoiceproduct = getAll($con, "SELECT * FROM " . $g_projectSlug . "_invoices_products where invoice_id='$invoice_id'");
//for insert & update
if (isset($_POST['addInvoice'])) {
$client_id = mb_htmlentities(($_POST['client_id']));
$custom_description = mb_htmlentities(($_POST['notes']));
$title = mb_htmlentities(($_POST['title']));
$attachment = storeFile($_FILES['attachment']);
$total = 0;
$timeAdded = time();
if (!isset($_GET['invoiceId'])) {
$invoiceId = generateRandomString();
} else {
$invoiceId = $_GET['invoiceId'];
}
$query = "delete from " . $g_projectSlug . "_invoices_products where invoice_id='$invoiceId'";
$stmt = $con->prepare($query);
$stmt->execute();
if ($actionId == "") {
$actionId = $id;
$i = 0;
// var_dump($_POST);
foreach ($_POST['category'] as $i => $val) {
$invoice_product_id = generateRandomString();
$subtotal = $_POST['total'][$i];
$product_id = $_POST['product_id'][$i];
$category = $_POST['category'][$i];
$cost = $_POST['cost'][$i];
$quantity = $_POST['qty'][$i];
$unit_cost = $_POST['unit_cost'][$i];
// $items = $_POST['qty'][$i];
if ($product_id != '') {
$query = "insert into " . $g_projectSlug . "_invoices_products set id='$invoice_product_id', invoice_id='$invoiceId',
product_id='$product_id', items='$items', category='$category', cost='$unit_cost', quantity='$quantity', subtotal='$subtotal'";
$stmt = $con->prepare($query);
$stmt->execute();
// $i++;
// echo $query . "
";
$total += $subtotal;
}
}
// exit();
if ($title == "") {
$title = "Invoice #$invoiceId";
}
$order_id = $_GET['order_id'];
if (!isset($_GET['invoiceId'])) {
$query = "insert into " . $g_projectSlug . "_invoices set id='$invoiceId', user_id='$session_userId', client_id='$client_id', custom_description='$custom_description', total='$total',
attachment='$attachment', timeAdded='$timeAdded', title='$title',order_id='$order_id';";
} else {
$query = "update " . $g_projectSlug . "_invoices set user_id='$session_userId', client_id='$client_id', custom_description='$custom_description', total='$total',
attachment='$attachment', timeAdded='$timeAdded', title='$title',order_id='$order_id' where id='$invoiceId'";
}
// echo $query;
// exit;
$stmt = $con->prepare($query);
if (!$stmt) {
echo "err: $query";
}
if ($stmt->execute()) {
}
} else {
//update
$query = "update " . $g_projectSlug . "_invoices set id='$id' $queryExtra where id='$actionId'";
$stmt = $con->prepare($query);
if (!$stmt) {
echo "err: $query";
}
if (!$stmt->execute()) {
echo "err: $query";
}
}
//update files
foreach ($files_array as $col => $file) {
$stmt = $con->prepare("update " . $g_projectSlug . "_invoices" . " set $col='$file' where id='$actionId'");
if (!$stmt) {
echo "err: $query";
}
if (!$stmt->execute()) {
echo "err: $query";
}
}
if ($g_redirectHomeOnSave) {
header("Location: ./home.php?m=Data was saved successfully!");
} else {
header("Location: ?view=$invoiceId&m=Data was saved successfully!");
}
}
if (isset($_GET['delete-record'])) {
$id = mb_htmlentities($_GET['delete-record']);
if ($id != "admin") {
$stmt = $con->prepare("delete from " . $g_projectSlug . "_invoices where id=?");
$stmt->bind_param("s", $id);
if (!$stmt->execute()) {
echo "err";
}
}
}
//myupdate
if (isset($_POST['updateInvoice'])) {
$custom_description = mb_htmlentities(($_POST['custom_description']));
$old_attachment = mb_htmlentities(($_POST['old_attachment']));
$attachment = storeFile($_FILES['attachment']);
$updateid = $_GET['update'];
if ($attachment == '') {
$new_attachment = $old_attachment;
} else {
$new_attachment = $attachment;
}
$order_id = $_GET['order_id'];
$stmt = $con->prepare("update " . $g_projectSlug . "_invoices set custom_description='$custom_description', order_id='$order_id', attachment='$new_attachment' where id='$updateid'");
if (!$stmt) {
echo "err: $query";
}
if (!$stmt->execute()) {
echo "err: $query";
}
}
if (isset($_GET['invoiceIdDuplicate'])) {
$invoiceIdDuplicate = $_GET['invoiceIdDuplicate'];
// (recurring_type='Monthly' or recurring_type='Annual') or
$invoices = getAll($con, "select * from " . $g_projectSlug . "_invoices where id='$invoiceIdDuplicate'");
foreach ($invoices as $invoiceRow) {
$invoiceId = $invoiceRow['id'];
$client_id = mb_htmlentities(($invoiceRow['client_id']));
$custom_description = mb_htmlentities(($invoiceRow['custom_description']));
$title = mb_htmlentities(($invoiceRow['title'])) . " - New";
$recurring_type = mb_htmlentities(($invoiceRow['recurring_type']));
$attachment = mb_htmlentities(($invoiceRow['attachment']));
$total = $invoiceRow['total'];
$timeAdded = time();
$invoiceIdNew = generateRandomString();
$order_id = $_GET['order_id'];
$query = "insert into " . $g_projectSlug . "_invoices set id='$invoiceIdNew', user_id='$session_userId', client_id='$client_id',
custom_description='$custom_description', total='$total',
attachment='$attachment', timeAdded='$timeAdded', title='$title',order_id='$order_id' ;";
$stmt = $con->prepare($query);
if (!$stmt) {
echo "err: $query";
}
if ($stmt->execute()) {
}
$invoiceItems = getAll($con, "SELECT * FROM " . $g_projectSlug . "_invoices_products WHERE invoice_id='$invoiceId'");
foreach ($invoiceItems as $item) {
$invoice_product_id = generateRandomString();
$subtotal = $item['subtotal'];
$product_id = $item['product_id'];
$category = $item['category'];
$cost = $item['cost'];
$quantity = $item['qty'];
$unit_cost = $item['cost'];
$items = $item['items'];
$query = "insert into " . $g_projectSlug . "_invoices_products set id='$invoice_product_id', invoice_id='$invoiceIdNew',
product_id='$product_id', items='$items', category='$category', cost='$unit_cost', quantity='$quantity', subtotal='$subtotal'";
$stmt = $con->prepare($query);
$stmt->execute();
}
}
header("Location: ?m=Invoice was duplicated successfully.");
}
?>