setupCustomFields ( 'EcmServiceNews' ); foreach ( $this->field_defs as $field ) { $this->field_name_map [$field ['name']] = $field; } } var $new_schema = true; //nazwa w title strony function get_summary_text(){ return "$this->document_no"; } function fill_in_additional_detail_fields() { // FILL IN THE ASSIGNED_USER_NAME $this->assigned_user_name = get_assigned_user_name ( $this->assigned_user_id ); $this->created_by_name = get_assigned_user_name ( $this->created_by ); $this->modified_by_name = get_assigned_user_name ( $this->modified_user_id ); } function get_list_view_data() { $the_array = parent::get_list_view_data (); $the_array['OPTIONS'] = ''; return $the_array; } function bean_implements($interface) { switch ($interface) { case 'ACL' : return true; } return false; } function retrieve($id = -1, $encode=true,$deleted=true){ global $mod_strings, $dictionary, $app_list_strings; $focus = parent::retrieve($id,$encode,$deleted); if($id != -1){ //Pobieram rekordy historii danego zlecenia $history_query = "SELECT * FROM " . $this->table_name . "_audit WHERE parent_id='" . $id . "'"; $history_result = $this->db->query($history_query); while($row = $this->db->fetchByAssoc($history_result)){ $old_field_name = $row['field_name']; $row['field_name'] = $mod_strings[$dictionary['EcmServiceNew']['fields'][$old_field_name]['vname']]; if($row['data_type']=='enum'){ $row['before_value_string'] = $app_list_strings[$dictionary['EcmServiceNew']['fields'][$old_field_name]['options']][$row['before_value_string']]; $row['after_value_string'] = $app_list_strings[$dictionary['EcmServiceNew']['fields'][$old_field_name]['options']][$row['after_value_string']]; } $focus->history[$row['date_created']][] = $row; } asort($focus->history); //Pobieram rekordy kosztów $items_query = "SELECT * FROM ecmservicenewitems WHERE ecmservicenew_id='" . $id . "' AND deleted=0 order by position"; $items_result = $this->db->query($items_query); while($row = $this->db->fetchByAssoc($items_result)){ $row['ecmproduct_unit_precision'] = $app_list_strings['ecmproducts_unit_dom_precision'][$row['ecmproduct_unit_id']]; $focus->items_list[] = $row; } } return $focus; } function get_items_list_for_id($id = -1){ } function get_history_for_id($id = -1){ } function save($check_notify = FALSE) { global $current_user, $db; require_once('modules/EcmSysInfos/EcmSysInfo.php'); $EcmSysInfo = new EcmSysInfo(); $template = $EcmSysInfo->getFormatNumberForModule('EcmServiceNews'); $this->type='normal'; unset($EcmSysInfo); if (! $this->id || $this->id == '') { // generate number if ($template != "") { require_once('include/ECM/EcmDocumentNumberGenerator/EcmDocumentNumberGenerator.inc.php'); $dng = new EcmDocumentNumberGenerator('EcmServiceNews'); $this->document_no= $dng->parseNormalNumber($template, $this->stock_id); } } if(!isset($this->number) || $this->number == ""){ $this->number = $this->generateNumber(); } $return_id = parent::save ( $check_notify ); $old_items_query = "DELETE FROM ecmservicenewitems WHERE ecmservicenew_id ='" . $return_id . "'"; $db->query($old_items_query); $json = getJSONobj(); $position_list = $json->decode(htmlspecialchars_decode($_POST['position_list'])); foreach($position_list as $key => $row){ if($row['name']==''){ $product = true; } if($row['quantity'] || $row['quantity'] =='0,00'){ $quantity = true; } if($row['price_start']=='' || $row['price_start'] =='0,00'){ $price = true; } if($product && $quantity && $price){ continue; } $insert_data['date_entered'] = 'NOW()'; $insert_data['date_modified'] = 'NOW()'; $insert_data['created_by'] = $current_user->id; $insert_data['modified_user_id'] = $current_user->id; $insert_data['ecmservicenew_id'] = $return_id; $insert_data['ecmproduct_id'] = $row['product_id']; $insert_data['position'] = $key; $insert_data['ecmproduct_name'] = $row['name']; $insert_data['quantity'] = floatval($row['quantity']); $insert_data['price'] = round (floatval($row['price_start']),2); $insert_data['total'] = round ($insert_data['quantity']*$insert_data['price'],2); $insert_data['ecmproduct_unit_id'] = $row['unit_id']; $keys = array_keys($insert_data); $values = array_values($insert_data); $query = "INSERT INTO ecmservicenewitems (" . implode(",",$keys) . ") VALUES ('" . implode("','",$values) . "')"; $db->query(str_replace("'NOW()'", "NOW()",$query)); } return $return_id; } function generateNumber() { $db = $GLOBALS['db']; $r = $db->fetchByAssoc($db->query("SELECT count(id) as c FROM ecmservicenews WHERE YEAR(register_date)='".date('Y')."'")); if (!$r || !$r['c'] || $r['c']=='') $count = 0; else $count = intval($r['c']); $count++; //has 5 digits? $tmp = strval($count); while (strlen($tmp) < 5) $tmp = '0'.$tmp; return date("Ymd").$tmp; } } ?>