Ejemplo n.º 1
0
class AddStock( wx.Dialog ):
    def __init__(self, parent, id, title):
        wx.Dialog.__init__(self, parent, id, title)

        self.DBM = DBManager()
 
        self.SetSize(   (210,375))
        self.SetMinSize((210,375))

        vbox = wx.BoxSizer( wx.VERTICAL )

        hbox1           = wx.BoxSizer( wx.HORIZONTAL )
        txt_codigo      = wx.StaticText(self, -1, "Codigo")
        self.ctr_codigo = wx.TextCtrl(self, -1, "")
        hbox1.Add(txt_codigo, wx.EXPAND, 1)
        hbox1.Add(self.ctr_codigo, wx.EXPAND, 1)
        vbox.Add(hbox1, wx.EXPAND) 
        
        hbox2          = wx.BoxSizer( wx.HORIZONTAL )
        txt_descr      = wx.StaticText(self, -1, "Descripcion")
        self.ctr_descr = wx.TextCtrl(self, -1, "")
        hbox2.Add(txt_descr, wx.EXPAND, 1)
        hbox2.Add(self.ctr_descr, wx.EXPAND, 1)
        vbox.Add(hbox2, wx.EXPAND) 

        hbox3          = wx.BoxSizer( wx.HORIZONTAL )
        txt_marca      = wx.StaticText(self, -1, "Marca")
        self.ctr_marca = wx.TextCtrl(self, -1, "")
        hbox3.Add(txt_marca, wx.EXPAND, 1)
        hbox3.Add(self.ctr_marca, wx.EXPAND, 1)
        vbox.Add(hbox3, wx.EXPAND) 

        hbox4           = wx.BoxSizer( wx.HORIZONTAL )
        txt_precio      = wx.StaticText(self, -1, "Precio")
        self.ctr_precio = wx.TextCtrl(self, -1, "")
        hbox4.Add(txt_precio, wx.EXPAND, 1)
        hbox4.Add(self.ctr_precio, wx.EXPAND, 1)
        vbox.Add(hbox4, wx.EXPAND) 

        hbox5            = wx.BoxSizer( wx.HORIZONTAL )
        txt_ppedido      = wx.StaticText(self, -1, "Punto Pedido")
        self.ctr_ppedido = wx.TextCtrl(self, -1, "")
        hbox5.Add(txt_ppedido, wx.EXPAND, 1)
        hbox5.Add(self.ctr_ppedido, wx.EXPAND, 1)
        vbox.Add(hbox5, wx.EXPAND) 

        hbox6             = wx.BoxSizer( wx.HORIZONTAL )
        txt_cantidad      = wx.StaticText(self, -1, "Cantidad")
        self.ctr_cantidad = wx.TextCtrl(self, -1, "")
        hbox6.Add(txt_cantidad, wx.EXPAND, 1)
        hbox6.Add(self.ctr_cantidad, wx.EXPAND, 1)
        vbox.Add(hbox6, wx.EXPAND) 

        hbox7       = wx.BoxSizer( wx.HORIZONTAL )
        btn_agregar = wx.Button(self, -1, "AGREGAR")
        hbox7.Add(btn_agregar, flag=wx.CENTER)
        vbox.Add(hbox7, flag=wx.CENTER)

        self.Bind(wx.EVT_BUTTON, self.OnAdd, btn_agregar)

        self.SetSizer( vbox )
        self.Show(True)

    def OnAdd( self, evt ):
        codigo   = self.ctr_codigo.GetValue() 
        descr    = self.ctr_descr.GetValue()
        marca    = self.ctr_marca.GetValue()
        precio   = self.ctr_precio.GetValue()
        ppedido  = self.ctr_ppedido.GetValue()
        cantidad = self.ctr_cantidad.GetValue()

        try:
           tmp = float(precio)
        except:
           wx.MessageBox('El formato de precio debe ser: 0.00', 
                         'No es un precio valido',
                          wx.OK | wx.ICON_ERROR)
           return

        try:
           tmp = int(ppedido)
        except:
           wx.MessageBox('Punto de pedido debe ser un numero', 
                         'No es un numero',
                          wx.OK | wx.ICON_ERROR)
           return

        try:
           tmp = int(cantidad)
        except:
           wx.MessageBox('Cantidad debe ser un numero', 'No es un numero',
                          wx.OK | wx.ICON_ERROR)
           return

        if codigo   == '' or \
           descr    == '' or \
           marca    == '' or \
           precio   == '' or \
           cantidad == '' or \
           ppedido  == '':
           wx.MessageBox('Hay campos en blanco', 'Error en la carga de datos',
                          wx.OK | wx.ICON_ERROR)

           return
        else:
           cod, msg = self.DBM.addProduct(codigo, 
                                          descr,
                                          marca,
                                          precio, 
                                          ppedido, 
                                          cantidad)

           if not cod:
              wx.MessageBox(msg, 'Error en la carga de datos',
                             wx.OK | wx.ICON_ERROR)

        self.Destroy()
        Publisher().sendMessage(("producto_agregado"), "refresh")