private static function ObtenerEmpresasParaAsignacionVenta($detalle_producto = null, $detalle_paquete = null, $detalle_orden = null) { //inicializa los arreglos base $empresas = array(); $id_empresas = array("id" => array(), "total" => array()); //bandera que indica si se recibio alguno de los 3 detalles $parametro = false; //Para todos los detalles, se recorre el detalle recibido, se validan sus datos //y se buscan las empresas que tengan ese elemento. Despues se llama al metodo //InsertarIdEmpresa que se encarga de acomodar el arreglo de empresas y su total //correspondiente if (!is_null($detalle_producto)) { $parametro = true; $producto_empresa = new ProductoEmpresa(); foreach ($detalle_producto as $d_p) { $producto_empresa->setIdProducto($d_p["id_producto"]); $productos_empresa = ProductoEmpresaDAO::search($producto_empresa); foreach ($productos_empresa as $p_e) { self::InsertarIdEmpresa($p_e, $id_empresas, $d_p["precio"] * $d_p["cantidad"]); } } } if (!is_null($detalle_paquete)) { $parametro = true; $paquete_empresa = new PaqueteEmpresa(); foreach ($detalle_paquete as $d_p) { $paquete_empresa->setIdPaquete($d_p["id_paquete"]); $paquetes_empresa = PaqueteEmpresaDAO::search($paquete_empresa); foreach ($paquetes_empresa as $p_e) { self::InsertarIdEmpresa($p_e, $id_empresas, $d_p["precio"] * $d_p["cantidad"]); } } } if (!is_null($detalle_orden)) { $parametro = true; $servicio_empresa = new ServicioEmpresa(); foreach ($detalle_orden as $orden) { $orden_de_servicio = OrdenDeServicioDAO::getByPK($orden["id_orden_de_servicio"]); $servicio_empresa->setIdServicio($orden_de_servicio->getIdServicio()); $servicios_empresa = ServicioEmpresaDAO::search($servicio_empresa); foreach ($servicios_empresa as $s_e) { self::InsertarIdEmpresa($s_e, $id_empresas, $orden["precio"]); } } } //Si no se recibio ningun detalle se arroja una excepcion if (!$parametro) { throw new Exception("No se recibio un id_producto ni un id_paquete ni un id_orden"); } return $id_empresas; }