示例#1
0
/*
SucursalesController::DescontarDeAlmacenes( $d_producto, $id_sucursal );
SucursalesController::IncrementarDeAlmacenes( $d_producto, $id_sucursal );
*/
/*
TRUNCATE `lote_entrada`;
TRUNCATE `lote_entrada_producto`;
TRUNCATE `lote_producto`;
TRUNCATE `lote_salida`;
TRUNCATE `lote_salida_producto`;
*/
if (!isset($_GET["GO"])) {
    exit;
}
//listemos las compras
$compras = CompraDAO::getAll();
for ($i = 0; $i < sizeof($compras); $i++) {
    //buscar sus productos
    $productos = CompraProductoDAO::search(new CompraProducto(array("id_compra" => $compras[$i]->getIdCompra())));
    for ($p = 0; $p < sizeof($productos); $p++) {
        $d_producto = $productos[$p]->asArray();
        $id_sucursal = 7;
        echo ".";
        try {
            SucursalesController::IncrementarDeAlmacenes($d_producto, $id_sucursal);
        } catch (Exception $e) {
            echo "e";
        }
    }
}
$ventas = VentaDAO::getAll();
示例#2
0
 /**
  *
  *Lista las compras. Se puede filtrar por empresa, sucursal, caja, usuario que registra la compra, usuario al que se le compra, tipo de compra, si estan pagadas o no, por tipo de pago, canceladas o no, por el total, por fecha, por el tipo de pago y se puede ordenar por sus atributos.
  *
  * @param fecha_inicial string Se listaran las compras cuya fecha sea mayor a la indicada aqui
  * @param tipo_compra string Si es a credito, se listaran las compras que sean a credito, si es de contado, se listaran las compras de contado
  * @param id_usuario_compra int Se listaran las compras realizadas por este usuario, si es sucursal su id sera negativo
  * @param id_caja int Se listaran las compras registradas en esta caja
  * @param id_usuario int Se listaran las compras que ha registrado este usuario
  * @param id_empresa int Id de la empresa de la cual se listaran sus compras
  * @param id_sucursal int Id de la sucursal de la cual se listaran sus compras
  * @param fecha_final string Se listaran las compras cuya fecha sea menor a la indicada aqui
  * @param total_minimo float Se listaran las compras cuyo total sea mayor a este
  * @param total_maximo float Se listaran las compras cuyo total sea menor a este
  * @param saldada bool Si este valor no es obtenido, se listaran las compras tanto saldadas como las que no lo estan. Si es verdadero se listaran solo las compras saldadas, si es falso, se listaran solo las compras que no lo estan
  * @param cancelada bool Si este valor no es obtenido, se listaran tanto compras canceladas como no canceladas. Si es verdadero, se listaran solo las compras canceladas, si su valor es falso, se listaran solo las compras que no lo esten
  * @param tipo_pago string Se listaran las compras pagadas con cheque, tarjeta o efectivo de acuerdo a este valor
  * @return compras json Objeto que contendra la lista de las compras
  **/
 public static function Lista($cancelada = null, $fecha_final = null, $fecha_inicial = null, $id_caja = null, $id_empresa = null, $id_sucursal = null, $id_usuario = null, $id_vendedor_compra = null, $orden = null, $saldada = null, $tipo_compra = null, $tipo_pago = null, $total_maximo = null, $total_minimo = null)
 {
     Logger::log("Listando compras");
     //Se valida que el parametro orden sea correcto
     if (!is_null($orden) && $orden != "id_compra" && $orden != "id_caja" && $orden != "id_compra_caja" && $orden != "id_vendedor_compra" && $orden != "tipo_compra" && $orden != "fecha" && $orden != "subtotal" && $orden != "impuesto" && $orden != "descuento" && $orden != "total" && $orden != "id_sucursal" && $orden != "id_usuario" && $orden != "id_empresa" && $orden != "saldo" && $orden != "cancelada" && $orden != "tipo_de_pago" && $orden != "retencion") {
         Logger::error("EL parametro orden (" . $orden . ") no es valido");
         throw new Exception("EL parametro orden (" . $orden . ") no es valido", 901);
     }
     //Revisa si se recibieron parametros o no para saber cual metodo usar
     $parametros = false;
     if ($fecha_inicial != null || $tipo_compra != null || $id_vendedor_compra != null || $id_caja != null || $id_usuario != null || $id_empresa != null || $id_sucursal != null || $fecha_final != null || $total_minimo != null || $total_maximo != null || $cancelada != null || $tipo_pago != null) {
         $parametros = true;
     }
     $compras = null;
     if ($parametros) {
         Logger::log("Se recibieron parametros, se listan las compras en rango");
         //objetos que serviran para obtener un rango de valores
         $compra_criterio_1 = new Compra();
         $compra_criterio_2 = new Compra();
         $compra_criterio_1->setTipoDeCompra($tipo_compra);
         $compra_criterio_1->setIdVendedorCompra($id_vendedor_compra);
         $compra_criterio_1->setIdCaja($id_caja);
         $compra_criterio_1->setIdUsuario($id_usuario);
         $compra_criterio_1->setIdEmpresa($id_empresa);
         $compra_criterio_1->setIdSucursal($id_sucursal);
         $compra_criterio_1->setCancelada($cancelada);
         $compra_criterio_1->setTipoDePago($tipo_pago);
         //revisa los rangos recibidos y se asignan en conjunto con limites para obtener el rango deseado
         if ($fecha_inicial != null) {
             $compra_criterio_1->setFecha($fecha_inicial);
             if ($fecha_final != null) {
                 $compra_criterio_2->setFecha($fecha_final);
             } else {
                 $compra_criterio_2->setFecha(time());
             }
         } else {
             if ($fecha_final != null) {
                 $compra_criterio_1->setFecha($fecha_final);
                 $compra_criterio_2->setFecha("1001-01-01 00:00:00");
             }
         }
         if ($total_minimo !== null) {
             $compra_criterio_1->setTotal($total_minimo);
             if ($total_maximo !== null) {
                 $compra_criterio_2->setTotal($total_maximo);
             } else {
                 $compra_criterio_2->setTotal(1.8E+100);
             }
         } else {
             if ($total_maximo !== null) {
                 $compra_criterio_1->setTotal($total_maximo);
                 $compra_criterio_2->setTotal(0);
             }
         }
         $compras = CompraDAO::byRange($compra_criterio_1, $compra_criterio_2, $orden);
     } else {
         Logger::log("No se recibieron parametros, se listan todas las compras");
         $compras = CompraDAO::getAll(null, null, $orden);
     }
     //Si se recibe el parametro saldada, se tiene que hace un filtro extra donde solo se incluyan las compras
     //con ese valor de saldadada
     if ($saldada !== null) {
         $temporal = array();
         if ($saldada) {
             foreach ($compras as $compra) {
                 if ($compra->getTotal() <= $compra->getSaldo()) {
                     array_push($temporal, $compra);
                 }
             }
         } else {
             foreach ($compras as $compra) {
                 if ($compra->getTotal() > $compra->getSaldo()) {
                     array_push($temporal, $compra);
                 }
             }
         }
         $compras = $temporal;
     }
     Logger::log("Se obtuvo la lista con éxito");
     return $compras;
 }
示例#3
0
 /**
  *
  * Configura el numero de decimales que se usaran para ciertas operaciones del sistema, como precios de venta, costos, tipos de cambio, entre otros
  *
  * @param cambio int Tipos de Cambio
  * @param cantidades int Cantidades
  * @param costos int Costos y Precio de Compra
  * @param ventas int Precio de Venta
  * @return status string ok
  **/
 public static function DecimalesConfiguracion($cambio, $cantidades, $costos, $ventas)
 {
     //validamos que los valores enviados sean numericos
     if (!ctype_digit($cambio) || !ctype_digit($cantidades) || !ctype_digit($costos) || !ctype_digit($ventas)) {
         Logger::error("Los valores ingresados deben de ser Numeros Enteros");
         return array("status" => "failure", "message" => "Los valores ingresados deben de ser Numeros Enteros");
     }
     //buscamos la configuracion de decimales
     $configuraciones = ConfiguracionDAO::search(new Configuracion(array("descripcion" => "decimales")));
     if (empty($configuraciones)) {
         Logger::error("No se tiene registro de la configuracion 'decimales' en la tabla de configuraciones");
         return array("status" => "failure", "message" => "No se tiene registro de la configuracion 'decimales' en la tabla de configuraciones");
     } else {
         $decimales = $configuraciones[0];
         $config = json_decode($decimales->getValor());
     }
     //verificamos que la configuracion contenga todos los parametros
     if (!isset($config->cambio)) {
         Logger::error("No se encontro la configuracion de \"cambio\" en el JSON");
         return array("status" => "failure", "message" => "No se encontro la configuracion de \"cambio\" en el JSON");
     }
     if (!isset($config->cantidades)) {
         Logger::error("No se encontro la configuracion de \"cantidades\" en el JSON");
         return array("status" => "failure", "message" => "No se encontro la configuracion de \"cantidades\" en el JSON");
     }
     if (!isset($config->costos)) {
         Logger::error("No se encontro la configuracion de \"costos\" en el JSON");
         return array("status" => "failure", "message" => "No se encontro la configuracion de \"costos\" en el JSON");
     }
     if (!isset($config->ventas)) {
         Logger::error("No se encontro la configuracion de \"ventas\" en el JSON");
         return array("status" => "failure", "message" => "No se encontro la configuracion de \"ventas\" en el JSON");
     }
     //en caso de haber registrado compras de producto ya no se puede bajar el numero de decimales en "costo" y "cantidades"
     if (count(CompraDAO::getAll()) > 0) {
         if ($config->costos > $costos) {
             Logger::error("El valor de \"costos\" no puede ser menor que el valor actual, debido a que ya se cuenta con movimientos.");
             return array("status" => "failure", "message" => "El valor de \"costos\" no puede ser menor que el valor actual, debido a que ya se cuenta con movimientos.");
         } else {
             $config->costos = $costos;
         }
         if ($config->cantidades > $cantidades) {
             Logger::error("El valor de \"cantidades\" no puede ser menor que el valor actual, debido a que ya se cuenta con movimientos.");
             return array("status" => "failure", "message" => "El valor de \"cantidades\" no puede ser menor que el valor actual, debido a que ya se cuenta con movimientos.");
         } else {
             $config->cantidades = $cantidades;
         }
     } else {
         $config->costos = $costos;
         $config->cantidades = $cantidades;
     }
     //en caso de que haya ventas el valor de "ventas" no puede ser menor que el actual
     if (count(VentaDAO::getAll()) > 0) {
         if ($config->ventas > $ventas) {
             Logger::error("El valor de \"ventas\" no puede ser menor que el valor actual, debido a que ya se cuenta con movimientos.");
             return array("status" => "failure", "message" => "El valor de \"ventas\" no puede ser menor que el valor actual, debido a que ya se cuenta con movimientos.");
         } else {
             $config->ventas = $ventas;
         }
     } else {
         $config->ventas = $ventas;
     }
     //TODO : En el caso de la configuracion de cambio aun esta por definir las reglas de negocio
     $config->cambio = $cambio;
     //modificamos el valor de la configuracion de decimales
     $decimales->setValor(json_encode($config));
     //intentamos guardar los cambios
     try {
         ConfiguracionDAO::save($decimales);
     } catch (Exception $e) {
         Logger::error("Error {$e}");
         return array("status" => "failure", "message" => $e->getMessage());
     }
     //termino con exito
     return array("status" => "okay");
 }