• Este debate está vacío.
Viendo 3 entradas - de la 1 a la 3 (de un total de 3)
  • Autor
    Entradas
  • #31321
    Javier Ader
    Participante

    Bueno, medio tonta la pregunta… el tema es que cada vez que leo isSOTrx me tengo que poner a pensar el significado jajaja. Así que mi pregunta es a que refiere? Es “is Suplier Order Transaction? (ok, la x debe ser por la similitud de sonidos en Inglés en “ction”); lo cual podría traducirse Transacción de Orden de Proveedor (esto me resulta medio ambigúo tanto en Castellano como en Inglés ya por ese nombre no necesariamente se refiere a Proveedores ni a “Ordenes”; es más bien “transacción entrante” o iniciadas por 3ros contra nosotros, no? … por ej, un Remito Entrante tiene isSOTrx = true… si no me equivoco…). Lo que yo necesito es una buena asociación mnemotécnica o algo por el estilo.
    Supongo que el nombre viene desde hace mucho tiempo y tal vez no fue el mejor (después su uso semántico se debe haber expandido y el nombre quedo…)

    #34170
    Javier Ader
    Participante

    mmmm bueno, no, es al revés de lo que dije… debe ser is “Sales Order Transaction”; e.d transacción de ventas (aunque de nuevo el nombre es medio raro… no necesariamente hay una “venta”); o “saliente” o “generalmente realizada desde nosotros hacia nuestros clientes”.

    El tema es que ahora veo estas lineas en MInOut.beforeSave (en realidad eran las que me hicieron repensar por enésima vez la semántica detrás de isSOTrx…):

    Code:
    //Validar número de doccumento para remitos de salida
    if (!isSOTrx() && existsDocNumber(false)) {
    log.saveError(“ShipmentNumberAlredyExists”, “”);
    return false;
    }

    Que supongo que lo que esta queriendo chequear es que no se repitan los numeros de nuestros remitos (los generados por nuestros proveedores pueden potencialmente tener el mismo número).
    OK, pero ahora este código en MInOut.completeIt

    Code:
    // if (!this.get_Value(“DeliveryRule”).toString().equalsIgnoreCase(“F”) && isSOTrx()) {
    if (!getDeliveryRule().equalsIgnoreCase(DELIVERYRULE_Force) && isSOTrx()) {
    //Si la regla de albaranado es distinta de F y ademas es un albarán de salida

    Que supongo que lo que hace es no permitir remitos de salidas con regla de entrega no forzada cuando no hay stock….
    Bueno, en el primero usan !isSOTrx() y en el segundo isSOTrx() para determinar si es de salida! O los comentarios están mal o uno de los secciones tienen un error (me da la sensación es que el primero; no debería estar negado isSOTrx() )… o me marié y el error lo tengo yo :(

    #34171
    Federico Cristina
    Superadministrador

    Buenas,

    isSoTrx justamente se refiere a toda transacción que sea de venta.

    Específicamente en el beforeSave de MInOut, el comentario es incorrecto, debería decir de entrada, ya que:

    1) Valida por !isSOTrx()
    2) El query de existsDocNumber(), tiene una clausula: AND isSOTrx = ‘N’

    Luego está la discusión respecto de que quizás sea necesario realizar la misma validación para remitos de salida, pero en general éstas se manejan mediante secuencias.

    Saludos,
    Federico

Viendo 3 entradas - de la 1 a la 3 (de un total de 3)
  • Debes estar registrado para responder a este debate.