. ***********************************************************************/ include_once($path_to_root. '/includes/ui/simple_crud_class.inc'); /* View/Edit class for attachments */ class attachments extends simple_crud { var $selected_id; var $entity; var $sub_class; var $class; function __construct($name, $id, $class, $subclass=null) { $fields = array('type_no', 'trans_no','description','filename','tran_date' => 'date'); parent::__construct($name, $fields); $this->class = $class; $this->subclass = $subclass; $this->entity = $id; } function list_view() { global $Ajax, $path_to_root, $session_debtor_no, $session_supplier_id; br(); if(isset($_POST['attachmentDownload'])){ $keys = array_keys($_POST['attachmentDownload']); $sql = "SELECT * FROM ".TB_PREF."attachments WHERE id = ".db_escape($keys[0]); $row = db_fetch(db_query($sql), "Cannot retrieve attachment $keys[0]"); if ($row['unique_name'] != ""){ if(in_ajax()) { $Ajax->redirect($path_to_root.'/admin/attachments.php?dl='.$keys[0]); } else { Header("Content-type: 'application/octet-stream' "); //header('Content-Length: '.$row['filesize']); header('Content-Disposition: attachment; filename="'.$row['filename'].'"'); echo file_get_contents(company_path()."/attachments/".$row['unique_name']); exit(); } } } if(isset($_POST['attachmentView'])){ $keys = array_keys($_POST['attachmentView']); $sql = "SELECT * FROM ".TB_PREF."attachments WHERE id = ".db_escape($keys[0]); $row = db_fetch(db_query($sql), "Cannot retrieve attachment $keys[0]"); if ($row['unique_name'] != ""){ $Ajax->redirect($path_to_root.'/admin/attachments.php?vw='.$keys[0]); /*if(in_ajax()) { } else { $type_no = ($row['filetype']) ? $row['filetype'] : 'application/octet-stream'; header("Content-type: ".$type_no); header("Content-Disposition: inline"); echo file_get_contents(company_path(). "/attachments/".$row['unique_name']); exit(); }*/ } } $filters = array('trans_no' => $this->entity, 'type_no' => (isset($_GET['type_no']) ? $_GET['type_no'] : ST_CUSTOMER)); // default ST_CUSTOMER if($session_debtor_no || $session_supplier_id) $filters['visible'] = 1; $sql = "SELECT * FROM ".TB_PREF."attachments WHERE trans_no=".db_escape($this->entity)." AND type_no = ".db_escape(isset($_GET['type_no']) ? $_GET['type_no'] : ST_CUSTOMER); $result = db_query($sql, "Could not get data from ".TB_PREF."attachments table"); $attachments = Array(); while($row = db_fetch_assoc($result)) $attachments[] = $row; start_table(TABLESTYLE, "width=80%"); $th = array(_("ID"), _("Docs Title"), _("Filename"), _("Size"), _("Filetype"), _("Date Updated"), "", "", "", ""); table_header($th); if($attachments){ foreach($attachments as $de) { label_cell($de['id']); label_cell($de['description']); label_cell($de['filename']); label_cell($de['filesize']); label_cell($de['filetype']); label_cell(sql2date($de['tran_date'])); edit_button_cell("{$this->name}Edit[{$de['id']}]", _("Edit")); label_cell('', 'style="text-align: center;" '); button_cell("{$this->name}Download[{$de['id']}]", _("Download"), false, ICON_DOWN); delete_button_cell("{$this->name}Delete[{$de['id']}]", _("Delete")); end_row(); } } end_table(1); } function editor_view(){ //global $Ajax; br(); div_start('Attachment_Details'); start_outer_table(TABLESTYLE); table_section(1); table_section_title(_("Attachment Detail")); if($this->selected_id != null && $this->selected_id != "") { $sql = "SELECT * FROM ".TB_PREF."attachments WHERE id = ".db_escape($this->selected_id); $row = db_fetch(db_query($sql), "Cannot retrieve attachment $this->selected_id"); hidden('unique_name', $row['unique_name']); $_POST['tran_date'] = sql2date($row['tran_date']); $_POST['title'] = $row['description']; $_POST['trans_no'] = $row['trans_no']; } else { $_POST['trans_no'] = $this->entity; $_POST['tran_date'] = Today(); hidden('unique_name', ''); } $type_no= $_GET['type_no']; if($type_no==ST_CUSTOMER) // 5 $id_word = _("Customer ID"); elseif($type_no==ST_SUPPLIER) // 6 $id_word = _("Supplier ID"); label_row(_($id_word), $_POST['trans_no']); date_row(_("Date"), 'tran_date'); text_row_ex(_("Docs Title").':', 'description', 40); if ($this->selected_id) label_row(_("File:"), sprintf(_("%s [%s bytes]"), $row['filename'], $row['filesize'])); file_row( ($this->selected_id ? _("File change") : _("Select file")) . ":", 'file_attachment_name', 'file_attachment_name'); hidden('type_no', $_GET['type_no']); end_outer_table(1); div_end(); } function _bottom_controls() { $title=false; $async='both'; $base=$this->name; $cancel = $async; if ($async === 'both') { $async = 'default'; $cancel = 'cancel'; } else if ($async === 'default') $cancel = true; else if ($async === 'cancel') $async = true; echo "
"; if ($this->Mode == '' || $this->Mode == 'RESET') submit("{$base}NEW", _("Add new"), true, $title, $async); else { if ($this->Mode == 'NEW' || $this->selected_id==$this->_none) submit("{$base}ADD", _("Add"), true, $title, $async); else { submit("{$base}UPDATE[{$this->selected_id}]", _("Update"), true, _("Submit changes"), $async); } submit("{$base}RESET", _("Cancel"), true, _("Cancel edition"), $cancel); } echo "
"; } function db_insert() { $dat = $this->data; if(!isset($max_image_size)) $max_image_size = 5000; $upload_file = ""; if (isset($_FILES['file_attachment_name']) && $_FILES['file_attachment_name']['name'] <> '') { $result = $_FILES['file_attachment_name']['error']; $upload_file = 'Yes'; $attr_dir = company_path().'/attachments' ; if (!file_exists($attr_dir)){ mkdir($attr_dir); } $attach_dir = $attr_dir; if (!file_exists($attach_dir)){ mkdir($attach_dir); } if(isset($_POST['unique_name']) && $_POST['unique_name'] <> '') $attachment_file_name = $_POST['unique_name']; else $attachment_file_name = uniqid(); $filesize = $_FILES['file_attachment_name']['size']; $filetype = $_FILES['file_attachment_name']['type']; $filename = $attach_dir."/".$attachment_file_name; if (file_exists($filename)){ $result = unlink($filename); if (!$result) { display_error(_('The existing Docs could not be removed')); $upload_file ='No'; } } if ($upload_file == 'Yes'){ $actual_file_nam = $_FILES['file_attachment_name']['name']; $result = move_uploaded_file($_FILES['file_attachment_name']['tmp_name'], $filename); $sql = "INSERT INTO ".TB_PREF."attachments (trans_no, type_no, `description`, `filename`, unique_name, tran_date, `filesize`, `filetype`) VALUES (" . db_escape($this->entity) . "," . db_escape($dat['type_no']) . "," . db_escape($_POST['description']) . "," . db_escape($actual_file_nam) . "," . db_escape($attachment_file_name) . "," . db_escape(date2sql($_POST['tran_date'])) . "," . db_escape($filesize) . "," . db_escape($filetype) . ")"; if(db_query($sql, 'Could not add Attachment')) display_notification(_("A New Attachment Added Successfully")); } } } function db_update() { $dat = $this->data; if(!isset($max_image_size)) $max_image_size = 5000; $upload_file = ""; if (isset($_FILES['file_attachment_name']) && $_FILES['file_attachment_name']['name'] != '') { $result = $_FILES['file_attachment_name']['error']; $upload_file = 'Yes'; $attr_dir = company_path().'/attachments' ; if (!file_exists($attr_dir)){ mkdir($attr_dir); } $attach_dir = $attr_dir; if (!file_exists($attach_dir)){ mkdir($attach_dir); } if(isset($_POST['unique_name']) && $_POST['unique_name'] == '') $attachment_file_name = uniqid(); else $attachment_file_name = $_POST['unique_name']; $filesize = $_FILES['file_attachment_name']['size']; $filetype = $_FILES['file_attachment_name']['type']; $filename = $attach_dir."/".$attachment_file_name; if (file_exists($filename)){ $result = unlink($filename); if (!$result) { display_error(_('The existing Docs could not be removed')); $upload_file ='No'; } } if ($upload_file == 'Yes'){ $actual_file_nam = $_FILES['file_attachment_name']['name']; $result = move_uploaded_file($_FILES['file_attachment_name']['tmp_name'], $filename); } } $sql = "UPDATE ".TB_PREF."attachments SET " . "trans_no = " . db_escape($this->entity) . "," . "type_no = " . db_escape($dat['type_no']) . "," . "`description` = " . db_escape($_POST['description']) . "," . "tran_date = " . db_escape(date2sql($_POST['tran_date'])); if ($upload_file == 'Yes') $sql .= ", unique_name = " . db_escape($attachment_file_name) . "," . "`filename` = " . db_escape($actual_file_nam) . "," . "`filesize` = " . db_escape($filesize) . "," . "`filetype` = " . db_escape($filetype); $sql .= " WHERE id = " . db_escape($this->selected_id); if(db_query($sql, "Could not Update Attachment $this->selected_id")) display_notification(_("The Selected Attachment $this->selected_id Updated Successfully")); } function insert_check() { if (strlen($_POST['description']) == 0) { display_error(_("Description cannot be empty.")); set_focus('description'); return false; } return true; } function db_read() { $sql = "SELECT * FROM ".TB_PREF."attachments WHERE id=".db_escape($this->selected_id); $result = db_query($sql, "Could not get all data from ".TB_PREF."attachments table"); $attachments = Array(); return db_fetch_assoc($result); } function delete_check() { return true; } // // Delete all attachments for Customer / Supplier in current class/entity // function db_delete() { $sql = "SELECT * FROM ".TB_PREF."attachments WHERE id = ".db_escape($this->selected_id); $row = db_fetch(db_query($sql), "Cannot retrieve attachment $this->selected_id"); $dir = company_path()."/attachments"; if ($row['unique_name'] && file_exists($dir."/".$row['unique_name'])) unlink($dir."/".$row['unique_name']); $sql = "DELETE FROM ".TB_PREF."attachments WHERE id = ".db_escape($this->selected_id); if(db_query($sql, "Could not Delete Attachment $this->selected_id")) display_notification(_("The Selected Attachment is Deleted Successfully")); return false; } }