Datei #rvmtla22-2864

Hochgeladen von einem anonymen Benutzer - 07/03/2010 12:36 - 31 Zugriffe
Versionen vergleichen
07/03/2010 - 12:22    1 - jrwdcm17-2863
07/03/2010 - 12:36      1.1 - rvmtla22-2864
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. class bdgModelForm extends JModel
  49.  
  50. {
  51.  
  52. 	function __construct()
  53.  
  54. 	{
  55.  
  56. 		parent::__construct();
  57.  
  58. 	}
  59.  
  60. 	function getForm() {
  61. 		$params = &JComponentHelper::getParams( 'com_jbudgetsmagic' );
  62. 		$type_id = $params->get('type_id', '1');
  63.  
  64. 		$form =& $this->getTable('type');
  65. 		$form->load($type_id);
  66. 		return $form;
  67. 	}
  68.  
  69. 	function sendForm($data) {
  70. 		// Grabamos el Prespuesto
  71. 		$user = JFactory::getUser();
  72. 		$budget->user_id = $user->id;
  73.                 $upload = JFactory::getDate();
  74.                 $budget->upload = $upload->toMySQL();
  75. 		$budget->type_id = $data['form_id'];
  76. 		$budget->title = $data['title'];
  77. 		$budget->description = $data['description'];
  78. 		$budget->state = "New";
  79. 		$budget->price = substr($data['total'],0,strlen($data['total'])-3);
  80. 		$rbudget =& $this->getTable('budgets');
  81. 		if (!$rbudget->bind($budget)) {
  82.         	return JError::raiseError( 500, $rbudget->getError() );
  83. 		}
  84. 		if (!$rbudget->store()) {
  85.         	JError::raiseError(500, $rbudget->getError() );
  86. 		}
  87.  
  88. 		// Grabamos los elementos del Presupuesto
  89. 		$elements = $this->getElements($data['form_id']);
  90. 		foreach ($elements as $e) {
  91. 			$el->element_amount = $data['cant_'.$e->id];
  92. 			eval("\$el->element_amount = \"$el->element_amount\";");
  93. 			$el->element_price = $e->price;
  94. 			$el->element_title = $e->title;
  95. 			$el->element_description = $e->description;
  96. 			$el->element_type = $e->type;
  97. 			$el->element_id = $e->id;
  98. 			$el->budget_id = $rbudget->id;
  99. 			$el->revision_id = 0;
  100. 			$el->element_total = $el->element_amount * $el->element_price;
  101.  
  102. 			$rel =& $this->getTable('budgets_elements');
  103. 			if (!$rel->bind($el)) {
  104.         		return JError::raiseError( 500, $rel->getError() );
  105. 			}
  106. 			if (!$rel->store()) {
  107.         		JError::raiseError(500, $rel->getError() );
  108. 			}
  109. 		}
  110.  
  111. 		// Si todo ha ido bien, enviamos un email de confirmación
  112. 		if (bdgHelperConfig::getConfig('email_notification', '1')) {
  113. 			global $mainframe;
  114. 			$email_users = bdgHelperConfig::getConfig('email_users');
  115.  
  116. 			$sitename 		= $mainframe->getCfg( 'sitename' );
  117. 			$mailfrom 		= $mainframe->getCfg( 'mailfrom' );
  118. 			$fromname 		= $mainframe->getCfg( 'fromname' );			
  119.  
  120. 			$email_users = explode( ',', $email_users );
  121.  
  122. 			foreach ($email_users as $eu) {
  123. 				$user = JFactory::getUser($eu);
  124. 				$emailto = $user->email; 
  125. 				$message = sprintf(JText::_( 'Budget New Notification' ), $user->username, $user->id);
  126. 				$message = html_entity_decode($message, ENT_QUOTES);
  127.  
  128. 				JUtility::sendMail($mailfrom, $fromname, $emailto, $sitename, $message);
  129. 			}
  130. 		}
  131. 	}
  132.  
  133. 	function getElements($type_id) {
  134. 		$db = &JFactory::getDBO();
  135. 		$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'
  136.  
  137. 				. ' 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';
  138. 		$db->setQuery($query);
  139. 		$rows = $db->loadObjectList();
  140. 		return $rows;
  141. 	}
  142.  
  143. 	function getIDs($elements) {
  144. 		$ids = array();
  145. 		foreach ($elements as $e) {
  146. 			$ids[] = $e->id;
  147. 		}
  148. 		return $ids;
  149. 	}
  150.  
  151. 	function getItemsDSC($elements) {
  152. 		$items_dsc = array();
  153. 		$db = &JFactory::getDBO();
  154. 		foreach ($elements as $e) {
  155. 			$query = "SELECT * FROM #__bdg_items_dsc WHERE item_id = ".$e->id;
  156. 			$db->setQuery($query);
  157. 			$rows = $db->loadObjectList();
  158. 			if (count($rows) != NULL)
  159. 				$items_dsc[$e->id] = $rows;
  160. 		}
  161. 		return $items_dsc;
  162. 	}
  163.  
  164. 	function getIDCS($elements) {
  165. 		$ids = array();
  166. 		foreach ($elements as $el) {
  167. 			foreach ($el as $e) {
  168. 				$ids[] = $e->id;
  169. 			}
  170. 		}
  171. 		return $ids;
  172. 	}
  173.  
  174. 	function getTYPEs($elements) {
  175. 		$types = array();
  176. 		foreach ($elements as $e) {
  177. 			$types[] = $e->type;
  178. 		}
  179. 		return $types;
  180. 	}
  181. }