/** * * * */ 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"]); }
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())); } }
/** * *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"); }
/** * *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 = "\$ <b>" . number_format((double) $monto, 2) . "</b>";