Desarrollo de un Programa de Ventas en Autoplay

Esta sección esta especialmente diseñada para todos aquellos usuarios que estés desarrollando plugins o aplicaciones y quieran ayuda para dichos plugins o aplicaciones.
Bueno gracias rafa, por el nuevo ejemplo, y webultra tienes razón no lo miraba desde ese punto de vista pero tienes mucha razón, espero resolver eso, o haber si te da tiempo hoy como dices del ejemplo.
Podías usar una sentencia para restar en el SQLite. Por ejemplo:

SELECT hay - 2 AS 'hay' FROM stock WHERE Item LIKE 'Lapiceros'

La he encontrado por ahí pero no está probada, ahora mismo no tengo tiempo de probarla ya que es tarde y mañana madrugo pero si eso mañana la compruebo si no lo haces tu antes ;)
Hola rafa que tal chekie tu ejemplo, y esta muy bueno la verdad, sin embargo tengo algunas dudas como:
- veo que haz hecho una nueva base de datos, y ahora cuando hago click en un juego al costado en sus caracteristicas aparece un espacio para "ID: " lo pregunta es que significa ese ID?, por otro lado donde modifico su valor?, por que en editar no lo veo.

- luego al costado del boton "Facturar Producto" hay un desplegable y la cantidad que puedo elegir varia dependiendo del juego?, entiendo que es la cantidad de veces que pido dicho juego, pero donde modifico su cantidad?

Hay algo que quiero que se entienda, por ejemplo,. no es que en mi almacen yo tenga 3, 4 o 5 copias del juego "devil may cry 4" que solo necesita " 2 dvds" y que cada vez k viene un cliente yo se la doy, noo asi no es.
Yo tengo guardados los Juegos en mi varios discos duros, listo para ser quemados, y cuando viene un cleinte y me lo pide lo que hago es conectar el disco duro, (disco duro externo), y mando a quemar con los Discos en blanco que tengo, entonces,. lo que yo queria es por EJEMPLO.

Viene un tipo y me pide el "resident evil 5", que son 2 DVDs ,,. entonces cuando yo ya hago click en vender,. quiero un pequeño cuadro (puede ser un ListBox ) donde me salga el Nº de DVDs en blanco que me van quedando ,. es decir que si antes de la venta de este juego tenia 150 DVDs... depsues del click en "Finalizar", me salga que me van quedando 148,. O si derrepente a hecho varios Juegos que me reste la cantidad de TODOS los DVD`s que e tenido que utilizar.

Muchas gracias de ante mano,. solo quiero ke me ayuden con esto chicos yo se que son unos capos con esto y gracias a todos,. wecultura, agotaras, rafax etc, ah y el trabajo Final yo se los paso no se preocupen ya adornado, diseñado y con esa nota, eso ya es lo mio,. Graacias ,. byeee
Jajaja por partes...

- No entendí bien el concepto de tu catalogo , pensaba que era como una venta de juegos originales con copias en stock.

- La ID es el recordID de la BD , es un indice según entrada que aumenta , tu eso no lo tienes que editar ,cada vez que añadas un juego a la BD se incrementa un numero y esto va bien por que lleva un orden y se puede acceder a buscar datos mejor. De todas formas si quieres que esta id se editable y poner tu numero , se pude hacer , la BD te pondrá los numeros en orden y listo, da igual el que sea.

-El Combo desplegable que dices..como yo pensaba que lo de DVDs era un stock de discos que tenias , el combobox refleja ese stock de cada juego para poder elegir el numero de copias a comprar y demas..
Con lo que me dices aun es mas facil XD solo hay que restar siempre del mismo stock que son DVDs virgenes.

Intenta modificarlo tu a tu gusto , solo tienes que eliminar todo lo relaccionado con el comobox y que nCantidad sea :

Código: Seleccionar todo

nCantidad = tonumber(sNumero)
Por otro lado en terminar factura también habría que cambiar cosas , inténtalo si tienes problemas cuando tenga tiempo intentare adaptarlo.

Te recomiendo si quieres modificar la BD directamente uses el programa que posteo pabloko. ;)
http://www.amsspecialist.info/viewtopic.php?f=19&t=193
jajajaja,. sorry por la confusion causadbueno me pasas la voz cuando tngas tiempo y puedas corregir eso porfa, por otra parte,. lo del ID, tu dices que es una cantidad que va aumentado cuando voy añadiendo juegos ,. pero sin embargo todos los juegos cuando hago click tienen un ID diferente,. por que es?
es como el orden en que los agregue algo asi?
me pasas la voz,. porfa,.
graacias
Claro tienen una ID diferente según se agregaron , 1,2,3,4,5 si falta algún numero en medio es porque se borro la entrada y por consiguiente la ID . ;)
Ayaa,. ok ya entendi, en realidad no me afecta en mucho eso del ID,.. y si me di cuenta ayer que faltaban numeros,. osea ID, 1 ,2 ,3 y depsue se iva hasta 5, pero dime ese ID 4? ya no se puede recuperar? o si? es decir cuando agregue algun juego puede ocupar el lugar del 4?
Lo puedes hacer siempre y cuando conozcas el número, yo por ejemplo tengo un programa de registro que hice para préstamos y utiliza el mismo método de campo autoincremental y siempre que añadas uno nuevo se va a poner el último, nunca en los huecos vacíos que haya entre medias, pero si en la Query le dices expresamente que utilice ese número pues entonces si lo coloca en ese lugar...

Pongamos un ejemplo, tu tienes una tabla con 3 columnas (ID, Nombre, Cantidad) y tienes 4 objetos con los números 1, 2, 3 y 5, contando con que la columna ID sea autoincremental, tu insertarías un producto así:
INSERT INTO objetos('ID', 'Nombre', 'Cantidad') VALUES (null, 'DVD-ROM', '50')
lo cual hará que el objeto DVD-ROM tenga la ID "6" que sería la siguiente. Para ponerle la ID 4 tendrías que forzarlo así:
INSERT INTO objetos('ID', 'Nombre', 'Cantidad') VALUES ('4', 'DVD-ROM', '50')
PDTA: Los ejemplos los he hecho a capón por lo que pueden tener errores de sintaxis...
Daniel_Lechu escribió:Podías usar una sentencia para restar en el SQLite. Por ejemplo:

SELECT hay - 2 AS 'hay' FROM stock WHERE Item LIKE 'Lapiceros'

La he encontrado por ahí pero no está probada, ahora mismo no tengo tiempo de probarla ya que es tarde y mañana madrugo pero si eso mañana la compruebo si no lo haces tu antes ;)
Daniel, esa consulta es de selección por lo que no hace nada jajaja. Es decir, sólo toma el valor del campo hay (de la tabla stock) y el resultado lo muestra restándole el número 2 pero la base de datos nunca guarda el dato.

Por ello en lugar de una consulta de selección necesitas una de actualización/modificación.
Tienes razón webultra :sorry:

Lo puse así a pedal y como referencia, todavía faltaba probarlo y ponerlo bien, y como dices sería con un UPDATE en vez de con un SELECT.
De todas formas es que de SQL se más bien poco, lo que voy viendo por los manuales de internet :lol:
minkoxvr escribió:Ayaa,. ok ya entendi, en realidad no me afecta en mucho eso del ID,.. y si me di cuenta ayer que faltaban numeros,. osea ID, 1 ,2 ,3 y depsue se iva hasta 5, pero dime ese ID 4? ya no se puede recuperar? o si? es decir cuando agregue algun juego puede ocupar el lugar del 4?
Como dice el compañero la entrada solo se recupera si tu das orden de ello , por ejemplo en la pagina editar habria que meter una opción recordID y seria así según el mismo código del botón "Guardar".
nRecordID     = tonumber(Input.GetText("Input_ID"));
nRecordID = Escape(nID)

--El codigo para edicion de entrada no nueva ya esta preparado

SQLite.Query(db,"insert or replace into juegos values('" .. nRecordID .. "', '" .. sNombre.."', '"..sGenero.."', '"..tonumber(sNumero).."', '"..sIdioma.."', '"..sFechalan.."', '"..sInternet.."', '"..tonumber(sPrecio).."', '"..sAlmacen.."', '"..sImagen.."')");

--El otro no , si quieres que meter tu siempre el recordID cambia NULL por lo anterior
yo personalmente no lo cambiaria ;)
Rafax, el uso del INSERT OR REPLACE es de cuidado cuando lo que te importa es conservar el ID autonumérico ya que muchas veces el REPLACE actua como DELETE y luego INSERT en lugar de un UPDATE.

Agotaras, te dejo ejemplo de cómo insertar registros a una tabla de ventas/compras (de una vez ambos jaja) y que se vaya actualizando el inventario.

Aproveche para mostrar también cómo tomar información de una tabla consultando otra mediante sólo el primary key. Ah y además el agrupar registros para presentar reportes, etc. jajaja.

Link:
HIDE: ON
Hidebb Message Hidden Description
Ok, interesante , le echo un vistazo
perfecto amigo ahora mismo lo descargo y lo estudio un poco...
hola rafax ya termine de hecherle un vistazo profundo a lo que hicistes y te agradesco,. sin embargo tambien e encontrado algunos puntos que , me gustaria que me ayuden como corregirlo,. en todo caso donde tengo que cambiar el codigo para lo siguiente:

- unas vez que hice digamos un venta y guardo la factura. Voy a la ventana Facturas y me muestra las factura que se han realizado,. eso esta perfecto,. Luego al hacer click en "volver", me vuelve a la pantalla de ventas ,.. y SI de hay nuevamente hago click para ir a la ventana facturas,. HAY VIENE EL PROBLEMA,. por que se me duplican las facturas. es decir las que ya estan vuelven a aparecer en la misma lista. Como poder corregir eso?

- y por ultimo lo de siempre ps,. la pequeña ventana que me muestre los Nº de DVD en blanco que me van quedando del Stock despues de haber realizado una venta de 1, de 2 , de 10 o 20 juegos.

graciasde antemano a todos nos vemos ,...
La primera duda es facil , el programa al pasar de pagina gurada los items del listbox , asi que si cargas de nuevo se duplican , en On Show de la pagina Facturas... en la primera linea pones esto y ya esta:
ListBox.DeleteItem("ListBox1", -1);
Lo otro es rehacer mucho script haber si tengo tiempo y lo miro ;)
Hola rafax, funciono tu solucion de lo del duplicado,. solo que cuando lo puse en el evento On Show de la pagina facturas.. me iva a la pagina, y aparecio por 1 segundo el listao y luego desaparecia,. (Y ese que lo puse en la primera linea como me dijistes).
Asi que al ver que no funcionaba lo puse en el evento On click del boton volver,. y Ahora si Ya funciona ..
Lo maximo Rafax. Me pasas la voz con lo del stock de dvd en blanco,. .. Bye
gracias
Muy interesante, necesito saber como hacer reportes de todo tipo con ams... quien me pueda ayudar se lo agradezco :SOS:
themega138 escribió:Muy interesante, necesito saber como hacer reportes de todo tipo con ams... quien me pueda ayudar se lo agradezco :SOS:
Deberías ser mas concreto e ir por partes , expón tu duda en el lugar correspondiente y te ayudamos encantados.