def validadores(self): camposRequeridos = [getattr(self,"lineMonodroga")] ValidarDatos.setValidador(camposRequeridos) camposRequeridos = [getattr(self,"lineMedicamento")] ValidarDatos.setValidador(camposRequeridos)
def validadores(self): """ Setea los validadores para los campos de la ventana :return: """ camposRequeridos = [getattr(self,"lineNumero")] ValidarDatos.setValidador(camposRequeridos)
def validadores(self): """ Setea los campos obligatorios, junto con los validadores de cada campo. :return: """ ##Esta parte analiza los campos requeridos para el cliente self.camposRequeridos = [self.lineCod_Barra] ValidarDatos.setValidador(self.camposRequeridos)
def validadores(self): """ Setea los validadores correspondientes para los campos de la ventana :return: """ ##Esta parte analiza los campos requeridos para el cliente camposRequeridos = [ getattr(self, "lineRazonSocial") ] ValidarDatos.setValidador(camposRequeridos) camposRequeridos = [ getattr(self, "lineNumero") ] ValidarDatos.setValidador(camposRequeridos)
def validadores(self, model): """ Setea los campo requeridos (obligatorios) y los campos no requeridos (opcionales). Para una ventana determinada. :param model: referencia a la ventana. :return: """ ##Esta parte analiza los campos requeridos para el cliente self.camposRequeridos = [getattr(self, "line%s" % campo.title()) for campo in model.requeridos] ValidarDatos.setValidador(self.camposRequeridos) ##Esta parte analiza los campos que son opcionales camposNoRequeridos=[getattr(self, "line%s" % campo.title()) for campo in model.noRequeridos] ValidarDatos.setValidador(camposNoRequeridos)
def modificar(self): """ Modifica los datos del cliente seleccionado. :return: """ itemActual = self.tableClientes.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): row = itemActual.row() dni = str(self.tableClientes.item(row, 0).text()) query = ClienteModel.buscarAlta(ClienteModel.dni, self.sesion, dni) for instance in query.all(): self.cliente = instance self.cliente.setNombre(str(self.lineNombre.text())) self.cliente.setApellido(str(self.lineApellido.text())) self.cliente.setDireccion(str(self.lineDireccion.text())) self.cliente.setTelefono(str(self.lineTelefono.text())) self.cliente.modificar(self.sesion) QtGui.QMessageBox.information(self, "Info", "El cliente fue modificado.", "Aceptar") self.objectModified.emit() self.actualizar() else: QtGui.QMessageBox.warning( self, "Atención", "Hay datos obligatorios que no fueron completados.", "Aceptar" ) else: QtGui.QMessageBox.warning(self, "Atención", "No se ha seleccionado un Cliente de la tabla.", "Aceptar")
def crear(self): """ Da de alta un cliente nuevo y lo almacena en la base de datos. :return: """ if ValidarDatos.validarCamposVacios(self.camposRequeridos): cliente = ClienteModel( str(self.lineDni.text()), str(self.lineNombre.text()), str(self.lineApellido.text()), str(self.lineDireccion.text()), str(self.lineTelefono.text()), ) if cliente.guardar(self.sesion): QtGui.QMessageBox.information(self, "Info", "El Cliente fue dado de alta.", "Aceptar") self.limpiarCampos() self.objectCreated.emit() else: cliente = ClienteModel.buscar(ClienteModel.dni, self.sesion, str(self.lineDni.text())).first() if cliente.getBaja(): cliente.setBaja(False) cliente.modificar(self.sesion) QtGui.QMessageBox.information(self, "Info", "El Cliente fue dado de alta.", "Aceptar") self.limpiarCampos() self.objectCreated.emit() else: QtGui.QMessageBox.critical(self, "Error", "El Cliente ya existe.", "Aceptar") else: QtGui.QMessageBox.warning(self, "Atención", "Hay datos obligatorios que no fueron completados.", "Aceptar")
def ajuste(self): """ Actualiza la cantidad del producto seleccionado para realizar el ajuste negativo de stock. :return: """ itemActual = self.tablaLoteProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): row = itemActual.row() codigo_barra = str(self.tablaLoteProducto.item(row, 0).text()) codigo_lote = str(self.tablaLoteProducto.item(row, 3).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto(self.sesion, codigo_barra, codigo_lote).first() resto = int(self.loteProducto.getCantidad()) - int(self.spinCantidad.value()) if resto < 0: self.showMsjEstado("La cantidad ingresada no puede ser mayor a la cantidad del Producto") else: self.loteProducto.setCantidad(resto) self.loteProducto.modificar(self.sesion) self.showMsjEstado("La cantidad fue modificada") self.actualizar() else: self.showMsjEstado("Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado("No se ha seleccionado un Lote/Producto de la tabla")
def modificar(self): """ Modifica los datos de la monodroga seleccionada. :return: """ itemActual = self.tablaMonodroga.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): row = itemActual.row() nombre = str(self.tablaMonodroga.item(row, 0).text()) self.monodroga = MonodrogaModel.buscarAlta( MonodrogaModel.nombre, self.sesion, nombre).first() self.monodroga.setTipoVenta( str(self.cmbTipoVenta.currentText())) self.monodroga.setDescripcion( str(self.txtDescripcion.toPlainText())) self.monodroga.modificar(self.sesion) self.showMsjEstado("La Monodroga fue modificada") self.objectModified.emit() self.actualizar() else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado( "No se ha seleccionado una Monodroga de la tabla")
def crear(self): """ Da de alta una monodroga nueva y la almacena en la base de datos. :return: """ if ValidarDatos.validarCamposVacios(self.camposRequeridos): monodroga = MonodrogaModel(str(self.lineNombre.text()), str(self.cmbTipoVenta.currentText()), str(self.txtDescripcion.toPlainText())) if monodroga.guardar(self.sesion): self.showMsjEstado("La Monodroga fue dada de alta.") self.limpiarCampos() self.objectCreated.emit() else: monodroga = MonodrogaModel.buscar( MonodrogaModel.nombre, self.sesion, str(self.lineNombre.text())).first() if monodroga.getBaja(): monodroga.setBaja(False) monodroga.modificar(self.sesion) self.showMsjEstado("La Monodroga fue dada de alta.") self.limpiarCampos() self.objectCreated.emit() else: QtGui.QMessageBox.critical(self, 'Error', 'La Monodroga ya existe.', 'Aceptar') else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.")
def ajuste(self): """ Actualiza la cantidad del producto seleccionado para realizar el ajuste negativo de stock. :return: """ itemActual = self.tablaLoteProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): row = itemActual.row() codigo_barra = str(self.tablaLoteProducto.item(row, 0).text()) codigo_lote = str(self.tablaLoteProducto.item(row, 3).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto(self.sesion, codigo_barra, codigo_lote).first() resto = int(self.loteProducto.getCantidad()) - int(self.spinCantidad.value()) if resto < 0: QtGui.QMessageBox.critical(self, 'Error', 'La cantidad ingresada no puede ser mayor ' 'a la cantidad del Producto.', 'Aceptar') else: self.loteProducto.setCantidad(resto) self.loteProducto.modificar(self.sesion) QtGui.QMessageBox.information(self, 'Info', 'La cantidad fue modificada.', 'Aceptar') self.objectModified.emit() self.actualizar() else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no fueron completados.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado un Lote/Producto de la tabla.', 'Aceptar')
def crear(self): """ Da de alta un lote nuevo y lo almacena en la base de datos. :return: """ if self.producto == None: self.showMsjEstado( "No se ha seleccionado ningun Producto de la tabla") else: if ValidarDatos.validarCamposVacios(self.camposRequeridos): lote = LoteModel(str(self.lineCodigo.text()), str(self.dateFechVenc.text())) if lote.guardar(self.sesion): self.showMsjEstado("El Lote fue dado de alta.") loteProducto = LoteProductoModel( lote.getCodigo(), self.producto, int(self.spinCantidad.value())) if loteProducto.guardar(self.sesion): self.showMsjEstado("Lote/Producto fue dado de alta.") else: self.showMsjEstado("Lote/Producto ya existe.") self.limpiarCampos() self.objectCreated.emit() else: QtGui.QMessageBox.critical(self, 'Error', 'El Lote ya existe.', 'Aceptar') else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.")
def crear(self): """ Da de alta un lote nuevo y lo almacena en la base de datos. :return: """ if self.producto == None: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado ningun Producto de la tabla.', 'Aceptar') else: if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.dateFechVenc.dateTime().toPyDateTime().date() > date.today(): lote = LoteModel(str(self.lineCodigo.text()), str(self.dateFechVenc.text())) if lote.guardar(self.sesion): QtGui.QMessageBox.information(self, 'Info', 'El Lote fue dado de alta.', 'Aceptar') loteProducto = LoteProductoModel(lote.getCodigo(), self.producto, int(self.spinCantidad.value())) loteProducto.guardar(self.sesion) self.limpiarCampos() self.objectCreated.emit() else: QtGui.QMessageBox.critical(self, 'Error', 'El Lote ya existe.', 'Aceptar') else: QtGui.QMessageBox.critical(self, 'Error', 'La fecha de vencimiento debe ser mayor a la fecha actual.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no fueron completados.', 'Aceptar')
def modificar(self): """ Modifica los datos de la presentación seleccionada. :return: """ presActual = self.tablaPresentacion.currentItem() if presActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.validarFracciones(): row = presActual.row() tipo = str(self.tablaPresentacion.item(row, 0).text()) self.presentacion = PresentacionModel.buscarAlta(PresentacionModel.tipo, self.sesion, tipo).first() self.presentacion.setUnidadMedida(str(self.lineUnidad_Medida.text())) self.presentacion.setCantidadFracciones(str(self.spinCantidad.value())) self.presentacion.setSubPresentacion(self.subPresentacion) if self.subPresentacion != None: self.setSuperPresentacion(str(self.lineTipo.text())) if self.subPresentacionOld != None: self.subPresentacion = self.subPresentacionOld self.setSuperPresentacion(None) self.presentacion.modificar(self.sesion) QtGui.QMessageBox.information(self, 'Info', 'La Presentación fue modificada.', 'Aceptar') self.objectModified.emit() self.actualizar() else: QtGui.QMessageBox.warning(self, 'Atención', 'Seleccione la Presentación en la ' 'cual puede fraccionarse la Presentación actual.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no ' 'fueron completados.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado una Presentación de la tabla', 'Aceptar')
def modificar(self): """ Modifica los datos del cliente seleccionado. :return: """ itemActual = self.tableClientes.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): row = itemActual.row() dni = str(self.tableClientes.item(row, 0).text()) query = ClienteModel.buscarAlta(ClienteModel.dni, self.sesion, dni) for instance in query.all(): self.cliente = instance self.cliente.setNombre(str(self.lineNombre.text())) self.cliente.setApellido(str(self.lineApellido.text())) self.cliente.setDireccion(str(self.lineDireccion.text())) self.cliente.setTelefono(str(self.lineTelefono.text())) self.cliente.modificar(self.sesion) self.showMsjEstado("El cliente fue modificado") self.objectModified.emit() self.actualizar() else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado("No se ha seleccionado un Cliente de la tabla")
def crear(self): """ Da de alta un medicamento nuevo y lo almacena en la base de datos. :return: """ if self.monodroga == None: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado ninguna Monodroga de la tabla.', 'Aceptar') else: if ValidarDatos.validarCamposVacios(self.camposRequeridos): medicamento = MedicamentoModel(str(self.lineNombre_Med.text()), self.monodroga, str(self.spinCantidad.value())) if medicamento.guardar(self.sesion): QtGui.QMessageBox.information(self, 'Info', 'El Medicamento fue dado de alta.', 'Aceptar') self.limpiarCampos() self.objectCreated.emit() else: medicamento = MedicamentoModel.buscar(MedicamentoModel.nombre_comercial, self.sesion, str(self.lineNombre_Med.text())).first() if medicamento.getBaja(): medicamento.setBaja(False) medicamento.modificar(self.sesion) QtGui.QMessageBox.information(self, 'Info', 'El Medicamento fue dado de alta.', 'Aceptar') self.limpiarCampos() self.objectCreated.emit() else: QtGui.QMessageBox.critical(self, 'Error', 'El Medicamento ya existe.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no fueron completados.', 'Aceptar')
def crear(self): """ Da de alta un cliente nuevo y lo almacena en la base de datos. :return: """ if ValidarDatos.validarCamposVacios(self.camposRequeridos): cliente = ClienteModel(str(self.lineDni.text()), str(self.lineNombre.text()), str(self.lineApellido.text()), str(self.lineDireccion.text()), str(self.lineTelefono.text())) if cliente.guardar(self.sesion): self.showMsjEstado("El Cliente fue dado de alta.") self.limpiarCampos() self.objectCreated.emit() else: cliente = ClienteModel.buscar( ClienteModel.dni, self.sesion, str(self.lineDni.text())).first() if cliente.getBaja(): cliente.setBaja(False) cliente.modificar(self.sesion) self.showMsjEstado("El Cliente fue dado de alta.") self.limpiarCampos() self.objectCreated.emit() else: QtGui.QMessageBox.critical(self, 'Error', 'El Cliente ya existe.', 'Aceptar') else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.")
def ajuste(self): """ Actualiza la cantidad del producto seleccionado para realizar el ajuste negativo de stock. :return: """ itemActual = self.tablaLoteProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): row = itemActual.row() codigo_barra = str(self.tablaLoteProducto.item(row, 0).text()) codigo_lote = str(self.tablaLoteProducto.item(row, 3).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto( self.sesion, codigo_barra, codigo_lote).first() resto = int(self.loteProducto.getCantidad()) - int( self.spinCantidad.value()) if resto < 0: self.showMsjEstado( "La cantidad ingresada no puede ser mayor a la cantidad del Producto" ) else: self.loteProducto.setCantidad(resto) self.loteProducto.modificar(self.sesion) self.showMsjEstado("La cantidad fue modificada") self.actualizar() else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado( "No se ha seleccionado un Lote/Producto de la tabla")
def crear(self): """ Da de alta una monodroga nueva y la almacena en la base de datos. :return: """ if ValidarDatos.validarCamposVacios(self.camposRequeridos): monodroga = MonodrogaModel(str(self.lineNombre.text()), str(self.cmbTipoVenta.currentText()), str(self.txtDescripcion.toPlainText())) if monodroga.guardar(self.sesion): QtGui.QMessageBox.information(self, 'Info', 'La Monodroga fue dada de alta.', 'Aceptar') self.limpiarCampos() self.objectCreated.emit() else: monodroga = MonodrogaModel.buscar(MonodrogaModel.nombre, self.sesion, str(self.lineNombre.text())).first() if monodroga.getBaja(): monodroga.setBaja(False) monodroga.modificar(self.sesion) QtGui.QMessageBox.information(self, 'Info', 'La Monodroga fue dada de alta.', 'Aceptar') self.limpiarCampos() self.objectCreated.emit() else: QtGui.QMessageBox.critical(self, 'Error', 'La Monodroga ya existe.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no fueron completados.', 'Aceptar')
def crear(self): """ Da de alta un producto nuevo y lo almacena en la base de datos. :return: """ itemActualMed = self.tablaMedicamento.currentItem() if itemActualMed == None: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado ningun Medicamento de la tabla.', 'Aceptar') else: row = itemActualMed.row() medicamento = str(self.tablaMedicamento.item(row, 0).text()) itemActualPres = self.tablaPresentacion.currentItem() if itemActualPres == None: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado ninguna Presentación de la tabla.', 'Aceptar') else: row = itemActualPres.row() presentacion = str(self.tablaPresentacion.item(row, 0).text()) if ValidarDatos.validarCamposVacios(self.camposRequeridos): if not self.productoExiste(presentacion, medicamento, str(self.lineCodigo_Barra.text())): if self.cantLoteProd: producto = ProductoModel(str(self.lineCodigo_Barra.text()), medicamento, presentacion, str(self.lineImporte.text())) if self.validarLote(producto): if producto.guardar(self.sesion): QtGui.QMessageBox.information(self, 'Info', 'El Producto fue dado de alta.', 'Aceptar') producto.setDescuento(self.sesion) if self.lote == None: self.lote = LoteModel(str(self.lineCod_Lote.text()), str(self.dateFechVenc.text())) if self.lote.guardar(self.sesion): QtGui.QMessageBox.information(self, 'Info', 'El Lote fue dado de alta.', 'Aceptar') else: QtGui.QMessageBox.critical(self, 'Error', 'El Lote ya existe.', 'Aceptar') loteProducto = LoteProductoModel(self.lote.getCodigo(), str(self.lineCodigo_Barra.text()), int(self.spinCantidad.value())) loteProducto.guardar(self.sesion) self.actualizar() self.objectCreated.emit() else: QtGui.QMessageBox.critical(self, 'Error', 'El Producto ya existe.', 'Aceptar') else: QtGui.QMessageBox.critical(self, 'Error', 'El Producto no puedo asociarse a un lote ' 'asociado a otro tipo de producto (distinto ' 'medicamento).', 'Aceptar') else: QtGui.QMessageBox.critical(self, 'Error', 'El Lote ya fue asignado a dos productos.', 'Aceptar') else: QtGui.QMessageBox.critical(self, 'Error', 'Ya existe un Producto con dicha Presentación ' 'y Medicamento.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no fueron completados.', 'Aceptar')
def crear(self): """ Da de alta una presentación nueva y la almacena en la base de datos. :return: """ if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.validarFracciones(): presentacion = PresentacionModel(str(self.lineTipo.text()), str(self.lineUnidad_Medida.text()), str(self.spinCantidad.value()), self.subPresentacion, self.superPresentacion) if presentacion.guardar(self.sesion): QtGui.QMessageBox.information(self, 'Info', 'La Presentación fue dada de alta.', 'Aceptar') if self.subPresentacion != None: self.setSuperPresentacion(str(self.lineTipo.text())) self.objectCreated.emit() self.actualizar() else: presentacion = PresentacionModel.buscar(PresentacionModel.tipo, self.sesion, str(self.lineTipo.text())).first() if presentacion.getBaja(): if presentacion.getCantidadFracciones() > 1: item = self.tablaFraccionable.currentItem() if item: self.subPresentacion = str(self.tablaFraccionable.item(item.row(), 0).text()) presentacion.setBaja(False) presentacion.setSubPresentacion(self.subPresentacion) presentacion.modificar(self.sesion) superPres = presentacion.getTipo() presentacion = PresentacionModel.buscar(PresentacionModel.tipo, self.sesion, self.subPresentacion).first() presentacion.setSuperPresentacion(superPres) presentacion.modificar(self.sesion) QtGui.QMessageBox.information(self, 'Info', 'La Presentación fue dada de alta.', 'Aceptar') self.limpiarCampos() self.objectCreated.emit() else: QtGui.QMessageBox.warning(self, 'Atención', 'Seleccione la Presentación en la cual puede' 'fraccionarse la Presentación actual.', 'Aceptar') else: presentacion.setBaja(False) presentacion.modificar(self.sesion) QtGui.QMessageBox.information(self, 'Info', 'La Presentación fue dada de alta.', 'Aceptar') self.limpiarCampos() self.objectCreated.emit() else: QtGui.QMessageBox.critical(self, 'Error', 'La Presentación ya existe.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'Seleccione la Presentación en la cual puede' 'fraccionarse la Presentación actual.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no fueron completados.', 'Aceptar')
def validadores(self, model): """ Setea los campo requeridos (obligatorios) y los campos no requeridos (opcionales). Para una ventana determinada. :param model: referencia a la ventana. :return: """ ##Esta parte analiza los campos requeridos para el cliente self.camposRequeridos = [ getattr(self, "line%s" % campo.title()) for campo in model.requeridos ] ValidarDatos.setValidador(self.camposRequeridos) ##Esta parte analiza los campos que son opcionales camposNoRequeridos = [ getattr(self, "line%s" % campo.title()) for campo in model.noRequeridos ] ValidarDatos.setValidador(camposNoRequeridos)
def crear(self): """ Da de alta un producto nuevo y lo almacena en la base de datos. :return: """ itemActualMed = self.tablaMedicamento.currentItem() if itemActualMed == None: self.showMsjEstado( "No se ha seleccionado ningun Medicamento de la tabla") else: row = itemActualMed.row() medicamento = str(self.tablaMedicamento.item(row, 0).text()) itemActualPres = self.tablaPresentacion.currentItem() if itemActualPres == None: self.showMsjEstado( "No se ha seleccionado ninguna Presentación de la tabla") else: row = itemActualPres.row() presentacion = str(self.tablaPresentacion.item(row, 0).text()) if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.cantLoteProd: producto = ProductoModel( str(self.lineCodigo_Barra.text()), medicamento, presentacion, str(self.lineImporte.text())) if producto.guardar(self.sesion): self.showMsjEstado("El Producto fue dado de alta.") if self.lote == None: self.lote = LoteModel( str(self.lineCod_Lote.text()), str(self.dateFechVenc.text())) if self.lote.guardar(self.sesion): self.showMsjEstado( "El Lote fue dado de alta.") else: self.showMsjEstado("El Lote ya existe.") loteProducto = LoteProductoModel( self.lote.getCodigo(), str(self.lineCodigo_Barra.text()), int(self.spinCantidad.value())) if loteProducto.guardar(self.sesion): self.showMsjEstado( "Lote/Producto fue dado de alta.") else: self.showMsjEstado("Lote/Producto ya existe.") self.actualizar() self.objectCreated.emit() else: self.showMsjEstado("El Producto ya existe.") else: self.showMsjEstado( "El Lote ya fue asignado a dos productos.") else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.")
def fraccionar(self): """ Fracciona un producto. Da de alta y almacena un nuevo producto en la base de datos de acuerdo al producto seleccionado para fraccionar, o si ya existe actualiza la cantidad. :return: """ itemActual = self.tablaProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.tablaFraccionable.rowCount() > 0: itemFracc = self.tablaFraccionable.currentItem() if itemFracc != None: row = itemActual.row() codigo_barra = str(self.tablaProducto.item(row, 0).text()) codigo_lote = str(self.tablaProducto.item(row, 3).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto(self.sesion, codigo_barra, codigo_lote).first() if int(self.spinCantidad.value()) > int(self.loteProducto.getCantidad()): QtGui.QMessageBox.warning(self, 'Atención', 'La cantidad ingresada no puede ser mayor a la ' 'cantidad del Producto.', 'Aceptar') else: resto = int(self.loteProducto.getCantidad()) - int(self.spinCantidad.value()) self.loteProducto.setCantidad(resto) self.loteProducto.modificar(self.sesion) cantidadFracciones = self.cantidadFracciones(codigo_barra, int(self.spinCantidad.value())) row = itemFracc.row() codigo_barra = str(self.tablaFraccionable.item(row, 0).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto(self.sesion, codigo_barra, codigo_lote).first() if self.loteProducto: suma = int(self.loteProducto.cantidad) + int(cantidadFracciones) self.loteProducto.setCantidad(suma) self.loteProducto.modificar(self.sesion) else: loteProducto = LoteProductoModel(codigo_lote, codigo_barra, int(cantidadFracciones)) if loteProducto.guardar(self.sesion): QtGui.QMessageBox.information(self, 'Info', 'Lote/Producto fue dado de alta.', 'Aceptar') else: QtGui.QMessageBox.critical(self, 'Error', 'Lote/Producto ya existe.', 'Aceptar') QtGui.QMessageBox.information(self, 'Info', 'La cantidad fue modificada.', 'Aceptar') self.actualizar() self.objectModified.emit() else: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado un Fraccionable de la tabla.', 'Aceptar') else: QtGui.QMessageBox.critical(self, 'Error', 'El Producto seleccionado no puede fraccionarse.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no fueron completados.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado un Producto de la tabla.', 'Aceptar')
def fraccionar(self): """ Fracciona un producto. Da de alta y almacena un nuevo producto en la base de datos de acuerdo al producto seleccionado para fraccionar, o si ya existe actualiza la cantidad. :return: """ itemActual = self.tablaProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.tablaFraccionable.rowCount() > 0: itemFracc = self.tablaFraccionable.currentItem() if itemFracc != None: row = itemActual.row() codigo_barra = str(self.tablaProducto.item(row, 0).text()) codigo_lote = str(self.tablaProducto.item(row, 3).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto(self.sesion, codigo_barra, codigo_lote).first() if int(self.spinCantidad.value()) > int(self.loteProducto.getCantidad()): self.showMsjEstado("La cantidad ingresada no puede ser mayor a la " "cantidad del Producto.") else: resto = int(self.loteProducto.getCantidad()) - int(self.spinCantidad.value()) self.loteProducto.setCantidad(resto) self.loteProducto.modificar(self.sesion) cantidadFracciones = self.cantidadFracciones(codigo_barra, int(self.spinCantidad.value())) row = itemFracc.row() codigo_barra = str(self.tablaFraccionable.item(row, 0).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto(self.sesion, codigo_barra, codigo_lote).first() if self.loteProducto: suma = int(self.loteProducto.cantidad) + int(cantidadFracciones) self.loteProducto.setCantidad(suma) self.loteProducto.modificar(self.sesion) else: loteProducto = LoteProductoModel(codigo_lote, codigo_barra, int(cantidadFracciones)) if loteProducto.guardar(self.sesion): self.showMsjEstado("Lote/Producto fue dado de alta.") else: self.showMsjEstado("Lote/Producto ya existe.") self.showMsjEstado("La cantidad fue modificada") self.actualizar() else: self.showMsjEstado("No se ha seleccionado un Fraccionable de la tabla.") else: self.showMsjEstado("El Producto seleccionado no puede fraccionarse.") else: self.showMsjEstado("Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado("No se ha seleccionado un Producto de la tabla")
def crear(self): """ Da de alta un producto nuevo y lo almacena en la base de datos. :return: """ itemActualMed = self.tablaMedicamento.currentItem() if itemActualMed == None: self.showMsjEstado("No se ha seleccionado ningun Medicamento de la tabla") else: row = itemActualMed.row() medicamento = str(self.tablaMedicamento.item(row, 0).text()) itemActualPres = self.tablaPresentacion.currentItem() if itemActualPres == None: self.showMsjEstado("No se ha seleccionado ninguna Presentación de la tabla") else: row = itemActualPres.row() presentacion = str(self.tablaPresentacion.item(row, 0).text()) if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.cantLoteProd: producto = ProductoModel(str(self.lineCodigo_Barra.text()), medicamento, presentacion, str(self.lineImporte.text())) if producto.guardar(self.sesion): self.showMsjEstado("El Producto fue dado de alta.") if self.lote == None: self.lote = LoteModel(str(self.lineCod_Lote.text()), str(self.dateFechVenc.text())) if self.lote.guardar(self.sesion): self.showMsjEstado("El Lote fue dado de alta.") else: self.showMsjEstado("El Lote ya existe.") loteProducto = LoteProductoModel(self.lote.getCodigo(), str(self.lineCodigo_Barra.text()), int(self.spinCantidad.value())) if loteProducto.guardar(self.sesion): self.showMsjEstado("Lote/Producto fue dado de alta.") else: self.showMsjEstado("Lote/Producto ya existe.") self.actualizar() self.objectCreated.emit() else: self.showMsjEstado("El Producto ya existe.") else: self.showMsjEstado("El Lote ya fue asignado a dos productos.") else: self.showMsjEstado("Hay datos obligatorios que no fueron completados.")
def validadores(self): """ Setea los validadores correspondientes a los campos de la ventana :return: """ camposRequeridos = [getattr(self,"lineRazon")] ValidarDatos.setValidador(camposRequeridos) camposRequeridos = [getattr(self,"lineCuit")] ValidarDatos.setValidador(camposRequeridos) camposRequeridos = [getattr(self,"lineNumeroFac")] ValidarDatos.setValidador(camposRequeridos)
def modificar(self): """ Modifica los datos del producto seleccionada. :return: """ itemActual = self.tablaProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios([self.lineImporte]): row = itemActual.row() codigo_barra = str(self.tablaProducto.item(row, 0).text()) self.producto = ProductoModel.buscarAlta(ProductoModel.codigo_barra, self.sesion, codigo_barra).first() self.producto.setImporte(str(self.lineImporte.text())) self.producto.modificar(self.sesion) QtGui.QMessageBox.information(self, 'Info', 'El Producto fue modificado.', 'Aceptar') self.objectModified.emit() self.actualizar() else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no fueron completados.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado un Producto de la tabla.', 'Aceptar')
def modificar(self): """ Modifica los datos del producto seleccionada. :return: """ itemActual = self.tablaProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios([self.lineImporte]): row = itemActual.row() codigo_barra = str(self.tablaProducto.item(row, 0).text()) self.producto = ProductoModel.buscarAlta(ProductoModel.codigo_barra, self.sesion, codigo_barra).first() self.producto.setImporte(str(self.lineImporte.text())) self.producto.modificar(self.sesion) self.showMsjEstado("El Producto fue modificado") self.objectModified.emit() self.actualizar() else: self.showMsjEstado("Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado("No se ha seleccionado un Producto de la tabla")
def validadores(self): """ Setea los validadores correspondientes para los campos de la ventana :return: """ ##Esta parte analiza los campos requeridos para el cliente requeridos = ["nombre", "apellido", "dni"] camposRequeridos = [ getattr(self, "line%s" % campo.title()) for campo in requeridos ] ValidarDatos.setValidador(camposRequeridos) camposRequeridos = [getattr(self,"lineMonodroga")] ValidarDatos.setValidador(camposRequeridos) camposRequeridos = [getattr(self,"lineMedicamento")] ValidarDatos.setValidador(camposRequeridos)
def modificar(self): """ Modifica los datos del medicamento seleccionado. :return: """ itemActual = self.tablaMedicamento.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): row = itemActual.row() nombre_comercial = str(self.tablaMedicamento.item(row, 0).text()) self.medicamento = MedicamentoModel.buscarAlta(MedicamentoModel.nombre_comercial, self.sesion, nombre_comercial).first() self.medicamento.setCantidadMonodroga(str(self.spinCantidad.value())) self.medicamento.setIdMonodroga(self.monodroga) self.medicamento.modificar(self.sesion) self.showMsjEstado("El Medicamento fue modificado") self.objectModified.emit() self.actualizar() else: self.showMsjEstado("Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado("No se ha seleccionado un Medicamento de la tabla")
def modificar(self): """ Modifica los datos del producto seleccionada. :return: """ itemActual = self.tablaProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios([self.lineImporte]): row = itemActual.row() codigo_barra = str(self.tablaProducto.item(row, 0).text()) self.producto = ProductoModel.buscarAlta( ProductoModel.codigo_barra, self.sesion, codigo_barra).first() self.producto.setImporte(str(self.lineImporte.text())) self.producto.modificar(self.sesion) self.showMsjEstado("El Producto fue modificado") self.objectModified.emit() self.actualizar() else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado("No se ha seleccionado un Producto de la tabla")
def modificar(self): """ Modifica los datos de la monodroga seleccionada. :return: """ itemActual = self.tablaMonodroga.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): row = itemActual.row() nombre = str(self.tablaMonodroga.item(row, 0).text()) self.monodroga = MonodrogaModel.buscarAlta(MonodrogaModel.nombre, self.sesion, nombre).first() self.monodroga.setTipoVenta(str(self.cmbTipoVenta.currentText())) self.monodroga.setDescripcion(str(self.txtDescripcion.toPlainText())) self.monodroga.modificar(self.sesion) QtGui.QMessageBox.information(self, 'Info', 'La Monodroga fue modificada.', 'Aceptar') self.objectModified.emit() self.actualizar() else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no fueron completados.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado una Monodroga de la tabla.', 'Aceptar')
def modificar(self): """ Modifica los datos de la presentación seleccionada. :return: """ presActual = self.tablaPresentacion.currentItem() if presActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.validarFracciones(): row = presActual.row() tipo = str(self.tablaPresentacion.item(row, 0).text()) self.presentacion = PresentacionModel.buscarAlta( PresentacionModel.tipo, self.sesion, tipo).first() self.presentacion.setUnidadMedida( str(self.lineUnidad_Medida.text())) self.presentacion.setCantidadFracciones( str(self.spinCantidad.value())) self.presentacion.setSubPresentacion(self.subPresentacion) if self.subPresentacion != None: self.setSuperPresentacion(str(self.lineTipo.text())) if self.subPresentacionOld != None: self.subPresentacion = self.subPresentacionOld self.setSuperPresentacion(None) self.presentacion.modificar(self.sesion) self.showMsjEstado("La Presentación fue modificada") self.objectModified.emit() self.actualizar() else: self.showMsjEstado( "Seleccione la Presentación en la cual puede fraccionarse la Presentación actual." ) else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado( "No se ha seleccionado una Presentación de la tabla")
def crear(self): """ Da de alta un lote nuevo y lo almacena en la base de datos. :return: """ if self.producto == None: self.showMsjEstado("No se ha seleccionado ningun Producto de la tabla") else: if ValidarDatos.validarCamposVacios(self.camposRequeridos): lote = LoteModel(str(self.lineCodigo.text()), str(self.dateFechVenc.text())) if lote.guardar(self.sesion): self.showMsjEstado("El Lote fue dado de alta.") loteProducto = LoteProductoModel(lote.getCodigo(), self.producto, int(self.spinCantidad.value())) if loteProducto.guardar(self.sesion): self.showMsjEstado("Lote/Producto fue dado de alta.") else: self.showMsjEstado("Lote/Producto ya existe.") self.limpiarCampos() self.objectCreated.emit() else: QtGui.QMessageBox.critical(self, 'Error', 'El Lote ya existe.', 'Aceptar') else: self.showMsjEstado("Hay datos obligatorios que no fueron completados.")
def modificar(self): """ Modifica los datos del medicamento seleccionado. :return: """ itemActual = self.tablaMedicamento.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): row = itemActual.row() nombre_comercial = str(self.tablaMedicamento.item(row, 0).text()) self.medicamento = MedicamentoModel.buscarAlta(MedicamentoModel.nombre_comercial, self.sesion, nombre_comercial).first() self.medicamento.setCantidadMonodroga(str(self.spinCantidad.value())) self.medicamento.setIdMonodroga(self.monodroga) self.medicamento.modificar(self.sesion) QtGui.QMessageBox.information(self, 'Info', 'El Medicamento fue modificado.', 'Aceptar') self.objectModified.emit() self.actualizar() else: QtGui.QMessageBox.warning(self, 'Atención', 'Hay datos obligatorios que no fueron completados.', 'Aceptar') else: QtGui.QMessageBox.warning(self, 'Atención', 'No se ha seleccionado un Medicamento de la tabla.', 'Aceptar')
def validadores(self): camposRequeridos = [getattr(self,"lineNumero")] ValidarDatos.setValidador(camposRequeridos)
def fraccionar(self): """ Fracciona un producto. Da de alta y almacena un nuevo producto en la base de datos de acuerdo al producto seleccionado para fraccionar, o si ya existe actualiza la cantidad. :return: """ itemActual = self.tablaProducto.currentItem() if itemActual != None: if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.tablaFraccionable.rowCount() > 0: itemFracc = self.tablaFraccionable.currentItem() if itemFracc != None: row = itemActual.row() codigo_barra = str( self.tablaProducto.item(row, 0).text()) codigo_lote = str( self.tablaProducto.item(row, 3).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto( self.sesion, codigo_barra, codigo_lote).first() if int(self.spinCantidad.value()) > int( self.loteProducto.getCantidad()): self.showMsjEstado( "La cantidad ingresada no puede ser mayor a la " "cantidad del Producto.") else: resto = int(self.loteProducto.getCantidad()) - int( self.spinCantidad.value()) self.loteProducto.setCantidad(resto) self.loteProducto.modificar(self.sesion) cantidadFracciones = self.cantidadFracciones( codigo_barra, int(self.spinCantidad.value())) row = itemFracc.row() codigo_barra = str( self.tablaFraccionable.item(row, 0).text()) self.loteProducto = LoteProductoModel.buscarLoteProducto( self.sesion, codigo_barra, codigo_lote).first() if self.loteProducto: suma = int(self.loteProducto.cantidad) + int( cantidadFracciones) self.loteProducto.setCantidad(suma) self.loteProducto.modificar(self.sesion) else: loteProducto = LoteProductoModel( codigo_lote, codigo_barra, int(cantidadFracciones)) if loteProducto.guardar(self.sesion): self.showMsjEstado( "Lote/Producto fue dado de alta.") else: self.showMsjEstado( "Lote/Producto ya existe.") self.showMsjEstado("La cantidad fue modificada") self.actualizar() else: self.showMsjEstado( "No se ha seleccionado un Fraccionable de la tabla." ) else: self.showMsjEstado( "El Producto seleccionado no puede fraccionarse.") else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.") else: self.showMsjEstado("No se ha seleccionado un Producto de la tabla")
def crear(self): """ Da de alta una presentación nueva y la almacena en la base de datos. :return: """ if ValidarDatos.validarCamposVacios(self.camposRequeridos): if self.validarFracciones(): presentacion = PresentacionModel( str(self.lineTipo.text()), str(self.lineUnidad_Medida.text()), str(self.spinCantidad.value()), self.subPresentacion, self.superPresentacion) if presentacion.guardar(self.sesion): self.showMsjEstado("La Presentación fue dada de alta.") if self.subPresentacion != None: self.setSuperPresentacion(str(self.lineTipo.text())) self.objectCreated.emit() self.actualizar() else: presentacion = PresentacionModel.buscar( PresentacionModel.tipo, self.sesion, str(self.lineTipo.text())).first() if presentacion.getBaja(): if presentacion.getCantidadFracciones() > 1: item = self.tablaFraccionable.currentItem() if item: self.subPresentacion = str( self.tablaFraccionable.item(item.row(), 0).text()) presentacion.setBaja(False) presentacion.setSubPresentacion( self.subPresentacion) presentacion.modificar(self.sesion) superPres = presentacion.getTipo() presentacion = PresentacionModel.buscar( PresentacionModel.tipo, self.sesion, self.subPresentacion).first() presentacion.setSuperPresentacion(superPres) presentacion.modificar(self.sesion) self.showMsjEstado( "La Presentación fue dada de alta.") self.limpiarCampos() self.objectCreated.emit() else: self.showMsjEstado( "Seleccione la Presentación en la cual puede " "fraccionarse la Presentación actual.") else: presentacion.setBaja(False) presentacion.modificar(self.sesion) self.showMsjEstado( "La Presentación fue dada de alta.") self.limpiarCampos() self.objectCreated.emit() else: QtGui.QMessageBox.critical( self, 'Error', 'La Presentación ya existe.', 'Aceptar') else: self.showMsjEstado( "Seleccione la Presentación en la cual puede fraccionarse la Presentación actual." ) else: self.showMsjEstado( "Hay datos obligatorios que no fueron completados.")