def imprime_desglose(self): desglose = [] retirar = 0 for ls in self.lista_conteo: if self.efectivo - retirar > 0.1: total_linea = ls["total"] subtotal = retirar + total_linea if subtotal <= self.efectivo: retirar += total_linea desglose.append(ls) else: subtotal = self.efectivo - retirar tipo = parse_float(ls["tipo"]) num = int(subtotal / tipo) if num > 0: total_linea = num * tipo retirar += total_linea desglose.append({ "can": num, "tipo": tipo, "total": total_linea, "texto_tipo": ls["texto_tipo"] }) else: break self.tpv.hide_spin() printDoc = DocPrint() printDoc.printDesglose("caja", self.fecha, desglose)
def _getPrecioMod(self, mod): total = parse_float(mod.get('precio')) num_mod =len(mod.get('modificadores')) if "modificadores" in mod else 0 for i in range(num_mod): aux = mod['modificadores'][i] total = total + self._getPrecioMod(aux) return total
def add_conteo(self, _can, _tipo): can = _can.text tipo = parse_float(_tipo.text) _can.text = _tipo.text = "" linea = LineaArqueo(borrar=self.borrar_conteo) texto_tipo = "Monedas" if tipo < 5 else "Billetes" linea.text = u"{0: >5} {1} de {2}".format(can, texto_tipo, tipo) linea.total = parse_float(can) * tipo linea.tag = { "can": can, "tipo": tipo, "texto_tipo": texto_tipo, "total": linea.total } self.efectivo += linea.total self.lista_conteo.append(linea.tag) self.conteo.add_linea(linea)
def getPrecio(self): total = parse_float(self.obj.get('precio')) num_mod =len(self.obj.get('modificadores')) if "modificadores" in self.obj else 0 for i in range(num_mod): mod = self.obj['modificadores'][i] total = total + self._getPrecioMod(mod) if self.promocion is not None: total *= float(self.promocion) return total
def add_gasto(self, _des, _gasto): des = _des.text gasto = _gasto.text _des.text = _gasto.text = "" linea = LineaArqueo(borrar=self.borrar_gasto) linea.text = u"{0} ".format(des) linea.total = parse_float(gasto) linea.tag = {"des": des, "gasto": gasto} self.total_gastos += linea.total self.lista_gastos.append(linea.tag) self.gastos.add_linea(linea)
def add_ingreso(self, num_pd, importe, modo_pago): _num_pd = num_pd.text _importe = importe.text linea = LineaArqueo(borrar=self.borrar_ingreso) _modo_pago = "Efectivo" if not modo_pago.active else "Tarjeta" linea.text = u"Peddos {0} modo pago {1} ".format(_num_pd, _modo_pago) linea.total = parse_float(_importe) linea.tag = { "numero_pedido": _num_pd, "importe": _importe, "modo_pago": _modo_pago, "estado": "arqueado" } if _modo_pago == "Tarjeta": self.tarjeta += linea.total self.caja_dia += linea.total num_pd.text = importe.text = "" modo_pago.active = False self.lista_ingresos.append(linea.tag) self.ingresos.add_linea(linea)
def run_arqueo(self): arqueo = Arqueos() if self.cambio == "": self.cambio = 300.00 self.efectivo = self.efectivo - parse_float(self.cambio) descuadre = (self.total_gastos + self.efectivo + self.tarjeta) - self.caja_dia self.lista_conteo = sorted(self.lista_conteo, key=lambda k: k["tipo"], reverse=True) arqueo.save(caja_dia=self.caja_dia, efectivo=self.efectivo, cambio=self.cambio, total_gastos=self.total_gastos, tarjeta=self.tarjeta, descuadre=descuadre) for tk in self.lista_ticket: tk.estado = "arqueado" arqueo.pedidos.add(tk) for conteo in self.lista_conteo: c = Conteo(**conteo) c.save() arqueo.conteo.add(c) for gastos in self.lista_gastos: g = Gastos(**gastos) g.save() arqueo.gastos.add(g) for ingreso in self.lista_ingresos: ing = PedidosExtra(**ingreso) ing.save() arqueo.pedidosextra.add(ing) self.fecha = arqueo.fecha self.imprime_desglose()