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