Example #1
0
    def test_insert_order(self):


        user = User()
        user.name = 'Yi Chun'
        user.email = '*****@*****.**'
        user.user_type = 'Visita'
        user.Save()

        contact = Contact()
        contact.user_id = user.id
        contact.name = 'Casa'
        contact.telephone = '123456'
        contact.email = '*****@*****.**'
        contact.user_id = user.id
        contact.address = 'some address'
        contact.lastname = 'lin'
        contact.city = 1
        contact.zip_code = '734628347632'
        contact.additional_info = 'skjahjdahk'
        contact.town = 'sadjahsdkjah'
        contact.rut = '35172617356'
        contact.Save()

        # create a new user instance
        order = Order()
        order.date = datetime.now(pytz.timezone('Chile/Continental')).isoformat()
        order.type = Order.TIPO_WEB
        order.subtotal = 20000
        order.shipping = 2000
        order.tax = 0
        order.total = 22000
        order.items_quantity = 1
        order.products_quantity = 1
        order.user_id = user.id
        order.billing_id = contact.id
        order.shipping_id = contact.id
        order.payment_type = 1
        order.voucher = "image.png"
        order.state = Order.ESTADO_PENDIENTE
        res = order.Save()
        print order.date
        self.assertTrue('success' in res)
Example #2
0
    def post(self):

        name = self.get_argument("name", "")
        lastname = self.get_argument("lastname", "")
        email = self.get_argument("email", "")
        rut = self.get_argument("rut", "")
        address = self.get_argument("address", "")
        town = self.get_argument("town", "")
        city = self.get_argument("city_id", "")
        zip_code = self.get_argument("zip_code", "")
        additional_info = self.get_argument("additional_info", "")
        telephone = self.get_argument("telephone", "")

        if self.current_user:
            user_id = self.current_user["id"]
            contacto = Contact()

            contacto.name = name
            contacto.lastname = lastname
            contacto.email = email
            contacto.rut = rut
            contacto.address = address
            contacto.town = town
            contacto.city = city
            contacto.zip_code = zip_code
            contacto.additional_info = additional_info
            contacto.telephone = telephone
            contacto.user_id = user_id

            response = contacto.Save()

            if "success" in response:
                id = response["success"]

                res_contact = contacto.InitById(id)

                if "success" in res_contact:
                    datos = res_contact["success"]

                    self.write(
                        self.render_string("profile/nuevafila.html",
                                           id=id,
                                           contacto=datos))
Example #3
0
    def post(self):

        if self.current_user:

            costo_despacho = int(self.get_argument("shipping_price", 0))
            user_id = self.current_user["id"]
            nombre = self.get_argument("name", self.current_user["name"])
            apellido = self.get_argument("lastname",
                                         self.current_user["lastname"])
            email = self.get_argument("email", self.current_user["email"])
            direccion = self.get_argument("address", "")
            ciudad = self.get_argument("city_id", "")
            codigo_postal = self.get_argument("zip_code", "")
            informacion_adicional = self.get_argument("additional_info", "")
            telefono = self.get_argument("telephone", "")
            id_contacto = self.get_argument("contact_id", "")
            misma_direccion = self.get_argument("same_address", "")
            comuna = self.get_argument("town", "")
            rut = self.get_argument("rut", "")
            shipping_type = self.get_argument("shipping_type", 1)
            post_office_id = self.get_argument("post_office_id", "")

            cart = Cart()
            cart.user_id = user_id

            lista = cart.GetCartByUserId()

            if len(lista) <= 0:
                self.render("beauty_error.html",
                            message="Carro est&aacute; vac&iacute;o")

            if misma_direccion != "on":

                contact = Contact()

                contact.name = nombre
                contact.lastname = apellido
                contact.telephone = telefono
                contact.email = email
                contact.address = direccion
                contact.city = ciudad
                contact.zip_code = codigo_postal
                contact.user_id = user_id
                contact.additional_info = informacion_adicional
                contact.town = comuna
                contact.rut = rut

                operacion = ""

                if id_contacto != "":
                    contact.id = id_contacto
                    response_obj = contact.Edit()
                    operacion = "editar"
                else:
                    response_obj = contact.Save()
                    operacion = "guardar"

                if "error" in response_obj:
                    self.render("beauty_error.html",
                                message="Error al {} contacto {}".format(
                                    operacion, response_obj["error"]))
                else:
                    suma = 0

                    for l in lista:
                        c = Cart()
                        c.InitById(l["id"])
                        c.billing_id = contact.id
                        c.billing_info = contact.additional_info
                        c.Edit()
                        suma += l["subtotal"]

                    # self.render("store/checkout-2.html",contactos=contactos,data=lista,suma=suma,selected_address=direccion)
                    if self.current_user['type_id'] == User().getUserTypeID(
                            UserType.EMPRESA):
                        self.render("wholesaler/checkout-4.html",
                                    data=lista,
                                    suma=suma,
                                    iva=iva)
                    else:
                        self.render("store/checkout-3.html",
                                    data=lista,
                                    suma=suma,
                                    costo_despacho=costo_despacho,
                                    shipping_type=shipping_type,
                                    post_office_id=post_office_id)
            else:

                contact = Contact()
                cart = Cart()
                cart.user_id = user_id

                lista = cart.GetCartByUserId()

                billing_info = ''
                suma = 0

                try:
                    billing_info = contact.getAdditionalInfo(
                        c.shipping_id)['success']
                except:
                    pass

                for l in lista:
                    c = Cart()
                    c.InitById(l["id"])
                    c.billing_info = billing_info
                    c.billing_id = c.shipping_id
                    c.Edit()
                    suma += l["subtotal"]

                if self.current_user['type_id'] == User().getUserTypeID(
                        UserType.EMPRESA):
                    self.render("wholesaler/checkout-4.html",
                                data=lista,
                                suma=suma,
                                iva=iva)
                else:
                    self.render("store/checkout-3.html",
                                data=lista,
                                suma=suma,
                                costo_despacho=costo_despacho,
                                shipping_type=shipping_type,
                                post_office_id=post_office_id)

        else:

            self.redirect("/auth/login")
Example #4
0
    def get(self):

        if self.current_user:
            user_id = self.current_user["id"]
            nombre = self.get_argument("name", self.current_user["name"])
            apellido = self.get_argument("lastname",
                                         self.current_user["lastname"])
            email = self.get_argument("email", self.current_user["email"])
            direccion = self.get_argument("address", "")
            ciudad = self.get_argument("city_id", "")
            codigo_postal = self.get_argument("zip_code", "")
            informacion_adicional = self.get_argument("additional_info", "")
            telefono = self.get_argument("telephone", "")
            id_contacto = self.get_argument("contact_id", "")
            comuna = self.get_argument("town", "")
            rut = self.get_argument("rut", "")
            shipping_type = self.get_argument("shipping_type", "")
            post_office_id = self.get_argument("post_office_id", "")

            shipping_type_id = 1

            cart = Cart()
            cart.user_id = user_id

            lista = cart.GetCartByUserId()

            if len(lista) <= 0:
                self.render("beauty_error.html",
                            message="Carro est&aacute; vac&iacute;o")

            contact = Contact()

            contact.name = nombre
            contact.lastname = apellido
            contact.telephone = telefono
            contact.email = email
            contact.address = direccion
            if shipping_type == "chilexpress":
                po = PostOffice()
                po.InitById(post_office_id)
                post_office_name = po.name
                contact.address = "Oficina {}".format(post_office_name)
            contact.city = ciudad
            contact.zip_code = codigo_postal
            contact.user_id = user_id
            contact.additional_info = informacion_adicional
            contact.town = comuna
            contact.rut = rut

            operacion = ""

            if id_contacto != "":
                contact.id = id_contacto
                response_obj = contact.Edit()
                operacion = "editar"
            else:
                response_obj = contact.Save()
                operacion = "guardar"

            if "error" in response_obj:
                self.render("beauty_error.html",
                            message="Error al {} contacto {}".format(
                                operacion, response_obj["error"]))
            else:

                items = 0
                suma = 0

                for l in lista:
                    c = Cart()
                    response_obj = c.InitById(l["id"])

                    if "success" in response_obj:
                        c.shipping_id = contact.id
                        c.shipping_info = contact.additional_info
                        c.Edit()
                    else:
                        print response_obj["error"]

                    suma += l["subtotal"]
                    items += l["quantity"]

                contactos = []
                cities = []

                response_obj = contact.ListByUserId(user_id)

                city = City()
                res_city = city.List()

                if "success" in response_obj:
                    contactos = json_util.loads(response_obj["success"])

                if "success" in res_city:
                    cities = res_city["success"]

                c = Cellar()
                res_cellar_id = c.GetWebCellar()

                web_cellar_id = cellar_id

                if "success" in res_cellar_id:
                    web_cellar_id = res_cellar_id["success"]

                res_web_cellar = c.InitById(web_cellar_id)

                if "success" in res_web_cellar:
                    if shipping_type != "chilexpress":
                        cellar_city_id = c.city_id

                        shipping = Shipping()
                        shipping.from_city_id = int(cellar_city_id)
                        shipping.to_city_id = int(ciudad)
                        res = shipping.GetGianiPrice()
                        if "error" in res:
                            self.render(
                                "beauty_error.html",
                                message="Error al calcular costo de despacho, {}"
                                .format(res["error"]))
                    else:
                        shipping_type_id = 2
                        shipping = Shipping()
                        shipping.post_office_id = post_office_id
                        res = shipping.GetPriceByPostOfficeId()

                    if "error" in res:
                        self.render(
                            "beauty_error.html",
                            message=
                            "Error al calcular costo de despacho de Chilexpress, {}"
                            .format(res["error"]))
                    else:
                        if shipping.charge_type == 1:
                            costo_despacho = shipping.price * items
                        else:
                            costo_despacho = shipping.price

                        self.render("store/checkout-2.html",
                                    contactos=contactos,
                                    data=lista,
                                    suma=suma,
                                    selected_address=direccion,
                                    cities=cities,
                                    costo_despacho=costo_despacho,
                                    shipping_type=shipping_type_id,
                                    post_office_id=post_office_id)
        else:

            self.redirect("/auth/login")