コード例 #1
0
 /**
  	 *
  	 *Edita la informacion de una tarifa. Este metodo puede cambiar las formulas de una tarifa o la vigencia de la misma. 
 
 Este metodo tambien puede ponder como default esta tarifa o quitarle el default. Si se le quita el default, automaticamente se pone como default la predeterminada del sistema.
 Si se obtienen formulas en este metodo, se borraran todas las formulas de esta tarifa y se aplicaran las recibidas
 
 Si se cambia el tipo de tarifa, se verfica que esta tarifa no sea una default para algun rol, usuario, clasificacion de cliente o de proveedor, y pierde su default si fuera la default, poniendo como default la predetermianda del sistema.
 
 Aplican todas las consideraciones de la documentacion del metodo nuevaTarifa
  	 *
  	 * @param id_tarifa int Id de la tarifa a editar
  	 * @param default bool Si esta tarifa sera la default
  	 * @param fecha_fin string Fecha a partir de la cual se dejaran de aplicar las formulas de esta tarifa
  	 * @param fecha_inicio string Fecha a partir de la cual se aplicaran las formulas de esta tarifa
  	 * @param formulas json Un arreglo de objetos que contendran la siguiente informacion:        
 "formulas" : [
        {
           "id_producto"                 : null,
           "id_unidad"                   : null,
           "id_clasificacion_producto"   : null,
           "id_servicio"                 : null,
           "id_paquete"                  : null,
           "id_clasificacion_servicio"   : null,
           "cantidad_minima"             : null,
           "id_tarifa"                   : -1,
           "porcentaje_utilidad"         : 0.00,
           "utilidad_neta"               : 0.00,
           "metodo_redondeo"             : 0.00,
           "margen_min"                  : 0.00,
           "margen_max"                  : 0.00,
           "secuencia"                   : 5
                  }
        ]
    Para mas informacion de estos parametros consulte la documentacion del metodo nuevaTarifa. El parametro id_tarifa es la tarifa base de donde se sacara el Precio Base para la formula. La tarifa -1 inidica que no hay una tarifa base, sino que se toma el precio base del producto, o su costo base, segun marque su metodo de costeo.
  	 * @param id_moneda int Id de la moneda con la cual se realizaran todos los movimientos de la tarifa
  	 * @param nombre string Nombre de la tarifa
  	 * @param tipo_tarifa string Puede ser "compra" o "venta" e indica si la tarifa sera de compra o de venta
  	 **/
 public static function Editar($id_tarifa, $default = null, $fecha_fin = null, $fecha_inicio = null, $formulas = null, $id_moneda = null, $nombre = null, $tipo_tarifa = null)
 {
     Logger::log("Editando la tarifa " . $id_tarifa . " desde metodo publico");
     //Se llama a los metodos internos, pues ellos hacen las validaciones
     DAO::transBegin();
     try {
         self::EditarTarifaBase($id_tarifa, $id_moneda, $nombre, $tipo_tarifa);
         $tarifa = TarifaDAO::getByPK($id_tarifa);
         if ($default && !$tarifa->getDefault()) {
             switch ($tarifa->getTipoTarifa()) {
                 case "compra":
                     self::CompraSetDefaultTarifa($id_tarifa);
                     break;
                 case "venta":
                     self::VentaSetDefaultTarifa($id_tarifa);
                     break;
             }
         }
         //Si la version activa de la tarifa es la version default con reglas puestas por el usuario,
         //y al editarse se le quiere poner fecha de inicio o de fin, entonces se tiene que crear
         //otra version default que no tenga caducidad y con una regla que no haga ningun cambio a los precios
         if ($tarifa->getIdVersionActiva() == $tarifa->getIdVersionDefault() && (!is_null($fecha_inicio) || !is_null($fecha_fin))) {
             $id_version_default = self::NuevaVersion($id_tarifa, $tarifa->getNombre() . " vd", 0, 1);
             $id_regla_default = self::NuevaRegla($id_version_default, $tarifa->getNombre() . " vd rd", 1, 1, null, null, null, null, null, -1, null, 0, 0, 0, 0, 0);
             $tarifa->setIdVersionDefault($id_version_default);
             TarifaDAO::save($tarifa);
         }
         self::EditarVersion($tarifa->getIdVersionActiva(), $fecha_fin, $fecha_inicio);
         //Si se reciben formulas, se eliminan todas las formlas en la version activa y se
         //insertan las formulas recibidas.
         if (!is_null($formulas)) {
             $id_version = $tarifa->getIdVersionActiva();
             $nombre_version = VersionDAO::getByPK($id_version)->getNombre();
             $contador = 0;
             $reglas = ReglaDAO::search(new Regla(array("id_version" => $id_version)));
             foreach ($reglas as $regla) {
                 self::EliminarRegla($regla->getIdRegla());
             }
             foreach ($formulas as $formula) {
                 if (!array_key_exists("secuencia", $formula)) {
                     throw new Exception("La formula recibida no cuenta con el parametro secuencia", 901);
                 }
                 self::NuevaRegla($id_version, $nombre_version . " r" . $contador, $formula["secuencia"], array_key_exists("cantidad_minima", $formula) ? $formula["cantidad_minima"] : 1, array_key_exists("id_clasificacion_producto", $formula) ? $formula["id_clasificacion_producto"] : null, array_key_exists("id_clasificacion_servicio", $formula) ? $formula["id_clasificacion_servicio"] : null, array_key_exists("id_paquete", $formula) ? $formula["id_paquete"] : null, array_key_exists("id_producto", $formula) ? $formula["id_producto"] : null, array_key_exists("id_servicio", $formula) ? $formula["id_servicio"] : null, array_key_exists("id_tarifa", $formula) ? $formula["id_tarifa"] : null, array_key_exists("id_unidad", $formula) ? $formula["id_unidad"] : null, array_key_exists("margen_max", $formula) ? $formula["margen_max"] : 0, array_key_exists("margen_min", $formula) ? $formula["margen_min"] : 0, array_key_exists("metodo_redondeo", $formula) ? $formula["metodo_redondeo"] : 0, array_key_exists("porcentaje_utilidad", $formula) ? $formula["porcentaje_utilidad"] : 0, array_key_exists("utilidad_neta", $formula) ? $formula["utilidad_neta"] : 0);
                 $contador++;
             }
         }
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo editar la tarifa: " . $e);
         if ($e->getCode() == 901) {
             throw new Exception("No se pudo editar la tarifa: " . $e->getMessage(), 901);
         }
         throw new Exception("No se pudo editar la tarifa, intentelo de nuevo mas tarde o consulte a su administrador de sistema", 901);
     }
     DAO::transEnd();
     Logger::log("Tarifa editada exitosamente");
 }
コード例 #2
0
ファイル: tarifas.editar.php プロジェクト: kailIII/pos-erp
?>
 /> No                
            </td>        
        </tr>        
    </table>
</form>

<?php 
$page->addComponent(new TitleComponent("Vers&iacute;on Tarifa", 2));
$page->partialRender();
?>

<table style ="width:100%;">
    <tr>
        <td style = "border-width:0px;" valign="middle">
            <input class="POS Boton OK"  type = "button" value = "Nueva Versi&oacute;n" onClick = "" />
        </td>
    </tr>
</table>

<?php 
$tabla = new TableComponent(array("nombre" => "Nombre", "activa" => "Activa", "fecha_inicio" => "Fecha Inicial", "fecha_fin" => "Fecha Final", "default" => "Default"), VersionDAO::search(new Version(array("id_tarifa" => $tarifa->getIdTarifa()))));
function getCheck($activa)
{
    return $activa == 1 ? "<input type=\"checkbox\" checked disabled>" : "<input type=\"checkbox\" disabled>";
}
$tabla->addColRender("activa", "getCheck");
$tabla->addColRender("default", "getCheck");
$tabla->addOnClick("id_version", "(function(a){ window.location = 'tarifas.version.ver.php?vid=' + a; })");
$page->addComponent($tabla);
$page->render();
コード例 #3
0
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server/bootstrap.php";
$page = new GerenciaComponentPage();
$version = VersionDAO::getByPK($_REQUEST['vid']);
$page->addComponent(new TitleComponent("Versi&oacute;n Tarifa"));
$page->addComponent(new TitleComponent($version->getNombre(), 2));
$page->addComponent(new TitleComponent("Nueva Regla", 2));
$page->addComponent(new MessageComponent("Ingrese los valores para crer una nuava regla"));
$page->partialRender();
?>


<form name ="form_nueva_regla" id ="form_nueva_regla">
    <table style ="width:100%;">
        <tr>
            <td>
                Nombre :    
            </td>
            <td colspan ="3">
                <input type = "text" name = "nombre_regla" id = "nombre_regla" value = "" style ="width:100%;"/>
            </td>

        </tr>
        <tr>
            <td>
                Secuencia :    
            </td>
            <td>
                <input type = "text" name = "secuencia_regla" id = "secuencia_regla" value = "" style ="width:100%;"/>