示例#1
0
 /**
  *
  *Cancela una compra
  *
  * @param id_compra int Id de la compra a cancelar
  **/
 public static function Cancelar($id_compra, $billetes = null, $id_caja = null)
 {
     Logger::log("Cancenlando compra " . $id_compra);
     //valida que la compra exista y que este activa
     $compra = CompraDAO::getByPK($id_compra);
     if ($compra == null) {
         throw new Exception("La compra con id: " . $id_compra . " no existe", 901);
     }
     if ($compra->getCancelada()) {
         Logger::warn("La compra ya ha sido cancelada");
         return;
     }
     //Obtiene al usuario al que se le compro
     $usuario = UsuarioDAO::getByPK($compra->getIdVendedorCompra());
     if ($usuario == null) {
         throw new Exception("FATAL!!! Esta compra apunta a un usuario que no existe", 901);
     }
     //Deja la compra como cancelada y la guarda.
     $compra->setCancelada(1);
     DAO::transBegin();
     try {
         $com_prod = new CompraProducto();
         $com_prod->setIdCompra($id_compra);
         $prods_compra = CompraProductoDAO::search($com_prod);
         foreach ($prods_compra as $p) {
             //De que almacen/inventario lo descuento? , del almacen de la empresa? como identifico el lote de entrada prod?
             continue;
             $ven_prod = new VentaProducto();
             $ven_prod->setIdProducto();
             $ven_prod->setCantidad($p->getCantidad());
             $ven_prod->setPrecio($p->getPrecio());
             $ven_prod->setDescuento($p->getDescuento());
             SucursalesController::DescontarDeAlmacenes($ven_prod, $compra->getIdSucursal());
         }
         CompraDAO::save($compra);
         //Si la compra fue a credito, se cancelan todos los abonos hechos al mismo y el dinero se queda a cuenta del usuario.
         if ($compra->getTipoDeCompra() == "credito") {
             $abono_compra = new AbonoCompra();
             $abono_compra->setIdCompra($id_compra);
             $abonos = AbonoCompraDAO::search($abono_compra);
             foreach ($abonos as $abono) {
                 if (!$abono->getCancelado()) {
                     CargosYAbonosController::EliminarAbono($abono->getIdAbonoCompra(), "Compra cancelada", 1, 0, 0, null, null);
                 }
             }
             $usuario->setSaldoDelEjercicio($usuario->getSaldoDelEjercicio() - $compra->getTotal());
             UsuarioDAO::save($usuario);
         } else {
             if ($compra->getTipoDeCompra() == "contado" && !is_null($id_caja)) {
                 CajasController::modificarCaja($id_caja, 1, $billetes, $compra->getTotal());
             }
         }
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo cancelar la compra: " . $e);
         throw new Exception("No se pudo cancelar la compra, consulte a su administrador de sistema", 901);
     }
     DAO::transEnd();
     Logger::log("Compra cancelada exitosamente");
 }
示例#2
0
$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();
for ($i = 0; $i < sizeof($ventas); $i++) {
    //buscar sus productos
    $productos = VentaProductoDAO::search(new VentaProducto(array("id_venta" => $ventas[$i]->getIdVenta())));
    if (sizeof($productos) == 0) {
        e("NO HAY PRODUCTOS, WTF");
    }
    for ($p = 0; $p < sizeof($productos); $p++) {
        echo ".";
        try {
            SucursalesController::DescontarDeAlmacenes($productos[$p], $id_sucursal);
        } catch (Exception $e) {
            echo "e";
        }
    }
}