300 lines
13 KiB
PHP
300 lines
13 KiB
PHP
|
|
<?php
|
||
|
|
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
|
||
|
|
|
||
|
|
/*********************************************************************************
|
||
|
|
* 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".
|
||
|
|
********************************************************************************/
|
||
|
|
/*********************************************************************************
|
||
|
|
|
||
|
|
* Description: This file is used to override the default Meta-data EditView behavior
|
||
|
|
* to provide customization specific to the Calls module.
|
||
|
|
* Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
|
||
|
|
* All Rights Reserved.
|
||
|
|
* Contributor(s): ______________________________________..
|
||
|
|
********************************************************************************/
|
||
|
|
|
||
|
|
require_once('include/MVC/View/views/view.edit.php');
|
||
|
|
|
||
|
|
class DocumentsViewEdit extends ViewEdit
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* @see SugarView::display()
|
||
|
|
*/
|
||
|
|
public function display()
|
||
|
|
{
|
||
|
|
global $app_list_strings, $mod_strings;
|
||
|
|
echo '<script type="text/javascript" src="modules/Documents/js/Bim-it.js"></script>';
|
||
|
|
echo '<script type="text/javascript" src="modules/Documents/js/Documents.js"></script>';
|
||
|
|
/*
|
||
|
|
$this->bean->category_name = $app_list_strings['document_category_dom'][$this->bean->category_id];
|
||
|
|
$this->bean->subcategory_name = $app_list_strings['document_subcategory_dom'][$this->bean->subcategory_id];
|
||
|
|
if(isset($this->bean->status_id)) {
|
||
|
|
$this->bean->status = $app_list_strings['document_status_dom'][$this->bean->status_id];
|
||
|
|
}
|
||
|
|
$this->bean->related_doc_name = Document::get_document_name($this->bean->related_doc_id);
|
||
|
|
$this->bean->related_doc_rev_number = DocumentRevision::get_document_revision_name($this->bean->related_doc_rev_id);
|
||
|
|
$this->bean->save_file = basename($this->bean->file_url_noimage);
|
||
|
|
*/
|
||
|
|
$load_signed=false;
|
||
|
|
if ((isset($_REQUEST['load_signed_id']) && !empty($_REQUEST['load_signed_id']))) {
|
||
|
|
|
||
|
|
$load_signed=true;
|
||
|
|
if (isset($_REQUEST['record'])) {
|
||
|
|
$this->bean->related_doc_id=$_REQUEST['record'];
|
||
|
|
}
|
||
|
|
if (isset($_REQUEST['selected_revision_id'])) {
|
||
|
|
$this->bean->related_doc_rev_id=$_REQUEST['selected_revision_id'];
|
||
|
|
}
|
||
|
|
|
||
|
|
$this->bean->id=null;
|
||
|
|
$this->bean->document_name=null;
|
||
|
|
$this->bean->filename=null;
|
||
|
|
$this->bean->is_template=0;
|
||
|
|
} //if
|
||
|
|
|
||
|
|
if (!empty($this->bean->id)) {
|
||
|
|
$this->ss->assign("FILE_OR_HIDDEN", "hidden");
|
||
|
|
if (!$this->ev->isDuplicate) {
|
||
|
|
$this->ss->assign("DISABLED", "disabled");
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
global $timedate;
|
||
|
|
$format = $timedate->get_cal_date_format();
|
||
|
|
$format = str_replace('%', '', $format);
|
||
|
|
$this->bean->active_date = date($format);
|
||
|
|
$this->bean->revision = 1;
|
||
|
|
|
||
|
|
|
||
|
|
$this->ss->assign("FILE_OR_HIDDEN", "file");
|
||
|
|
}
|
||
|
|
$ws = $this->bean->getParentList();
|
||
|
|
$ul = $this->bean->getUserList();
|
||
|
|
$vl = $this->bean->getVatList(true);
|
||
|
|
//var_dump($_POST);
|
||
|
|
|
||
|
|
$this->ss->assign('VAT_LIST', $vl);
|
||
|
|
$this->ss->assign('USER_LIST', $ul);
|
||
|
|
$this->ss->assign('PARENT_TYPE_LIST', $app_list_strings['parent_type_display2']);
|
||
|
|
$popup_request_data = array(
|
||
|
|
'call_back_function' => 'document_set_return',
|
||
|
|
'form_name' => 'EditView',
|
||
|
|
'field_to_name_array' => array(
|
||
|
|
'id' => 'related_doc_id',
|
||
|
|
'document_name' => 'related_document_name',
|
||
|
|
),
|
||
|
|
);
|
||
|
|
$json = getJSONobj();
|
||
|
|
$this->ss->assign('encoded_document_popup_request_data', $json->encode($popup_request_data));
|
||
|
|
|
||
|
|
//create from subpanel
|
||
|
|
if($this->bean->id=='' && $_REQUEST['return_module']!=''){
|
||
|
|
|
||
|
|
if(substr($_REQUEST['return_module'],0,3)=='Ecm'){
|
||
|
|
$module=substr($_REQUEST['parent_type'],0,strlen($_REQUEST['return_module'])-1);
|
||
|
|
$d=new $module;
|
||
|
|
$d->retrieve($_REQUEST[strtolower(substr($_REQUEST['return_module'],0,strlen($_REQUEST['return_module'])-1)).'_id']);
|
||
|
|
if($_REQUEST['return_module']=='EcmStockDocIns'){
|
||
|
|
$this->bean->document_date=date('d.m.Y');
|
||
|
|
if($d->name==''){
|
||
|
|
$this->bean->document_name='PZ '.$d->document_no;
|
||
|
|
} else {
|
||
|
|
$this->bean->document_name=''.$d->name;
|
||
|
|
}
|
||
|
|
$this->bean->value=$d->total_brutto;
|
||
|
|
|
||
|
|
$this->bean->document_number=$this->bean->document_name;
|
||
|
|
$vat_pos=array('23%'=>0,
|
||
|
|
'22%'=>1,
|
||
|
|
'8%'=>2,
|
||
|
|
'7%'=>3,
|
||
|
|
'0%'=>4,
|
||
|
|
'Zw'=>5);
|
||
|
|
$vat_list=array(
|
||
|
|
'23%'=> array('vat_value'=>'23%','vat_id'=>'23'),
|
||
|
|
'22%'=> array('vat_value'=>'22%','vat_id'=>'22'),
|
||
|
|
'8%'=> array('vat_value'=>'8%','vat_id'=>'8'),
|
||
|
|
'7%'=> array('vat_value'=>'7%','vat_id'=>'7'),
|
||
|
|
'0%'=> array('vat_value'=>'0%','vat_id'=>'0'),
|
||
|
|
'Zw'=> array('vat_value'=>'Zw','vat_id'=>'0')
|
||
|
|
|
||
|
|
);
|
||
|
|
$vat_list_r=array();
|
||
|
|
|
||
|
|
$a=explode(',',$d->vats_summary);
|
||
|
|
|
||
|
|
foreach ($a as $key){
|
||
|
|
$tmp=explode(':',$key);
|
||
|
|
|
||
|
|
if($tmp[0]!=''){
|
||
|
|
|
||
|
|
$vat_list[$tmp[0]]['netto']=$d->total_netto;
|
||
|
|
$vat_list[$tmp[0]]['vat']=$tmp[1];
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
foreach ( $vat_list as $key=>$val){
|
||
|
|
$vat_list_r[]=$vat_list[$key];
|
||
|
|
}
|
||
|
|
$json = getJSONobj();
|
||
|
|
|
||
|
|
$this->ss->assign('VAT_LIST', $vat_list_r);
|
||
|
|
|
||
|
|
}
|
||
|
|
$ws='[{"id":"","document_id":"","parent_id":"'.$d->parent_id.'","date_entered":"2014-11-28",
|
||
|
|
"parent_type":"Account","deleted":"0","date_modified":null,"parent_name":"'.htmlentities($d->parent_name).'"},{"id":"","document_id":"","parent_id":"'.$d->id.'","date_entered":"","parent_type":"'.$module.'","deleted":"0","date_modified":null,"parent_name":"'.$d->document_no.'"}]';
|
||
|
|
|
||
|
|
if($_REQUEST['return_module']=='EcmProducts'){
|
||
|
|
$ws='[{"id":"","document_id":"","parent_id":"'.$d->id.'","date_entered":"","parent_type":"'.$module.'","deleted":"0","date_modified":null,"parent_name":"'.htmlentities($_REQUEST['ecmproduct_name']).'"}]';
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
$module=substr($_REQUEST['return_module'],0,strlen($_REQUEST['return_module'])-1);
|
||
|
|
$d=new $module;
|
||
|
|
|
||
|
|
$d->retrieve($_REQUEST[strtolower(substr($_REQUEST['return_module'],0,strlen($_REQUEST['return_module'])-1)).'_id']);
|
||
|
|
$ws='[{"id":"","document_id":"","parent_id":"'.$d->id.'","date_entered":"2014-11-28",
|
||
|
|
"parent_type":"Account","deleted":"0","date_modified":null,"parent_name":"'.htmlentities($d->name).'"}]';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$this->ss->assign('PARENT_LIST', $ws);
|
||
|
|
//get related document name.
|
||
|
|
if (!empty($this->bean->related_doc_id)) {
|
||
|
|
$this->ss->assign("RELATED_DOCUMENT_NAME",Document::get_document_name($this->bean->related_doc_id));
|
||
|
|
$this->ss->assign("RELATED_DOCUMENT_ID",$this->bean->related_doc_id);
|
||
|
|
if (!empty($this->bean->related_doc_rev_id)) {
|
||
|
|
$this->ss->assign("RELATED_DOCUMENT_REVISION_OPTIONS", get_select_options_with_id(DocumentRevision::get_document_revisions($this->bean->related_doc_id), $this->bean->related_doc_rev_id));
|
||
|
|
} else {
|
||
|
|
$this->ss->assign("RELATED_DOCUMENT_REVISION_OPTIONS", get_select_options_with_id(DocumentRevision::get_document_revisions($this->bean->related_doc_id), ''));
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
$this->ss->assign("RELATED_DOCUMENT_REVISION_DISABLED", "disabled");
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
//set parent information in the form.
|
||
|
|
if (isset($_REQUEST['parent_id'])) {
|
||
|
|
$this->ss->assign("PARENT_ID",$_REQUEST['parent_id']);
|
||
|
|
} //if
|
||
|
|
|
||
|
|
if (isset($_REQUEST['parent_name'])) {
|
||
|
|
$this->ss->assign("PARENT_NAME", $_REQUEST['parent_name']);
|
||
|
|
|
||
|
|
if (!empty($_REQUEST['parent_type'])) {
|
||
|
|
switch (strtolower($_REQUEST['parent_type'])) {
|
||
|
|
|
||
|
|
case "contracts" :
|
||
|
|
$this->ss->assign("LBL_PARENT_NAME",$mod_strings['LBL_CONTRACT_NAME']);
|
||
|
|
break;
|
||
|
|
|
||
|
|
//todo remove leads case.
|
||
|
|
case "leads" :
|
||
|
|
$this->ss->assign("LBL_PARENT_NAME",$mod_strings['LBL_CONTRACT_NAME']);
|
||
|
|
break;
|
||
|
|
} //switch
|
||
|
|
} //if
|
||
|
|
} //if
|
||
|
|
|
||
|
|
if (isset($_REQUEST['parent_type'])) {
|
||
|
|
$this->ss->assign("PARENT_TYPE",$_REQUEST['parent_type']);
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($load_signed) {
|
||
|
|
$this->ss->assign("RELATED_DOCUMENT_REVISION_DISABLED", "disabled");
|
||
|
|
$this->ss->assign("RELATED_DOCUMENT_BUTTON_AVAILABILITY", "hidden");
|
||
|
|
$this->ss->assign("LOAD_SIGNED_ID",$_REQUEST['load_signed_id']);
|
||
|
|
} else {
|
||
|
|
$this->ss->assign("RELATED_DOCUMENT_BUTTON_AVAILABILITY", "button");
|
||
|
|
} //if-else
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
$pl3 = $this->bean->getPositionList3();
|
||
|
|
$this->ss->assign('POSITION_LIST3', $pl3);
|
||
|
|
//opt
|
||
|
|
$file = 'modules/EcmGroupSales/EcmGroupSale.php';
|
||
|
|
if(file_exists($file)) {
|
||
|
|
$cc = array();
|
||
|
|
require_once($file);
|
||
|
|
$cc = EcmGroupSale::loadSettings();
|
||
|
|
}
|
||
|
|
|
||
|
|
$OPT = array();
|
||
|
|
$OPT['row_item_height'] = $cc['row_item_height'];
|
||
|
|
$OPT['row_item_height_selected'] = $cc['row_item_height_selected'];
|
||
|
|
$OPT['rows_on_item_list'] = $cc['rows_on_item_list'];
|
||
|
|
$OPT['position_table_height'] = $OPT['row_item_height']*$OPT['rows_on_item_list']+40+$OPT['rows_on_item_list']*4;
|
||
|
|
$OPT['quick_product_item_adding'] = $cc['quick_product_item_adding'];
|
||
|
|
|
||
|
|
global $current_user;
|
||
|
|
|
||
|
|
$tmp = $current_user->getPreference('num_grp_sep');
|
||
|
|
if(!isset($tmp) || $tmp == '' || $tmp == NULL) $tmp = $sugar_config['default_number_grouping_seperator'];
|
||
|
|
$OPT['sep_1000'] = $tmp;
|
||
|
|
|
||
|
|
$tmp = $current_user->getPreference('dec_sep');
|
||
|
|
if(!isset($tmp) || $tmp == '' || $tmp == NULL) $tmp = $sugar_config['default_decimal_seperator'];
|
||
|
|
$OPT['dec_sep'] = $tmp;
|
||
|
|
|
||
|
|
$tmp = $current_user->getPreference('default_currency_significant_digits');
|
||
|
|
if(!isset($tmp) || $tmp == '' || $tmp == NULL) $tmp = $sugar_config['default_currency_significant_digits'];
|
||
|
|
$OPT['dec_len'] = $tmp;
|
||
|
|
|
||
|
|
echo '
|
||
|
|
<script language="javascript">
|
||
|
|
var OPT = '.str_replace('"','\"',$json->encode($OPT)).';
|
||
|
|
var MOD = '.str_replace('"','\"',$json->encode($mod_strings)).';
|
||
|
|
|
||
|
|
</script>';
|
||
|
|
|
||
|
|
parent::display();
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @see SugarView::_getModuleTitleParams()
|
||
|
|
*/
|
||
|
|
protected function _getModuleTitleParams()
|
||
|
|
{
|
||
|
|
$params = array();
|
||
|
|
$params[] = $this->_getModuleTitleListParam();
|
||
|
|
if(!empty($this->bean->id)){
|
||
|
|
$params[] = "<a href='index.php?module={$this->module}&action=DetailView&record={$this->bean->id}'>".$this->bean->document_name."</a>";
|
||
|
|
$params[] = $GLOBALS['app_strings']['LBL_EDIT_BUTTON_LABEL'];
|
||
|
|
}else{
|
||
|
|
$params[] = $GLOBALS['app_strings']['LBL_CREATE_BUTTON_LABEL'];
|
||
|
|
}
|
||
|
|
|
||
|
|
return $params;
|
||
|
|
}
|
||
|
|
}
|