Exemplo n.º 1
0
    def validadores(self):

        camposRequeridos = [getattr(self,"lineMonodroga")]
        ValidarDatos.setValidador(camposRequeridos)

        camposRequeridos = [getattr(self,"lineMedicamento")]
        ValidarDatos.setValidador(camposRequeridos)
Exemplo n.º 2
0
 def validadores(self):
     """
         Setea los validadores para los campos
         de la ventana
     :return:
     """
     camposRequeridos = [getattr(self,"lineNumero")]
     ValidarDatos.setValidador(camposRequeridos)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 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")
Exemplo n.º 8
0
 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")
Exemplo n.º 9
0
 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")
Exemplo n.º 10
0
 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")
Exemplo n.º 11
0
 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.")
Exemplo n.º 12
0
 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')
Exemplo n.º 13
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.")
Exemplo n.º 14
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')
Exemplo n.º 15
0
 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')
Exemplo n.º 16
0
 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")
Exemplo n.º 17
0
 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')
Exemplo n.º 18
0
 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.")
Exemplo n.º 19
0
 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")
Exemplo n.º 20
0
 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')
Exemplo n.º 21
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:
         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')
Exemplo n.º 22
0
 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')
Exemplo n.º 23
0
 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)
Exemplo n.º 24
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.")
Exemplo n.º 25
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()):
                         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')
Exemplo n.º 26
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")
Exemplo n.º 27
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.")
Exemplo n.º 28
0
    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)
Exemplo n.º 29
0
 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')
Exemplo n.º 30
0
 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")
Exemplo n.º 31
0
    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)
Exemplo n.º 32
0
 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")
Exemplo n.º 33
0
 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")
Exemplo n.º 34
0
 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')
Exemplo n.º 35
0
 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")
Exemplo n.º 36
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.")
Exemplo n.º 37
0
 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')
Exemplo n.º 38
0
 def validadores(self):
     camposRequeridos = [getattr(self,"lineNumero")]
     ValidarDatos.setValidador(camposRequeridos)
Exemplo n.º 39
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")
Exemplo n.º 40
0
 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.")