setupCustomFields('EcmFkVatKinds'); } function save($check_notify = false) { if (empty($this->id) || $this->new_with_id) { if (false) { //!empty($this->uploadfile)) $this->filename = $this->uploadfile; if (empty($this->id)) { $this->id = create_guid(); $this->new_with_id = true; } $Revision = new EcmFkVatKindRevision(); //save revision. $Revision->change_log = translate('DEF_CREATE_LOG', 'EcmFkVatKinds'); $Revision->revision = $this->revision; $Revision->ecmfkvatkind_id = $this->id; $Revision->filename = $this->filename; $Revision->file_ext = $this->file_ext; $Revision->file_mime_type = $this->file_mime_type; $Revision->save(); //Move file saved during populatefrompost to match the revision id rather than ecmfkvatkind id rename(UploadFile :: get_url($this->filename, $this->id), UploadFile :: get_url($this->filename, $Revision->id)); //update ecmfkvatkind with latest revision id $this->process_save_dates = false; //make sure that conversion does not happen again. $this->ecmfkvatkind_revision_id = $Revision->id; } //set relationship field values if contract_id is passed (via subpanel create) if (!empty($_POST['contract_id'])) { $save_revision['ecmfkvatkind_revision_id'] = $this->document_revision_id; $this->load_relationship('contracts'); $this->contracts->add($_POST['contract_id'], $save_revision); } if ((isset($_POST['load_signed_id']) and !empty($_POST['load_signed_id']))) { $query = "update linked_ecmfkvatkinds set deleted=1 where id='" . $_POST['load_signed_id'] . "'"; $this->db->query($query); } } $return_id = parent::save($check_notify); $this->savePositions($return_id); return $return_id; } function savePositions($id = null, $position_list = null) { global $current_user, $timedate; if ($position_list == null) $position_list = $this->position_list; if ($id == null) $id = $this->id; if (count($position_list) > 0) $this->deleteAssignedPositions($id); $arr = array(); $position = 0; // dump($position_list); // exit; for ($i = 0; $i < count($position_list); $i++) { $p = $position_list[$i]; // ~ $arr = array( 'id' => create_guid(), 'position' => $p['position'], 'deleted' => '0', 'date_entered' => date('Y-m-d'), // 'date_modified' => '', 'created_by' => 'd9c0007b-1247-5e82-31b6-4f168a01d290', // 'modified_user_id' => '', 'title' => $p['i_title'], 'col_1' => encodeDbData($p['i_col_1_decoded']), 'col_2' => encodeDbData($p['i_col_2_decoded']), 'col_1_translations' => encodeDbData($p['i_col_1_translations_decoded']), 'col_2_translations' => encodeDbData($p['i_col_2_translations_decoded']), 'ecmfkvatkind_id' => $id, 'order' => $p['i_order'], 'p' => $p['i_p'], ); // dump($p, $arr); // exit; $q = $this->constructInsertQuery($arr); // dump($q); // exit; $this->db->query($q); $position++; } return $position; } function constructInsertQuery($data, $table = '') { if ($table == '' && isset($this->object_name) && $this->object_name != '') { $table = strtolower($this->object_name) . "items"; } else return ""; $keys = array(); $values = array(); foreach ($data as $key => $value) { $keys[] = $key; if (is_array($value)) $values[] = $value[1] . str_replace("'", "\'", $value[0]) . $value[1]; else $values[] = "'" . str_replace("'", "\'", $value) . "'"; } $q = "insert into `$table` (`"; $q .= implode('`, `', $keys); $q .= "`) values ("; $q .= implode(", ", $values); $q .= ");"; return $q; } function deleteAssignedPositions() { if (isset($this->id) && $this->id != '') { //$query = "DELETE FROM `".strtolower($this->object_name)."itemsparams` WHERE `".strtolower($this->object_name)."_id`='".$this->id."'"; // $r = $this->db->query($query); $query = "DELETE FROM `" . strtolower($this->object_name) . "items` WHERE `" . strtolower($this->object_name) . "_id`='" . $this->id . "'"; // echo $query;exit; $r = $this->db->query($query); if ($r) return true; } return false; } function DrawMainPDF($pdf, $type) { global $mod_strings; // $a = decodeDbData('YToxNTp7czoxNToiRWNtSW5zaWRlT3JkZXJzIjtzOjI6ImU1IjtzOjk6IkVjbVF1b3RlcyI7czo3OiJzYWFzY3JtIjtzOjg6IkVjbVNhbGVzIjtzOjI6ImU1IjtzOjE3OiJFY21QdXJjaGFzZU9yZGVycyI7czoyOiJlNSI7czoxNjoiRWNtRGVsaXZlcnlOb3RlcyI7czoyOiJlNSI7czoxNDoiRWNtSW52b2ljZU91dHMiO3M6MjoiZTUiO3M6MTQ6IkVjbVJlY2VpcHRPdXRzIjtzOjI6ImU1IjtzOjE0OiJFY21TdG9ja0RvY0lucyI7czoyOiJlNSI7czoxNToiRWNtU3RvY2tEb2NPdXRzIjtzOjI6ImU1IjtzOjIwOiJFY21TdG9ja0RvY0luc2lkZUlucyI7czoyOiJlNSI7czoyMToiRWNtU3RvY2tEb2NJbnNpZGVPdXRzIjtzOjI6ImU1IjtzOjE2OiJFY21TdG9ja0RvY01vdmVzIjtzOjI6ImU1IjtzOjEyOiJFY21UZW1wbGF0ZXMiO3M6MjoiZTUiO3M6MTI6IkVjbURvY3VtZW50cyI7czoyOiJlNSI7czoxOToiRWNtU3RvY2tEb2NDb3JyZWN0cyI7czoyOiJlNSI7fQ=='); // $a['EcmFkVatKinds'] = 'e5'; // $this->template->template_files_defs = encodeDbData($a); // $this->template->save(); // @ db // YToxNTp7czoxNToiRWNtSW5zaWRlT3JkZXJzIjtzOjI6ImU1IjtzOjk6IkVjbVF1b3RlcyI7czo3OiJzYWFzY3JtIjtzOjg6IkVjbVNhbGVzIjtzOjI6ImU1IjtzOjE3OiJFY21QdXJjaGFzZU9yZGVycyI7czoyOiJlNSI7czoxNjoiRWNtRGVsaXZlcnlOb3RlcyI7czoyOiJlNSI7czoxNDoiRWNtSW52b2ljZU91dHMiO3M6MjoiZTUiO3M6MTQ6IkVjbVJlY2VpcHRPdXRzIjtzOjI6ImU1IjtzOjE0OiJFY21TdG9ja0RvY0lucyI7czoyOiJlNSI7czoxNToiRWNtU3RvY2tEb2NPdXRzIjtzOjI6ImU1IjtzOjIwOiJFY21TdG9ja0RvY0luc2lkZUlucyI7czoyOiJlNSI7czoyMToiRWNtU3RvY2tEb2NJbnNpZGVPdXRzIjtzOjI6ImU1IjtzOjE2OiJFY21TdG9ja0RvY01vdmVzIjtzOjI6ImU1IjtzOjEyOiJFY21UZW1wbGF0ZXMiO3M6MjoiZTUiO3M6MTI6IkVjbURvY3VtZW50cyI7czoyOiJlNSI7czoxOToiRWNtU3RvY2tEb2NDb3JyZWN0cyI7czoyOiJlNSI7fQ== // @ dump // YToxNTp7czoxNToiRWNtSW5zaWRlT3JkZXJzIjtzOjI6ImU1IjtzOjk6IkVjbVF1b3RlcyI7czo3OiJzYWFzY3JtIjtzOjg6IkVjbVNhbGVzIjtzOjI6ImU1IjtzOjE3OiJFY21QdXJjaGFzZU9yZGVycyI7czoyOiJlNSI7czoxNjoiRWNtRGVsaXZlcnlOb3RlcyI7czoyOiJlNSI7czoxNDoiRWNtSW52b2ljZU91dHMiO3M6MjoiZTUiO3M6MTQ6IkVjbVJlY2VpcHRPdXRzIjtzOjI6ImU1IjtzOjE0OiJFY21TdG9ja0RvY0lucyI7czoyOiJlNSI7czoxNToiRWNtU3RvY2tEb2NPdXRzIjtzOjI6ImU1IjtzOjIwOiJFY21TdG9ja0RvY0luc2lkZUlucyI7czoyOiJlNSI7czoyMToiRWNtU3RvY2tEb2NJbnNpZGVPdXRzIjtzOjI6ImU1IjtzOjE2OiJFY21TdG9ja0RvY01vdmVzIjtzOjI6ImU1IjtzOjEyOiJFY21UZW1wbGF0ZXMiO3M6MjoiZTUiO3M6MTI6IkVjbURvY3VtZW50cyI7czoyOiJlNSI7czoxOToiRWNtU3RvY2tEb2NDb3JyZWN0cyI7czoyOiJlNSI7fQ== // dump($this->template->template_files_defs); // dump(decodeDbData($this->template->template_files_defs)); // exit; // dump($a); // dump(encodeDbData($a)); // exit; // modules/EcmDocumentTemplates/templates/EcmFkVatKinds/e5/subheader.php // modules\EcmDocumentTemplates\templates\EcmFkVatKinds\e5\subheader.php // dump($this->template->getTemplateFile('subheader.php')); // dump($this->template->getTemplateFile('subfooter.php')); // exit; // $pdf->SetAutoPageBreak(false); $pdf->SetAutoPageBreak(true, $this->bMargin + $this->tMarign + 36); require_once($this->template->getTemplateFile('subheader.php')); require_once($this->template->getTemplateFile('subfooter.php')); return; } /** * Pdf getter. * * Retrieve pdf stream. */ function getPDF($id = null, $method = 'I', $name = null, $type = null) { global $sugar_config; // if ($id != null) { // $this->retrieve($id); // if ($this->id == '') // return; // } global $mod_strings; require_once('modules/EcmTexts/EcmText.php'); // echo '
' . var_export($this->ecmlanguage, true) . '
'; // exit; // if (isset($this->ecmlanguage) && $this->ecmlanguage != '') { // $data = EcmText::LoadText(null, null, "EcmServices", $this->ecmlanguage); // if (isset($data[0]) && isset($data[0]['data']) && isset($data[0]['data']['labels'])) { // $data = $data[0]['data']['labels']; // foreach ($data as $key => $value) { // $mod_strings[$value['label']] = $value['translation']; // } // } // } $this->format_all_fields(); // dump(__LINE__); // exit; $this->setTemplate(); $type = $type ? : @$_REQUEST['type']; // if (isset($this->template->id) && $this->template->id != '') { // dump($this->template_id); // exit; // dump($this->template_id); // exit; // dump($this->toArray(), $this->orientation ? : 'P'); // exit; switch (strtolower($type)) { default: // $this->template->setPDF($this->template_id, array('P')); // $this->template->setPDF($this->template_id, array('L')); $this->template->setPDF($this->template_id, array( $this->orientation ? : 'P', )); break; } // dump(__LINE__); // exit; // dump($this->template); // exit; // $this->template->pdf->SetAutoPageBreak(true, 40); $this->DrawMainPDF($this->template->pdf, $type); $this->template->outputPDF(1, $method); // } } function setTemplate() { // if (!isset($this->template_id) || $this->template_id == '') // return null; // if (isset($this->template)) // return $this->template; require_once('modules/EcmDocumentTemplates/EcmDocumentTemplate.php'); $this->template = new EcmDocumentTemplate(); $this->template_id = "ef0c4dea-ddf3-de51-9d08-512257d4b675"; //$this->template->retrieve($this->template_id); $this->template->retrieve($this->template_id, true, false); if (isset($this->template->id) && $this->template->id != '') { $this->template->format_all_fields(); } else $this->template = null; // dump($this->template); // exit; return $this->template; } function get_summary_text() { return "$this->ecmfkvatkind_name"; } function is_authenticated() { return $this->authenticated; } function fill_in_additional_list_fields() { $this->fill_in_additional_detail_fields(); } function fill_in_additional_detail_fields() { // $vatYear = DateTime::createFromFormat('Y-m-d', $this->date_document); // $this->vat_year = $vatYear ? $bookYear->format('Y') : false; goto jump; global $theme; global $current_language; global $timedate; global $locale; parent::fill_in_additional_detail_fields(); $mod_strings = return_module_language($current_language, 'EcmFkVatKinds'); $query = "SELECT filename,revision,file_ext FROM ecmfkvatkind_revisions WHERE id='$this->document_revision_id'"; $result = $this->db->query($query); $row = $this->db->fetchByAssoc($result); //popuplate filename if (isset($row['filename'])) $this->filename = $row['filename']; //$this->latest_revision = $row['revision']; if (isset($row['revision'])) $this->revision = $row['revision']; //populate the file url. //image is selected based on the extension name _icon_inline, extension is stored in ecmfkvatkind_revisions. //if file is not found then default image file will be used. global $img_name; global $img_name_bare; if (!empty($row['file_ext'])) { $img_name = SugarThemeKindistry::current()->getImageURL(strtolower($row['file_ext']) . "_image_inline.gif"); $img_name_bare = strtolower($row['file_ext']) . "_image_inline"; } //set default file name. if (!empty($img_name) && file_exists($img_name)) { $img_name = $img_name_bare; } else { $img_name = "def_image_inline"; //todo change the default image. } if ($this->ACLAccess('DetailView')) { $this->file_url = "" . SugarThemeRegistry::current()->getImage($img_name, 'alt="' . $mod_strings['LBL_LIST_VIEW_DOCUMENT'] . '" border="0"') . ""; $this->file_url_noimage = basename(UploadFile :: get_url($this->filename, $this->ecmfkvatkind_revision_id)); } else { $this->file_url = ""; $this->file_url_noimage = ""; } //get last_rev_by user name. $query = "SELECT first_name,last_name, ecmfkvatkind_revisions.date_entered as rev_date FROM users, document_revisions WHERE users.id = document_revisions.created_by and document_revisions.id = '$this->document_revision_id'"; $result = $this->db->query($query, true, "Eror fetching user name: "); $row = $this->db->fetchByAssoc($result); if (!empty($row)) { $this->last_rev_created_name = $locale->getLocaleFormattedName($row['first_name'], $row['last_name']); $this->last_rev_create_date = $timedate->to_display_date_time($row['rev_date']); } global $app_list_strings; if (!empty($this->status_id)) { //_pp($this->status_id); $this->status = $app_list_strings['ecmfkvatkind_status_dom'][$this->status_id]; } $this->related_doc_name = EcmFkVatKind::get_ecmfkvattable_name($this->related_doc_id); $this->related_doc_rev_number = EcmFkVatKindRevision::get_ecmfkvattable_revision_name($this->related_doc_rev_id); $this->save_file = basename($this->file_url_noimage); jump: } function list_view_parse_additional_sections(& $list_form, $xTemplateSection) { return $list_form; } function create_export_query(&$order_by, &$where, $relate_link_join = '') { $custom_join = $this->custom_fields->getJOIN(true, true, $where); if ($custom_join) $custom_join['join'] .= $relate_link_join; $query = "SELECT ecmfkvatkinds.*"; if ($custom_join) { $query .= $custom_join['select']; } $query .= " FROM ecmfkvatkinds "; if ($custom_join) { $query .= $custom_join['join']; } $where_auto = " ecmfkvatkinds.deleted = 0"; if ($where != "") $query .= " WHERE $where AND " . $where_auto; else $query .= " WHERE " . $where_auto; if ($order_by != "") $query .= " ORDER BY $order_by"; else $query .= " ORDER BY ecmfkvatkinds.document_name"; return $query; } /** * getter method for ecmbanksymbolount record. */ function get_symbol_array($id, array $select = array()) { global $db; array_walk($select, function(&$value, $key) { $value = 's.`' . $value . '`'; }); $selectStatement = implode(', ', $select); $q = 'SELECT ' . (strlen($selectStatement) ? $selectStatement : 's.*') . ' FROM ecmsymbols AS s WHERE id = \'' . $id . '\' LIMIT 1;'; $r = $db->query($q); $rr = $db->FetchByAssoc($r); if ($rr) { return $rr; } return false; } /** * Concentrate get_symbol_array method. */ function get_symbol_symbol($id) { static $symbols = array(); return $symbols[$id] ? : ($symbols[$id] = end($this->get_symbol_array($id, array('symbol')))); } /** * getter method for ecmbankaccount record. */ function get_acc_array($id, array $select = array()) { global $db; array_walk($select, function(&$value, $key) { $value = 'ba.`' . $value . '`'; }); $selectStatement = implode(', ', $select); $q = 'SELECT ' . (strlen($selectStatement) ? $selectStatement : 'ba.*') . ' FROM ecmbankaccounts AS ba WHERE id = \'' . $id . '\' LIMIT 1;'; $r = $db->query($q); $rr = $db->FetchByAssoc($r); if ($rr) { return $rr; } return false; } /** * Concentrate get_acc_array method. */ function get_acc_code($id) { static $codes = array(); return $codes[$id] ? : ($codes[$id] = end($this->get_acc_array($id, array('code')))); } function get_list_view_data() { $this->fill_in_additional_detail_fields(); $ecmfkvatkind_fields = $this->get_list_view_array(); // $vatYear = DateTime::createFromFormat('d.m.Y', $this->date_document); // $ecmfkvatkind_fields['YEAR'] = $vatYear ? $bookYear->format('Y') : false; $ecmfkvatkind_fields['ACC_MA'] = $this->get_acc_code($ecmfkvattable_fields['ACC_MA']) ? : '000'; $ecmfkvatkind_fields['ACC_WN'] = $this->get_acc_code($ecmfkvattable_fields['ACC_WN']) ? : '000'; $ecmfkvatkind_fields['SYMBOL'] = $this->get_symbol_symbol($ecmfkvattable_fields['SYMBOL']) ? : '-'; $ecmfkvatkind_fields['IDENTIFIER'] = $ecmfkvattable_fields['IDENTIFIER'] ? : '-'; // dump($ecmfkvatkind_fields); // exit; // $ecmfkvatkind_fields['ACC_MA_CODE'] = ''; // $ecmfkvatkind_fields['ACC_MA_CODE'] = ''; // echo '
' . var_export($this->field_defs, true) . '
'; // echo '
' . var_export($ecmfkvatkind_fields, true) . '
'; // exit; return $ecmfkvatkind_fields; } function mark_drelationships_deleted($id) { //do nothing, this call is here to avoid default delete processing since //delete.php handles deletion of ecmfkvatkind revisions. } function bean_implements($interface) { switch ($interface) { case 'ACL' : return true; } return false; } //static function. function get_ecmfkvatkind_name($doc_id) { if (empty($doc_id)) return null; $db = DBManagerFactory::getInstance(); $query = "select ecmfkvatkind_name from documents where id='$doc_id'"; $result = $db->query($query); if (!empty($result)) { $row = $db->fetchByAssoc($result); if (!empty($row)) { return $row['ecmfkvatkind_name']; } } return null; } function getPosition($position, $stockOperations = false) { global $app_list_strings; if (!is_array($position)) return ''; $return_array = array(); $return_array['id'] = $position['id']; // $return_array['deleted'] = $position['deleted']; // $return_array['date_entered'] = $position['date_entered']; // $return_array['date_modified'] = $position['date_modified']; // $return_array['created_by'] = $position['created_by']; // $return_array['modified_user_id'] = $position['modified_user_id']; $return_array['i_deleted'] = $position['deleted']; $return_array['i_title'] = $position['title']; $return_array['i_col_1'] = $position['col_1']; $return_array['i_col_2'] = $position['col_2']; $return_array['i_col_1_translations'] = $position['col_1_translations']; $return_array['i_col_2_translations'] = $position['col_2_translations']; $return_array['i_p'] = $position['p']; $return_array['i_order'] = $position['order']; // $return_array['i_col_1_decoded'] = decodeDbData($return_array['i_col_1']); $return_array['i_col_2_decoded'] = decodeDbData($return_array['i_col_2']); // $return_array['i_col_1_translations_decoded'] = decodeDbData($return_array['i_col_1_translations']); $return_array['i_col_2_translations_decoded'] = decodeDbData($return_array['i_col_2_translations']); // $return_array['i_order_name'] = $app_list_strings['ecmfkvatkinds_order_dom'][$return_array['i_order']]; return $return_array; } function getPositionList($array = false) { if (isset($this->id) && $this->id != '') { $query = ' SELECT vki.* FROM `ecmfkvatkinditems` AS vki WHERE vki.`ecmfkvatkind_id` = \'' . $this->id . '\' order by vki.position asc ; '; // dump($query); // exit; $r = $this->db->query($query); $return_array = array(); if ($r) { while ($w = $this->db->fetchByAssoc($r)) { $return_array [] = $this->getPosition($w, $stockOperations); } $json = getJSONobj(); return $array ? $return_array : $json->encode($return_array); } } return $array ? false : '[]'; } }