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_()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
    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()
Exemplo n.º 4
0
 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")
Exemplo n.º 5
0
 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)
Exemplo n.º 7
0
 def BorraEmailCliente(self):
     id = self.view.gridEmail.ObtenerItem(
         fila=self.view.gridEmail.currentRow(),
         col='idemailcliente')
     EmailCliente().delete().where(EmailCliente.idemailcliente == id).execute()
     self.CargaEmail()
Exemplo n.º 8
0
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()