Example #1
0
 /**
  * 
  * 
  * */
 public static function flujoEfectivo($id_empresa, $unix_fecha_inicio = null)
 {
     if (($empresa = EmpresaDAO::getByPK($id_empresa)) == null) {
         throw new InvalidDataException("Esta empresa no existe");
     }
     //traerme los abonos a ventas
     $abonos = CargosYAbonosController::ListaAbono(1, 1, 1);
     $flujo = 0;
     $out = array();
     for ($a = 0; $a < $abonos["numero_de_resultados"]; $a++) {
         array_push($out, array("fecha" => $abonos["resultados"]["ventas"][$a]->fecha, "value" => $abonos["resultados"]["ventas"][$a]->monto, "tipo" => "abono"));
     }
     $gastos = CargosYAbonosController::ListaGasto();
     for ($a = 0; $a < $gastos["numero_de_resultados"]; $a++) {
         array_push($out, array("fecha" => $gastos["resultados"][$a]->fecha_del_gasto, "value" => $gastos["resultados"][$a]->monto * -1, "tipo" => "gastos"));
     }
     return $out;
 }
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server//bootstrap.php";
$page = new GerenciaComponentPage();
$page->addComponent(new TitleComponent("Ingresos"));
$page->addComponent(new MessageComponent("Lista de ingresos "));
$lista = CargosYAbonosController::ListaIngreso();
$tabla = new TableComponent(array("id_ingreso" => "id_ingreso", "id_empresa" => "id_empresa", "id_usuario" => "id_usuario", "id_concepto_ingreso" => "concpto", "fecha_del_ingreso" => "fecha", "monto" => "monto"), $lista["resultados"]);
function funcion_cancelado($cancelado)
{
    return $cancelado ? "Cancelado" : "Activo";
}
$tabla->addColRender("cancelado", "funcion_cancelado");
$tabla->addOnClick("id_ingreso", "(function(a){ window.location = 'cargos_y_abonos.lista.ingreso.php'; })");
$page->addComponent($tabla);
$page->render();
 public function testNuevaOrden()
 {
     $s = ServiciosController::Nuevo($codigo_servicio = "testNuevoServicio-2db94458_2" . time(), $compra_en_mostrador = false, $costo_estandar = 0, $metodo_costeo = "precio", $nombre_servicio = "testNuevoServicio-2db94458_2" . time(), $activo = true, $clasificaciones = null, $control_de_existencia = null, $descripcion_servicio = null, $empresas = null, $extra_params = null, $foto_servicio = null, $garantia = null, $impuestos = null, $precio = 1542.15, $retenciones = null, $sucursales = null);
     $c = ClientesController::Nuevo($razon_social = "testNuevaOrden-2db9445f" . time(), $clasificacion_cliente = null, $codigo_cliente = "t" . time(), $cuenta_de_mensajeria = null, $curp = null, $denominacion_comercial = null, $descuento_general = 0, $direcciones = null, $email = null, $id_cliente_padre = null, $id_moneda = 1, $id_tarifa_compra = null, $id_tarifa_venta = null, $limite_credito = 1542.15, $password = null, $representante_legal = null, $rfc = null, $sitio_web = null, $telefono_personal1 = null, $telefono_personal2 = null);
     Logger::testerLog("Nueva orde de servicio (" . $c["id_cliente"] . ", " . $s["id_servicio"] . " )");
     $o = ServiciosController::NuevaOrden($c["id_cliente"], $s["id_servicio"]);
     $this->assertInternalType("int", $o["id_orden"]);
     $this->assertInternalType("int", $o["id_venta"]);
     define("_pos_phpunit_servicios_id_cliente", $c["id_cliente"]);
     define("_pos_phpunit_servicios_id_servicio", $s["id_servicio"]);
     //ok ya que se hizo el servicio, ver que se halla creado
     //una venta a credito a este cliente
     $lista_de_ventas = VentasController::Lista();
     $found = false;
     for ($i = 0; $i < $lista_de_ventas["numero_de_resultados"]; $i++) {
         if ($lista_de_ventas["resultados"][$i]["cliente"]["id_cliente"] == $c["id_cliente"]) {
             $found = true;
         }
     }
     $this->assertTrue($found);
     //vamos a buscar que ese cliente ya no tenga limite de credito
     $u = UsuarioDAO::getByPK($c["id_cliente"]);
     $this->assertEquals(0, $u->getLimiteCredito());
     //hacerle un abono
     CargosYAbonosController::NuevoAbono($c["id_cliente"], 1, "efectivo", null, null, null, null, $o["id_venta"]);
 }
Example #4
0
 protected function GenerateResponse()
 {
     try {
         $this->response = CargosYAbonosController::ListaIngreso(isset($_GET['cancelado']) ? $_GET['cancelado'] : null, isset($_GET['fecha_actual']) ? $_GET['fecha_actual'] : null, isset($_GET['fecha_final']) ? $_GET['fecha_final'] : null, isset($_GET['fecha_inicial']) ? $_GET['fecha_inicial'] : null, isset($_GET['id_caja']) ? $_GET['id_caja'] : null, isset($_GET['id_concepto_ingreso']) ? $_GET['id_concepto_ingreso'] : null, isset($_GET['id_empresa']) ? $_GET['id_empresa'] : null, isset($_GET['id_sucursal']) ? $_GET['id_sucursal'] : null, isset($_GET['id_usuario']) ? $_GET['id_usuario'] : null, isset($_GET['orden']) ? $_GET['orden'] : null);
     } catch (Exception $e) {
         //Logger::error($e);
         throw new ApiException($this->error_dispatcher->invalidDatabaseOperation($e->getMessage()));
     }
 }
Example #5
0
 /**
  *
  *Metodo que cancela una venta
  *
  * @param id_venta string Id de la venta a cancelar
  **/
 public static function Cancelar($id_venta, $billetes = null, $id_caja = null)
 {
     Logger::log("======= Cancenlando venta " . $id_venta . " ===========");
     //valida que la venta exista y que este activa
     $venta = VentaDAO::getByPK($id_venta);
     if ($venta == null) {
         Logger::error("La venta con id: " . $id_venta . " no existe");
         throw new Exception("La venta con id: " . $id_venta . " no existe");
     }
     if ($venta->getCancelada()) {
         Logger::warn("La venta ya ha sido cancelada");
         return;
     }
     //Deja la venta como cancelada y la guarda.
     $venta->setCancelada(1);
     //Obtiene al usuario al que se le vendio
     $usuario = UsuarioDAO::getByPK($venta->getIdCompradorVenta());
     if ($usuario == null) {
         Logger::error("FATAL!!! Esta venta apunta a un usuario que no existe");
         throw new Exception("FATAL!!! Esta venta apunta a un usuario que no existe");
     }
     DAO::transBegin();
     // regresar de almacenes
     // obtener los productos que se vendieron
     // insertalos como neuvo ingreso
     $detalle = VentaProductoDAO::search(new VentaProducto(array("id_venta" => $id_venta)));
     for ($detalleIterator = 0; $detalleIterator < sizeof($detalle); $detalleIterator++) {
         //por cada producto
         //  --- procesos ---
         //  -insertar en productoempresa
         //  -insertar en loteproducto
         //  -insertar en entradalote
         //  -si el tipo de precio de venta es costo, actualizar
         //  -insertar compra producto
         $p = $detalle[$detalleIterator];
         try {
             /*
             ProductoEmpresaDAO::save( new ProductoEmpresa( array(
                     "id_empresa" => $id_empresa,
                     "id_producto" => $p->getIdProducto()
                 ) ) );
                 
             
             if(is_null($p->lote)){
                 throw new InvalidDataException("No selecciono a que lote ira el producto " . $p->id_producto);
             }
             
             
             if(strlen($p->lote) == 0){
                 throw new InvalidDataException("No selecciono a que lote ira el producto " . $p->id_producto);
             }
             */
             //busquemos el id del lote
             $l = LoteDAO::getByPk(1);
             //busquemos la unidad que nos mandaron
             $uResults = UnidadMedidaDAO::search(new UnidadMedida(array("id_unidad_medida" => $p->getIdUnidad(), "activa" => 1)));
             if (sizeof($uResults) != 1) {
                 throw new InvalidDataException("La unidad de medida `" . $p->id_unidad . "` no existe, o no esta activa.");
             }
             //busequemos si este producto ya existe en este lote
             $lp = LoteProductoDAO::getByPK($l->getIdLote(), $p->getIdProducto());
             if (is_null($lp)) {
                 //no existe, insertar
                 $loteProducto = new LoteProducto(array("id_lote" => $l->getIdLote(), "id_producto" => $p->getIdProducto(), "cantidad" => $p->getCantidad(), "id_unidad" => $p->getIdUnidad()));
                 LoteProductoDAO::save($loteProducto);
             } else {
                 //ya existe, sumar
                 //revisemos si es de la misma unidad
                 if ($lp->getIdUnidad() == $p->getIdUnidad()) {
                     //es igual, solo hay que sumar
                     $lp->setCantidad($lp->getCantidad() + $p->getCantidad());
                 } else {
                     //no es igual, hay que convertir
                     try {
                         $r = UnidadMedidaDAO::convertir($p->getIdUnidad(), $lp->getIdUnidad(), $p->getCantidad());
                     } catch (BusinessLogicException $ide) {
                         //no se pudo convertir porque son de
                         //diferentes categorias
                         throw $ide;
                         //mostrar una excpetion mas fresona
                     }
                     $lp->setCantidad($lp->getCantidad() + $r);
                 }
                 //$lp->setCantidad( $lp->getCantidad() + $p->cantidad );
                 LoteProductoDAO::save($lp);
             }
             $s = SesionController::getCurrentUser();
             $loteEntrada = new LoteEntrada(array("id_lote" => $l->getIdLote(), "id_usuario" => $s->getIdUsuario(), "fecha_registro" => time(), "motivo" => "Venta (" . $id_venta . ") Cancelada"));
             LoteEntradaDAO::save($loteEntrada);
             LoteEntradaProductoDAO::save(new LoteEntradaProducto(array("id_lote_entrada" => $loteEntrada->getIdLoteEntrada(), "id_producto" => $p->getIdProducto(), "id_unidad" => $p->getIdUnidad(), "cantidad" => $p->getCantidad())));
             /*
             $compraProducto = new CompraProducto(array(
                     "id_compra"         => $compra->getIdCompra(),
                     "id_producto"       => $p->id_producto,
                     "cantidad"          => $p->cantidad,
                     "precio"            => $p->precio,
                     "descuento"         => 0,
                     "impuesto"          => 0,
                     "id_unidad"         => $p->id_unidad,
                     "retencion"         => 0
                 ) );
             
             CompraProductoDAO::save ( $compraProducto);
             */
         } catch (InvalidDataException $e) {
             Logger::error($e);
             DAO::transRollback();
             throw $e;
         } catch (exception $e) {
             Logger::error($e);
             DAO::transRollback();
             throw new InvalidDatabaseOperationException($e);
         }
     }
     try {
         VentaDAO::save($venta);
         //Si la venta fue a credito, se cancelan todos los abonos hechos al mismo y el dinero se queda a cuenta del usuario.
         if ($venta->getTipoDeVenta() == "credito") {
             $abono_venta = new AbonoVenta();
             $abono_venta->setIdVenta($id_venta);
             $abonos = AbonoVentaDAO::search($abono_venta);
             foreach ($abonos as $abono) {
                 if (!$abono->getCancelado()) {
                     CargosYAbonosController::EliminarAbono($abono->getIdAbonoVenta(), "Venta cancelada", 0, 1, 0, null, null);
                 }
             }
             $usuario->setSaldoDelEjercicio($usuario->getSaldoDelEjercicio() + $venta->getTotal());
             UsuarioDAO::save($usuario);
         } else {
             if ($venta->getTipoDeVenta() == "contado" && !is_null($id_caja)) {
                 CajasController::modificarCaja($id_caja, 1, $billetes, $venta->getTotal());
             }
         }
     } catch (Exception $e) {
         DAO::transRollback();
         Logger::error("No se pudo cancelar la venta: " . $e);
         throw new Exception("No se pudo cancelar la venta");
     }
     DAO::transEnd();
     Logger::log("Venta cancelada exitosamente");
 }
Example #6
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");
 }
<?php

define("BYPASS_INSTANCE_CHECK", false);
require_once "../../../server//bootstrap.php";
$page = new GerenciaComponentPage();
$page->addComponent(new TitleComponent("Lista de Abonos"));
$page->addComponent(new MessageComponent("Lista los abonos realizados"));
$page->partialRender();
$r = CargosYAbonosController::ListaAbono($compra = true, $prestamo = true, $venta = true, $cancelado = null, $fecha_actual = null, $fecha_maxima = null, $fecha_minima = null, $id_caja = null, $id_compra = null, $id_empresa = null, $id_prestamo = null, $id_sucursal = null, $id_usuario = null, $id_venta = null, $monto_igual_a = null, $monto_mayor_a = null, $monto_menor_a = null, $orden = null);
$abonos_prestamo = array();
$abonos_venta = array();
$abonos_compra = array();
if (isset($r["resultados"]["ventas"])) {
    $abonos_venta = $r["resultados"]["ventas"];
}
if (isset($r["resultados"]["prestamos"])) {
    $abonos_prestamo = $r["resultados"]["prestamos"];
}
if (isset($r["resultados"]["compras"])) {
    $abonos_compra = $r["resultados"]["compras"];
}
function nombre_deudor($id_usuario, $obj)
{
    if (!UsuarioDAO::getByPK($id_usuario)) {
        return "";
    }
    return "<font title = \"Ir a detalles del usuario\" style = \"cursor:pointer;\" onClick = \"(function(){ window.location = 'clientes.ver.php?cid={$id_usuario}'; })();\" >" . UsuarioDAO::getByPK($id_usuario)->getNombre() . "</font>";
}
function formatMonto($monto, $obj)
{
    $monto = "\$&nbsp;<b>" . number_format((double) $monto, 2) . "</b>";