Skip to content

Instantly share code, notes, and snippets.

@batok
Created January 12, 2010 16:21
Show Gist options
  • Save batok/275324 to your computer and use it in GitHub Desktop.
Save batok/275324 to your computer and use it in GitHub Desktop.
class DlgNivelesTabuladoresConceptos(g_sc.SizedDialog):
def __init__(self, datos = None ):
g_sc.SizedDialog.__init__(self, None, -1, "Niveles de Tabuladores", size = ( 800, 600 ), style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
self.SetExtraStyle( wx.WS_EX_VALIDATE_RECURSIVELY)
self.datos = datos
pane = self.GetContentsPane()
pane.SetSizerType("form")
self.id_mensual = wx.NewId()
self.id_formula_exento = wx.NewId()
self.id_exento = wx.NewId()
self.id_integra_mensual = wx.NewId()
self.id_integra_diario = wx.NewId()
wx.StaticText(pane,-1,"Nivel")
nivel = wx.TextCtrl(pane, -1, datos.nivel)
nivel.Enable(False)
wx.StaticText(pane,-1,"Concepto")
concepto = wx.TextCtrl(pane,-1, datos.concepto)
concepto.Enable(False)
wx.StaticText(pane,-1,"")
wx.StaticText(pane,-1,datos.descripcion_concepto)
wx.StaticText(pane,-1,"Mensual")
mensual = wx.TextCtrl(pane,self.id_mensual,datos.mensual, validator = NivelesConceptosTextValidator("mensual", datos, self.id_exento,self.id_integra_mensual, self.id_integra_diario))
mensual.Bind(wx.EVT_SET_FOCUS, self.OnFocus)
wx.StaticText(pane,-1,"Formula Exento")
formula_exento = ExpandoTextCtrl(pane, self.id_formula_exento, datos.formula_exento, size = (200,-1) , validator = NivelesConceptosTextValidator("formula_exento", datos, self.id_exento,self.id_integra_mensual, self.id_integra_diario))
formula_exento.SetMaxHeight(100)
formula_exento.SetBackgroundColour(wx.NamedColour("LIGHT BLUE"))
wx.StaticText(pane,-1,"Exento Mensual")
exento_mensual = wx.TextCtrl(pane,self.id_exento, datos.exento)
exento_mensual.Enable(False)
wx.StaticText(pane,-1,"Integra Mensual")
integra_mensual = wx.TextCtrl(pane,self.id_integra_mensual, datos.integra_mensual)
integra_mensual.Enable(False)
wx.StaticText(pane,-1,"Integra Diario")
integra_diario = wx.TextCtrl(pane,self.id_integra_diario, datos.integra_diario)
integra_diario.Enable(False)
if not datos.nuevo:
wx.StaticText(pane,-1,"")
self.id_quitar = wx.NewId()
quitar = wx.CheckBox(pane, self.id_quitar, "Quitar este concepto de este nivel")
quitar.Enable(True)
self.Bind(wx.EVT_CHECKBOX, self.OnQuitar, quitar)
self.Bind(EVT_ETC_LAYOUT_NEEDED, self.OnRefit, formula_exento)
self.Bind(wx.EVT_UPDATE_UI, self.OnFormulaUpdate)
self.SetButtonSizer( self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL ))
self.Fit()
mensual.SetFocus()
def OnQuitar(self,event):
self.datos.eliminar = wx.FindWindowById(self.id_quitar).IsChecked()
def OnFormulaUpdate(self,event):
try:
mensual = float(wx.FindWindowById( self.id_mensual).GetValue())
x = mensual
resul = float(eval(wx.FindWindowById(self.id_formula_exento).GetValue()))
integra_mensual = mensual - resul
integra_diario = integra_mensual / 30.0
self.FindWindowById(self.id_exento).SetValue(str(resul))
self.FindWindowById(self.id_integra_mensual).SetValue(str(integra_mensual))
self.FindWindowById(self.id_integra_diario).SetValue(str(integra_diario))
except:
for x in ( self.id_exento, self.id_integra_diario, self.id_integra_mensual):
wx.FindWindowById(x).SetValue("Error")
return
def OnRefit(self,event):
self.Fit()
def OnFocus(self,event):
ctl = wx.FindWindowById( event.GetId())
ctl.SelectAll()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment