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()
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
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.")
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)
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)
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))