Exemplo n.º 1
0
 public function testNuevaClasificacionCliente()
 {
     $c = ClasificacionClienteDAO::getByPK(1);
     if (!is_null($c)) {
         ClasificacionClienteDAO::delete($c);
     }
     $n_c = new ClasificacionCliente();
     $n_c->setIdClasificacionCliente(1);
     $n_c->setClaveInterna('Default');
     $n_c->setNombre('Default');
     $n_c->setIdTarifaVenta(1);
     $n_c->setIdTarifaCompra(1);
     ClasificacionClienteDAO::save($n_c);
 }
Exemplo n.º 2
0
 /**
  *
  *Edita la informacion de la clasificacion de cliente
  *
  * @param id_clasificacion_cliente int Id de la clasificacion del cliente a modificar
  * @param impuestos json Ids de los impuestos que afectan a esta clasificacion
  * @param descuento float Descuento que se le aplicara a los productos 
  * @param retenciones json Ids de las retenciones que afectan esta clasificacion
  * @param clave_interna string Clave interna de la clasificacion
  * @param nombre string Nombre de la clasificacion
  * @param descripcion string Descripcion larga de la clasificacion
  * @param margen_de_utilidad float Margen de utilidad que se le obtendra a todos los productos al venderle a este tipo de cliente
  **/
 public static function EditarClasificacion($id_clasificacion_cliente, $clave_interna = null, $descripcion = null, $nombre = null)
 {
     Logger::log("Editando clasificacion de cliente " . $id_clasificacion_cliente);
     //Se validan los parametros recibidos
     $validar = self::validarParametrosClasificacionCliente($id_clasificacion_cliente, $clave_interna, $nombre, $descripcion);
     if (is_string($validar)) {
         Logger::error($validar);
         throw new Exception($validar, 901);
     }
     //            $cambio_tarifa_compra = false;
     //            $cambio_tarifa_venta = false;
     //Los parametros que no sean nulos seran tomados como actualizacion
     $clasificacion_cliente = ClasificacionClienteDAO::getByPK($id_clasificacion_cliente);
     if (!is_null($clave_interna)) {
         $clasificacion_cliente->setClaveInterna($clave_interna);
     }
     if (!is_null($nombre)) {
         $clasificacion_cliente->setNombre(trim($nombre));
     }
     if (!is_null($descripcion)) {
         $clasificacion_cliente->setDescripcion($descripcion);
     }
     //            if(!is_null($id_tarifa_compra))
     //            {
     //                if($id_tarifa_compra!=$clasificacion_cliente->getIdTarifaCompra())
     //                {
     //                    $cambio_tarifa_compra=true;
     //                    $clasificacion_cliente->setIdTarifaCompra($id_tarifa_compra);
     //                }
     //            }
     //            if(!is_null($id_tarifa_venta))
     //            {
     //                if($id_tarifa_venta!=$clasificacion_cliente->getIdTarifaVenta())
     //                {
     //                    $cambio_tarifa_venta=true;
     //                    $clasificacion_cliente->setIdTarifaVenta($id_tarifa_venta);
     //                }
     //            }
     //Se actualiza el registro. Si se recibe una lista de impuestos y/o retenciones, se almacenan los
     //registros recibidos, despues, se recorren los registro de la base de datos y se buscan en la lista recibida.
     //Aquellos que no sean encontrados seran eliminados
     DAO::transBegin();
     try {
         ClasificacionClienteDAO::save($clasificacion_cliente);
         //Si cambia la tarifa de compra o venta de una clasificacion de cliente, todos los clientes
         //que tengan esta clasificacion y que hayan obtenido su tarifa de compra o venta de otro que no sea
         //de usuario debe actualizar su tarifa de compra o venta
         //                if($cambio_tarifa_compra || $cambio_tarifa_venta)
         //                {
         //                    $clientes = UsuarioDAO::getByPK(new Usuario( array( "id_clasificacion_cliente" => $id_clasificacion_cliente ) ));
         //                    foreach($clientes as $c)
         //                    {
         //                        if($cambio_tarifa_compra)
         //                        {
         //                            if($c->getTarifaCompraObtenida()!="usuario")
         //                            {
         //                                $c->setIdTarifaCompra($id_tarifa_compra);
         //                                $c->setTarifaCompraObtenida("cliente");
         //                            }
         //                        }
         //                        if($cambio_tarifa_venta)
         //                        {
         //                            if($c->getTarifaVentaObtenida()!="usuario")
         //                            {
         //                                $c->setIdTarifaVenta($id_tarifa_venta);
         //                                $c->setTarifaVentaObtenida("cliente");
         //                            }
         //                        }
         //                        UsuarioDAO::save($c);
         //                    }
         //                }
         //                if(!is_null($impuestos))
         //                {
         //
         //                    $impuestos = object_to_array($impuestos);
         //
         //                    if(!is_array($impuestos))
         //                    {
         //                        throw new Exception("Los impuestos son invalidos",901);
         //                    }
         //
         //                    $impuesto_clasificacion_cliente = new ImpuestoClasificacionCliente(
         //                            array( "id_clasificacion_cliente" => $clasificacion_cliente->getIdClasificacionCliente() ));
         //                    foreach ($impuestos as $impuesto)
         //                    {
         //                        if(is_null(ImpuestoDAO::getByPK($impuesto)))
         //                                throw new Exception ("El impuesto ".$impuesto." no existe",901);
         //
         //                        $impuesto_clasificacion_cliente->setIdImpuesto($impuesto);
         //                        ImpuestoClasificacionClienteDAO::save($impuesto_clasificacion_cliente);
         //                    }
         //
         //                    $impuestos_clasificacion_cliente = ImpuestoClasificacionClienteDAO::search(
         //                            new ImpuestoClasificacionCliente( array( "id_clasificacion_cliente" => $id_clasificacion_cliente ) ) );
         //                    foreach($impuestos_clasificacion_cliente as $impuesto_clasificacion_cliente)
         //                    {
         //                        $encontrado = false;
         //                        foreach($impuestos as $impuesto)
         //                        {
         //                            if($impuesto == $impuesto_clasificacion_cliente->getIdImpuesto())
         //                                $encontrado = true;
         //                        }
         //                        if(!$encontrado)
         //                            ImpuestoClasificacionClienteDAO::delete ($impuesto_clasificacion_cliente);
         //                    }
         //                }/* Fin if de impuestos */
         //                if(!is_null($retenciones))
         //                {
         //
         //                     $retenciones = object_to_array($retenciones);
         //
         //                    if(!is_array($retenciones))
         //                    {
         //                        throw new Exception("Las retenciones son invalidas",901);
         //                    }
         //
         //                    $retencion_clasificacion_cliente = new RetencionClasificacionCliente(
         //                            array ( "id_clasificacion_cliente" => $clasificacion_cliente->getIdClasificacionCliente() ) );
         //                    foreach( $retenciones as $retencion )
         //                    {
         //                        if(is_null(RetencionDAO::getByPK($retencion)))
         //                                throw new Exception("La retencion ".$retencion." no existe",901);
         //
         //                        $retencion_clasificacion_cliente->setIdRetencion($retencion);
         //                        RetencionClasificacionClienteDAO::save($retencion_clasificacion_cliente);
         //                    }
         //
         //                    $retenciones_clasificacion_cliente = RetencionClasificacionClienteDAO::search(
         //                            new RetencionClasificacionCliente( array( "id_clasificacion_cliente" => $id_clasificacion_cliente ) ) );
         //                    foreach($retenciones_clasificacion_cliente as $retencion_clasificacion_cliente)
         //                    {
         //                        $encontrado = false;
         //                        foreach($retenciones as $retencion)
         //                        {
         //                            if($retencion == $retencion_clasificacion_cliente->getIdRetencion())
         //                                $encontrado = true;
         //                        }
         //                        if(!$encontrado)
         //                            RetencionClasificacionClienteDAO::delete ($retencion_clasificacion_cliente);
         //                    }
         //                }/* Fin if de retenciones */
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se ha podido editar la clasificacion de cliente " . $id_clasificacion_cliente . " : " . $e);
         if ($e->getCode() == 901) {
             throw new Exception("No se ha podido editar la clasificacion de cliente: " . $e->getMessage());
         }
         throw new Exception("No se ha podido editar la clasificacion de cliente, consulte a su administrador de sistema");
     }
     DAO::transEnd();
 }