def setupUi(self, Form):
        self.setWindowTitle("Emision de recibos de cta cte")
        self.resize(750, 550)
        self.verticalLayoutDatos = QVBoxLayout(Form)
        self.lblTitulo = EtiquetaTitulo(texto=self.windowTitle())
        self.verticalLayoutDatos.addWidget(self.lblTitulo)

        self.layoutCliente = self.ArmaEntrada(nombre='cliente',
                                              control=Clientes.Valida())
        self.lblNombreCliente = Etiqueta()
        self.controles['cliente'].widgetNombre = self.lblNombreCliente
        self.layoutCliente.addWidget(self.lblNombreCliente)
        self.ArmaEntrada(nombre='fecha',
                         control=Fecha(enabled=False),
                         boxlayout=self.layoutCliente)
        self.controles['fecha'].setFecha()

        self.gridDeuda = Grilla()
        self.gridDeuda.enabled = True
        cabecera = [
            'Tipo Comprobante', 'Comprobante', 'Fecha', 'Saldo', 'a Saldar',
            'id'
        ]
        self.gridDeuda.columnasHabilitadas = [
            4,
        ]
        self.gridDeuda.ArmaCabeceras(cabeceras=cabecera)
        self.verticalLayoutDatos.addWidget(self.gridDeuda)
        self.layoutDeudas = self.ArmaEntrada('deuda', enabled=False)
        self.ArmaEntrada(boxlayout=self.layoutDeudas,
                         nombre='saldo',
                         enabled=False)

        self.gridPagos = Grilla()
        self.gridPagos.columnasHabilitadas = [0, 1, 2, 3, 4, 5, 6]
        self.gridPagos.enabled = True
        cabecera = [
            'TipoComp', 'Importe', 'Banco', 'Sucursal', 'Numero', 'Vence',
            'CUIT', 'id'
        ]
        self.gridPagos.ArmaCabeceras(cabeceras=cabecera)
        self.gridPagos.columnasOcultas = [
            7,
        ]
        self.gridPagos.OcultaColumnas()
        self.verticalLayoutDatos.addWidget(self.gridPagos)

        self.layoutPagos = self.ArmaEntrada('pagos', enabled=False)
        self.layoutBotones = QHBoxLayout()
        self.btnGraba = Boton(texto='Aceptar',
                              imagen=imagen('Accept.png'),
                              autodefault=False)
        self.btnCerra = BotonCerrarFormulario(autodefault=False)
        self.btnAgrega = Boton(texto='Agrega Pago',
                               imagen=imagen('Add_create_new.png'),
                               autodefault=False)
        self.layoutBotones.addWidget(self.btnAgrega)
        self.layoutBotones.addWidget(self.btnGraba)
        self.layoutBotones.addWidget(self.btnCerra)
        self.verticalLayoutDatos.addLayout(self.layoutBotones)
Exemplo n.º 2
0
    def tabArticuloUI(self):
        layoutppal = QVBoxLayout()
        self.gridFactura = Grilla(tamanio=10)
        cabeceras = [
            'Cant.', 'Codigo', 'Detalle', 'Unitario', 'IVA', 'SubTotal'
        ]
        self.gridFactura.ArmaCabeceras(cabeceras=cabeceras)
        self.gridFactura.enabled = True
        if int(LeerIni(clave='cat_iva', key='WSFEv1')) != 6:
            self.gridFactura.columnasHabilitadas = [0, 1, 2, 3, 4]
        else:
            self.gridFactura.columnasHabilitadas = [0, 1, 2, 3]

        item = [1, 1, '', 0, 21, 0]
        self.gridFactura.AgregaItem(items=item)

        layoutppal.addWidget(self.gridFactura)
        layoutBotones = QHBoxLayout()
        self.botonAgregaArt = Boton(texto="Agrega",
                                    imagen=imagen("new.png"),
                                    tamanio=QSize(16, 16),
                                    autodefault=False)
        self.botonBorrarArt = Boton(texto="Borrar",
                                    imagen=imagen("delete.png"),
                                    tamanio=QSize(16, 16),
                                    autodefault=False)
        layoutBotones.addWidget(self.botonAgregaArt)
        layoutBotones.addWidget(self.botonBorrarArt)
        layoutppal.addLayout(layoutBotones)
        self.tabArticulo.setLayout(layoutppal)
Exemplo n.º 3
0
    def setupUi(self, Form):
        self.setWindowTitle("Consulta padron de la afip")
        self.resize(650, 450)
        self.layoutPpal = QVBoxLayout(Form)
        self.lblTitulo = EtiquetaTitulo(texto=self.windowTitle())
        self.layoutPpal.addWidget(self.lblTitulo)

        self.layoutCUIT = QHBoxLayout()
        self.lblCUIT = Etiqueta(texto="CUIT")
        self.textCUIT = EntradaTexto(placeholderText="CUIT")
        self.textCUIT.setInputMask("99-99999999-99")
        self.layoutCUIT.addWidget(self.lblCUIT)
        self.layoutCUIT.addWidget(self.textCUIT)
        self.layoutPpal.addLayout(self.layoutCUIT)

        self.gridDatos = Grilla()
        self.gridDatos.enabled = True
        cabecera = ["Campo", "Valor"]
        self.gridDatos.ArmaCabeceras(cabeceras=cabecera)
        self.layoutPpal.addWidget(self.gridDatos)

        self.layoutBotones = QHBoxLayout()
        self.btnConsulta = Boton(
            texto="Consulta",
            imagen=imagen("if_SEO_usability_audit_search__969250.png"))
        self.btnImprimir = Boton(texto="Imprimir Constancia",
                                 imagen=imagen("print.png"))
        self.btnCerrar = BotonCerrarFormulario()
        self.btnAgregaCliente = Boton(texto="Agrega Cliente",
                                      imagen=imagen('nuevo.png'))
        self.layoutBotones.addWidget(self.btnConsulta)
        self.layoutBotones.addWidget(self.btnImprimir)
        self.layoutBotones.addWidget(self.btnAgregaCliente)
        self.layoutBotones.addWidget(self.btnCerrar)
        self.layoutPpal.addLayout(self.layoutBotones)
    def setupUi(self, Form):
        self.setWindowTitle("Seleccion de correos electronico")
        self.resize(650, 350)
        layoutPpal = QVBoxLayout(self)

        layoutBusqueda = QHBoxLayout()
        lblBusqueda = Etiqueta(texto="Busqueda")
        self.textBusqueda = EntradaTexto(placeholderText="Busqueda")
        self.checkTodos = CheckBox(texto="Todos?")
        layoutBusqueda.addWidget(lblBusqueda)
        layoutBusqueda.addWidget(self.textBusqueda)
        layoutBusqueda.addWidget(self.checkTodos)
        layoutPpal.addLayout(layoutBusqueda)

        self.gridCorreos = Grilla()
        self.gridCorreos.enabled = True
        cabeceras = [
            'Selecciona', 'Nombre', 'Correo'
        ]
        self.gridCorreos.columnasHabilitadas = [0,]
        self.gridCorreos.ArmaCabeceras(cabeceras)
        layoutPpal.addWidget(self.gridCorreos)

        layoutBotones = QHBoxLayout()
        self.btnSeleccionar = Boton(texto="&Selecciona", imagen=imagen("check.png"))
        self.btnAgregar = Boton(texto="&Agregar correo", imagen=imagen("email.png"))
        self.btnCerrar = BotonCerrarFormulario()
        layoutBotones.addWidget(self.btnSeleccionar)
        layoutBotones.addWidget(self.btnAgregar)
        layoutBotones.addWidget(self.btnCerrar)
        layoutPpal.addLayout(layoutBotones)
    def setupUi(self, Form):
        self.setWindowTitle("Re impresion de facturas")
        self.verticalLayoutDatos = QVBoxLayout(Form)

        self.lblTitulo = EtiquetaTitulo(texto=self.windowTitle())
        self.verticalLayoutDatos.addWidget(self.lblTitulo)
        self.layoutCliente = self.ArmaEntrada('cliente',
                                              control=Clientes.Valida())
        self.lblNombreCliente = Etiqueta()
        self.controles['cliente'].widgetNombre = self.lblNombreCliente
        self.layoutCliente.addWidget(self.lblNombreCliente)
        self.ArmaEntrada(boxlayout=self.layoutCliente,
                         nombre='fecha',
                         control=Fecha())
        self.controles['fecha'].setFecha(-30)
        self.gridDatos = Grilla()
        self.gridDatos.enabled = True
        cabeceras = ['Fecha', 'Comprobante', 'Total', 'idcabecera']
        self.verticalLayoutDatos.addWidget(self.gridDatos)
        self.gridDatos.ArmaCabeceras(cabeceras=cabeceras)
        self.layoutBotones = QHBoxLayout()
        self.btnImprimir = Boton(texto="Imprimir", imagen=imagen('print.png'))
        self.btnCargar = Boton(
            texto="Cargar",
            imagen=imagen("if_SEO_usability_audit_search__969250.png"))
        self.envioCorreo = Boton(texto="Enviar por correo",
                                 imagen=imagen('email.png'))
        self.btnCerrar = BotonCerrarFormulario()
        self.layoutBotones.addWidget(self.btnCargar)
        self.layoutBotones.addWidget(self.btnImprimir)
        self.layoutBotones.addWidget(self.envioCorreo)
        self.layoutBotones.addWidget(self.btnCerrar)
        self.verticalLayoutDatos.addLayout(self.layoutBotones)
Exemplo n.º 6
0
    def setupUi(self, Form):
        self.resize(650, 350)
        self.setWindowTitle("Email de clientes")
        self.verticalLayoutDatos = QVBoxLayout(Form)
        self.lblTitulo = EtiquetaTitulo(texto=self.windowTitle())
        self.verticalLayoutDatos.addWidget(self.lblTitulo)

        self.gridEmail = Grilla()
        self.gridEmail.enabled = True
        cabeceras = ['EMail', 'idemailcliente']
        self.gridEmail.columnasHabilitadas = [
            0,
        ]
        self.gridEmail.ArmaCabeceras(cabeceras=cabeceras)
        self.verticalLayoutDatos.addWidget(self.gridEmail)

        self.layoutBotones = QHBoxLayout()
        self.btnGraba = Boton(texto='Graba', imagen=imagen('guardar.png'))
        self.btnCerrar = BotonCerrarFormulario()
        self.btnAgregar = Boton(texto="Agregar", imagen=imagen('nuevo.png'))
        self.btnBorrar = Boton(texto="Borrar", imagen=imagen('delete.png'))
        self.layoutBotones.addWidget(self.btnAgregar)
        self.layoutBotones.addWidget(self.btnGraba)
        self.layoutBotones.addWidget(self.btnBorrar)
        self.layoutBotones.addWidget(self.btnCerrar)
        self.verticalLayoutDatos.addLayout(self.layoutBotones)
Exemplo n.º 7
0
    def ArmaDatos(self):
        self.verticalLayoutDatos = QVBoxLayout(self.tabDetalle)
        self.verticalLayoutDatos.setObjectName("verticalLayoutDatos")
        self.ArmaCarga()
        fila = 0

        self.grdBotones = QGridLayout()
        self.grdBotones.setObjectName("grdBotones")
        self.btnAceptar = Boton(self.tabDetalle,
                                texto='Guardar',
                                imagen=imagen('save.png'),
                                tamanio=QSize(32, 32),
                                tooltip="Guardar cambios")
        self.btnAceptar.setObjectName("btnAceptar")
        self.grdBotones.addWidget(self.btnAceptar, 0, 0, 1, 1)

        self.btnCancelar = Boton(self.tabDetalle,
                                 texto='Cerrar',
                                 imagen=imagen('close.png'),
                                 tamanio=QSize(32, 32),
                                 tooltip="Cerrar sin guardar")
        self.btnCancelar.setObjectName("btnCancelar")
        self.grdBotones.addWidget(self.btnCancelar, 0, 1, 1, 1)
        self.verticalLayoutDatos.addLayout(self.grdBotones)
        self.verticalLayout.addWidget(self.tabWidget)
        self.btnCancelar.clicked.connect(self.btnCancelarClicked)
        self.btnAceptar.clicked.connect(self.btnAceptarClicked)
        self.verticalLayoutDatos.addStretch(1)
    def setupUi(self, Form):
        self.setWindowTitle("Importacion comprobantes AFIP")
        layoutPpal = QVBoxLayout(Form)

        self.avance = Avance()
        layoutPpal.addWidget(self.avance)

        layout_archivo_cab = QHBoxLayout()
        lblArchivo = Etiqueta(texto="Archivo cabecera")
        self.textArchivo = EntradaTexto(placeholderText="Ubicacion cabecera")
        self.btnArchivo = Boton(imagen=imagen("folder_search.png"))
        layout_archivo_cab.addWidget(lblArchivo)
        layout_archivo_cab.addWidget(self.textArchivo)
        layout_archivo_cab.addWidget(self.btnArchivo)
        layoutPpal.addLayout(layout_archivo_cab)

        layout_archivo_det = QHBoxLayout()
        lblArchivo_det = Etiqueta(texto="Archivo IVA")
        self.textArchivo_det = EntradaTexto(placeholderText="Ubicacion IVA")
        self.btnArchivo_det = Boton(imagen=imagen("folder_search.png"))
        layout_archivo_det.addWidget(lblArchivo_det)
        layout_archivo_det.addWidget(self.textArchivo_det)
        layout_archivo_det.addWidget(self.btnArchivo_det)
        layoutPpal.addLayout(layout_archivo_det)

        layoutFechas = QHBoxLayout()
        lblDesdeFecha = Etiqueta(texto="Desde fecha")
        self.textDesdeFecha = Fecha(fecha=InicioMes())
        lblHastaFecha = Etiqueta(texto="Hasta fecha")
        self.textHastaFecha = Fecha(fecha=FinMes())
        layoutFechas.addWidget(lblDesdeFecha)
        layoutFechas.addWidget(self.textDesdeFecha)
        layoutFechas.addWidget(lblHastaFecha)
        layoutFechas.addWidget(self.textHastaFecha)
        layoutPpal.addLayout(layoutFechas)

        layoutParametros = QHBoxLayout()
        self.checkBorra = CheckBox(texto="Borra los movimientos?",
                                   checked=True)
        self.consultaAFIP = CheckBox(texto="Consulta datos con AFIP?")
        layoutParametros.addWidget(self.checkBorra)
        layoutParametros.addWidget(self.consultaAFIP)
        layoutPpal.addLayout(layoutParametros)

        layoutBotones = QHBoxLayout()
        self.btnImportar = Boton(texto="Importar",
                                 imagen=imagen("importar.png"))
        self.btnCerrar = BotonCerrarFormulario()
        layoutBotones.addWidget(self.btnImportar)
        layoutBotones.addWidget(self.btnCerrar)
        layoutPpal.addLayout(layoutBotones)
    def setupUi(self, Form):
        self.setWindowTitle("Firma de correo electronico")
        layoutPpal = QVBoxLayout(Form)

        self.editorFirma = TextoEnriquecido()
        layoutPpal.addWidget(self.editorFirma)

        layoutBotones = QHBoxLayout()
        self.btnCargar = Boton(texto="Cargar", imagen=imagen("load_html_file.png"))
        self.btnGrabar = Boton(texto="Grabar", imagen=imagen("save.png"))
        self.btnCerrar = BotonCerrarFormulario()
        layoutBotones.addWidget(self.btnCargar)
        layoutBotones.addWidget(self.btnGrabar)
        layoutBotones.addWidget(self.btnCerrar)
        layoutPpal.addLayout(layoutBotones)
Exemplo n.º 10
0
    def setupUi(self, Form):
        self.setWindowTitle("Informe de ventas por grupo")
        layoutPpal = QVBoxLayout(Form)

        layoutFecha = QHBoxLayout()
        lblDesdeFecha = Etiqueta(texto="Desde fecha")
        self.textDesdeFecha = Fecha()
        self.textDesdeFecha.setFecha(-30)
        lblHastaFecha = Etiqueta(texto="Hasta fecha")
        self.textHastaFecha = Fecha()
        self.textHastaFecha.setFecha()
        layoutFecha.addWidget(lblDesdeFecha)
        layoutFecha.addWidget(self.textDesdeFecha)
        layoutFecha.addWidget(lblHastaFecha)
        layoutFecha.addWidget(self.textHastaFecha)

        layoutPpal.addLayout(layoutFecha)

        self.avance = Avance()
        self.avance.setVisible(False)
        layoutPpal.addWidget(self.avance)

        layoutBotones = QHBoxLayout()
        self.btnExcel = Boton(texto="Exporta", imagen=imagen("Excel.png"))
        self.btnCerrar = BotonCerrarFormulario()
        layoutBotones.addWidget(self.btnExcel)
        layoutBotones.addWidget(self.btnCerrar)
        layoutPpal.addLayout(layoutBotones)
    def header(self):
        self.set_font('Arial', '', 8)
        # Calculate width of title and position
        title = datetime.now().date().strftime("%d/%m/%Y")
        self.set_xy(10, 0)
        #self.cell(w, 9, title, 1, 1, 'C', 1)
        self.text(10, 10, title)
        self.text(100, 10, 'Constatacion de comprobantes')
        self.image(imagen('afip_wscdc.png'), 25, 10, 80)
        self.line(0, 26, 240, 26)
        self.ln(1)
        self.set_font('Arial', '', 24)
        self.text(
            10, 40,
            u'Constatación de comprobantes con {}'.format(self.cbte_modo))
        self.set_font('Arial', '', 14)
        self.set_xy(0, 45)
        if self.estado.startswith('Aprobado'):
            self.multi_cell(
                0, 5,
                u'Los datos ingresados coinciden con una autorizacion otorgada por la AFIP - {}'
                .format(self.obs))
        else:
            self.multi_cell(0, 5, '{} - {}'.format(self.estado, self.obs))

        self.line(0, self.get_y() + 5, 240, self.get_y() + 5)
    def ActualizaListaAdjuntos(self):
        self.view.listaAdjuntos.clear()
        icono = imagen('attach_file.png')
        for item in self.adjuntos:
            self.view.listaAdjuntos.AgregaItem(item, icon=icono)

        self.view.textAdjunto.setText(','.join(x for x in self.adjuntos))
Exemplo n.º 13
0
 def BotonesAdicionales(self):
     self.btnEmail = Boton(self.tabLista,
                           texto="Email Cliente",
                           imagen=imagen("email.png"),
                           tamanio=QSize(32, 32),
                           tooltip='Agrega email del cliente')
     self.btnEmail.setObjectName("btnEmail")
     self.horizontalLayout.addWidget(self.btnEmail)
Exemplo n.º 14
0
 def tabOtrosTributosUI(self):
     layoutppal = QVBoxLayout()
     self.gridAlicuotasTributos = Grilla(tamanio=10)
     cabeceras = ['Alicuota', 'Base Imponible', 'Importe']
     self.gridAlicuotasTributos.ArmaCabeceras(cabeceras=cabeceras)
     layoutppal.addWidget(self.gridAlicuotasTributos)
     layoutBotones = QHBoxLayout()
     self.botonAgregaTributos = Boton(texto="Agrega",
                                      imagen=imagen("nuevo.png"),
                                      tamanio=QSize(16, 16),
                                      autodefault=False)
     self.botonBorrarTributos = Boton(texto="Borrar",
                                      imagen=imagen("delete.png"),
                                      tamanio=QSize(16, 16),
                                      autodefault=False)
     layoutBotones.addWidget(self.botonAgregaTributos)
     layoutBotones.addWidget(self.botonBorrarTributos)
     layoutppal.addLayout(layoutBotones)
     self.tabOtrosTributos.setLayout(layoutppal)
Exemplo n.º 15
0
    def setupUi(self, Form):
        self.setWindowTitle("Libro IVA Ventas")
        self.verticalLayoutDatos = QVBoxLayout(Form)
        self.lblTitulo = EtiquetaTitulo(texto=self.windowTitle())
        self.verticalLayoutDatos.addWidget(self.lblTitulo)
        self.avance = Avance()
        self.avance.setVisible(False)
        self.verticalLayoutDatos.addWidget(self.avance)

        self.layoutPtoVta = self.ArmaEntrada('desdeptovta',
                                             texto="Desde punto de venta")
        self.ArmaEntrada('hastaptovta',
                         texto="Hasta punto de venta",
                         boxlayout=self.layoutPtoVta)
        self.controles['desdeptovta'].setInputMask("9999")
        self.controles['hastaptovta'].setInputMask("9999")
        self.controles['desdeptovta'].setText("0000")
        self.controles['hastaptovta'].setText("9999")
        self.layoutFechas = QHBoxLayout()
        self.lblDesdeFecha = Etiqueta(texto="Desde fecha")
        self.lineDesdeFecha = Fecha()
        self.lineDesdeFecha.setFecha(InicioMes())
        self.lblHastaFecha = Etiqueta(texto="Hasta fecha")
        self.lineHastaFecha = Fecha()
        self.lineHastaFecha.setFecha(FinMes())
        self.layoutFechas.addWidget(self.lblDesdeFecha)
        self.layoutFechas.addWidget(self.lineDesdeFecha)
        self.layoutFechas.addWidget(self.lblHastaFecha)
        self.layoutFechas.addWidget(self.lineHastaFecha)
        self.verticalLayoutDatos.addLayout(self.layoutFechas)

        self.layoutBotones = QHBoxLayout()
        self.btnExcel = Boton(texto="Excel", imagen=imagen('Excel.png'))
        self.btnEnviaCorreo = Boton(texto="Envia correo",
                                    imagen=imagen('compras.png'))
        self.btnCerrar = BotonCerrarFormulario()
        self.layoutBotones.addWidget(self.btnExcel)
        self.layoutBotones.addWidget(self.btnEnviaCorreo)
        self.layoutBotones.addWidget(self.btnCerrar)
        self.verticalLayoutDatos.addLayout(self.layoutBotones)
Exemplo n.º 16
0
    def initUi(self):
        self.setGeometry(150, 150, 650, 450)
        layoutPpal = QVBoxLayout(self)

        layoutIdiomas = QHBoxLayout()
        lblDesde = Etiqueta(texto="Desde")
        self.cboIdiomaDesde = ComboIdiomas()
        lblHasta = Etiqueta(texto="Hasta")
        self.cboIdiomaHasta = ComboIdiomas()
        layoutIdiomas.addWidget(lblDesde)
        layoutIdiomas.addWidget(self.cboIdiomaDesde)
        layoutIdiomas.addWidget(lblHasta)
        layoutIdiomas.addWidget(self.cboIdiomaHasta)
        layoutPpal.addLayout(layoutIdiomas)

        layoutPagina = QHBoxLayout()
        lblPagina = Etiqueta(texto="URL de la pagina")
        self.textURL = EntradaTexto()
        layoutPagina.addWidget(lblPagina)
        layoutPagina.addWidget(self.textURL)
        layoutPpal.addLayout(layoutPagina)

        self.textTextoTraducir = TextEdit(placeholdertext="Texto a traducir")
        layoutPpal.addWidget(self.textTextoTraducir)

        self.textTraducido = TextEdit(placeholdertext="Texto traducido")
        layoutPpal.addWidget(self.textTraducido)

        layoutBotones = QHBoxLayout()
        self.btnTraducir = Boton(
            texto="Tradudir",
            imagen=imagen(
                "iconfinder_logo_brand_brands_logos_translate_google_2230965.png"
            ))
        self.btnCerrar = Boton(texto="Salir",
                               imagen=imagen("iconfinder_free-29_618316.png"))
        layoutBotones.addWidget(self.btnTraducir)
        layoutBotones.addWidget(self.btnCerrar)
        layoutPpal.addLayout(layoutBotones)
Exemplo n.º 17
0
 def dropEvent(self, event):
     if event.mimeData().hasUrls:
         event.setDropAction(QtCore.Qt.CopyAction)
         event.accept()
         links = []
         for url in event.mimeData().urls():
             links.append(str(url.toLocalFile()))
             icono = imagen('attach_file.png')
             self.AgregaItem(str(url.toLocalFile()), icon=icono)
         # self.emit(QtCore.SIGNAL("dropped"), links)
         self.itemDropped.emit(links)
     else:
         event.ignore()
Exemplo n.º 18
0
    def setupUi(self, Form):
        self.setWindowTitle("Configuracion de sistema")
        self.verticalLayoutDatos = QVBoxLayout(Form)

        self.lblTituloEmpresa = EtiquetaTitulo(texto='Datos empresa')
        self.verticalLayoutDatos.addWidget(self.lblTituloEmpresa)
        self.ArmaEntrada('empresa')
        self.ArmaEntrada('membrete1')
        self.ArmaEntrada('membrete2')
        self.layoutCUIT = self.ArmaEntrada('cuit')
        self.ArmaEntrada('iibb', boxlayout=self.layoutCUIT)
        self.layoutCopias = self.ArmaEntrada('num_copias', texto=u'Nº de copias de factura',
                                             control=ComboCopiasFE())
        self.ArmaEntrada('cat_iva', texto='Categoria IVA (1: Resp. Inscripto, 4 Exento, 6: Monotributo)',
                         boxlayout=self.layoutCopias, control=ComboTipoRespIVA())

        self.lblTituloParametros = EtiquetaTitulo(texto='Parametros')
        self.verticalLayoutDatos.addWidget(self.lblTituloParametros)
        self.ArmaEntrada('nombre_sistema', texto='Nombre del sistema')
        layoutBaseDatos = self.ArmaEntrada('BaseDatos', texto='Base de datos')
        self.ArmaEntrada('Host', boxlayout=layoutBaseDatos)
        layoutUsuario = self.ArmaEntrada('Usuario', texto='Usuario de base de datos')
        self.ArmaEntrada('password', boxlayout=layoutUsuario)
        self.controles['password'].setEchoMode(QLineEdit.Password)

        self.layoutHOMO = self.ArmaEntrada('H**O', texto='Homologacion (S) Produccion (N)', control=ComboSINO())
        self.ArmaEntrada('Base', boxlayout=self.layoutHOMO, texto='Tipo base (mysql/sqlite)',
                         control=ComboTipoBaseDatos())

        layoutFCE = self.ArmaEntrada('cbufce', texto="CBU FCE")
        self.ArmaEntrada('aliasfce', boxlayout=layoutFCE, texto="Alias FCE")

        layoutCertificadoCRT = self.ArmaEntrada('crt', texto="Certificado CRT")
        self.btnArchivoCRT = BotonArchivo(archivos="CRT (*.crt)")
        self.btnArchivoCRT.widgetArchivo = self.controles['crt']
        layoutCertificadoCRT.addWidget(self.btnArchivoCRT)

        layoutCertificadoKEY = self.ArmaEntrada('key', texto="Certificado KEY")
        self.btnArchivoKEY = BotonArchivo(archivos="KEY (*.key)")
        self.btnArchivoKEY.widgetArchivo = self.controles['key']
        layoutCertificadoKEY.addWidget(self.btnArchivoKEY)

        self.layoutBotones = QHBoxLayout()
        self.btnGrabar = Boton(texto="Grabar", imagen=imagen('guardar.png'))
        self.btnCerrar = BotonCerrarFormulario()
        self.layoutBotones.addWidget(self.btnGrabar)
        self.layoutBotones.addWidget(self.btnCerrar)
        self.verticalLayoutDatos.addLayout(self.layoutBotones)
    def setupUi(self, Form):
        self.setWindowTitle("Envio de correo electronico")

        layoutPpal = QVBoxLayout(Form)

        layoutParam = QGridLayout()
        self.btnPara = Boton(texto="Para:")
        self.textPara = EmailCompleter(placeholderText="Para")
        layoutParam.addWidget(self.btnPara, 0,0)
        layoutParam.addWidget(self.textPara, 0, 1)

        self.btnCC = Boton(texto="CC:")
        self.textCC = EmailCompleter(placeholderText="Con copia")
        layoutParam.addWidget(self.btnCC, 1, 0)
        layoutParam.addWidget(self.textCC, 1, 1)

        self.btnCCO = Boton(texto="CCO:")
        self.textCCO = EmailCompleter(placeholderText="Con copia oculta")
        layoutParam.addWidget(self.btnCCO, 2, 0)
        layoutParam.addWidget(self.textCCO, 2, 1)

        self.btnAdjunto = Boton(texto="Adjunto:")
        self.textAdjunto = EntradaTexto(enabled=False)
        layoutParam.addWidget(self.btnAdjunto, 3, 0)
        layoutParam.addWidget(self.textAdjunto, 3, 1)

        lblAsunto = Etiqueta(texto="Asunto")
        self.textAsunto = EntradaTexto(placeholderText="Asunto")
        layoutParam.addWidget(lblAsunto, 4, 0)
        layoutParam.addWidget(self.textAsunto, 4, 1, 1, 2)
        layoutPpal.addLayout(layoutParam)

        self.listaAdjuntos = Lista()
        layoutParam.addWidget(self.listaAdjuntos, 0, 2, 4, 1)

        self.textMensaje = TextoEnriquecido()
        layoutPpal.addWidget(self.textMensaje)

        layoutBotones = QHBoxLayout()
        self.btnEnviar = Boton(texto="Enviar", imagen=imagen("email.png"))
        self.btnCerrar = BotonCerrarFormulario()
        layoutBotones.addWidget(self.btnEnviar)
        layoutBotones.addWidget(self.btnCerrar)
        layoutPpal.addLayout(layoutBotones)
    def setupUi(self, Form):
        self.setWindowTitle("Informe de recategorizacion de monotributo")
        self.resize(650, 150)
        layoutPpal = QVBoxLayout(Form)
        self.avance = Avance()
        layoutPpal.addWidget(self.avance)

        agrupacion_datos = Agrupacion(titulo="Datos")
        layoutDatos = QGridLayout()
        lblCategoria = Etiqueta(texto="Categoria actual")
        self.cboCategoriaMono = ComboCategoriaMono()
        layoutDatos.addWidget(lblCategoria, 0, 0)
        layoutDatos.addWidget(self.cboCategoriaMono, 0, 1)
        lblCantidadAdherentesOS = Etiqueta(texto="Cantidad de adheretentes OS")
        self.spnCantAdhOS = Spinner(decimales=0)
        layoutDatos.addWidget(lblCantidadAdherentesOS, 0, 2)
        layoutDatos.addWidget(self.spnCantAdhOS, 0, 3)

        lblActividad = Etiqueta(texto="Actividad")
        self.cboActividad = ComboActividadMono()
        layoutDatos.addWidget(lblActividad, 1, 0)
        layoutDatos.addWidget(self.cboActividad, 1, 1)
        agrupacion_datos.setLayout(layoutDatos)
        layoutPpal.addWidget(agrupacion_datos)

        layoutPeriodo = QHBoxLayout()
        lblAnio = Etiqueta(texto=u"Año")
        self.spnAnio = Spinner(decimales=0)
        self.spnAnio.setText(datetime.now().date().year)
        layoutPeriodo.addWidget(lblAnio)
        layoutPeriodo.addWidget(self.spnAnio)
        lblPeriodo = Etiqueta(texto="Periodo")
        self.cboPeriodo = ComboPeriodoMonotributo()
        layoutPeriodo.addWidget(lblPeriodo)
        layoutPeriodo.addWidget(self.cboPeriodo)
        layoutPpal.addLayout(layoutPeriodo)

        layoutBotones = QHBoxLayout()
        self.btnExcel = Boton(texto="&Excel", imagen=imagen("excel.png"))
        self.btnCerrar = BotonCerrarFormulario()
        layoutBotones.addWidget(self.btnExcel)
        layoutBotones.addWidget(self.btnCerrar)
        layoutPpal.addLayout(layoutBotones)
Exemplo n.º 21
0
    def setupUi(self, Form):
        self.setWindowTitle("Genera certificado digital")
        self.verticalLayoutDatos = QVBoxLayout(Form)

        self.ArmaEntrada(nombre='cuit')
        self.ArmaEntrada(nombre='empresa')
        self.ArmaEntrada(nombre='nombre')
        layoutArchivo = self.ArmaEntrada(nombre='archivo')
        self.btnArchivo = BotonArchivo(archivos="CSR (*.csr)")
        self.btnArchivo.directorio = "certificados"
        self.btnArchivo.nombre_archivo = "certificado"
        self.btnArchivo.guardar = True
        self.btnArchivo.widgetArchivo = self.controles['archivo']
        layoutArchivo.addWidget(self.btnArchivo)

        layoutBotones = QHBoxLayout()
        self.btnGenera = Boton(texto="Genera", imagen=imagen("Accept.png"))
        self.btnCerrar = BotonCerrarFormulario()
        layoutBotones.addWidget(self.btnGenera)
        layoutBotones.addWidget(self.btnCerrar)
        self.verticalLayoutDatos.addLayout(layoutBotones)
Exemplo n.º 22
0
    def setupUi(self):
        layoutPpal = QVBoxLayout(self)

        layoutToolBar = QHBoxLayout()
        edit_toolbar = QToolBar("Editar")
        edit_toolbar.setIconSize(QSize(16, 16))

        self.undo_action = QAction(QIcon(imagen('arrow-curve-180-left.png')),
                                   "Deshacer", self)
        self.undo_action.setStatusTip("Deshacer ultimo cambio")
        edit_toolbar.addAction(self.undo_action)

        self.redo_action = QAction(QIcon(imagen('arrow-curve.png')), "Rehacer",
                                   self)
        self.redo_action.setStatusTip("Rehacer ultimo cambio")
        edit_toolbar.addAction(self.redo_action)

        self.cut_action = QAction(QIcon(imagen('scissors.png')), "Cortar",
                                  self)
        self.cut_action.setStatusTip("Cortar texto seleccionado")
        self.cut_action.setShortcut(QKeySequence.Cut)
        edit_toolbar.addAction(self.cut_action)

        self.copy_action = QAction(QIcon(imagen('document-copy.png')),
                                   "Copiar", self)
        self.copy_action.setStatusTip("Copia texto seleccionado")
        self.copy_action.setShortcut(QKeySequence.Copy)
        edit_toolbar.addAction(self.copy_action)

        self.paste_action = QAction(
            QIcon(imagen('clipboard-paste-document-text.png')), "Pegar", self)
        self.paste_action.setStatusTip("Pegar desde ")
        self.paste_action.setShortcut(QKeySequence.Paste)
        edit_toolbar.addAction(self.paste_action)

        self.select_action = QAction(QIcon(imagen('selection-input.png')),
                                     "Seleccionar todo", self)
        self.select_action.setStatusTip("Seleccionar todo el texto")
        self.select_action.setShortcut(QKeySequence.SelectAll)
        edit_toolbar.addAction(self.select_action)

        self.wrap_action = QAction(QIcon(imagen('arrow-continue.png')),
                                   "Ajusta el texto a la ventana", self)
        self.wrap_action.setStatusTip("Ajusta/desajusta el texto a la ventana")
        self.wrap_action.setCheckable(True)
        self.wrap_action.setChecked(True)
        edit_toolbar.addAction(self.wrap_action)

        layoutToolBar.addWidget(edit_toolbar)

        toolbar_formato = QToolBar("Formato")
        toolbar_formato.setIconSize(QSize(16, 16))

        self.fonts = QFontComboBox()
        toolbar_formato.addWidget(self.fonts)

        self.fontsize = QComboBox()
        self.fontsize.addItems([str(s) for s in FONT_SIZES])
        toolbar_formato.addWidget(self.fontsize)

        self.bold_action = QAction(QIcon(imagen('edit-bold.png')), "Negrita",
                                   self)
        self.bold_action.setStatusTip("Negrita")
        self.bold_action.setShortcut(QKeySequence.Bold)
        self.bold_action.setCheckable(True)
        toolbar_formato.addAction(self.bold_action)

        self.italic_action = QAction(QIcon(imagen('edit-italic.png')),
                                     "Italica", self)
        self.italic_action.setStatusTip("Italica")
        self.italic_action.setShortcut(QKeySequence.Italic)
        self.italic_action.setCheckable(True)
        toolbar_formato.addAction(self.italic_action)

        self.underline_action = QAction(QIcon(imagen('edit-underline.png')),
                                        "Subrayado", self)
        self.underline_action.setStatusTip("Subrayado")
        self.underline_action.setShortcut(QKeySequence.Underline)
        self.underline_action.setCheckable(True)
        toolbar_formato.addAction(self.underline_action)

        self.alignl_action = QAction(QIcon(imagen('edit-alignment.png')),
                                     "Alinear izquierda", self)
        self.alignl_action.setStatusTip("Alinear texto a la izquierda")
        self.alignl_action.setCheckable(True)
        toolbar_formato.addAction(self.alignl_action)

        self.alignc_action = QAction(
            QIcon(imagen('edit-alignment-center.png')), "Alinear centrado",
            self)
        self.alignc_action.setStatusTip("Alineacion centrada del texto")
        self.alignc_action.setCheckable(True)
        toolbar_formato.addAction(self.alignc_action)

        self.alignr_action = QAction(QIcon(imagen('edit-alignment-right.png')),
                                     "Alinear derecha", self)
        self.alignr_action.setStatusTip("Alinear texto a la derecha")
        self.alignr_action.setCheckable(True)
        toolbar_formato.addAction(self.alignr_action)

        self.alignj_action = QAction(
            QIcon(imagen('edit-alignment-justify.png')), "Justificar", self)
        self.alignj_action.setStatusTip("Texto justificado")
        self.alignj_action.setCheckable(True)
        toolbar_formato.addAction(self.alignj_action)

        format_group = QActionGroup(self)
        format_group.setExclusive(True)
        format_group.addAction(self.alignl_action)
        format_group.addAction(self.alignc_action)
        format_group.addAction(self.alignr_action)
        format_group.addAction(self.alignj_action)

        layoutToolBar.addWidget(toolbar_formato)

        layoutPpal.addLayout(layoutToolBar)
        self.editor = TextEdit(tamanio=10)
        self.editor.setAutoFormatting(QTextEdit.AutoAll)
        # Initialize default font size.
        font = QFont('Times', 12)
        self.editor.setFont(font)
        # We need to repeat the size to init the current format.
        self.editor.setFontPointSize(12)

        layoutPpal.addWidget(self.editor)

        # A list of all format-related widgets/actions, so we can disable/enable signals when updating.
        self._format_actions = [
            self.fonts,
            self.fontsize,
            self.bold_action,
            self.italic_action,
            self.underline_action,
            # We don't need to disable signals for alignment, as they are paragraph-wide.
        ]

        # Initialize.
        self.update_format()
    def setupUi(self, Form):
        self.setWindowTitle("Constatacion de comprobantes")

        self.layoutPpal = QVBoxLayout(Form)
        self.lblTitulo = EtiquetaTitulo(texto=self.windowTitle())
        self.layoutPpal.addWidget(self.lblTitulo)
        self.formLayout = QFormLayout()

        self.lblComboTipo = Etiqueta(texto="Tipo de constatacion")
        self.cboComboTipo = ComboConstComp()
        self.formLayout.addRow(self.lblComboTipo, self.cboComboTipo)
        self.layoutPpal.addLayout(self.formLayout)

        self.lblCuit = Etiqueta(texto="CUIT")
        self.textCuit = CUIT(placeholderText="CUIT")
        self.formLayout.addRow(self.lblCuit, self.textCuit)

        self.lblCae = Etiqueta(texto="CAE/CAI")
        self.textCae = EntradaTexto(placeholderText="CAE/CAI")
        self.formLayout.addRow(self.lblCae, self.textCae)

        self.lblFechaEm = Etiqueta(texto="Fecha de emision")
        self.textFecha = Fecha()
        self.textFecha.setFecha()
        self.formLayout.addRow(self.lblFechaEm, self.textFecha)

        self.lblTipoComp = Etiqueta(texto="Tipo de comprobante")
        self.layoutTipoComp = QHBoxLayout()
        self.textTipoComp = Tipocomprobantes.Valida()
        self.lblNombreComp = Etiqueta()
        self.textTipoComp.widgetNombre = self.lblNombreComp
        self.layoutTipoComp.addWidget(self.textTipoComp)
        self.layoutTipoComp.addWidget(self.lblNombreComp)
        self.formLayout.addRow(self.lblTipoComp, self.layoutTipoComp)

        self.lblFactura = Etiqueta(texto=u"Nº Factura")
        self.textFactura = Factura(titulo="")
        self.formLayout.addRow(self.lblFactura, self.textFactura)

        self.lblImpTotal = Etiqueta(texto="Importe total")
        self.textImpTotal = EntradaTexto(placeholderText="Importe Total")
        self.formLayout.addRow(self.lblImpTotal, self.textImpTotal)

        self.lblTipoDocReceptor = Etiqueta(texto="Tipo Doc. Receptor")
        self.textTipoDocReceptor = Tipodoc.Valida()
        self.textTipoDocReceptor.setText('80')
        self.formLayout.addRow(self.lblTipoDocReceptor,
                               self.textTipoDocReceptor)

        self.lblNroDoc = Etiqueta(texto="Nro Doc. Receptor")
        self.textNroDoc = EntradaTexto(placeholderText="Nro Doc. Receptor")
        self.textNroDoc.setText(LeerIni(clave='cuit', key='WSCDC'))
        self.formLayout.addRow(self.lblNroDoc, self.textNroDoc)

        self.lblResultado = Etiqueta()
        self.layoutPpal.addWidget(self.lblResultado)

        self.layoutBotones = QHBoxLayout()
        self.btnConsultar = Boton(
            texto="Consultar",
            imagen=imagen('if_SEO_usability_audit_search__969250.png'))
        self.btnImprimir = Boton(texto="Imprimir", imagen=imagen("print.png"))
        self.btnImprimir.setEnabled(False)
        self.btnCerrar = BotonCerrarFormulario()
        self.layoutBotones.addWidget(self.btnConsultar)
        self.layoutBotones.addWidget(self.btnImprimir)
        self.layoutBotones.addWidget(self.btnCerrar)
        self.layoutPpal.addLayout(self.layoutBotones)

        self.cboComboTipo.setFocus()
Exemplo n.º 24
0
    def ImprimeFactura(self, idcabecera=None, mostrar=True, *args, **kwargs):
        if not idcabecera:
            return
        cabfact = Cabfact().get_by_id(idcabecera)
        print("imprimir factura {}".format(cabfact.numero))
        pyfpdf = FEPDF()
        #cuit del emisor
        pyfpdf.CUIT = LeerIni(clave='cuit', key='WSFEv1')
        #establezco formatos (cantidad de decimales):
        pyfpdf.FmtCantidad = "0.4"
        pyfpdf.FmtPrecio = "0.2"
        #Datos del encabezado de la factura:
        tipo_cbte = cabfact.tipocomp.codigo
        punto_vta = cabfact.numero[:4]
        cbte_nro = cabfact.numero[-8:]
        fecha = FechaMysql(cabfact.fecha)
        concepto = cabfact.concepto
        #datos del cliente:
        tipo_doc = "80" if cabfact.cliente.tiporesp_id != 3 else "96"
        nro_doc = cabfact.cliente.cuit if cabfact.cliente.tiporesp_id != 3 else str(
            cabfact.cliente.dni)
        nombre_cliente = cabfact.nombre if cabfact.nombre != '' else cabfact.cliente.nombre
        domicilio_cliente = cabfact.domicilio

        #totales del comprobante:
        imp_total = cabfact.total
        imp_tot_conc = "0.00"
        imp_neto = cabfact.neto
        imp_iva = cabfact.iva
        imp_trib = cabfact.percepciondgr
        imp_op_ex = "0.00"
        imp_subtotal = cabfact.neto
        fecha_cbte = fecha
        fecha_venc_pago = fecha
        #Fechas del período del servicio facturado
        if int(cabfact.concepto) in [
                FEv1().SERVICIOS, FEv1().PRODUCTOYSERVICIOS
        ]:
            fecha_serv_desde = FechaMysql(cabfact.desde)
            fecha_serv_hasta = FechaMysql(cabfact.hasta)
        else:
            fecha_serv_hasta = None
            fecha_serv_desde = None

        moneda_id = "PES"
        moneda_ctz = "1.000"
        obs_generales = ""
        obs_comerciales = ""
        moneda_id = ""
        moneda_ctz = 1
        cae = cabfact.cae
        fecha_vto_cae = FechaMysql(cabfact.venccae)

        #Creo la factura(internamente en la interfaz)
        ok = pyfpdf.CrearFactura(concepto, tipo_doc, nro_doc, tipo_cbte,
                                 punto_vta, cbte_nro, imp_total, imp_tot_conc,
                                 imp_neto, imp_iva, imp_trib, imp_op_ex,
                                 fecha_cbte, fecha_venc_pago, fecha_serv_desde,
                                 fecha_serv_hasta, moneda_id, moneda_ctz, cae,
                                 fecha_vto_cae, "", nombre_cliente,
                                 domicilio_cliente, 0)
        pyfpdf.EstablecerParametro("forma_pago", cabfact.formapago.detalle)
        pyfpdf.EstablecerParametro(
            "custom-nro-cli",
            "[{}]".format(str(cabfact.cliente.idcliente).zfill(5)))
        pyfpdf.EstablecerParametro("localidad_cli",
                                   cabfact.cliente.localidad.nombre)
        pyfpdf.EstablecerParametro("provincia_cli",
                                   cabfact.cliente.localidad.provincia)
        pyfpdf.EstablecerParametro("iva_cli", cabfact.cliente.tiporesp.nombre)

        #Agregar comprobantes asociados(si es una NC / ND):
        if cabfact.tipocomp.codigo in [3, 8, 13]:
            cpbterel = CpbteRel().select().where(
                CpbteRel.idcabfact == cabfact.idcabfact)
            for cp in cpbterel:
                tipo = cp.idtipocpbte.codigo
                pto_vta = cp.numero[:4]
                nro = cp.numero[-8:]
                pyfpdf.AgregarCmpAsoc(tipo, pto_vta, nro)
        # if str(self.view.cboComprobante.text()).find('credito'):
        #     tipo = 19
        #     pto_vta = 2
        #     nro = 1234
        #     pyfepdf.AgregarCmpAsoc(tipo, pto_vta, nro)

        #Agrego subtotales de IVA(uno por alicuota)
        if cabfact.netoa != 0:
            iva_id = 5  #c�digo para al�cuota del 21 %
            base_imp = cabfact.netoa  #importe neto sujeto a esta al�cuota
            importe = cabfact.netoa * 21 / 100  #importe liquidado de iva
            ok = pyfpdf.AgregarIva(iva_id, base_imp, importe)

        if cabfact.netob != 0:
            iva_id = 4  # c�digo para al�cuota del 10.5 %
            base_imp = cabfact.netob  # importe neto sujeto a esta al�cuota
            importe = cabfact.netob * 10.5 / 100  # importe liquidado de iva
            ok = pyfpdf.AgregarIva(iva_id, base_imp, importe)

        if cabfact.netoa == 0 and cabfact.netob == 0:
            iva_id = 3  # c�digo para al�cuota del 21 %
            base_imp = cabfact.netob  # importe neto sujeto a esta al�cuota
            importe = 0  # importe liquidado de iva
            ok = pyfpdf.AgregarIva(iva_id, base_imp, importe)

        if cabfact.percepciondgr != 0:
            #Agregar cada impuesto(por ej.IIBB, retenciones, percepciones, etc.):
            tributo_id = 99  #codigo para 99 - otros tributos
            Desc = cabfact.cliente.percepcion.detalle
            base_imp = cabfact.neto  #importe sujeto a estetributo
            alic = cabfact.cliente.percepcion.porcentaje  #alicuota(porcentaje) de estetributo
            importe = cabfact.percepciondgr  #importe liquidado de este tributo
            ok = pyfpdf.AgregarTributo(tributo_id, Desc, base_imp, alic,
                                       importe)

        det = Detfact().select().where(Detfact.idcabfact == cabfact.idcabfact)
        for d in det:
            #Agrego detalles de cada item de la factura:
            u_mtx = 0  #unidades
            cod_mtx = ""  #c�digo de barras
            codigo = d.idarticulo.idarticulo  #codigo interno a imprimir(ej. "articulo")
            ds = d.descad.strip()
            qty = d.cantidad  #cantidad
            umed = 7  #c�digo de unidad de medida(ej. 7 para"unidades")
            precio = d.precio  #precio neto(A) o iva incluido(B)
            bonif = 0  #importe de descuentos
            iva_id = FEv1().TASA_IVA[str(float(
                d.tipoiva.iva))]  #c�digopara al�cuota del 21 %
            imp_iva = d.montoiva  #importe liquidado deiva
            importe = d.precio * d.cantidad  #importe total del item
            despacho = ""  #numero de despacho de importaci�n
            dato_a = ""  #primer dato adicional del item
            dato_b = ""
            dato_c = ""
            dato_d = ""
            dato_e = ""  #ultimo dato adicionaldel item
            ok = pyfpdf.AgregarDetalleItem(u_mtx, cod_mtx, codigo, ds, qty,
                                           umed, precio, bonif, iva_id,
                                           imp_iva, importe, despacho, dato_a,
                                           dato_b, dato_c, dato_d, dato_e)

        #Agrego datos adicionales fijos:
        ok = pyfpdf.AgregarDato("logo",
                                ubicacion_sistema() + "plantillas/logo.png")
        fondo = ParamSist.ObtenerParametro("FONDO_FACTURA")
        if fondo:
            x1 = ParamSist.ObtenerParametro("FONDO_FACTURA_X1") or 50
            y1 = ParamSist.ObtenerParametro("FONDO_FACTURA_Y1") or 117.1
            x2 = ParamSist.ObtenerParametro("FONDO_FACTURA_X2") or 150
            y2 = ParamSist.ObtenerParametro("FONDO_FACTURA_Y2") or 232.9
            pyfpdf.AgregarCampo("fondo_factura",
                                'I',
                                x1,
                                y1,
                                x2,
                                y2,
                                foreground=0x808080,
                                priority=-1,
                                text=imagen(fondo))
        ok = pyfpdf.AgregarDato(
            "EMPRESA", "Razon social: {}".format(
                DeCodifica(LeerIni(clave='empresa', key='FACTURA'))))
        ok = pyfpdf.AgregarDato(
            "MEMBRETE1", "Domicilio Comercial: {}".format(
                DeCodifica(LeerIni(clave='membrete1', key='FACTURA'))))
        ok = pyfpdf.AgregarDato(
            "MEMBRETE2", DeCodifica(LeerIni(clave='membrete2', key='FACTURA')))
        ok = pyfpdf.AgregarDato(
            "CUIT", 'CUIT: {}'.format(LeerIni(clave='cuit', key='WSFEv1')))
        ok = pyfpdf.AgregarDato("IIBB", LeerIni(clave='iibb', key='FACTURA'))
        ok = pyfpdf.AgregarDato(
            "IVA", "Condicion frente al IVA: {}".format(
                LeerIni(clave='iva', key='FACTURA')))
        ok = pyfpdf.AgregarDato(
            "INICIO", "Fecha inicio actividades: {}".format(
                LeerIni(clave='inicio', key='FACTURA')))

        if int(cabfact.tipocomp.codigo
               ) in Constantes.COMPROBANTES_FCE:  #si es una FCE
            pyfpdf.AgregarDato('CBUFCE', LeerIni('CBUFCE', key='FACTURA'))
            pyfpdf.AgregarDato('ALIASFCE', LeerIni('ALIASFCE', key='FACTURA'))
            pyfpdf.AgregarDato('nombre_condvta', Constantes.COND_VTA['T'])
            ok = pyfpdf.CargarFormato(ubicacion_sistema() +
                                      "/plantillas/factura-fce.csv")
        else:
            #Cargo el formato desde el archivo CSV(opcional)
            #(carga todos los campos a utilizar desde la planilla)
            ok = pyfpdf.CargarFormato(ubicacion_sistema() +
                                      "/plantillas/factura.csv")
        #Creo plantilla para esta factura(papel A4vertical):

        if LeerIni(clave='h**o') == 'S':
            pyfpdf.AgregarCampo("h**o",
                                'T',
                                150,
                                350,
                                0,
                                0,
                                size=70,
                                rotate=45,
                                foreground=0x808080,
                                priority=-1,
                                text="HOMOLOGACION")
        papel = "A4"  #o "letter" para carta, "legal" para oficio
        orientacion = "portrait"  #o landscape(apaisado)
        ok = pyfpdf.CrearPlantilla(papel, orientacion)
        num_copias = int(
            LeerIni(clave='num_copias',
                    key='FACTURA'))  #original, duplicado y triplicado
        lineas_max = 24  #cantidad de linas de items porp�gina
        qty_pos = "izq"  #(cantidad a la izquierda de la descripci�n del art�culo)
        #Proceso la plantilla
        ok = pyfpdf.ProcesarPlantilla(num_copias, lineas_max, qty_pos)

        if not os.path.isdir('facturas'):
            os.mkdir('facturas')
        #Genero el PDF de salida seg�n la plantilla procesada
        salida = join(
            'facturas', "{}-{}.pdf".format(cabfact.tipocomp.nombre,
                                           cabfact.numero))
        ok = pyfpdf.GenerarPDF(salida)
        #Abro el visor de PDF y muestro lo generado
        #(es necesario tener instalado Acrobat Reader o similar)
        imprimir = False  #cambiar a True para que lo envie directo a laimpresora
        if mostrar:
            pyfpdf.MostrarPDF(salida, imprimir)

        self.facturaGenerada = salida
Exemplo n.º 25
0
    def initUi(self, *args, **kwargs):
        self.resize(906, 584)
        nombre_tabla = self.model._meta.table_name.title(
        ) if self.model else ''
        self.setWindowTitle("ABM de {}".format(nombre_tabla))
        self.verticalLayout = QVBoxLayout(self)
        self.lblTitulo = Etiqueta(tamanio=15,
                                  texto="ABM de {}".format(nombre_tabla))
        self.verticalLayout.addWidget(self.lblTitulo)

        self.tabWidget = QTabWidget()
        self.tabLista = QWidget()
        self.gridLayout = QGridLayout(self.tabLista)

        self.lineEditBusqueda = EntradaTexto(self.tabLista,
                                             placeholderText="Busqueda")
        self.lineEditBusqueda.setObjectName("lineEditBusqueda")
        self.gridLayout.addWidget(self.lineEditBusqueda, 0, 0, 1, 1)

        self.tableView = Grilla(self.tabLista)
        self.tableView.setObjectName("tableView")
        self.tableView.enabled = True

        # extraigo los nombres de las columnas
        if self.camposAMostrar:
            self.tableView.cabeceras = [
                x.verbose_name.capitalize()
                if x.verbose_name else x.column_name.capitalize()
                for x in self.camposAMostrar
            ]
        else:
            self.tableView.cabeceras = []
        self.tableView.ArmaCabeceras()
        self.gridLayout.addWidget(self.tableView, 1, 0, 1, 1)
        self.horizontalLayout = QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")

        self.BotonesAdicionales()

        self.btnAgregar = Boton(self.tabLista,
                                texto='Nuevo',
                                imagen=imagen('new.png'),
                                tamanio=QSize(32, 32),
                                tooltip='Agrega nuevo registro')
        self.btnAgregar.setObjectName("btnAgregar")
        self.horizontalLayout.addWidget(self.btnAgregar)

        self.btnEditar = Boton(self.tabLista,
                               imagen=imagen('edit.png'),
                               tamanio=QSize(32, 32),
                               tooltip='Modifica registro',
                               texto='Editar')
        self.btnEditar.setObjectName("btnEditar")
        self.horizontalLayout.addWidget(self.btnEditar)

        self.btnBorrar = Boton(self.tabLista,
                               imagen=imagen('delete.png'),
                               tamanio=QSize(32, 32),
                               tooltip='Borrar registro',
                               texto='Borrar')
        self.btnBorrar.setObjectName("btnBorrar")
        self.horizontalLayout.addWidget(self.btnBorrar)

        self.btnCerrar = Boton(self.tabLista,
                               imagen=imagen('close.png'),
                               tamanio=QSize(32, 32),
                               tooltip='Cerrar ABM',
                               texto='Cerrar')

        self.btnCerrar.setObjectName("btnCerrar")
        self.horizontalLayout.addWidget(self.btnCerrar)
        self.gridLayout.addLayout(self.horizontalLayout, 2, 0, 1, 1)

        self.tabWidget.addTab(self.tabLista, "Lista")
        self.tabDetalle = QWidget()
        self.tabWidget.addTab(self.tabDetalle, "Detalle")
        self.tabDetalle.setEnabled(False)

        self.verticalLayout.addWidget(self.tabWidget)

        self.ArmaDatos()
        self.ArmaTabla()
        self.ConectaWidgets()
Exemplo n.º 26
0
    def setupUi(self, Form):
        self.layoutPpal = QVBoxLayout(Form)
        self.setWindowTitle("Emision de comprobante electronico")
        self.resize(850, 650)
        self.lblTitulo = EtiquetaTitulo(texto=self.windowTitle())
        self.layoutPpal.addWidget(self.lblTitulo)
        self.layoutCliente = QGridLayout()
        self.agrupaCliente = Agrupacion(titulo="Cliente:")
        self.lblCodigoCliente = Etiqueta(texto="Codigo Cliente")
        self.lblNombreCliente = Etiqueta()
        self.validaCliente = Clientes.Valida()
        self.validaCliente.widgetNombre = self.lblNombreCliente
        self.layoutCliente.addWidget(self.lblCodigoCliente, 0, 0)
        self.layoutCliente.addWidget(self.validaCliente, 0, 1)
        self.layoutCliente.addWidget(self.lblNombreCliente, 0, 2, 1, 4)

        layoutIVA = QHBoxLayout()
        self.lblDomicilio = Etiqueta(texto="Domicilio")
        self.lineEditDomicilio = EntradaTexto(
            placeholderText="Domicilio cliente")
        self.layoutCliente.addWidget(self.lblDomicilio, 1, 0)
        self.layoutCliente.addWidget(self.lineEditDomicilio, 1, 1, 1, 1)

        self.lblDocumento = Etiqueta(texto=u"Nº Doc")
        self.lineEditDocumento = EntradaTexto(placeholderText="CUIT/CUIL/DNI")
        self.layoutCliente.addWidget(self.lblDocumento, 1, 2)
        self.layoutCliente.addWidget(self.lineEditDocumento, 1, 3)
        self.agrupaCliente.setLayout(self.layoutCliente)

        self.lblTipoIVA = Etiqueta(texto='IVA:')
        self.cboTipoIVA = Tiporesp.Combo()
        self.layoutCliente.addWidget(self.lblTipoIVA, 1, 4)
        self.layoutCliente.addWidget(self.cboTipoIVA, 1, 5)

        self.layoutPpal.addWidget(self.agrupaCliente)

        self.layoutComprobante = QHBoxLayout()
        self.lblComprobante = Etiqueta(texto="Comprobante", tamanio=10)
        self.cboComprobante = Tipocomprobantes.ComboTipoComp(tiporesp=int(
            LeerIni(clave='cat_iva', key='WSFEv1')),
                                                             tamanio=10)
        self.layoutComprobante.addWidget(self.lblComprobante)
        self.layoutComprobante.addWidget(self.cboComprobante)
        self.layoutFactura = Factura(titulo=u"Nº", tamanio=10, enabled=False)
        self.layoutComprobante.addLayout(self.layoutFactura)
        self.lblFecha = Etiqueta(texto="Fecha", tamanio=10)
        self.layoutPpal.addWidget(self.lblFecha)
        self.layoutCpbteRelacionado = Factura(titulo='Cpbte Rel',
                                              tamanio=10,
                                              enabled=False)
        self.layoutComprobante.addLayout(self.layoutCpbteRelacionado)
        self.lineEditFecha = Fecha(tamanio=10)
        self.lineEditFecha.setFecha()
        self.layoutComprobante.addWidget(self.lblFecha)
        self.layoutComprobante.addWidget(self.lineEditFecha)
        self.layoutPpal.addLayout(self.layoutComprobante)

        self.layoutConceptoPeriodo = QHBoxLayout()

        self.agrupaConceptos = Agrupacion(titulo="Conceptos a incluir")
        self.layoutConceptos = QGridLayout()
        self.checkBoxProductos = CheckBox(texto="Productos")
        self.checkBoxServicios = CheckBox(texto="Servicios")
        self.layoutConceptos.addWidget(self.checkBoxProductos, 0, 0)
        self.layoutConceptos.addWidget(self.checkBoxServicios, 0, 1)
        self.lblFormaPago = Etiqueta(texto="Forma de pago")
        self.cboFormaPago = ComboFormapago()
        self.layoutConceptos.addWidget(self.lblFormaPago, 1, 0)
        self.layoutConceptos.addWidget(self.cboFormaPago, 1, 1)
        self.agrupaConceptos.setLayout(self.layoutConceptos)
        self.layoutConceptoPeriodo.addWidget(self.agrupaConceptos)

        self.agrupaPeriodo = Agrupacion(titulo="Periodo Facturado")
        self.layoutPeriodo = QGridLayout()
        self.lblDesde = Etiqueta(texto="Desde", tamanio=10)
        self.lblHasta = Etiqueta(texto="Hasta", tamanio=10)
        self.fechaDesde = Fecha()
        self.fechaDesde.setFecha()
        self.fechaDesde.setEnabled(False)
        self.fechaHasta = Fecha()
        self.fechaHasta.setFecha()
        self.fechaHasta.setEnabled(False)
        self.lblVencimiento = Etiqueta(texto="Vto. para el pago")
        self.vencPago = Fecha()
        self.vencPago.setFecha()
        self.layoutPeriodo.addWidget(self.lblDesde, 0, 0)
        self.layoutPeriodo.addWidget(self.fechaDesde, 0, 1)
        self.layoutPeriodo.addWidget(self.lblHasta, 0, 2)
        self.layoutPeriodo.addWidget(self.fechaHasta, 0, 3)
        self.agrupaPeriodo.setLayout(self.layoutPeriodo)
        self.layoutPeriodo.addWidget(self.lblVencimiento, 1, 1, 1, 2)
        self.layoutPeriodo.addWidget(self.vencPago, 1, 3)
        self.layoutConceptoPeriodo.addWidget(self.agrupaPeriodo)

        self.layoutPpal.addLayout(self.layoutConceptoPeriodo)

        self.paginaDatos = Pagina()
        self.tabArticulo = TabPagina()
        self.tabAlicuotaIVA = TabPagina()
        self.tabOtrosTributos = TabPagina()
        self.tabObs = TabPagina()
        self.tabArticuloUI()
        self.tabAlicuotaIVAUI()
        self.tabOtrosTributosUI()
        self.tabObsUI()
        self.paginaDatos.addTab(self.tabArticulo, "Articulo")
        self.paginaDatos.addTab(self.tabAlicuotaIVA, "Alicuotas IVA")
        self.paginaDatos.addTab(self.tabOtrosTributos, "Otros Tributos")
        self.paginaDatos.addTab(self.tabObs, "Observaciones")
        self.layoutPpal.addWidget(self.paginaDatos)

        self.layoutTotales = QHBoxLayout()
        self.agrupaAfip = Agrupacion(titulo="Autorizacion AFIP")
        self.layoutAfip = QGridLayout()
        self.lblCAE = Etiqueta(texto="CAE")
        self.lineditCAE = EntradaTexto(placeholderText="CAE", enabled=False)
        self.lblVencCAE = Etiqueta(texto="Venc. CAE")
        self.fechaVencCAE = Fecha(enabled=False)
        self.lblResultado = Etiqueta(texto="Resultado")
        self.lineEditResultado = EntradaTexto(placeholderText="Resultado",
                                              enabled=False)
        self.layoutAfip.addWidget(self.lblCAE, 0, 0)
        self.layoutAfip.addWidget(self.lineditCAE, 0, 1)
        self.layoutAfip.addWidget(self.lblVencCAE, 1, 0)
        self.layoutAfip.addWidget(self.fechaVencCAE, 1, 1)
        self.layoutAfip.addWidget(self.lblResultado, 2, 0)
        self.layoutAfip.addWidget(self.lineEditResultado, 2, 1)
        self.agrupaAfip.setLayout(self.layoutAfip)
        self.layoutTotales.addWidget(self.agrupaAfip)

        lblSubTotal = Etiqueta(texto="Sub Total: ", tamanio=10)
        self.textSubTotal = EntradaTexto(tamanio=10, enabled=False)

        self.lblTributos = Etiqueta(texto="Otros Tributos", tamanio=10)
        self.lineEditTributos = EntradaTexto(tamanio=10, enabled=False)
        self.lblTotalIVA = Etiqueta(texto="IVA", tamanio=10)
        self.lineEditTotalIVA = EntradaTexto(tamanio=10, enabled=False)
        self.lblTotalFactura = Etiqueta(texto='Total', tamanio=10)
        self.lineEditTotal = EntradaTexto(tamanio=10, enabled=False)
        self.gridLayoutTotales = QGridLayout()
        self.gridLayoutTotales.addWidget(lblSubTotal, 0, 0)
        self.gridLayoutTotales.addWidget(self.textSubTotal, 0, 1)
        self.gridLayoutTotales.addWidget(self.lblTributos, 0, 2)
        self.gridLayoutTotales.addWidget(self.lineEditTributos, 0, 3)
        self.gridLayoutTotales.addWidget(self.lblTotalIVA, 1, 0)
        self.gridLayoutTotales.addWidget(self.lineEditTotalIVA, 1, 1, 1, 3)
        self.gridLayoutTotales.addWidget(self.lblTotalFactura, 2, 0)
        self.gridLayoutTotales.addWidget(self.lineEditTotal, 2, 1, 1, 3)

        self.layoutTotales.addLayout(self.gridLayoutTotales)
        self.layoutPpal.addLayout(self.layoutTotales)

        self.layoutBotones = QHBoxLayout()
        self.btnGrabarFactura = Boton(texto="Emitir",
                                      imagen=imagen('save.png'),
                                      autodefault=False)
        self.btnCerrarFormulario = BotonCerrarFormulario(autodefault=False)
        self.layoutBotones.addWidget(self.btnGrabarFactura)
        self.layoutBotones.addWidget(self.btnCerrarFormulario)
        self.layoutPpal.addLayout(self.layoutBotones)