def exec_(self): if self.archivo_firma: self.view.textMensaje.file_open(archivo=self.archivo_firma) if self.cliente: self.view.textPara.modelo = EmailCliente() self.view.textPara.cargaDatos() self.view.textAdjunto.setText(','.join([x for x in self.adjuntos])) if self.cliente: self.view.textPara.condicion = EmailCliente.idcliente == self.cliente super().exec_()
class EmailClienteController(ControladorBase): model = EmailCliente() idcliente = 1 def __init__(self): super(EmailClienteController, self).__init__() self.view = EmailClienteView() self.conectarWidgets() def conectarWidgets(self): self.view.btnCerrar.clicked.connect(self.view.Cerrar) self.view.btnAgregar.clicked.connect(self.AgregarEmail) self.view.btnGraba.clicked.connect(self.GrabaEmailCliente) self.view.btnBorrar.clicked.connect(self.BorraEmailCliente) def CargaEmail(self): self.view.gridEmail.setRowCount(0) data = self.model.select().where( EmailCliente.idcliente == self.idcliente) for d in data: item = [d.email, d.idemailcliente] self.view.gridEmail.AgregaItem(items=item) def AgregarEmail(self): self.view.gridEmail.setRowCount(self.view.gridEmail.rowCount() + 1) def GrabaEmailCliente(self): for x in range(self.view.gridEmail.rowCount()): email = self.view.gridEmail.ObtenerItem(fila=x, col='EMail') id = self.view.gridEmail.ObtenerItemNumerico(fila=x, col='idemailcliente') if id: emailcliente = EmailCliente.get_by_id(id) else: emailcliente = EmailCliente() emailcliente.idcliente = self.idcliente emailcliente.email = email emailcliente.save() self.view.Cerrar() def BorraEmailCliente(self): id = self.view.gridEmail.ObtenerItem( fila=self.view.gridEmail.currentRow(), col='idemailcliente') EmailCliente().delete().where( EmailCliente.idemailcliente == id).execute() self.CargaEmail()
def GrabaEmailCliente(self): for x in range(self.view.gridEmail.rowCount()): email = self.view.gridEmail.ObtenerItem(fila=x, col='EMail') id = self.view.gridEmail.ObtenerItemNumerico(fila=x, col='idemailcliente') if id: emailcliente = EmailCliente.get_by_id(id) else: emailcliente = EmailCliente() emailcliente.idcliente = self.idcliente emailcliente.email = email emailcliente.save() self.view.Cerrar()
def EnviarPorCorreo(self, *args, **kwargs): if self.view.gridDatos.currentRow() != -1: factura = FacturaController() factura.ImprimeFactura(self.view.gridDatos.ObtenerItem( fila=self.view.gridDatos.currentRow(), col='idcabecera'), mostrar=False) emaicliente = EmailCliente.select().where( EmailCliente.idcliente == self.view.controles['cliente'].text()) items = [] for e in emaicliente: items.append(e.email) if items: text, ok = QInputDialog.getItem( self.view, 'Sistema', 'Ingrese el mail destinatario:', items) else: text, ok = QInputDialog.getText( self.view, 'Sistema', 'Ingrese el mail destinatario:') if ok: destinatario = str(text).strip() # destinatario = '*****@*****.**' mensaje = "Enviado desde mi Software de Gestion desarrollado por http://www.servinlgsm.com.ar \n" \ "No responder este email" archivo = factura.facturaGenerada motivo = "Se envia comprobante electronico de {}".format( LeerIni(clave='empresa', key='FACTURA')) servidor = ParamSist.ObtenerParametro("SERVER_SMTP") clave = ParamSist.ObtenerParametro("CLAVE_SMTP") usuario = ParamSist.ObtenerParametro("USUARIO_SMTP") puerto = ParamSist.ObtenerParametro("PUERTO_SMTP") or 587 responder = ParamSist.ObtenerParametro("RESPONDER") # envia_correo(from_address='', to_address='', message='', subject='', password_email='', to_cc='', # smtp='', smtp_port=587, files=''): ok = envia_correo(from_address=responder, to_address=destinatario, message=mensaje, subject=motivo, password_email=clave, smtp_port=puerto, smtp_server=servidor, files=archivo) if not ok: Ventanas.showAlert( "Sistema", "Ha ocurrido un error al enviar el correo")
def EnviarPorCorreo(self, *args, **kwargs): if self.view.gridDatos.currentRow() != -1: factura = FacturaController() factura.ImprimeFactura(self.view.gridDatos.ObtenerItem( fila=self.view.gridDatos.currentRow(), col='idcabecera'), mostrar=False) emaicliente = EmailCliente.select().where( EmailCliente.idcliente == self.view.controles['cliente'].text()) controlador = EnvioEmailController() controlador.adjuntos = [] # controlador.archivo_firma = "prueba.html" controlador.adjuntos = factura.facturaGenerada controlador.ActualizaListaAdjuntos() controlador.cliente = self.view.controles['cliente'].text() controlador.view.textAsunto.setText( f'Envio comprobante {os.path.basename(factura.facturaGenerada)}' ) controlador.view.textPara.setText(','.join(e.email for e in emaicliente)) controlador.exec_()
def CargaDatos(self): self.view.gridCorreos.setRowCount(0) correos = None if self.cliente: correos = EmailCliente.select() if not self.view.checkTodos.isChecked(): correos = correos.where(EmailCliente.idcliente == self.cliente) if self.view.textBusqueda.text(): correos = correos.where( EmailCliente.email.contains(self.view.textBusqueda.text()) | Cliente.nombre.contains(self.view.textBusqueda.text()) ).join(Cliente) for c in correos: if self.cliente: nombre = c.idcliente.nombre email = c.email else: nombre = '' email = '' item = [False, nombre, email] self.view.gridCorreos.AgregaItem(item)
def BorraEmailCliente(self): id = self.view.gridEmail.ObtenerItem( fila=self.view.gridEmail.currentRow(), col='idemailcliente') EmailCliente().delete().where(EmailCliente.idemailcliente == id).execute() self.CargaEmail()
from modelos.Localidades import Localidad from modelos.Proveedores import Proveedor from modelos.Tipocomprobantes import TipoComprobante from modelos.Tipodoc import Tipodoc from modelos.Tipoiva import Tipoiva from modelos.Tiporesp import Tiporesp from modelos.Unidades import Unidad if 'drop' in sys.argv: CpbteRel().drop_table() CtaCte().drop_table() Detfact().drop_table() Cabfact().drop_table() CabFactProv().drop_table() DetFactProv().drop_table() EmailCliente().drop_table() Cliente().drop_table() Articulo().drop_table() Proveedor().drop_table() Unidad().drop_table() Grupo().drop_table() Impuesto().drop_table() Formapago().drop_table() Tiporesp().drop_table() Tipodoc().drop_table() Localidad().drop_table() Tipoiva().drop_table() Cajero().drop_table() TipoComprobante().drop_table() CentroCosto().drop_table()