コード例 #1
0
ファイル: crud.py プロジェクト: UniversidadDelEste/guiabm
	def button_press_delete(self, evt):
		if gui.confirm("Desea borrar el registro seleccionado?", "Sistema"):
			ctrl = panel['record'][self.controls['id']['name']]
			self.db(self.db[self.tabla]._id == ctrl.value).delete()
			if DEBUG:
				print self.db._lastsql
			self.db.commit()
コード例 #2
0
def doScrape(evt):
    if num_of_search_criteria_enetered(evt) < 2:
        gui.alert("Enter at least two search criteria")
        return
    if not os.path.isdir(mywin['txtOutputDir'].value):
        os.makedirs(mywin['txtOutputDir'].value)
    config.outputDir = mywin['txtOutputDir'].value

    try:
        if mywin['chkRunInBrowser'].value:
            gui.alert("You have chosen to execute scraping in browser.\nPlease do no touch your mouse or keyboard during scraping.")
        else:
            if not gui.confirm("Scraping will run in background. Please be patient.\nDo you want to proceed?"):
                return
        config.RunInBrowser = mywin['chkRunInBrowser'].value
        # gui.alert("Scraping results. Please wait.")
        mywin.minimized = True
        ret_value = Scraping_Main.doScrape()
        mywin.minimized = False
        if ret_value == 1:
            gui.alert("Scraping Done !!!")
        elif ret_value == "NO_RESULTS":
            gui.alert("Your search query returned zero results !!!")
        else:
            gui.alert("There were some problems with the scraping. Please report to developer.")
    except:
        logger.exception(sys.exc_info())
    finally:
        mywin.minimized = False
    pass
コード例 #3
0
def doAutoFlagging(evt):
    if os.path.isfile(mywin['txtInputXLS'].value):
        if not os.path.isdir(mywin['txtOutputImages'].value):
            os.makedirs(mywin['txtOutputImages'].value)
        config.inputXLSPath = mywin['txtInputXLS'].value
        config.outputXLSPath = mywin['txtOutputXLS'].value
        config.outputImagesPath = mywin['txtOutputImages'].value
        mywin['btnOpenOutput'].enabled = False
        mywin.minimized = True
        mywin.enabled = False
        # noinspection PyBroadException
        try:
            retValue = CL_AutoFlagging.main()
            mywin.enabled = True
            mywin.minimized = False
            mywin['btnOpenOutput'].enabled = True

            if retValue == 1:
                mbResponse = gui.confirm(
                    message="Thanks for using CL_AutoFlagging by K Team \nDo you want to open output file?",
                    title="Flagging Complete !",
                )
                if mbResponse:
                    openOutputXLS(evt)
        except:
            module_logger.exception(sys.exc_info())
        finally:
            mywin.enabled = True
            mywin.minimized = False
    else:
        gui.alert("Please select a valid Input XLS first.")
コード例 #4
0
def borrar(evt):
    "Borrar un dato del padron"
    nro_doc = panel['nro_doc'].value.replace('-', '')
    tipo_doc = panel['tipo_doc'].value
    if not gui.confirm(u"¿Se borraran los datos del padron?", "Borrar"):
        return
    else:
        sql = "delete from domicilio where nro_doc=? and tipo_doc=?"
        parametros = [nro_doc, tipo_doc]
        try:
            padron.cursor.execute(sql, parametros)
        except lite.Error, e:
            print "Error %s:" % e.args[0]

        sql = "delete from padron where nro_doc=? and tipo_doc=?"
        parametros = [nro_doc, tipo_doc]
        padron.cursor.execute(sql, parametros)
コード例 #5
0
ファイル: abmpadron.py プロジェクト: oscarvogel/abmpyafipws
def borrar(evt):
    "Borrar un dato del padron"
    nro_doc = panel['nro_doc'].value.replace('-','')
    tipo_doc = panel['tipo_doc'].value
    if not gui.confirm(u"¿Se borraran los datos del padron?", "Borrar"):
        return 
    else:
        sql = "delete from domicilio where nro_doc=? and tipo_doc=?"
        parametros = [nro_doc, tipo_doc]
        try:
            padron.cursor.execute(sql, parametros)
        except lite.Error, e:
            print "Error %s:" % e.args[0]
        
        sql = "delete from padron where nro_doc=? and tipo_doc=?"
        parametros = [nro_doc, tipo_doc]
        padron.cursor.execute(sql, parametros)
コード例 #6
0
    def on_btnAutorizarLote_click(self, event):
        self.verifica_ws()
        if not self.items: return
        try:
            #getcontext().prec = 2
            ok = 0
            rechazadas = 0
            cols = self.cols
            items = []
            self.progreso(0)
            cbt_desde = cbt_hasta = None
            datos = {
                'tipo_cbte': None,
                'punto_vta': None,
                'fecha_cbte': None,
                'fecha_venc_pago': None,
                'fecha_cbte': None,
                'fecha_venc_pago': None,
                'fecha_serv_desde': None,
                'fecha_serv_hasta': None,
                'moneda_id': None,
                'moneda_ctz': None,
                'id': None,
            }
            importes = {
                'imp_total': Decimal(0),
                'imp_tot_conc': Decimal(0),
                'imp_neto': Decimal(0),
                'imp_iva': Decimal(0),
                'imp_op_ex': Decimal(0),
                'imp_trib': Decimal(0),
            }
            for l in range(1, 5):
                k = 'iva_%%s_%s' % l
                datos[k % 'id'] = None
                importes[k % 'base_imp'] = Decimal(0)
                importes[k % 'importe'] = Decimal(0)

            for l in range(1, 10):
                k = 'tributo_%%s_%s' % l
                datos[k % 'id'] = None
                datos[k % 'desc'] = None
                importes[k % 'base_imp'] = Decimal(0)
                datos[k % 'alic'] = None
                importes[k % 'importe'] = Decimal(0)

            for i, item in self.get_selected_items():
                if cbt_desde is None or int(item['cbt_numero']) < cbt_desde:
                    cbt_desde = int(item['cbt_numero'])
                if cbt_hasta is None or int(item['cbt_numero']) > cbt_hasta:
                    cbt_hasta = int(item['cbt_numero'])
                for key in item:
                    if key in datos:
                        if datos[key] is None:
                            datos[key] = item[key]
                        elif datos[key] != item[key]:
                            raise RuntimeError(
                                "%s tiene valores distintos en el lote!" % key)
                    if key in importes and item[key]:
                        importes[key] = importes[key] + Decimal(
                            "%.2f" % float(str(item[key].replace(",", "."))))

            kargs = {'cbt_desde': cbt_desde, 'cbt_hasta': cbt_hasta}
            kargs.update({'tipo_doc': 99, 'nro_doc': '0'})
            kargs.update(datos)
            kargs.update(importes)
            if kargs['fecha_serv_desde'] and kargs['fecha_serv_hasta']:
                kargs['presta_serv'] = 1
                kargs['concepto'] = 2
            else:
                kargs['presta_serv'] = 0
                kargs['concepto'] = 1
                del kargs['fecha_serv_desde']
                del kargs['fecha_serv_hasta']

            for key, val in list(importes.items()):
                importes[key] = val.quantize(Decimal('.01'),
                                             rounding=ROUND_DOWN)

            if 'id' not in kargs or kargs['id'] == "":
                id = int(kargs['cbt_desde'])
                id += (int(kargs['tipo_cbte']) * 10**4 +
                       int(kargs['punto_vta'])) * 10**8
                kargs['id'] = id

            if DEBUG:
                self.log('\n'.join(
                    ["%s='%s'" % (k, v) for k, v in list(kargs.items())]))
            if '--test' in sys.argv:
                kargs['cbt_desde'] = 777
                kargs['fecha_cbte'] = '20110802'
                kargs['fecha_venc_pago'] = '20110831'

            if gui.confirm(
                    "Confirma Lote:\n"
                    "Tipo: %(tipo_cbte)s Desde: %(cbt_desde)s Hasta %(cbt_hasta)s\n"
                    "Neto: %(imp_neto)s IVA: %(imp_iva)s Trib.: %(imp_trib)s Total: %(imp_total)s"
                    % kargs, "Autorizar lote:"):

                if self.webservice == 'wsfev1':
                    encabezado = {}
                    for k in ('concepto', 'tipo_doc', 'nro_doc', 'tipo_cbte',
                              'punto_vta', 'cbt_desde', 'cbt_hasta',
                              'imp_total', 'imp_tot_conc', 'imp_neto',
                              'imp_iva', 'imp_trib', 'imp_op_ex', 'fecha_cbte',
                              'moneda_id', 'moneda_ctz'):
                        encabezado[k] = kargs[k]

                    for k in ('fecha_venc_pago', 'fecha_serv_desde',
                              'fecha_serv_hasta'):
                        if k in kargs:
                            encabezado[k] = kargs.get(k)

                    self.ws.CrearFactura(**encabezado)
                    for l in range(1, 1000):
                        k = 'iva_%%s_%s' % l
                        if (k % 'id') in kargs:
                            id = kargs[k % 'id']
                            base_imp = kargs[k % 'base_imp']
                            importe = kargs[k % 'importe']
                            if id:
                                self.ws.AgregarIva(id, base_imp, importe)
                        else:
                            break

                    for l in range(1, 1000):
                        k = 'tributo_%%s_%s' % l
                        if (k % 'id') in kargs:
                            id = kargs[k % 'id']
                            desc = kargs[k % 'desc']
                            base_imp = kargs[k % 'base_imp']
                            alic = kargs[k % 'alic']
                            importe = kargs[k % 'importe']
                            if id:
                                self.ws.AgregarTributo(id, desc, base_imp,
                                                       alic, importe)
                        else:
                            break

                    if DEBUG:
                        self.log('\n'.join([
                            "%s='%s'" % (k, v)
                            for k, v in list(self.ws.factura.items())
                        ]))

                    cae = self.ws.CAESolicitar()
                    kargs.update({
                        'cae': self.ws.CAE,
                        'fecha_vto': self.ws.Vencimiento,
                        'resultado': self.ws.Resultado,
                        'motivo': self.ws.Obs,
                        'reproceso': self.ws.Reproceso,
                        'err_code': self.ws.ErrCode.encode("latin1"),
                        'err_msg': self.ws.ErrMsg.encode("latin1"),
                    })
                    if self.ws.ErrMsg:
                        gui.alert(self.ws.ErrMsg, "Error AFIP")
                    if self.ws.Obs and self.ws.Obs != '00':
                        gui.alert(self.ws.Obs, "Observación AFIP")

                for i, item in self.get_selected_items():
                    for key in ('id', 'cae', 'fecha_vto', 'resultado',
                                'motivo', 'reproceso', 'err_code', 'err_msg'):
                        item[
                            key] = kargs[key] if kargs[key] is not None else ""
                        self.items[i] = item

                self.log("ID: %s CAE: %s Motivo: %s Reproceso: %s" %
                         (kargs['id'], kargs['cae'], kargs['motivo'],
                          kargs['reproceso']))
                if kargs['resultado'] == "R":
                    rechazadas += 1
                elif kargs['resultado'] == "A":
                    ok += 1

                self.items = self.items  # refrescar, ver de corregir
                self.progreso(len(self.items))
                gui.alert(
                    'Proceso finalizado OK!\n\nAceptadas: %d\nRechazadas: %d' %
                    (ok, rechazadas), 'Autorización')
                self.grabar()
        except SoapFault as e:
            self.log(self.client.xml_request)
            self.log(self.client.xml_response)
            self.error(e.faultcode, e.faultstring.encode("ascii", "ignore"))
        except Exception as e:
            self.error('Excepción', str(e))