コード例 #1
0
ファイル: pagaextra.py プロジェクト: maaruiz/Nominas2015ES
 def __init__(self, idnomina=0):
     '''
     Constructor
     '''
     self.id = idnomina
     self.nomina = SqlNominas(self.id)
     importe = 0
     for x in self.nomina.lista_devengos_nomina():
         self.devengo = Nomina_Devengo(x[0])
         importe = self.devengo.paga_extra() + importe
         print "paga extra", self.devengo.id, importe
コード例 #2
0
ファイル: pagaextra.py プロジェクト: maaruiz/Nominas2015ES
 def __init__(self, idnomina = 0):
     '''
     Constructor
     '''
     self.id = idnomina
     self.nomina = SqlNominas(self.id)
     importe = 0
     for x in self.nomina.lista_devengos_nomina():
         self.devengo = Nomina_Devengo(x[0])
         importe = self.devengo.paga_extra()+importe
         print "paga extra",self.devengo.id,importe
コード例 #3
0
ファイル: frontend.py プロジェクト: maaruiz/Nominas2015ES
 def on_bAcepta_clicked(self, button, data=None):
     for x in self.lista:
         y = ['', '', '', '', '']
         devengo = Nomina_Devengo(x[0])
         locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
         print "Precio y cuantia",devengo.cuantia, devengo.precio,
         y[2] = locale.atof(x[2])
         y[3] = locale.atof(x[3])
         y[4] = locale.atof(x[4])
         devengo.ac_campo('imp_cuantia',y[2])
         devengo.ac_campo('imp_precio', y[3])
         devengo.ac_campo('imp_devengo', y[4])
         print devengo.precio, devengo.cuantia
     calcular = CalcNomina(self.laempresa, self.mes, self.anio)
     calcular.update_devengos(self.lanomina)
     for x in self.vista.get_columns():
         self.vista.remove_column(x)
     self.lista.clear()
     self.nomina()
     return
コード例 #4
0
ファイル: frontend.py プロジェクト: maaruiz/Nominas2015ES
 def on_bAcepta_clicked(self, button, data=None):
     for x in self.lista:
         y = ['', '', '', '', '']
         devengo = Nomina_Devengo(x[0])
         locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
         print "Precio y cuantia", devengo.cuantia, devengo.precio,
         y[2] = locale.atof(x[2])
         y[3] = locale.atof(x[3])
         y[4] = locale.atof(x[4])
         devengo.ac_campo('imp_cuantia', y[2])
         devengo.ac_campo('imp_precio', y[3])
         devengo.ac_campo('imp_devengo', y[4])
         print devengo.precio, devengo.cuantia
     calcular = CalcNomina(self.laempresa, self.mes, self.anio)
     calcular.update_devengos(self.lanomina)
     for x in self.vista.get_columns():
         self.vista.remove_column(x)
     self.lista.clear()
     self.nomina()
     return
コード例 #5
0
    def bases_cotizacion(self):
        '''
        :return:
        '''
        self.base_irpf = 0
        self.base_remuneracion = 0
        self.base_irpf_especie = 0
        self.base_ppextra = 0
        self.base_irpf_segsoc = 0
        self.base_segsoc_sinirpf = 0
        self.base_irpf_sinsegsoc = 0
        self.no_cotizan = 0
        self.nomina.actualiza_ppextra()
        self.nomina = SqlNominas(self.id)
        self.base_ppextra = self.nomina.base_ppextra
        # Para calcular las bases de cotización distinguimos entre devengos y pagas extras
        # Comprobamos que los devengos cotizan a la seguridad social al igual que las pagas extras
        # Comprobamos que los devengos cotizan en el IRPF al igual que las pagas extras
        # Los prorrateos de pagas extras se calculan en SqlNominas.devengo_ppextra()
        for x in (self.lista_devengos + self.lista_pextra):
            devengo = Nomina_Devengo(x[0])
            print '    ....****>>>> Devengo/segsoc/irpf', devengo.concepto, devengo.cotiza_segsocial, devengo.cotiza_irpf
            if devengo.cotiza_segsocial:
                self.base_remuneracion = self.base_remuneracion + devengo.devengado
            if devengo.cotiza_irpf:
                if devengo.es_devengo_especie:
                    self.base_irpf_especie = self.base_irpf_especie + devengo.devengado
                else:
                    self.base_irpf = self.base_irpf + devengo.devengado
            if devengo.cotiza_irpf and devengo.cotiza_segsocial:
                self.base_irpf_segsoc = self.base_irpf_segsoc + devengo.devengado
            if not devengo.cotiza_irpf and devengo.cotiza_segsocial:
                self.base_segsoc_sinirpf = self.base_segsoc_sinirpf + devengo.devengado
            if devengo.cotiza_irpf and not devengo.cotiza_segsocial:
                self.base_irpf_sinsegsoc = self.base_irpf_sinsegsoc + devengo.devengado
            if not devengo.cotiza_irpf and not devengo.cotiza_segsocial:
                self.no_cotizan = self.no_cotizan + devengo.devengado

        self.base_segsocial = self.base_ppextra + self.base_remuneracion
コード例 #6
0
 def ac_devengos(self):
     self.total_devengo = 0
     self.pextra = 0
     for dev in self.listadevengos:
         devengo = Nomina_Devengo(dev[0])
         self.total_devengo = self.total_devengo + devengo.devengado
         self.pextra = self.pextra + devengo.paga_extra()
     for pex in self.listapextras:
         pextras = self.pextra
         devpextra = Nomina_Devengo(pex[0])
         pextras = pextras * devpextra.coef_pextra
         cuantia = self.costes.bases.nomina.dias_cotizados()
         devpextra.ac_campo('imp_cuantia', cuantia)
         if not devpextra.es_para_pextra:
             precio = pextras / cuantia
             devpextra.ac_campo('imp_devengo', pextras)
         elif devpextra.es_para_pextra:
             precio = float(devpextra.importe) / float(
                 self.costes.bases.calendario.diastotales)
             devpextra.ac_campo('imp_devengo', round(cuantia * precio, 2))
             self.total_devengo += round(cuantia * precio, 2)
         devpextra.ac_campo('imp_precio', precio)
         devpextra(pex[0])
     if self.costes.bases.nomina.contrato.con_prorrata_pextra:
         self.total_devengo = self.total_devengo + self.costes.bases.base_ppextra
     self.ac_campo('imp_totdev', self.total_devengo)
コード例 #7
0
 def ac_deducciones(self):
     self.total_deducciones = 0
     for ded in self.listadeducciones:
         deducciones = Nomina_Devengo(ded[0])
         self.total_deducciones = self.total_deducciones + deducciones.deducido
コード例 #8
0
ファイル: frontend.py プロジェクト: maaruiz/Nominas2015ES
 def nomina(self):
     self.lista = Gtk.ListStore(long, str, str, str, str, str)
     render0 = Gtk.CellRendererText()
     render0.set_property("xalign", 1.0)
     render0.set_property("visible", False)
     render1 = Gtk.CellRendererText()
     render1.set_property("xalign", 0)
     render2 = Gtk.CellRendererText()
     render2.set_property("xalign", 1.0)
     render2.set_property("editable", True)
     render2.connect('edited', self.col2_edited_cb, self.lista)
     render3 = Gtk.CellRendererText()
     render3.set_property("xalign", 1.0)
     render3.set_property("editable", True)
     render3.connect('edited', self.col3_edited_cb, self.lista)
     render4 = Gtk.CellRendererText()
     render4.set_property("xalign", 1.0)
     render5 = Gtk.CellRendererText()
     render5.set_property("xalign", 1.0)
     SqlNom = SqlNominas(self.lanomina)
     #devengos = SqlNom.ver_devengos(self.trabajador, self.mes, self.anio)
     # self.tabla = Gtk.Table(len(devengos[0]),len(devengos))
     lista_devengos = SqlNom.lista_devengos_nomina(
     ) + SqlNom.lista_pagas_extras()
     for k in lista_devengos:
         contenido = []
         devengo = Nomina_Devengo(k[0])
         #for l in k:
         # entrada = Gtk.Label(devengos[t][p])
         # self.tabla.attach(entrada,p,p+1,t,t+1)
         # entrada.show()
         # print "Dev",devengos[t][p],t, p
         #if isinstance(devengo.precio, float):
         #        l = "{0:,.2f}".format(l)
         decimales = '{0:,.2f}'
         contenido.append(devengo.id)
         contenido.append(devengo.concepto)
         contenido.append(decimales.format(devengo.cuantia))
         contenido.append(decimales.format(devengo.precio))
         contenido.append(decimales.format(devengo.devengado))
         contenido.append(decimales.format(devengo.deducido))
         self.lista.append(contenido)
     self.vista.set_model(self.lista)
     col1 = Gtk.TreeViewColumn("Num.", render0, text=0)
     col2 = Gtk.TreeViewColumn("Concepto", render1, text=1)
     col3 = Gtk.TreeViewColumn("Cant.", render2, text=2)
     col4 = Gtk.TreeViewColumn("Precio", render3, text=3)
     col5 = Gtk.TreeViewColumn("Devengo", render4, text=4)
     col6 = Gtk.TreeViewColumn("Deduccion", render5, text=5)
     self.vista.append_column(col1)
     self.vista.append_column(col2)
     self.vista.append_column(col3)
     self.vista.append_column(col4)
     self.vista.append_column(col5)
     self.vista.append_column(col6)
     self.vista.set_search_column(0)
     cabecera = SqlNom.ver_nomina(self.trabajador, self.mes, self.anio)
     self.lcif.set_text(SqlNom.cif)
     self.lcontrato.set_text(SqlNom.contrato.contrato.descripcion)
     ldir = SqlNom.cta_cot.centro_trabajo.dir_calle + ', ' + SqlNom.cta_cot.centro_trabajo.dir_numero
     self.ldireccion.set_text(ldir)
     self.lhoras.set_text(unicode(SqlNom.horas_cotizadas()))
     self.lidcontrato.set_text(unicode(SqlNom.contrato.codigo))
     self.lidnomina.set_text(unicode(SqlNom.id))
     self.lnaf.set_text(SqlNom.naf)
     self.lnif.set_text(SqlNom.nif)
     self.lncc.set_text(SqlNom.cta_cot.cuenta_cotizacion)
     self.lnumcontrato.set_text(unicode(SqlNom.contrato.idcontrato))
     self.lperiodo.set_text("Del " + SqlNom.periodo)
     try:
         self.lppextra.set_text("{:,.2f}".format(SqlNom.base_ppextra))
         self.lremuneracion.set_text("{:,.2f}".format(SqlNom.imp_remumes))
     except:
         pass
     self.lpuesto.set_text(SqlNom.puesto)
     self.lempresa.set_text(SqlNom.nombreempresa)
     self.ld.set_text(unicode(SqlNom.dias_cotizados()))
     self.lantiguedad.set_text(str(cabecera[2]))
     if SqlNom.contrato.contrato.es_tiempo_parcial:
         self.rb_es_tpoparcial.set_active(True)
     elif SqlNom.contrato.contrato.es_tiempo_completo:
         self.rb_es_tpocompleto.set_active(True)
     if SqlNom.contrato.contrato.es_indefinido:
         self.rb_es_indefinido.set_active(True)
     elif SqlNom.contrato.contrato.es_temporal:
         self.rb_es_temporal.set_active(True)
     self.ltrabajador.set_text(SqlNom.nombre_trabajador)
     self.lb_irpf.set_text("{:,.2f}".format(SqlNom.base_irpf))
     self.lliquido.set_text('{:,.2f}'.format(SqlNom.liquido))
     self.lb_segsoc.set_text("{:,.2f}".format(SqlNom.base_cc))
     self.vista.show()
     seleccion = self.vista.get_selection().get_selected()
     # self.tabla.show()
     # self.box14.add(self.tabla)
     self.box14.show()
コード例 #9
0
ファイル: actualizar.py プロジェクト: maaruiz/Nominas2015ES
 def ac_devengos(self):
     self.total_devengo = 0
     self.pextra = 0
     for dev in self.listadevengos:
         devengo = Nomina_Devengo(dev[0])
         self.total_devengo = self.total_devengo + devengo.devengado
         self.pextra = self.pextra + devengo.paga_extra()
     for pex in self.listapextras:
         pextras = self.pextra
         devpextra = Nomina_Devengo(pex[0])
         pextras = pextras * devpextra.coef_pextra
         cuantia = self.costes.bases.nomina.dias_cotizados()
         devpextra.ac_campo('imp_cuantia', cuantia)
         if not devpextra.es_para_pextra:
             precio = pextras / cuantia
             devpextra.ac_campo('imp_devengo', pextras)
         elif devpextra.es_para_pextra:
             precio = float(devpextra.importe) / float(self.costes.bases.calendario.diastotales)
             devpextra.ac_campo('imp_devengo', round(cuantia * precio, 2))
             self.total_devengo += round(cuantia * precio, 2)
         devpextra.ac_campo('imp_precio', precio)
         devpextra(pex[0])
     if self.costes.bases.nomina.contrato.con_prorrata_pextra:
         self.total_devengo = self.total_devengo + self.costes.bases.base_ppextra
     self.ac_campo('imp_totdev', self.total_devengo)