Files
crm.twinpol.com/modules/EcmSysInfos/EcmSysInfo.php
2025-05-12 15:44:39 +00:00

870 lines
38 KiB
PHP

<?php
/* * *******************************************************************************
* SugarCRM is a customer relationship management program developed by
* SugarCRM, Inc. Copyright (C) 2004-2010 SugarCRM Inc.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License version 3 as published by the
* Free Software Foundation with the addition of the following permission added
* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
* IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along with
* this program; if not, see http://www.gnu.org/licenses or write to the Free
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*
* You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
* SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "Powered by
* SugarCRM" logo. If the display of the logo is not reasonably feasible for
* technical reasons, the Appropriate Legal Notices must display the words
* "Powered by SugarCRM".
* ****************************************************************************** */
/**
* THIS CLASS IS FOR DEVELOPERS TO MAKE CUSTOMIZATIONS IN
*/
class EcmSysInfo extends SugarBean {
var $new_schema = true;
var $module_dir = 'EcmSysInfos';
var $object_name = 'EcmSysInfo';
var $table_name = 'ecmsysinfos';
var $importable = false;
var $disable_row_level_security = true; // to ensure that modules created and deployed under CE will continue to function under team security if the instance is upgraded to PRO
var $id;
var $date_entered;
var $date_modified;
var $modified_user_id;
var $modified_by_name;
var $created_by;
var $created_by_name;
var $description;
var $deleted;
var $created_by_link;
var $modified_user_link;
var $assigned_user_id;
var $assigned_user_name;
var $assigned_user_link;
var $phone_home;
var $phone_mobile;
var $phone_work;
var $email1;
var $email2;
var $adress;
var $banks;
var $primary_mail;
var $phone_fax;
var $name_bank;
var $invoice_number_format;
var $invoice_number_format_id;
var $short_name;
var $short_name_id;
var $smsApi_id;
var $name;
var $name_id;
var $nip;
var $nip_id;
var $regon;
var $regon_id;
var $www;
var $www_id;
var $register_adress;
var $correspondence_adress;
var $krs;
var $krs_id;
var $contact_info;
function EcmSysInfo() {
parent::SugarBean();
$this->fill_operating_values();
$query = 'SELECT * FROM operating_values WHERE name = "firmInfo" AND module_name="EcmSysInfos"';
$return = $this->db->query($query);
$this->setBanks();
$this->setAdress();
$this->setContactInfo();
while ($row = $this->db->fetchByAssoc($return)) {
switch ($row['value0']) {
case 'short_name':
$this->short_name = $row['value9'];
$this->short_name_id = $row['id'];
break;
case 'smsApi':
$this->smsApi_id = $row['id'];
break;
case 'name':
$this->name = $row['value9'];
$this->name_id = $row['id'];
break;
case 'InvoiceNumberFormat':
$this->invoice_number_format = $row['value9'];
$this->invoice_number_format_id = $row['id'];
break;
case 'Regon':
$this->regon = $row['value9'];
$this->regon_id = $row['id'];
break;
case 'Nip':
$this->nip = $row['value9'];
$this->nip_id = $row['id'];
break;
case 'WWW':
$this->www = $row['value9'];
$this->www_id = $row['id'];
break;
case 'Krs':
$this->krs = $row['value9'];
$this->krs_id = $row['id'];
break;
case 'RegisterAdress':
$this->register_adress = array();
$this->register_adress['ID'] = $row['id'];
$this->register_adress['STREET'] = $row['value1'];
$this->register_adress['LOCAL'] = $row['value2'];
$this->register_adress['HOME'] = $row['value3'];
$this->register_adress['CITY'] = $row['value4'];
$this->register_adress['POSTALCODE'] = $row['value5'];
$this->register_adress['MAIL'] = $row['value6'];
$this->register_adress['COMMUNITY'] = $row['value7'];
$this->register_adress['DISTRICT'] = $row['value8'];
$this->register_adress['STATE'] = $row['value9'];
$this->register_adress['COUNTRY'] = $row['text0'];
break;
case 'CorrespondenceAdress':
$this->correspondence_adress = array();
$this->correspondence_adress['ID'] = $row['id'];
$this->correspondence_adress['STREET'] = $row['value1'];
$this->correspondence_adress['LOCAL'] = $row['value2'];
$this->correspondence_adress['HOME'] = $row['value3'];
$this->correspondence_adress['CITY'] = $row['value4'];
$this->correspondence_adress['POSTALCODE'] = $row['value5'];
$this->correspondence_adress['MAIL'] = $row['value6'];
$this->correspondence_adress['COMMUNITY'] = $row['value7'];
$this->correspondence_adress['DISTRICT'] = $row['value8'];
$this->correspondence_adress['STATE'] = $row['value9'];
$this->correspondence_adress['COUNTRY'] = $row['text0'];
break;
default:
break;
}
}
}
function getDatabaseName(){
global $sugar_config,$current_user;
$link = mysql_connect($sugar_config['dbconfig']['db_host_name'],$sugar_config['dbconfig']['db_user_name'],$sugar_config['dbconfig']['db_password']);
mysql_select_db($sugar_config['dbconfig']['db_name'],$link);
$d=mysql_query("select dbasename from users where id='".$current_user->id."'",$link);
$dbase=mysql_fetch_array($d);
return $dbase['dbasename'];
}
function fill_operating_values(){
//Sprawdzamy numeracje
$query = "SELECT value0 FROM operating_values WHERE name ='InvoiceNumberFormat'";
$return = $this->db->query($query);
$insertData = [
['name' => 'InvoiceNumberFormat','value0' =>''],
['name' => 'InvoiceNumberFormat','value0' =>'{n}/{Y}'],
['name' => 'InvoiceNumberFormat','value0' =>'{n}/{y}'],
['name' => 'InvoiceNumberFormat','value0' =>'{n}/{U}/{Y}'],
['name' => 'InvoiceNumberFormat','value0' =>'{n}/{m}/{y}'],
['name' => 'InvoiceNumberFormat','value0' =>'Nistandardowe'],
];
$returnData = array();
while ($row = $this->db->fetchByAssoc($return)) {
$returnData[$row['value0']] = true;
}
foreach($insertData as $key => $value){
if($returnData[$value['value0']] != true){
$keys = array_keys($value);
$values = array_values($value);
$insertQuery = "INSERT INTO operating_values (" . implode(",",$keys) . ") VALUES ('" . implode("','",$values) . "');";
$this->db->query($insertQuery);
}
}
//Nagłówki
//Pobieram podstawową numerację
$query = "SELECT id FROM operating_values WHERE name ='InvoiceNumberFormat' AND value0='{n}/{Y}'";
$return = $this->db->query($query);
$row = $this->db->fetchByAssoc($return);
$numerId = $row['id'];
//Sprawdzamy dla jezyka polskiego
$query = "SELECT value0 FROM operating_values WHERE name ='headersDocuments' AND value4='pl_pl'";
$return = $this->db->query($query);
$insertData = [
['name' => 'headersDocuments', 'value0' => 'Faktura', 'value1' =>$numerId, 'value2' => 'EcmInvoiceOuts', 'value3' => '01', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Paragon', 'value1' =>$numerId, 'value2' => 'EcmReceipts', 'value3' => '02', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Faktura z paragonu', 'value1' =>$numerId, 'value2' => 'EcmReceiptsToInvoiceOuts', 'value3' => '03', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Oferta', 'value1' =>$numerId, 'value2' => 'EcmQuotes', 'value3' => '04', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Zamówienie sprzedaży', 'value1' =>$numerId, 'value2' => 'EcmSales', 'value3' => '05', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Zamówienie zakupu', 'value1' =>$numerId, 'value2' => 'EcmPurchaseOrders', 'value3' => '06', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'KS', 'value1' =>$numerId, 'value2' => 'EcmStockDocCorrects', 'value3' => '07', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'PZ', 'value1' =>$numerId, 'value2' => 'EcmStockDocIns', 'value3' => '08', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'WZ', 'value1' =>$numerId, 'value2' => 'EcmStockDocOuts', 'value3' => '09', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'PW', 'value1' =>$numerId, 'value2' => 'EcmStockDocInsideIns', 'value3' => '10', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'MM', 'value1' =>$numerId, 'value2' => 'EcmStockDocMoves', 'value3' => '11', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'RW', 'value1' =>$numerId, 'value2' => 'EcmStockDocInsideOuts', 'value3' => '12', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'KP', 'value1' =>$numerId, 'value2' => 'EcmNewKpkwsReceived', 'value3' => '13', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'KW', 'value1' =>$numerId, 'value2' => 'EcmNewKpkwsGave', 'value3' => '14', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Faktury zaliczkowe', 'value1' =>$numerId, 'value2' => 'EcmPrepaymentInvoices', 'value3' => '15', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Umowy', 'value1' =>$numerId, 'value2' => 'EcmAgreements', 'value3' => '16', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Zlecenie serwisowe', 'value1' =>$numerId, 'value2' => 'EcmServiceNews', 'value3' => '17', 'value4' => 'pl_pl', 'module_name' => 'EcmSysInfos'],
];
$returnData = array();
while ($row = $this->db->fetchByAssoc($return)) {
$returnData[$row['value0']] = true;
}
foreach($insertData as $key => $value){
if($returnData[$value['value0']] != true){
$keys = array_keys($value);
$values = array_values($value);
$insertQuery = "INSERT INTO operating_values (" . implode(",",$keys) . ") VALUES ('" . implode("','",$values) . "');";
$this->db->query($insertQuery);
}
}
//Sprawdzamy dla jezyka angielskiego
$query = "SELECT value0 FROM operating_values WHERE name ='headersDocuments' AND value4='en_us'";
$return = $this->db->query($query);
$insertData = [
['name' => 'headersDocuments', 'value0' => 'Faktura', 'value1' =>$numerId, 'value2' => 'EcmInvoiceOuts', 'value3' => '01', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Paragon', 'value1' =>$numerId, 'value2' => 'EcmReceipts', 'value3' => '02', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Faktura z paragonu', 'value1' =>$numerId, 'value2' => 'EcmReceiptsToInvoiceOuts', 'value3' => '03', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Oferta', 'value1' =>$numerId, 'value2' => 'EcmQuotes', 'value3' => '04', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Zamówienie sprzedaży', 'value1' =>$numerId, 'value2' => 'EcmSales', 'value3' => '05', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Zamówienie zakupu', 'value1' =>$numerId, 'value2' => 'EcmPurchaseOrders', 'value3' => '06', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'KS', 'value1' =>$numerId, 'value2' => 'EcmStockDocCorrects', 'value3' => '07', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'PZ', 'value1' =>$numerId, 'value2' => 'EcmStockDocIns', 'value3' => '08', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'WZ', 'value1' =>$numerId, 'value2' => 'EcmStockDocOuts', 'value3' => '09', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'PW', 'value1' =>$numerId, 'value2' => 'EcmStockDocInsideIns', 'value3' => '10', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'MM', 'value1' =>$numerId, 'value2' => 'EcmStockDocMoves', 'value3' => '11', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'RW', 'value1' =>$numerId, 'value2' => 'EcmStockDocInsideOuts', 'value3' => '12', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'KP', 'value1' =>$numerId, 'value2' => 'EcmNewKpkwsReceived', 'value3' => '13', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'KW', 'value1' =>$numerId, 'value2' => 'EcmNewKpkwsGave', 'value3' => '14', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Faktury zaliczkowe', 'value1' =>$numerId, 'value2' => 'EcmPrepaymentInvoices', 'value3' => '15', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Umowy', 'value1' =>$numerId, 'value2' => 'EcmAgreements', 'value3' => '16', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
['name' => 'headersDocuments', 'value0' => 'Zlecenie serwisowe', 'value1' =>$numerId, 'value2' => 'EcmServiceNews', 'value3' => '17', 'value4' => 'en_us', 'module_name' => 'EcmSysInfos'],
];
$returnData = array();
while ($row = $this->db->fetchByAssoc($return)) {
$returnData[$row['value0']] = true;
}
foreach($insertData as $key => $value){
if($returnData[$value['value0']] != true){
$keys = array_keys($value);
$values = array_values($value);
$insertQuery = "INSERT INTO operating_values (" . implode(",",$keys) . ") VALUES ('" . implode("','",$values) . "');";
$this->db->query($insertQuery);
}
}
//Autonumeracja
$query = "SELECT name FROM operating_values WHERE value2 ='Auto_increment'";
$return = $this->db->query($query);
$insertData = [
['name' => 'ecmproductsCodeIncrement', 'value0' => '0','value2'=>'Auto_increment', 'module_name' => 'EcmProducts'],
['name' => 'PartNumber', 'value0' => '0', 'value2' => 'Auto_increment', 'module_name' => 'EcmProducts'],
];
while ($row = $this->db->fetchByAssoc($return)) {
$returnData[$row['name']] = true;
}
foreach($insertData as $key => $value){
if($returnData[$value['name']] != true){
$keys = array_keys($value);
$values = array_values($value);
$insertQuery = "INSERT INTO operating_values (" . implode(",",$keys) . ") VALUES ('" . implode("','",$values) . "');";
$this->db->query($insertQuery);
}
}
}
function bean_implements($interface) {
switch ($interface) {
case 'ACL': return true;
}
return false;
}
function getNotificationSettings(){
$db=$GLOBALS['db'];
$query="select * from operating_values where value0='smsApi'";
$res=$db->query($query);
return $db->fetchByAssoc($res);
}
function saveNotificationSettings(){
$query = '';
if ($this->smsApi_id == null) {
$query = 'INSERT INTO operating_values (name,value0,value1,value2,value3,value4,value5,value6,value7,value8,value9,module_name) VALUES ("firmInfo","smsApi","' . $_POST['api_login'] . '","' . $_POST['api_password'] . '","' . $_POST['api_from'] . '","' . $_POST['prevent_first'] . '","' . $_POST['prevent_second'] . '","' . $_POST['debt_first'] . '","' . $_POST['debt_other'] . '","' . $_POST['send_sms'] . '","' . $_POST['send_email'] . '","EcmSysInfos")';
} else {
$query = 'UPDATE operating_values SET value1="' . $_POST['api_login'] . '",value2="' . $_POST['api_password'] . '",value3="' . $_POST['api_from'] . '",value4="' . $_POST['prevent_first'] . '",value5="' . $_POST['prevent_second'] . '",value6="' . $_POST['debt_first'] . '",value7="' . $_POST['debt_other'] . '",value8="' . $_POST['send_sms'] . '",value9="' . $_POST['send_email'] . '" where id="' . $this->smsApi_id . '"';
}
$this->db->query($query);
}
function saveShortName($short_name) {
$this->short_name = trim($short_name);
$query = '';
if ($this->short_name_id == null) {
$query = 'INSERT INTO operating_values (name,value0,value9,module_name) VALUES ("firmInfo","short_name","' . $this->short_name . '", "EcmSysInfos")';
} else {
$query = 'UPDATE operating_values SET value9="' . $this->short_name . '" where id="' . $this->short_name_id . '"';
}
$this->db->query($query);
}
function saveKrs($krs) {
$this->krs = trim($krs);
$query = '';
if ($this->krs_id == null) {
$query = 'INSERT INTO operating_values (name,value0,value9,module_name) VALUES ("firmInfo","Krs","' . $this->krs . '", "EcmSysInfos")';
} else {
$query = 'UPDATE operating_values SET value9="' . $this->krs . '" where id="' . $this->krs_id . '"';
}
$this->db->query($query);
}
function saveName($name) {
$this->name = trim($name);
$query = '';
if ($this->name_id == null) {
$query = 'INSERT INTO operating_values (name,value0,value9,module_name) VALUES ("firmInfo","name","' . $this->name . '", "EcmSysInfos")';
} else {
$query = 'UPDATE operating_values SET value9="' . $this->name . '" where id="' . $this->name_id . '"';
}
$this->db->query($query);
}
function saveInvoiceNumberFormat($invoice_number_format) {
$this->invoice_number_format = trim($invoice_number_format);
$query = '';
if ($this->invoice_number_format_id == null) {
$query = 'INSERT INTO operating_values (name,value0,value9,module_name) VALUES ("firmInfo","InvoiceNumberFormat","' . $this->invoice_number_format . '", "EcmSysInfos")';
} else {
$query = 'UPDATE operating_values SET value9="' . $this->invoice_number_format . '" where id="' . $this->invoice_number_format_id . '"';
}
$this->db->query($query);
}
function saveNip($nip) {
$this->nip = trim($nip);
$query = '';
if ($this->nip_id == null) {
$query = 'INSERT INTO operating_values (name,value0,value9,module_name) VALUES ("firmInfo","Nip","' . $this->nip . '", "EcmSysInfos")';
} else {
$query = 'UPDATE operating_values SET value9="' . $this->nip . '" where id="' . $this->nip_id . '"';
}
$this->db->query($query);
}
function saveFile(){
try {
// Undefined | Multiple Files | $_FILES Corruption Attack
// If this request falls under any of them, treat it invalid.
if (
!isset($_FILES['upfile']['error']) ||
is_array($_FILES['upfile']['error'])
) {
throw new RuntimeException('Invalid parameters.');
}
// Check $_FILES['upfile']['error'] value.
switch ($_FILES['upfile']['error']) {
case UPLOAD_ERR_OK:
break;
case UPLOAD_ERR_NO_FILE:
throw new RuntimeException('');
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
throw new RuntimeException('Exceeded filesize limit.');
default:
throw new RuntimeException('Unknown errors.');
}
// You should also check filesize here.
if ($_FILES['upfile']['size'] > 1000000) {
throw new RuntimeException('Exceeded filesize limit.');
}
// DO NOT TRUST $_FILES['upfile']['mime'] VALUE !!
// Check MIME Type by yourself.
$finfo = new finfo(FILEINFO_MIME_TYPE);
if (false === $ext = array_search(
$finfo->file($_FILES['upfile']['tmp_name']),
array(
'jpg' => 'image/jpeg',
'png' => 'image/png',
'gif' => 'image/gif',
),
true
)) {
throw new RuntimeException('Invalid file format.');
}
// You should name it uniquely.
// DO NOT USE $_FILES['upfile']['name'] WITHOUT ANY VALIDATION !!
// On this example, obtain safe unique name from its binary data.
$name= create_guid();
if (!move_uploaded_file(
$_FILES['upfile']['tmp_name'],
sprintf('upload/%s.%s',
$name,
$ext
)
)) {
throw new RuntimeException('Failed to move uploaded file.');
} else {
$query="update operating_values set value7='".$name.'.'.$ext."' where id=19";
$this->db->query($query);
}
} catch (RuntimeException $e) {
echo $e->getMessage();
}
}
function getLogo(){
$z=$this->db->query('select value7 from operating_values where id=19');
$bb=$this->db->fetchByAssoc($z);
return $bb['value7'];
}
function saveBanks($banks) {
$arrayin = array();
foreach ($banks as $key => $value) {
if (!isset($value['ID']) || $value['ID'] == '') {
$query = 'INSERT INTO operating_values (name,value0,value3,value2,value4,value5,
value7,value8,value9,module_name) VALUES ("firmInfo","bankAccount","' . $value['CURRENCY'] . '","' . $value['NAMESHORT'] . '","' . $value['SWIFT'] . '","' . trim($value['IBAN']) . '","' . trim($value['POSITION']) . '","' . trim($value['NAME']) . '","' . trim($value['NUMBER']) . '", "EcmSysInfos")';
$this->db->query($query);
$query = 'SELECT id FROM operating_values WHERE name="firmInfo" AND value0="bankAccount" AND module_name = "EcmSysInfos" AND ';
$query .= '" AND value9 = "' . trim($value['NUMBER']);
$query .= '" AND value8 = "' . trim($value['NAME']);
$query .= '" AND value3 = "' . trim($value['CURRENCY']);
$query .= '" AND value4 = "' . trim($value['SWIFT']);
$query .= '" AND value5 = "' . trim($value['IBAN']);
$query .= '" AND value2 = "' . trim($value['NAMESHORT']);
$query .= '" AND value7 = "' . $value['POSITION'] . '"';
$return = $this->db->query($query);
$row = $this->db->fetchByAssoc($return);
$arrayin[] = $row['id'];
} else {
$query = 'UPDATE operating_values SET value7 = "' . $value['POSITION'] . '",value2 = "' . $value['NAMESHORT'] . '", value8 = "' . trim($value['NAME']) . '", value9 = "' . trim($value['NUMBER']) . '"
, value3 = "' . trim($value['CURRENCY']) . '"
, value4 = "' . trim($value['SWIFT']) . '"
, value5 = "' . trim($value['IBAN']) . '" where id="' . $value['ID'] . '"';
$this->db->query($query);
$arrayin[] = $value['ID'];
}
}
$stringIn = '(';
//delete old adress
if (count($arrayin) > 0) {
foreach ($arrayin as $key => $value) {
if ($key == 0) {
$stringIn .=$value;
} else {
$stringIn .= ',' . $value;
}
}
$stringIn .= ')';
$query = 'DELETE FROM operating_values WHERE id NOT IN ' . $stringIn . ' AND name="firmInfo" AND value0="bankAccount" AND module_name = "EcmSysInfos"';
$this->db->query($query);
}
$this->setBanks();
}
function saveRegon($regon) {
$this->regon = trim($regon);
$query = '';
if ($this->regon_id == null) {
$query = 'INSERT INTO operating_values (name,value0,value9,module_name) VALUES ("firmInfo","Regon","' . $this->regon . '", "EcmSysInfos")';
} else {
$query = 'UPDATE operating_values SET value9="' . $this->regon . '" where id="' . $this->regon_id . '"';
}
$this->db->query($query);
}
function saveAdress($adress) {
$arrayin = array();
foreach ($adress as $key => $value) {
if (!isset($value['ID']) || $value['ID'] == '') {
$query = 'INSERT INTO operating_values (name,value0,module_name,value2,value3,value4,value5,value6,value7) ';
$query .= 'VALUES ("firmInfo","Adress", "EcmSysInfos","';
$query .= $value['POSITION'] . '","'; // value2
$query .= trim($value['NAME']) . '","';
$query .= trim($value['STREET']) . '","';
$query .= trim($value['CITY']) . '","';
$query .= trim($value['POSTALCODE']) . '","';
$query .= trim($value['COUNTRY']) . '"';
$query .= ')';
$this->db->query($query);
$query = 'SELECT id FROM operating_values WHERE name="firmInfo" AND value0="Adress" AND module_name = "EcmSysInfos" AND ';
$query .= ' value2 = "' . $value['POSITION'];
$query .= '" AND value3 = "' . trim($value['NAME']);
$query .= '" AND value4 = "' . trim($value['STREET']);
$query .= '" AND value5 = "' . trim($value['CITY']);
$query .= '" AND value6 = "' . trim($value['POSTALCODE']);
$query .= '" AND value7 = "' . trim($value['COUNTRY']) . '"';
$return = $this->db->query($query);
$row = $this->db->fetchByAssoc($return);
$arrayin[] = $row['id'];
} else {
$query = 'UPDATE operating_values SET ';
$query .= ' value2 = "' . $value['POSITION'];
$query .= '", value3 = "' . trim($value['NAME']);
$query .= '", value4 = "' . trim($value['STREET']);
$query .= '", value5 = "' . trim($value['CITY']);
$query .= '", value6 = "' . trim($value['POSTALCODE']);
$query .= '", value7 = "' . trim($value['COUNTRY']);
$query .= '" WHERE id="' . $value['ID'] . '"';
$this->db->query($query);
$arrayin[] = $value['ID'];
}
}
$stringIn = '(';
//delete old adress
if (count($arrayin) > 0) {
foreach ($arrayin as $key => $value) {
if ($key == 0) {
$stringIn .=$value;
} else {
$stringIn .= ',' . $value;
}
}
$stringIn .= ')';
$query = 'DELETE FROM operating_values WHERE id NOT IN ' . $stringIn . ' AND name="firmInfo" AND value0="Adress" AND module_name = "EcmSysInfos"';
$this->db->query($query);
}
$this->setAdress();
}
function saveWWW($www) {
$this->www = trim($www);
$query = '';
if ($this->www_id == null) {
$query = 'INSERT INTO operating_values (name,value0,value9,module_name) VALUES ("firmInfo","WWW","' . $this->www . '", "EcmSysInfos")';
} else {
$query = 'UPDATE operating_values SET value9="' . $this->www . '" where id="' . $this->www_id . '"';
}
$this->db->query($query);
}
function saveRegisterAdress($register_adress) {
$this->register_adress = $register_adress;
$query = '';
if ($this->register_adress['ID'] == null || $this->register_adress['ID'] == '') {
$query = 'INSERT INTO operating_values (name,module_name,value0,value1,value2,value3,value4,value5,value6,value7,value8,value9,text0) '
. ' VALUES ("firmInfo","EcmSysInfos","RegisterAdress",'
. '"' . trim($this->register_adress['STREET']) . '",'
. '"' . trim($this->register_adress['LOCAL']) . '",'
. '"' . trim($this->register_adress['HOME']) . '",'
. '"' . trim($this->register_adress['CITY']) . '",'
. '"' . trim($this->register_adress['POSTALCODE']) . '",'
. '"' . trim($this->register_adress['MAIL']) . '",'
. '"' . trim($this->register_adress['COMMUNITY']) . '",'
. '"' . trim($this->register_adress['DISTRICT']) . '",'
. '"' . trim($this->register_adress['STATE']) . '",'
. '"' . trim($this->register_adress['COUNTRY']) . '"'
. ')';
} else {
$query = 'UPDATE operating_values SET '
. 'value1="' . trim($this->register_adress['STREET']) . '"'
. ',value2="' . trim($this->register_adress['LOCAL']) . '"'
. ',value3="' . trim($this->register_adress['HOME']) . '"'
. ',value4="' . trim($this->register_adress['CITY']) . '"'
. ',value5="' . trim($this->register_adress['POSTALCODE']) . '"'
. ',value6="' . trim($this->register_adress['MAIL']) . '"'
. ',value7="' . trim($this->register_adress['COMMUNITY']) . '"'
. ',value8="' . trim($this->register_adress['DISTRICT']) . '"'
. ',value9="' . trim($this->register_adress['STATE']) . '"'
. ',text0="' . trim($this->register_adress['COUNTRY']) . '"'
. ' WHERE id="' . $this->register_adress['ID'] . '"';
}
$this->db->query($query);
}
function saveCorrespondenceAdress($correspondence_adress) {
$this->correspondence_adress = $correspondence_adress;
$query = '';
if ($this->correspondence_adress['ID'] == null || $this->correspondence_adress['ID'] == '') {
$query = 'INSERT INTO operating_values (name,module_name,value0,value1,value2,value3,value4,value5,value6,value7,value8,value9,text0) '
. ' VALUES ("firmInfo","EcmSysInfos","CorrespondenceAdress",'
. '"' . trim($this->correspondence_adress['STREET']) . '",'
. '"' . trim($this->correspondence_adress['LOCAL']) . '",'
. '"' . trim($this->correspondence_adress['HOME']) . '",'
. '"' . trim($this->correspondence_adress['CITY']) . '",'
. '"' . trim($this->correspondence_adress['POSTALCODE']) . '",'
. '"' . trim($this->correspondence_adress['MAIL']) . '",'
. '"' . trim($this->correspondence_adress['COMMUNITY']) . '",'
. '"' . trim($this->correspondence_adress['DISTRICT']) . '",'
. '"' . trim($this->correspondence_adress['STATE']) . '",'
. '"' . trim($this->correspondence_adress['COUNTRY']) . '"'
. ')';
} else {
$query = 'UPDATE operating_values SET '
. 'value1="' . trim($this->correspondence_adress['STREET']) . '"'
. ',value2="' . trim($this->correspondence_adress['LOCAL']) . '"'
. ',value3="' . trim($this->correspondence_adress['HOME']) . '"'
. ',value4="' . trim($this->correspondence_adress['CITY']) . '"'
. ',value5="' . trim($this->correspondence_adress['POSTALCODE']) . '"'
. ',value6="' . trim($this->correspondence_adress['MAIL']) . '"'
. ',value7="' . trim($this->correspondence_adress['COMMUNITY']) . '"'
. ',value8="' . trim($this->correspondence_adress['DISTRICT']) . '"'
. ',value9="' . trim($this->correspondence_adress['STATE']) . '"'
. ',text0="' . trim($this->correspondence_adress['COUNTRY']) . '"'
. ' WHERE id="' . $this->correspondence_adress['ID'] . '"';
}
$this->db->query($query);
}
function saveEmailSettings() {
$query = 'UPDATE operating_values SET value1 = "' . $_POST['email_hostPort'] . '", value2 = "' .$_POST['email_login'] . '",
value3 = "' . $this->encrypt($_POST['email_password'],$_POST['email_login']) . '", value4 = "' .$_POST['email_address'] . '", value5 = "' .$_POST['autentication_type'] . '", value6="'.$_POST['email_address_replay'].'" where id="18"';
$this->db->query($query);
require_once 'include/ECM/EcmSendPdfButton/EcmSendPdfButton.inc';
$t = new EcmSendPdfButton('Users', '','','');
$t->setAdress('outtervision@gmail.com');
// $t->setAdress('slawomir.chojnicki@gmail.com');
$t->setSubject('test');
$t->setBody('asdasd');
$success = false;
$success= $t->sendEmail();
if($success==1){
return 1;
} else {
$query = 'UPDATE operating_values SET value1 = "", value2 = "", value3 = "" where id="18"';
// $this->db->query($query);
return 0;
}
}
function getEmailSettings(){
$query="select value1,value2,value3,value4,value5,value6 from operating_values where id=18";
$zap=$this->db->query($query);
$b=$this->db->fetchByAssoc($zap);
$b['value3']=$this->decrypt( $b['value3'], $b['value2']);
return $b;
}
public function encrypt($data, $secret)
{
//Generate a key from a hash
$key = md5(utf8_encode($secret), true);
//Take first 8 bytes of $key and append them to the end of $key.
$key .= substr($key, 0, 8);
//Pad for PKCS7
$blockSize = mcrypt_get_block_size('tripledes', 'ecb');
$len = strlen($data);
$pad = $blockSize - ($len % $blockSize);
$data .= str_repeat(chr($pad), $pad);
//Encrypt data
$encData = mcrypt_encrypt('tripledes', $key, $data, 'ecb');
return base64_encode($encData);
}
public function decrypt($data, $secret)
{
//Generate a key from a hash
$key = md5(utf8_encode($secret), true);
//Take first 8 bytes of $key and append them to the end of $key.
$key .= substr($key, 0, 8);
$data = base64_decode($data);
$data = mcrypt_decrypt('tripledes', $key, $data, 'ecb');
$block = mcrypt_get_block_size('tripledes', 'ecb');
$len = strlen($data);
$pad = ord($data[$len-1]);
return substr($data, 0, strlen($data) - $pad);
}
function saveContactInfo($contact) {
$arrayin = array();
foreach ($contact as $key => $value) {
if (!isset($value['ID']) || $value['ID'] == '') {
$query = 'INSERT INTO operating_values (name,value0,value7,value8,value9,module_name) VALUES ("firmInfo","ContactInfo","' . $value['POSITION'] . '","' . trim($value['NAME']) . '","' . trim($value['VALUE']) . '", "EcmSysInfos")';
$this->db->query($query);
$query = 'SELECT id FROM operating_values WHERE name="firmInfo" AND value0="ContactInfo" AND module_name = "EcmSysInfos" AND ';
$query .= '" AND value9 = "' . trim($value['VALUE']);
$query .= '" AND value8 = "' . trim($value['NAME']);
$query .= '" AND value7 = "' . $value['POSITION'] . '"';
$return = $this->db->query($query);
$row = $this->db->fetchByAssoc($return);
$arrayin[] = $row['id'];
} else {
$query = 'UPDATE operating_values SET value7 = "' . $value['POSITION'] . '", value8 = "' . trim($value['NAME']) . '", value9 = "' . trim($value['VALUE']) . '" where id="' . $value['ID'] . '"';
$this->db->query($query);
$arrayin[] = $value['ID'];
}
}
$stringIn = '(';
//delete old adress
if (count($arrayin) > 0) {
foreach ($arrayin as $key => $value) {
if ($key == 0) {
$stringIn .=$value;
} else {
$stringIn .= ',' . $value;
}
}
$stringIn .= ')';
$query = 'DELETE FROM operating_values WHERE id NOT IN ' . $stringIn . ' AND name="firmInfo" AND value0="ContactInfo" AND module_name = "EcmSysInfos"';
$this->db->query($query);
}
$this->setContactInfo();
}
function getKRS() {
return $this->krs;
}
function getFormatNumberForModule($modulename){
$return = $this->db->query("SELECT value0 FROM operating_values WHERE id = (SELECT value1 from operating_values WHERE value2='". $modulename ."' AND name='headersDocuments' AND module_name='EcmSysInfos' and value4='pl_pl')");
$row = $this->db->fetchByAssoc($return);
return $row['value0'];
}
function getHeaderForModule($modulename, $language='pl_pl'){
$return = $this->db->query("SELECT text0 from operating_values WHERE value2='". $modulename ."' AND value4='". $language ."'AND name='headersDocuments' AND module_name='EcmSysInfos'");
$row = $this->db->fetchByAssoc($return);
return html_entity_decode($row['text0']);
}
function getFooterForModule($modulename, $language='pl_pl'){
$return = $this->db->query("SELECT text1 from operating_values WHERE value2='". $modulename ."' AND value4='". $language ."' AND name='headersDocuments' AND module_name='EcmSysInfos'");
$row = $this->db->fetchByAssoc($return);
return html_entity_decode($row['text1']);
}
function getCorrespondenceAdress() {
return $this->correspondence_adress;
}
function getRegisterAdress() {
return $this->register_adress;
}
function getContactInfo() {
return $this->contact_info;
}
function getWWW() {
return $this->www;
}
function getRegon() {
return $this->regon;
}
function getNip() {
return $this->nip;
}
function getBanks() {
return $this->banks;
}
function getBankAccoutnsList() {
$tmp = array();
foreach ($this->banks as $key => $value) {
$tmp[] = $value['NUMBER'];
}
return $tmp;
}
function getShortName() {
return $this->short_name;
}
function getName() {
return $this->name;
}
function getInvoiceNumberFormat() {
return $this->invoice_number_format;
}
function getAdress() {
return $this->adress;
}
function setBanks() {
$query = 'SELECT id ID, value7 POSITION, value2 NAMESHORT, value8 NAME, value9 NUMBER, value3 CURRENCY, value4 SWIFT, value5 IBAN FROM operating_values WHERE name = "firmInfo" AND value0 = "bankAccount" AND module_name="EcmSysInfos" ORDER BY value7';
$return = $this->db->query($query);
$this->banks = array();
while ($row = $this->db->fetchByAssoc($return)) {
$this->banks[] = $row;
}
}
function getCurrencies(){
$zap=$this->db->query("select id,name from currencies where deleted=0");
$list=array();
$tmp['id']='PLN';
$tmp['name']='PLN';
$list[]=$tmp;
while($dane=$this->db->fetchByAssoc($zap)){
$list[]=$dane;
}
return $list;
}
function setAdress() {
$query = 'SELECT id ID, value2 POSITION, value3 NAME, value4 STREET, value5 CITY, value6 POSTALCODE, value7 COUNTRY, value8 PHONE, value9 FAX FROM operating_values WHERE name = "firmInfo" AND value0 = "Adress" AND module_name="EcmSysInfos" ORDER BY value2';
$return = $this->db->query($query);
$this->adress = array();
while ($row = $this->db->fetchByAssoc($return)) {
$this->adress[] = $row;
}
}
function setContactInfo() {
$query = 'SELECT id ID, value7 POSITION, value8 NAME, value9 VALUE FROM operating_values WHERE name = "firmInfo" AND value0 = "ContactInfo" AND module_name="EcmSysInfos" ORDER BY value7';
$return = $this->db->query($query);
$this->contact_info = array();
while ($row = $this->db->fetchByAssoc($return)) {
$this->contact_info[] = $row;
}
}
function fill_in_additional_detail_fields() {
parent::fill_in_additional_detail_fields();
}
}