示例#1
0
 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;
 }