def updateCantidadMaterial(): if request.method == 'POST': try: id_ = request.form['id'] cantidad_ = Validator.validarDecimal(request.form['cantidad']) alto_ = Validator.validarDecimal(request.form['alto']) ancho_ = Validator.validarDecimal(request.form['ancho']) materia = db.session.query(material).filter(material.id == id_).first() if materia.cantidad >= cantidad_ and materia.alto >= alto_ and materia.ancho >= ancho_: materia.cantidad = materia.cantidad - cantidad_ materia.alto = materia.alto - alto_ materia.ancho = materia.ancho - ancho_ db.session.commit() result = {"id": materia.id} return jsonify(result) else: result = {"id": "El material con id: " + str(materia.id) + " no es suficiente"} return jsonify(result) except Exception as inst: message = {"result":"error"} logging.error(str(type(inst))+'\n Tipo de error: '+str(inst)+ '['+str(datetime.now())+']') return render_template('error.html')
def updateMaterial(): if request.method == 'POST': try: id_ = request.form['id'] nombre_ = Validator.sanitizarNombre(request.form['nombre']) tipo_ = Validator.sanitizarNombre(request.form['tipo']) descripcion_ = Validator.sanitizarNombre(request.form['descripcion']) cantidad_ = Validator.validarDecimal(request.form['cantidad']) alto_ = Validator.validarDecimal(request.form['alto']) ancho_ = Validator.validarDecimal(request.form['ancho']) grosor_ = Validator.validarDecimal(request.form['grosor']) color_ = Validator.sanitizarNombre(request.form['color']) materia = db.session.query(material).filter(material.id == id_).first() materia.nombre = nombre_ materia.tipo = tipo_ materia.descripcion = descripcion_ materia.cantidad = cantidad_ materia.alto = alto_ materia.ancho = ancho_ materia.grosor = grosor_ materia.color = color_ db.session.commit() result = {"id": materia.id} return jsonify(result) except Exception as inst: message = {"result":"error"} logging.error(str(type(inst))+'\n Tipo de error: '+str(inst)+ '['+str(datetime.now())+']') return render_template('error.html')
def addMaterial(): if request.method == 'POST': try: nombre_ = Validator.sanitizarNombre(request.form['nombre']) tipo_ = Validator.sanitizarNombre(request.form['tipo']) descripcion_ = Validator.sanitizarNombre(request.form['descripcion']) cantidad_ = Validator.validarDecimal(request.form['cantidad']) alto_ = Validator.validarDecimal(request.form['alto']) ancho_ = Validator.validarDecimal(request.form['ancho']) grosor_ = Validator.validarDecimal(request.form['grosor']) color_ = Validator.sanitizarNombre(request.form['color']) mat = material(tipo = tipo_, nombre = nombre_, descripcion = descripcion_, cantidad = cantidad_, alto = alto_, ancho = ancho_, grosor = grosor_, color = color_, estatus = "Disponible") db.session.add(mat) db.session.commit() result = {"id": mat.id} return jsonify(result) except Exception as inst: message = {"result":"error"} logging.error(str(type(inst))+'\n Tipo de error: '+str(inst)+ '['+str(datetime.now())+']') return render_template('error.html')
def addDetalleProductosMaterial(): if request.method == 'POST': try: alto_ = Validator.validarDecimal(request.form['alto']) ancho_ = Validator.validarDecimal(request.form['ancho']) cantidad_ = Validator.validarDecimal(request.form['cantidad']) idProducto_ = request.form['idProducto'] idMaterial_ = request.form['idMaterial'] dpm = detalle_producto_material(alto=alto_, ancho=ancho_, cantidad=cantidad_, idProducto=idProducto_, idMaterial=idMaterial_) db.session.add(dpm) db.session.commit() result = {"id": dpm.id} return jsonify(result) except Exception as inst: message = {"result": "error"} logging.error( str(type(inst)) + '\n Tipo de error: ' + str(inst) + '[' + str(datetime.now()) + ']') return render_template('error.html')
def addOrdenCompra(): try: if request.method=='POST': total_=Validator.validarDecimal(request.form['total']) proveedor_=int(request.form['idProveedor']) user_=int(request.form['idUser']) estatus_='Activa' now = datetime.now() fecha=now.strftime('%Y-%m-%d') orden=orden_compra(fecha_orden=fecha, total=total_, estatus=estatus_, proveedor=proveedor_, user=user_ ) db.session.add(orden) db.session.commit() materiales=json.loads(request.form['materiales_orden']) #print(materiales) for materia in materiales: idMaterial=materia['idMaterial'] cant=int(materia['cantidad']) detalle=detalle_orden_compra( cantidad=cant, subtotal=Validator.validarDecimal(materia['subtotal']), material=idMaterial, idOrden=orden.id ) db.session.add(detalle) db.session.commit() mat=db.session.query(material).filter(material.id==idMaterial).first() mat.cantidad=int(mat.cantidad)+int(cant) db.session.commit() result = {"id":orden.id} return jsonify(result) except Exception as inst: message = {"result":"error"} logging.error(str(type(inst))+'\n Tipo de error: '+str(inst)+ '['+str(datetime.now())+']') return make_response(jsonify(message), 400)
def updateSobrante(): if request.method == 'POST': try: id_ = request.form['id'] comentario_ = Validator.sanitizarNombre(request.form['comentario']) alto_ = Validator.validarDecimal(request.form['alto']) ancho_ = Validator.validarDecimal(request.form['ancho']) sobrante = db.session.query(sobrante_material).filter(sobrante_material.id == id_).first() sobrante.comentario = comentario_ sobrante.alto = alto_ sobrante.ancho = ancho_ db.session.commit() result = {"id": sobrante.id} return jsonify(result) except Exception as inst: message = {"result":"error"} logging.error(str(type(inst))+'\n Tipo de error: '+str(inst)+ '['+str(datetime.now())+']') return render_template('error.html')
def addSobrante(): if request.method == 'POST': try: alto_ = Validator.validarDecimal(request.form['alto']) ancho_ = Validator.validarDecimal(request.form['ancho']) comentario_ = Validator.sanitizarNombre(request.form['comentario']) id_material = request.form['id_material'] sobrante = sobrante_material(alto = alto_, ancho = ancho_, comentario = comentario_, estatus = "Disponible", material = id_material) db.session.add(sobrante) db.session.commit() result = {"id": sobrante.id} return jsonify(result) except Exception as inst: message = {"result":"error"} logging.error(str(type(inst))+'\n Tipo de error: '+str(inst)+ '['+str(datetime.now())+']') return render_template('error.html')
def addProducto(): if request.method == 'POST': try: modelo_ = Validator.sanitizarNombre(request.form['modelo']) descripcion_ = Validator.sanitizarNombre( request.form['descripcion']) img_ = request.file['img'] filename = img_.filename if filename != None and filename != "": img_.save(os.path.join(FOLDER, filename)) peso_ = Validator.validarDecimal(request.form['peso']) color_ = Validator.sanitizarNombre(request.form['color']) alto_ = Validator.validarDecimal(request.form['alto']) ancho_ = Validator.validarDecimal(request.form['ancho']) largo_ = Validator.validarDecimal(request.form['largo']) cantidad_ = Validator.validarDecimal(request.form['cantidad']) cantidad_minima_ = Validator.validarDecimal( request.form['cantidad_minima']) precio_ = Validator.validarDecimal(request.form['precio']) idCategoria_ = request.form['idCategoria'] prod = producto(modelo=modelo_, descripcion=descripcion_, img=filename, peso=peso_, color=color_, alto=alto_, ancho=ancho_, largo=largo_, cantidad=cantidad_, cantidad_minima=cantidad_minima_, precio=precio_, estatus="Activo", idCategoria=idCategoria_) db.session.add(prod) db.session.commit() result = {"id": prod.id} return jsonify(result) except Exception as inst: message = {"result": "error"} logging.error( str(type(inst)) + '\n Tipo de error: ' + str(inst) + '[' + str(datetime.now()) + ']') return render_template('error.html')
def updateProducto(): if request.method == 'POST': try: idProducto_ = request.form['idProducto'] modelo_ = Validator.sanitizarNombre(request.form['modelo']) descripcion_ = Validator.sanitizarNombre( request.form['descripcion']) img_ = request.form['img'] filename = img_.filename if filename != None and filename != "": img_.save(os.path.join(FOLDER, filename)) peso_ = Validator.validarDecimal(request.form['peso']) color_ = Validator.sanitizarNombre(request.form['color']) alto_ = Validator.validarDecimal(request.form['alto']) ancho_ = Validator.validarDecimal(request.form['ancho']) largo_ = Validator.validarDecimal(request.form['largo']) cantidad_minima_ = Validator.validarDecimal( request.form['cantidad_minima']) precio_ = Validator.validarDecimal(request.form['precio']) idCategoria_ = request.form['idCategoria'] p = db.session.query(producto).filter( producto.id == idProducto_).first() c = db.session.query(categoria).filter( categoria.id == idCategoria_).first() p.modelo = modelo_ p.descripcion = descripcion_ p.img = filename p.peso = peso_ p.color = color_ p.alto = alto_ p.ancho = ancho_ p.largo = largo_ p.cantidad_minima = cantidad_minima_ p.precio = precio_ p.idCategoria = c.id p.categoria = c db.session.commit() db.session.commit() result = {"id": p.id} return jsonify(result) except Exception as inst: message = {"result": "error"} logging.error( str(type(inst)) + '\n Tipo de error: ' + str(inst) + '[' + str(datetime.now()) + ']') return render_template('error.html')
def updateStockProducto(): if request.method == 'POST': try: idProducto_ = request.form['idProducto'] cantidad_ = Validator.validarDecimal(request.form['cantidad']) p = db.session.query(producto).filter( producto.id == idProducto_).first() p.cantidad = p.cantidad + float(cantidad_) db.session.commit() z = 0 while z < float(cantidad_): #Consultar detalles producto materil del producto dtmp = db.session.query(detalle_producto_material).filter( detalle_producto_material.idProducto == idProducto_).all() print(dtmp) #Consultamos el material de ese detalle for i in dtmp: #Si es madera, se busca en los sobrantes if i.alto != 0 and i.ancho != 0: #Si cumple la condicion es madera #Buscar en los sobrantes s = db.session.query(sobrante_material).filter( sobrante_material.alto >= float(i.alto), sobrante_material.ancho >= float(i.ancho), sobrante_material.estatus == "Disponible").first() #Si se encuentra, se descuenta if s != None: s.alto = s.alto - float(i.alto) s.ancho = s.ancho - float(i.ancho) if s.alto <= .5 and s.ancho <= .5: s.estatus = "Inutilizable" db.session.commit() else: #Sino, busca la madera en material y la descuenta m = db.session.query(material).filter( material.id == i.idMaterial).first() #Descuento de material if m.alto >= float(i.alto) and m.ancho >= float( i.ancho) and m.alto != 0 and m.ancho != 0: m.alto = m.alto - float(i.alto) m.ancho = m.ancho - float(i.ancho) db.session.commit() result = {"id": p.id} else: result = { "error": "El material con id: " + str(m.id) + " no es suficiente" } else: #Sino cumple la condicion de que es madera, descuenta la cantidad de material m = db.session.query(material).filter( material.id == i.idMaterial).first() #Descuento de material if m.cantidad >= float(i.cantidad) and m.cantidad != 0: m.cantidad = m.cantidad - float(i.cantidad) db.session.commit() result = {"id": p.id} else: result = { "error": "El material con id: " + str(m.id) + " no es suficiente" } z += 1 return jsonify(result) except Exception as inst: message = {"result": "error"} logging.error( str(type(inst)) + '\n Tipo de error: ' + str(inst) + '[' + str(datetime.now()) + ']') return render_template('error.html')