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