Exemple #1
0
        private void CargarEnvio(OrdenCompra ordencompra, BuyerDataModelView data, int idSucursal = 0)
        {
            Envio           e  = new Envio();
            DatosPersonales dp = db.Usuario.FirstOrDefault(d => d.idUsuario == WebSecurity.CurrentUserId).DatosPersonales;

            if (data.MetodoEntrega == MetodoEntrega.RetiroEnSucursal)
            {
                e.idDireccion = db.Sucursal.FirstOrDefault(s => s.idSucursal == idSucursal).idDireccion;
            }
            else
            {
                if (data.UsarDireccionDeContacto)
                {
                    e.idDireccion  = dp.idDireccion;
                    e.fechaEntrega = new DateTime().AddDays(10);
                    e.costoEnvio   = GetCostoEnvio(dp.Direccion.Localidad);
                }
                else
                {
                    e.costoEnvio = GetCostoEnvio(data.Direccion.Ciudad);
                    e.Direccion  = new Direccion()
                    {
                        codigoPostal = data.Direccion.CodigoPostal,
                        direccion1   = data.Direccion.Calle + " " + data.Direccion.Numero,
                        Localidad    = db.Localidad.FirstOrDefault(ce => ce.localidad1.ToLower() == data.Direccion.Ciudad.ToLower()),
                    };
                    e.fechaEntrega = new DateTime().AddDays(10);
                }
            }
            if (data.UsarDatosDeContacto)
            {
                e.nombre   = dp.nombre;
                e.apellido = dp.apellido;
                e.telefono = dp.telefono;
                e.mail     = dp.Usuario.First(u => u.idUsuario == WebSecurity.CurrentUserId).email;
            }
            else
            {
                e.nombre   = data.Nombre;
                e.apellido = data.Apellido;
                e.telefono = data.Telefono;
                e.mail     = data.Mail;
            }

            OrdenCompraEnvio oce = new OrdenCompraEnvio();

            oce.Envio       = e;
            oce.OrdenCompra = ordencompra;

            db.OrdenCompraEnvio.Add(oce);
            try
            {
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            //cambiar estado a la vaina
        }
Exemple #2
0
        private void CargarPago(BuyerDataModelView data, OrdenCompra oc)
        {
            Pago pago = new Pago();

            pago.idEstadoPago = 1;
            pago.tipoPago     = (int)data.MetodoDePago;
            pago.total        = oc.OrdenCompraDetalle.Sum(detalle => detalle.cantidad * detalle.Producto.precioUnitario);
            pago.OrdenCompra.Add(oc);
        }
Exemple #3
0
        public ActionResult ShopCheckoutStep1(int id = 0)
        {
            db.OrdenCompra.Find(id).idEstadoOrden = 2;
            db.SaveChanges();

            BuyerDataModelView data = new BuyerDataModelView();

            ViewData.Add("sc", db.Sucursal.ToList());
            ViewData.Add("dp", db.Usuario.FirstOrDefault(d => d.idUsuario == WebSecurity.CurrentUserId).DatosPersonales);

            return(View(data));
        }
Exemple #4
0
        public ActionResult ShopCheckoutStep1(BuyerDataModelView data, FormCollection collection)
        {
            if (ModelState.IsValid)
            {
                OrdenCompra ordencompra = db.OrdenCompra.FirstOrDefault(oc => oc.OrdenCompraEstado.idEstadoOrden == 2 &&
                                                                        oc.idUsuario == WebSecurity.CurrentUserId);

                CargarPago(data, ordencompra);
                CargarEnvio(ordencompra, data, Convert.ToInt32(collection["idSucursal"]));
                return(RedirectToAction("ShopCheckoutStep4", "OrdenCompra", new { id = ordencompra.idOrdenCompra }));
            }

            ModelState.AddModelError("", "Se produjo un error cuando se procesaba la solicitud");

            ViewData.Add("sc", db.Sucursal.ToList());
            ViewData.Add("dp", db.Usuario.FirstOrDefault(d => d.idUsuario == WebSecurity.CurrentUserId).DatosPersonales);
            return(View(data));
        }