コード例 #1
0
ファイル: CanchasMenuVenta.py プロジェクト: gaccardo/canchas
class VentaAdmin( wx.Dialog ):
    def __init__(self, parent, id, title):
        wx.Dialog.__init__(self, parent, id, title)

        self.SetSize((800,600))
        self.SetMinSize((800,600))

        self.rows      = list()
        self.list_ctrl = wx.ListCtrl(self, style=wx.LC_REPORT)
        image2         = wx.Image('images/add.png', 
                                  wx.BITMAP_TYPE_ANY).ConvertToBitmap()
        self.btn_add   = wx.BitmapButton(self,
                                         id     = -1,
                                         bitmap = image2,
                                         size   = (24,24))
        image3         = wx.Image('images/red.gif',
                                  wx.BITMAP_TYPE_ANY).ConvertToBitmap()
        self.btn_prt   = wx.BitmapButton(self,
                                         id     = -1,
                                         bitmap = image3, 
                                         size   = (24,24))
        image5         = wx.Image('images/delete.png',
                                  wx.BITMAP_TYPE_ANY).ConvertToBitmap()
        self.btn_del   = wx.BitmapButton(self, 
                                         id     = -1,
                                         bitmap = image5,
                                         size   = (24,24))
        self.DBM       = DBManager()
        self.__generateContent()
        Publisher().subscribe(self.__redefine,
                             ("producto_seleccionado_sin_cancha"))

    def __generateContent( self, myfilter=None ):
        rows = self.rows

        self.list_ctrl.InsertColumn(0, "Codigo")
        self.list_ctrl.InsertColumn(1, "Marca")
        self.list_ctrl.InsertColumn(2, "Descripcion")
        self.list_ctrl.InsertColumn(3, "Cantidad")
        self.list_ctrl.InsertColumn(4, "Precio")

        total = 0
        index = 0
        for row in rows:
            if row[0] != '1000':
               self.list_ctrl.InsertStringItem(index, row[0])
               self.list_ctrl.SetStringItem(index, 1, row[1])
               self.list_ctrl.SetStringItem(index, 2, row[2])
               self.list_ctrl.SetStringItem(index, 3, row[4])
               self.list_ctrl.SetStringItem(index, 4, "$ %.2f" % float(row[3]))

               total += float( row[3] )
             
               if index % 2:
                   self.list_ctrl.SetItemBackgroundColour(index, "white")
               else:
                   self.list_ctrl.SetItemBackgroundColour(index, "gray")

               index += 1

        self.list_ctrl.InsertStringItem(index, 'TOTAL')
        self.list_ctrl.SetStringItem(index, 1, '')
        self.list_ctrl.SetStringItem(index, 2, '')
        self.list_ctrl.SetStringItem(index, 3, '')
        self.list_ctrl.SetStringItem(index, 4, '$ %.2f' % float(total))
        self.list_ctrl.SetItemBackgroundColour(index, "red")
        self.list_ctrl.SetItemTextColour(index, "yellow")

        self.Bind(wx.EVT_BUTTON, self.onAdd, self.btn_add)
        self.Bind(wx.EVT_BUTTON, self.onClose, self.btn_prt)

        sizer  = wx.BoxSizer(wx.VERTICAL)
        sizer2 = wx.BoxSizer(wx.HORIZONTAL)

        sizer2.Add(self.btn_add, 0, wx.ALL, 1)
        sizer2.Add(self.btn_del, 0, wx.ALL, 1)
        sizer2.Add(self.btn_prt, 0, wx.ALL, 1)
        sizer.Add(sizer2, 0, wx.ALL, 1)
        sizer.Add(self.list_ctrl, 1, wx.EXPAND)
        self.SetSizer(sizer)
        self.Show(True)

        Publisher().subscribe(self.onSearch, ("producto_buscado"))
        Publisher().subscribe(self.refreshAfterAdd, ("producto_agregado"))

    def __redefine( self, evt ):
        self.list_ctrl.ClearAll()
        producto = evt.data['producto']
        cantidad = evt.data['cantidad']

        self.rows.append( (producto[1],
                           producto[3],
                           producto[2], 
                           str(producto[4]),
                           cantidad, 
                           producto[0] ) )

        self.__generateContent()

    def onSearch( self, evt ):
        self.list_ctrl.ClearAll()
        search_stock = SearchStock(self, -1, "Buscar")
        self.__generateContent(evt.data)

    def onAdd( self, evt ):
        seleccionar = SeleccionarProducto(self,
                                          -1,
                                          "Agregar un producto a la compra")

    def onClose( self, evt ):
        dlg = wx.MessageDialog(self, 
                               'Seguro que desea cerrar la venta?', 
                               'Cerrar Venta?', wx.YES_NO | wx.ICON_QUESTION)
        result = dlg.ShowModal() == wx.ID_YES

        if result:
           dlg.Destroy()
           self.Destroy()

        for producto in self.rows:
           stock          = int( self.DBM.getCantidadByCodigo( str( producto[0] ) )[0] )
           nueva_cantidad = stock - int(producto[4])

           self.DBM.reduceStockById( producto[5], nueva_cantidad )
           self.DBM.addProductTrans( datetime.datetime.now().strftime("%m/%d/%y %H:%M:%S").__str__(), 
                                     producto[4],
                                     1,
                                     producto[3], 
                                     producto[5], 
                                     1,
                                     1,
                                     0,
                                     0 )

    def refreshAfterAdd( self, evt ):
        self.list_ctrl.ClearAll()
        self.__generateContent()
コード例 #2
0
ファイル: dbtest.py プロジェクト: gaccardo/canchas
from DBManager import DBManager
db = DBManager()
#print db.userLogin("gaccardo", "pepe1234")
#print db.countCanchas()
#print db.getCanchaStatus('01/07/2013 00:00:00', 1, '14')
#print db.getProductos()
#print db.getCanchasNames()
#print db.getCanchaPrecio(1)
#print db.getCuentas()
#print db.productosPedido()
#print db.addProduct( '1102', 'Calculo', 'Esta', '459.94', '10', '45') 
#print db.changeUserStatus('gaccardo', 1)
#print db.getClienteReservado('01/26/2013 00:00:00', 2, '14')
#print db.getCanchaStatus('01/26/2013 00:00:00', 2, '14')
print db.getCantidadByCodigo('1002')