Server IP : 192.185.129.71 / Your IP : 3.128.181.81 Web Server : Apache System : Linux bh-ht-3.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : svymadmin ( 4072) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home4/svymadmin/public_html/vivekaexcel.edu.in/bkp/application/libraries/import/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php defined('BASEPATH') or exit('No direct script access allowed'); require_once(APPPATH . 'libraries/import/App_import.php'); class Import_items extends App_import { protected $notImportableFields = ['id']; protected $requiredFields = ['description', 'rate']; public function __construct() { $this->addItemsGuidelines(); parent::__construct(); } public function perform() { $this->initialize(); $databaseFields = $this->getImportableDatabaseFields(); $totalDatabaseFields = count($databaseFields); foreach ($this->getRows() as $rowNumber => $row) { $insert = []; for ($i = 0; $i < $totalDatabaseFields; $i++) { $row[$i] = $this->checkNullValueAddedByUser($row[$i]); if ($databaseFields[$i] == 'description' && $row[$i] == '') { $row[$i] = '/'; } elseif (startsWith($databaseFields[$i], 'rate') && !is_numeric($row[$i])) { $row[$i] = 0; } elseif ($databaseFields[$i] == 'group_id') { $row[$i] = $this->groupValue($row[$i]); } elseif ($databaseFields[$i] == 'tax' || $databaseFields[$i] == 'tax2') { $row[$i] = $this->taxValue($row[$i]); } $insert[$databaseFields[$i]] = $row[$i]; } $insert = $this->trimInsertValues($insert); if (count($insert) > 0) { $this->incrementImported(); if (!empty($insert['tax2']) && empty($insert['tax'])) { $insert['tax'] = $insert['tax2']; $insert['tax2'] = 0; } $id = null; if (!$this->isSimulation()) { $this->ci->db->insert(db_prefix().'items', $insert); $id = $this->ci->db->insert_id(); } else { $this->simulationData[$rowNumber] = $this->formatValuesForSimulation($insert); } $this->handleCustomFieldsInsert($id, $row, $i, $rowNumber, 'items_pr'); } if ($this->isSimulation() && $rowNumber >= $this->maxSimulationRows) { break; } } } public function formatFieldNameForHeading($field) { $this->ci->load->model('currencies_model'); if (strtolower($field) == 'group_id') { return 'Group'; } elseif (startsWith($field, 'rate')) { $str = 'Rate - '; // Base currency if ($field == 'rate') { $str .= $this->ci->currencies_model->get_base_currency()->name; } else { $str .= $this->ci->currencies_model->get(strafter($field, 'rate_currency_'))->name; } return $str; } return parent::formatFieldNameForHeading($field); } protected function failureRedirectURL() { return admin_url('invoice_items/import'); } private function addItemsGuidelines() { $this->addImportGuidelinesInfo('In the column <b>Tax</b> and <b>Tax2</b>, you <b>must</b> add either the <b>TAX NAME or the TAX ID</b>, which you can get them by navigating to <a href="' . admin_url('taxes') . '" target="_blank">Setup->Finance->Taxes</a>.'); $this->addImportGuidelinesInfo('In the column <b>Group</b>, you <b>must</b> add either the <b>GROUP NAME or the GROUP ID</b>, which you can get them by clicking <a href="' . admin_url('invoice_items?groups_modal=true') . '" target="_blank">here</a>.'); } private function formatValuesForSimulation($values) { foreach ($values as $column => $val) { if ($column == 'group_id' && !empty($val) && is_numeric($val)) { $group = $this->getGroupBy('id', $val); if ($group) { $values[$column] = $group->name; } } elseif (($column == 'tax' || $column == 'tax2') && !empty($val) && is_numeric($val)) { $tax = $this->getTaxBy('id', $val); if ($tax) { $values[$column] = $tax->name . ' (' . $tax->taxrate . '%)'; } } } return $values; } private function getTaxBy($field, $idOrName) { $this->ci->db->where($field, $idOrName); return $this->ci->db->get(db_prefix().'taxes')->row(); } private function getGroupBy($field, $idOrName) { $this->ci->db->where($field, $idOrName); return $this->ci->db->get(db_prefix().'items_groups')->row(); } private function taxValue($value) { if ($value != '') { if (!is_numeric($value)) { $tax = $this->getTaxBy('name', $value); $value = $tax ? $tax->id : 0; } } else { $value = 0; } return $value; } private function groupValue($value) { if ($value != '') { if (!is_numeric($value)) { $group = $this->getGroupBy('name', $value); $value = $group ? $group->id : 0; } } else { $value = 0; } return $value; } }