Skip to content

Instantly share code, notes, and snippets.

@moisespsena
Created March 9, 2022 13:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moisespsena/21bd9319f9541c8be32d44ca0c19f36a to your computer and use it in GitHub Desktop.
Save moisespsena/21bd9319f9541c8be32d44ca0c19f36a to your computer and use it in GitHub Desktop.
Cálculo de estoque para mistos, com base no valor total e percentuais do item de referência
def calc(valor_pago, qnts_pcts):
qnt_a = qnts_pcts[0][0]
z = qnt_a + sum([v[0] * v[1] for v in qnts_pcts[1:]])
v_a = valor_pago / z
ret = [v_a] + [v_a * v[1] for v in qnts_pcts[1:]]
return ret
# quantidades e percentuais
qnts_pcts = [
# qnt, pct
[5, 1], # primeiro valor, o pct é sempre 1
[3, .8], # demais, é o percentual em relação ao primeiro
[2, .7]
]
valor_pago = 100
unitarios = calc(valor_pago, qnts_pcts)
print("unitarios: ", ", ".join([chr(ord('A') + i) + ": " + str(unitarios[i]) for i in range(len(qnts_pcts))]))
print("totais: ", ", ".join([chr(ord('A') + i) + ": " + str(v * qnts_pcts[i][0]) for i, v in enumerate(unitarios)]))
print("total: ", sum([v * qnts_pcts[i][0] for i, v in enumerate(unitarios)]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment