Exemple #1
0
 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')
Exemple #3
0
 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.")
Exemple #4
0
 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')
Exemple #6
0
 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")
Exemple #7
0
 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.")
Exemple #8
0
 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.")
Exemple #9
0
 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")