Datei #cesoxs34-2862

Hochgeladen von einem anonymen Benutzer - 07/03/2010 11:53 - 26 Zugriffe
Quellcode
  1. <?php
  2.   //----------------------------------------------------------------------
  3.  
  4.   // JBudgetsMagic
  5.  
  6.   // JBudgetsMagic by Fernando Hidalgo - http://www.sopinet.com
  7.  
  8.   //----------------------------------------------------------------------
  9.  
  10.  
  11.  
  12.   //----------------------------------------------------------------------
  13.  
  14.   // Author: 	Fernando Hidalgo - http://www.sopinet.com
  15.  
  16.   // Copyright: copyright (C) 2009 - Fernando Hidalgo.
  17.  
  18.   // License: 	GNU/GPL, http://www.gnu.org/copyleft/gpl.html
  19.  
  20.   // Pack: 	JBudgetsMagic
  21.  
  22.   // File: 	form.php
  23.  
  24.   //----------------------------------------------------------------------  
  25.  
  26.  
  27.  
  28.   //----------------------------------------------------------------------    
  29.  
  30.   // JBudgetsMagic is free software. This version may have been modified pursuant
  31.  
  32.   // to the GNU General Public License, and as distributed it includes or
  33.  
  34.   // is derivative of works licensed under the GNU General Public License or
  35.  
  36.   // other free or open source software licenses.  
  37.  
  38.   //----------------------------------------------------------------------
  39.  
  40.  
  41.  
  42. defined( '_JEXEC' ) or die( 'Restricted access' );
  43.  
  44.  
  45.  
  46. jimport( 'joomla.application.component.model' );
  47.  
  48.  
  49.  
  50. class bdgModelForm extends JModel
  51.  
  52. {
  53.  
  54. 	function __construct()
  55.  
  56. 	{
  57.  
  58. 		parent::__construct();
  59.  
  60. 	}
  61.  
  62. 	function getForm() {
  63. 		$params = &JComponentHelper::getParams( 'com_jbudgetsmagic' );
  64. 		$type_id = $params->get('type_id', '1');
  65.  
  66. 		$form =& $this->getTable('type');
  67. 		$form->load($type_id);
  68. 		return $form;
  69. 	}
  70.  
  71. 	function sendForm($data) {
  72. 		// Grabamos el Prespuesto
  73. 		$user = JFactory::getUser();
  74. 		$budget->user_id = $user->id;
  75. 		$budget->upload = JFactory::getDate()->toMySQL();
  76. 		$budget->type_id = $data['form_id'];
  77. 		$budget->title = $data['title'];
  78. 		$budget->description = $data['description'];
  79. 		$budget->state = "New";
  80. 		$budget->price = substr($data['total'],0,strlen($data['total'])-3);
  81. 		$rbudget =& $this->getTable('budgets');
  82. 		if (!$rbudget->bind($budget)) {
  83.         	return JError::raiseError( 500, $rbudget->getError() );
  84. 		}
  85. 		if (!$rbudget->store()) {
  86.         	JError::raiseError(500, $rbudget->getError() );
  87. 		}
  88.  
  89. 		// Grabamos los elementos del Presupuesto
  90. 		$elements = $this->getElements($data['form_id']);
  91. 		foreach ($elements as $e) {
  92. 			$el->element_amount = $data['cant_'.$e->id];
  93. 			eval("\$el->element_amount = \"$el->element_amount\";");
  94. 			$el->element_price = $e->price;
  95. 			$el->element_title = $e->title;
  96. 			$el->element_description = $e->description;
  97. 			$el->element_type = $e->type;
  98. 			$el->element_id = $e->id;
  99. 			$el->budget_id = $rbudget->id;
  100. 			$el->revision_id = 0;
  101. 			$el->element_total = $el->element_amount * $el->element_price;
  102.  
  103. 			$rel =& $this->getTable('budgets_elements');
  104. 			if (!$rel->bind($el)) {
  105.         		return JError::raiseError( 500, $rel->getError() );
  106. 			}
  107. 			if (!$rel->store()) {
  108.         		JError::raiseError(500, $rel->getError() );
  109. 			}
  110. 		}
  111.  
  112. 		// Si todo ha ido bien, enviamos un email de confirmación
  113. 		if (bdgHelperConfig::getConfig('email_notification', '1')) {
  114. 			global $mainframe;
  115. 			$email_users = bdgHelperConfig::getConfig('email_users');
  116.  
  117. 			$sitename 		= $mainframe->getCfg( 'sitename' );
  118. 			$mailfrom 		= $mainframe->getCfg( 'mailfrom' );
  119. 			$fromname 		= $mainframe->getCfg( 'fromname' );			
  120.  
  121. 			$email_users = explode( ',', $email_users );
  122.  
  123. 			foreach ($email_users as $eu) {
  124. 				$user = JFactory::getUser($eu);
  125. 				$emailto = $user->email; 
  126. 				$message = sprintf(JText::_( 'Budget New Notification' ), $user->username, $user->id);
  127. 				$message = html_entity_decode($message, ENT_QUOTES);
  128.  
  129. 				JUtility::sendMail($mailfrom, $fromname, $emailto, $sitename, $message);
  130. 			}
  131. 		}
  132. 	}
  133.  
  134. 	function getElements($type_id) {
  135. 		$db = &JFactory::getDBO();
  136. 		$query = ' SELECT b.id, b.price, e.group, e.type_id, b.type, b.title, e.ordering, e.min, e.max, e.def, b.description'
  137.  
  138. 				. ' FROM #__bdg_types_elements AS e, #__bdg_items AS b WHERE e.item_id = b.id AND e.type_id = '.$type_id.' ORDER BY e.ordering ASC';
  139. 		$db->setQuery($query);
  140. 		$rows = $db->loadObjectList();
  141. 		return $rows;
  142. 	}
  143.  
  144. 	function getIDs($elements) {
  145. 		$ids = array();
  146. 		foreach ($elements as $e) {
  147. 			$ids[] = $e->id;
  148. 		}
  149. 		return $ids;
  150. 	}
  151.  
  152. 	function getItemsDSC($elements) {
  153. 		$items_dsc = array();
  154. 		$db = &JFactory::getDBO();
  155. 		foreach ($elements as $e) {
  156. 			$query = "SELECT * FROM #__bdg_items_dsc WHERE item_id = ".$e->id;
  157. 			$db->setQuery($query);
  158. 			$rows = $db->loadObjectList();
  159. 			if (count($rows) != NULL)
  160. 				$items_dsc[$e->id] = $rows;
  161. 		}
  162. 		return $items_dsc;
  163. 	}
  164.  
  165. 	function getIDCS($elements) {
  166. 		$ids = array();
  167. 		foreach ($elements as $el) {
  168. 			foreach ($el as $e) {
  169. 				$ids[] = $e->id;
  170. 			}
  171. 		}
  172. 		return $ids;
  173. 	}
  174.  
  175. 	function getTYPEs($elements) {
  176. 		$types = array();
  177. 		foreach ($elements as $e) {
  178. 			$types[] = $e->type;
  179. 		}
  180. 		return $types;
  181. 	}
  182. }