Example #1
0
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')     
Example #2
0
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')
Example #3
0
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)
Example #6
0
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')
Example #7
0
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')