Que tal comunidad. Hoy en dia vengo con un problemilla de diseño que me tiene medio loco. El contexto es simplon pero como me gusta escribir para que cualquiera entienda, el cuentito es medio largo, asi que tenganme paciencia
Veran el problema es que no se como nombrar una clase. La definicion de la clase e incluso algun prototipo funcional ya lo tengo, pero no encuentro un buen nombre para la clase (en realidad es una interfaz pero para lo que es el hilo es lo mismo)
Un breve resumen del contexto. Sea el tipico sistema de facturacion y gestion contable, el cual es capaz de manejar los siguientes tipos de comprobantes/documentos: facturas, pedidos (o si quieren pueden decirle "preventa") y presupuestos
La factura vendria a ser el mas comprobante "oficial", por decirlo de alguna manera, dentro de nuestras reglas de negocio, es una venta ya confirmada y acordada por las dos partes; digamos que si una operacion de venta llega a la instancia de factura quiere decir que el cliente ya acordo que va a comprar determinada mercancia y pagarla bajo ciertos terminos
El pedido o preventa es una especie de "reserva" de productos. Dicho a lo bestia es, guardame estos productos que despues te los pago. El "despues te los pago" es, dentro de unos dias (existe un plazo de vencimiento, no viene al caso) me haces la factura. Aca es donde nos metemos mas en el tema en cuestion: El pedido debe satisfacer dos requerimientos:
- Existe la posibilidad de que dicho pedido "congele" el precio de los productos.
- Al ser efectivo, es decir, al facturar el pedido se pueden agregar o adosar mas productos en la factura
Ejemplo practico:
Se crea el Pedido # 1234 con los siguientes productos:
100 lamparitas de 40w x 100 $ c/u
20 mts cable x 20 $ c/mt
Se reserva el stock y se "congela" el precio para ese pedido, y luego a los dos dias viene Pepito y dice: Haceme la factura, pero agregame 100 portalamparas que me olvide. El pedido queda igual pero la factura tiene que quedar asi:
100 lamparitas de 40w x 100 $ c/u
20 mts cable x 20 $ c/mt
100 portalamparas x 12 $ c/u
El presupuesto es similar al pedido pero el stock no se reserva. Osea, llevandolo a diseño OO responde a la misma interfaz, la unica diferencia es que no se toca el stock
Dentro del circuito de facturacion, el presupuesto puede pasar directamente a factura, o puede primero pasar a pedido, y luego en algun momento facturar el pedido
Mi problema, ahora si, es como llamar a la clase o interfaz que modela el "detalle" que se adosa. Osea yo ya tengo un pedido o presupuesto creado, ahora quiero pasar al siguiente paso de facturacion (podria ser un presupuesto que pase a pedido, o cualquiera de los dos a factura, da igual)
Un pequeño esbozo en UML podria verse asi:
uml.png 146.75KB 0 downloads
Mi puntual es como nombrar las dos clases de abajo de todo
Imaginense un Form que se inicializa recibiendo una instancia de "Comprobante" y el agarra recorre todo el detalle que ya existe y lo pone en pantalla. El form tambien conoce una instancia de esta clase que no le encuentro el nombre y es ahi en donde se van agregando todo lo "nuevo" que se adosa a la factura final.
Como le ponemos de nombre a estas clases? Escucho sugerencias
Salutes