public List <eOrdenProducto> Orden_Producto_HistorialPedidos(string codigo_orden)
        {
            SqlCommand cmd = new SqlCommand("usp_tb_orden_Producto_HistorialPedidos");

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@CodigoOrden", SqlDbType.VarChar, 100).Value = codigo_orden;
            SqlDataReader         reader = ExecuteReader(cmd);
            List <eOrdenProducto> lista  = new List <eOrdenProducto>();

            while (reader.Read())
            {
                eOrdenProducto oOrdenProducto = new eOrdenProducto();
                eProducto      oProducto      = new eProducto();
                oProducto.ImagenChica                = ((!reader[0].Equals(DBNull.Value)) ? reader.GetString(0) : "");
                oProducto.ModeloProducto             = ((!reader[1].Equals(DBNull.Value)) ? reader.GetString(1) : "");
                oProducto.PrecioProducto             = ((!reader[2].Equals(DBNull.Value)) ? reader.GetDecimal(2) : Convert.ToDecimal(0));
                oOrdenProducto.CantidadOrdenProducto = ((!reader[3].Equals(DBNull.Value)) ? reader.GetInt32(3) : Convert.ToInt32(0));
                oProducto.CodigoProducto             = ((!reader[4].Equals(DBNull.Value)) ? reader.GetString(4) : "");
                oProducto.SOSProducto                = ((!reader[5].Equals(DBNull.Value)) ? reader.GetString(5) : "");
                oProducto.IDProducto           = ((!reader[6].Equals(DBNull.Value)) ? reader.GetInt32(6) : 0);
                oOrdenProducto.eProducto       = oProducto;
                oOrdenProducto.TipoCambioOrden = ((!reader[7].Equals(DBNull.Value)) ? Convert.ToString(reader.GetDecimal(7)) : "1.00");
                lista.Add(oOrdenProducto);
            }
            reader.Close();

            return(lista);
        }
        public eOrden GetListProducto(string CodigoOrden)
        {
            SqlCommand cmd = new SqlCommand("usp_tbordenSelectProducto");

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@CodigoOrden", SqlDbType.VarChar).Value = CodigoOrden;
            SqlDataReader         reader             = ExecuteReader(cmd);
            List <eOrdenProducto> listaOrdenProducto = new List <eOrdenProducto>();
            List <eProducto>      listaProducto      = new List <eProducto>();
            eOrden sOrden = new eOrden();

            while (reader.Read())
            {
                eOrdenProducto oOrdenProducto = new eOrdenProducto();
                eProducto      oProducto      = new eProducto();
                oProducto.ModeloProducto             = ((!reader[0].Equals(DBNull.Value)) ? reader.GetString(0) : "");
                oProducto.PrecioProducto             = ((!reader[1].Equals(DBNull.Value)) ? reader.GetDecimal(1) : Convert.ToDecimal(0));
                oOrdenProducto.CantidadOrdenProducto = ((!reader[2].Equals(DBNull.Value)) ? reader.GetInt32(2) : Convert.ToInt32(0));
                sOrden.FechaOrden    = ((!reader[3].Equals(DBNull.Value)) ? reader.GetDateTime(3) : DateTime.Today);
                oProducto.IDProducto = ((!reader[4].Equals(DBNull.Value)) ? reader.GetInt32(4) : 0);
                listaOrdenProducto.Add(oOrdenProducto);
                listaProducto.Add(oProducto);
            }

            eOrden oOrden = new eOrden();

            oOrden.lOrdenProducto = listaOrdenProducto;

            oOrden.lProducto  = listaProducto;
            oOrden.FechaOrden = sOrden.FechaOrden;
            reader.Close();
            return(oOrden);
        }
Пример #3
0
        public int OrdenProducto_Add(eOrdenProducto oOrdenProducto)
        {
            int addNew = 0;

            IdException = cOrdenProducto.Insert(oOrdenProducto);
            if (IdException == 0)
            {
                addNew = cOrdenProducto.getLastID;
            }
            return(addNew);
        }
Пример #4
0
        public int Insert(eOrdenProducto oOrdenProducto)
        {
            SqlCommand cmd = new SqlCommand("usp_tb_orden_productoInsert");

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@codigo_orden", SqlDbType.VarChar, 100).Value     = oOrdenProducto.CodigoOrden;
            cmd.Parameters.Add("@id_producto", SqlDbType.Int).Value               = oOrdenProducto.IdProducto;
            cmd.Parameters.Add("@cantidad_orden_producto", SqlDbType.Int).Value   = oOrdenProducto.CantidadOrdenProducto;
            cmd.Parameters.Add("@tipo_orden_producto", SqlDbType.Int).Value       = oOrdenProducto.TipoOrdenProducto;
            cmd.Parameters.Add("@precio_orden_producto", SqlDbType.Decimal).Value = oOrdenProducto.eProducto.PrecioProducto;
            return(InsertCommand(cmd, true));
        }
        public eOrden OrdenUltima(Int64 id_usuario)
        {
            SqlCommand cmd = new SqlCommand("usp_tb_orden_SelectUltima");

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@id_usuario", SqlDbType.BigInt).Value = id_usuario;
            SqlDataReader reader = ExecuteReader(cmd);
            eOrden        sOrden = new eOrden();

            while (reader.Read())
            {
                eOrdenProducto oOrdenProducto = new eOrdenProducto();

                sOrden.CodigoOrden = ((!reader[0].Equals(DBNull.Value)) ? reader.GetString(0) : "");
                sOrden.FechaOrden  = ((!reader[1].Equals(DBNull.Value)) ? reader.GetDateTime(1) : DateTime.Today);
            }
            reader.Close();
            return(sOrden);
        }
Пример #6
0
        private void BindControl()
        {
            decimal monto_total = 0;

            rblMoneda.Items.Add(new ListItem("Soles", "1"));
            rblMoneda.Items.Add(new ListItem("Dólares", "2"));
            rblMoneda.Items[1].Selected = true;

            #region validarProductos
            //validar producto

            lCarritoSave = cCMS.Carrito_itemEmail(oUsuarioWeb.id_usuario);
            foreach (var item in lCarritoSave)
            {
                eProducto oProducto = new eProducto();
                oProducto.IDProducto     = item.IdProducto;
                oProducto.ImagenChica    = item.ImagenCarrito;
                oProducto.ModeloProducto = item.NombreProductoCarrito;
                eProducto oProductoss = new eProducto();
                oProductoss = cCMS.Producto_item(item.IdProducto);
                string  stockMinimo = cCMS.ParametroAlias(5);
                int     stockMin    = Convert.ToInt32(stockMinimo);
                int     IgvInt      = Convert.ToInt32(cCMS.ParametroAlias(4).Replace("%", ""));
                string  IgvString   = "1." + IgvInt.ToString();
                decimal igv         = Convert.ToDecimal(IgvString);
                oProducto.PrecioProducto   = (oProductoss.StockProducto <= stockMin) ? 0 : decimal.Round((oProductoss.PrecioProducto * igv != item.PrecioProducto) ? oProductoss.PrecioProducto * igv : item.PrecioProducto, 2);
                oProducto.CantidadProducto = (oProductoss.StockProducto <= stockMin) ? 0 : item.CantidadProducto;
                //oProducto.CantidadProducto = item.CantidadProducto;
                //oProducto.PrecioProducto = item.PrecioProducto;
                oProducto.DescripcionProducto = item.DescripcionProducto;

                eProducto oProductoActivo = new eProducto();
                oProductoActivo  = cCMS.Producto_item(oProducto.IDProducto);
                oProducto.Activo = oProductoActivo.Activo;
                oProducto.IdProductoCategoria = oProductoActivo.IdProductoCategoria;
                lProducto.Add(oProducto);
            }

            for (int i = 0; i < lProducto.Count; i++)
            {
                /***********************************************/
                //validar si los padres no están inactivos
                eArticulo oArticulos     = cCMS.Articulo_item(lProducto[i].IdProductoCategoria);
                eArticulo oArticuloPadre = cCMS.Articulo_item(oArticulos.IdArticuloPadre);

                if (lProducto[i].CantidadProducto != 0 && lProducto[i].Activo && oArticulos.Activo & oArticuloPadre.Activo)
                {
                    decimal subtotal        = lProducto[i].PrecioProducto * lProducto[i].CantidadProducto;
                    string  precioDecimal   = Convert.ToDouble(lProducto[i].PrecioProducto).ToString("N", CultureInfo.InvariantCulture);
                    string  subtotalDecimal = Convert.ToDouble(subtotal).ToString("N", CultureInfo.InvariantCulture);
                    monto_total += subtotal;

                    litProductos.Text += "	<li>"+
                                         "    <div class=\"producto_entrega\">" +
                                         "        <figure><img src=\"" + url_root + Directorio.Pagina_Imagen + lProducto[i].ImagenChica + "\"></figure>" +
                                         "        <blockquote>" +
                                         "		    <h2>"+ lProducto[i].ModeloProducto + "</h2>" +
                                         "	        <p>"+ lProducto[i].DescripcionProducto + "</p>" +
                                         "        </blockquote>" +
                                         "    </div>" +
                                         "    <div class=\"precios\">" +
                                         "        <span>US$." + precioDecimal.ToString() + "</span>" +
                                         "    </div>" +
                                         "    <div class=\"cantidades\">" +
                                         "        <span>" + lProducto[i].CantidadProducto + "</span>" +
                                         "    </div>" +
                                         "    <div class=\"subtotales\">" +
                                         "        <span>US$." + subtotalDecimal + "</span>" +
                                         "    </div>" +
                                         "</li> ";
                }
            }

            //valida si se actualizó el stock y no hay nada
            if (monto_total == 0)
            {
                Response.Redirect(url_root + "producto_compras");
            }

            oOrden.FechaOrden        = DateTime.Now;
            oOrden.EmailUsuarioOrden = oUsuarioWeb.email_usuario;
            oOrden.IdUsuario         = oUsuarioWeb.id_usuario;

            eOrden oOrdenUltima = cCMS.OrdenUltima(oUsuarioWeb.id_usuario);

            if (oOrdenUltima.CodigoOrden != null)
            {
                oOrden.CodigoOrden = oOrdenUltima.CodigoOrden;
                cCMS.Orden_Limpiar(oOrden.CodigoOrden, oOrden.FechaOrden);
            }
            else
            {
                oOrden.CodigoOrden = cCMS.Orden_add(oOrden);
                RegistrarLogsCms(oUsuarioWeb.id_usuario, "Se agregó un registro a la tabla tb_orden con código de orden : " + codigoOrden);
            }

            if (oOrden.CodigoOrden.Equals(""))
            {
                Session["codigoOrden"] = null;
                Response.Redirect(url_root + "producto_compras?error=no_genero_codigo");
                return;
            }

            string  costoEnvio      = cCMS.ParametroAlias(1);         // (cCMS.ParametroAlias(1) != null) ? cCMS.ParametroAlias(1) : "";
            decimal tipCambio       = cCMS.ObtenerTipoCambioUltimo(); //(cCMS.ObtenerTipoCambioUltimo() != null) ? cCMS.ObtenerTipoCambioUltimo() : 0;
            bool    es_trabajador   = cCMS.ValidarTrabajador(oUsuarioWeb.descripcion_documento_identidad_usuario);
            decimal monto_descuento = OrdenDescuento.AplicarDescuentos(oOrden.CodigoOrden, es_trabajador, monto_total);
            decimal total_descuento = monto_total - monto_descuento;
            decimal totalSoles      = total_descuento == 0 ? monto_total * tipCambio : (total_descuento * tipCambio);
            decimal totalDolares    = total_descuento == 0 ? monto_total : total_descuento;
            totalSoles   = decimal.Round(totalSoles, 2);
            totalDolares = decimal.Round(totalDolares, 2);
            codigoOrden  = oOrden.CodigoOrden;

            if (monto_descuento > 0)
            {
                litDescuento.Text            = Convert.ToDouble(monto_descuento).ToString("N", CultureInfo.InvariantCulture).ToString(); //decimal.Round(dscto_total, 2).ToString();
                litDescuentoDescripcion.Text = " (" + OrdenDescuento.DescuentosAplicadosDescripcion() + ")";
                trDescuento.Visible          = true;
            }

            if (es_trabajador)
            {
                rblElementos.Items.Add(new ListItem("Boleta", "1"));
                rblElementos.Items[0].Selected = true;
            }
            else
            {
                rblElementos.Items.Add(new ListItem("Boleta", "1"));
                rblElementos.Items.Add(new ListItem("Factura", "2"));
                rblElementos.Items[0].Selected = true;

                if (oUsuarioWeb.estado_trabajador == 1)
                {
                    Response.Redirect(url_root + "registro?action=Edit");
                }
            }

            decimal gastoenvio = 0;
            if (cCMS.Orden_UpdateMontoCostoTotal(codigoOrden, monto_total, gastoenvio, totalDolares, monto_descuento, tipCambio))
            {
                RegistrarLogsCms(oUsuarioWeb.id_usuario, "Se agregó a la orden : " + codigoOrden + " los campos subtotal, gasto envio y total");
            }

            litTotal.Text        = Convert.ToDouble(totalSoles).ToString("N", CultureInfo.InvariantCulture).ToString();
            litTotalDolares.Text = Convert.ToDouble(totalDolares).ToString("N", CultureInfo.InvariantCulture).ToString();
            litTipoCambio.Text   = tipCambio.ToString();

            #endregion


            //registrar en tb_orden_producto
            foreach (var item in lProducto)
            {
                /***********************************************/
                //validar si los padres no están inactivos
                eProducto oProductoActive = new eProducto();
                oProductoActive = cCMS.Producto_item(item.IDProducto);
                eArticulo oArticulos     = cCMS.Articulo_item(oProductoActive.IdProductoCategoria);
                eArticulo oArticuloPadre = cCMS.Articulo_item(oArticulos.IdArticuloPadre);

                if (oProductoActive.Activo && oArticulos.Activo && oArticuloPadre.Activo)
                {
                    eOrdenProducto oOrdenProducto = new eOrdenProducto();
                    eProducto      oProd          = new eProducto();
                    oOrdenProducto.CodigoOrden           = oOrden.CodigoOrden;
                    oOrdenProducto.IdProducto            = item.IDProducto;
                    oOrdenProducto.CantidadOrdenProducto = item.CantidadProducto;
                    oOrdenProducto.TipoOrdenProducto     = 1; // boleta
                    oProd.PrecioProducto     = item.PrecioProducto;
                    oOrdenProducto.eProducto = oProd;
                    int agregarOrdenProducto = cCMS.OrdenProducto_Add(oOrdenProducto);
                    RegistrarLogsCms(oUsuarioWeb.id_usuario, "Se agregó un registro a la tabla tb_orden_productos con código de orden : " + oOrden.CodigoOrden + " y id de producto: " + item.IDProducto);
                }
            }

            //validar direccion de despacho
            string despacho = (Request["despacho"] != null) ? Request["despacho"] : "";
            string recojo   = (Request["recojo"] != null) ? Request["recojo"] : "";

            if (despacho == "" && recojo == "")
            {
                if (DirDespacho.Text == "" && DirRecojo.Text == "")
                {
                    Response.Redirect("" + url_root + "direccion");
                }
                else
                {
                    despacho = DirDespacho.Text;
                    recojo   = DirRecojo.Text;
                }
            }
            if (despacho == "")
            {
                tipoDireccion = 1;
                //en caso sea una direccion de recojo
                string codigo_recojo = recojo;
                //hplPagar.Attributes.Add("rel",url_root + "confirmacion_visanet?recojo=" + codigo_recojo);
                oDireccionEntrega = cCMS.Entrega_Listar(codigo_recojo);
                //valida que el codigo exista
                if (oDireccionEntrega == null)
                {
                    Response.Redirect("" + url_root + "despacho");
                }

                litNombreEntrega.Text    = oDireccionEntrega.NombreEntrega;
                litDireccionEntrega.Text = oDireccionEntrega.DireccionEntrega; //falta distrito provincia departamento y pais;
                litTelefonoEntrega.Text  = oDireccionEntrega.Telefono01 + " / " + oDireccionEntrega.Telefono02 + " / " + oDireccionEntrega.Telefono03 + " / " + oDireccionEntrega.Telefono04;

                //agregar a tb_orden_direccion
                eOrdenDireccion oOrdenDireccionValidar = new eOrdenDireccion();
                oOrdenDireccionValidar = cCMS.Orden_Direccion_itemCodigoOrden(codigoOrden);
                if (oOrdenDireccionValidar == null)
                {
                    eOrdenDireccion oOrdenDireccion = new eOrdenDireccion();
                    oOrdenDireccion.CodigoDireccion         = oDireccionEntrega.CodigoEntrega;
                    oOrdenDireccion.TipoDireccion           = "tb_direccion_entrega";
                    oOrdenDireccion.NombreDireccion         = oDireccionEntrega.NombreEntrega;
                    oOrdenDireccion.IdPaisDireccion         = oDireccionEntrega.IdPaisEntrega;
                    oOrdenDireccion.IdDepartamentoDireccion = oDireccionEntrega.IdDepartamentoEntrega;
                    oOrdenDireccion.IdProvinciaDireccion    = oDireccionEntrega.IdProvinciaEntrega;
                    oOrdenDireccion.IdDistritoDireccion     = oDireccionEntrega.IdDistritoEntrega;
                    oOrdenDireccion.DireccionDireccion      = oDireccionEntrega.DireccionEntrega;
                    oOrdenDireccion.Telefono01Direccion     = oDireccionEntrega.Telefono01;
                    oOrdenDireccion.Telefono02Direccion     = oDireccionEntrega.Telefono02;
                    oOrdenDireccion.Telefono03Direccion     = oDireccionEntrega.Telefono03;
                    oOrdenDireccion.Telefono04Direccion     = oDireccionEntrega.Telefono04;
                    oOrdenDireccion.EmailUsuarioDireccion   = oUsuarioWeb.email_usuario;
                    oOrdenDireccion.ReferenciaDireccion     = oDireccionEntrega.ReferenciaEntrega;
                    oOrdenDireccion.CodigoOrden             = codigoOrden;
                    int agregarOrdenDireccion = cCMS.Orden_Direccion_add(oOrdenDireccion);
                    RegistrarLogsCms(oUsuarioWeb.id_usuario, "Seleccionó como direccion de entrega: " + oOrdenDireccion.NombreDireccion + " con código " + oOrdenDireccion.CodigoDireccion + " para la orden " + codigoOrden);
                }
                else
                {
                }
                //RegistrarLogsCms(oUsuarioWeb.email_usuario, "Seleccionó como direccion de entrega: " + despacho);
            }
            if (recojo == "")
            {
                tipoDireccion = 2;
                string codigo_despacho = despacho;
                // hplPagar.Attributes.Add("rel",url_root + "confirmacion_visanet?despacho="+codigo_despacho);
                oDireccionDespacho = cCMS.DireccionDespacho_Listar(oUsuarioWeb.id_usuario, codigo_despacho);
                //valida que no sea otro código que no corresponda
                if (oDireccionDespacho == null)
                {
                    Response.Redirect("" + url_root + "despacho");
                }

                //agregar a tb_orden_direccion
                eOrdenDireccion oOrdenDireccionValidar = new eOrdenDireccion();
                oOrdenDireccionValidar = cCMS.Orden_Direccion_itemCodigoOrden(codigoOrden);
                if (oOrdenDireccionValidar == null)
                {
                    eOrdenDireccion oOrdenDireccion = new eOrdenDireccion();
                    oOrdenDireccion.CodigoDireccion               = oDireccionDespacho.CodigoDespacho;
                    oOrdenDireccion.TipoDireccion                 = "tb_direccion_despacho";
                    oOrdenDireccion.TipoDocumentoDireccion        = oDireccionDespacho.TipoDocumentoDespacho;
                    oOrdenDireccion.DescripcionDocumentoDireccion = oDireccionDespacho.DescripcionDocumentoDespacho;
                    oOrdenDireccion.NombreDireccion               = oDireccionDespacho.NombreDespacho;
                    oOrdenDireccion.ApellidoDireccion             = oDireccionDespacho.ApellidoDespacho;
                    oOrdenDireccion.TipoTelefonoDireccion         = oDireccionDespacho.TipoTelefonoDespacho;
                    oOrdenDireccion.Telefono01Direccion           = oDireccionDespacho.DescripcionTelefonoDespacho;
                    oOrdenDireccion.IdPaisDireccion               = oDireccionDespacho.IdPaisDespacho;
                    oOrdenDireccion.IdDepartamentoDireccion       = oDireccionDespacho.IdDepartamentoDespacho;
                    oOrdenDireccion.IdProvinciaDireccion          = oDireccionDespacho.IdProvinciaDespacho;
                    oOrdenDireccion.IdDistritoDireccion           = oDireccionDespacho.IdDistritoDespacho;
                    oOrdenDireccion.DireccionDireccion            = oDireccionDespacho.DireccionDespacho;
                    oOrdenDireccion.ReferenciaDireccion           = oDireccionDespacho.ReferenciaDespacho;
                    oOrdenDireccion.CiudadDireccion               = oDireccionDespacho.CiudadDespacho;
                    oOrdenDireccion.CodigoPostalDireccion         = oDireccionDespacho.CodigoPostalDespacho;
                    oOrdenDireccion.EmailUsuarioDireccion         = oDireccionDespacho.Emailusuario;
                    oOrdenDireccion.CodigoOrden = codigoOrden;
                    int agregarOrdenDireccion = cCMS.Orden_Direccion_add(oOrdenDireccion);
                    RegistrarLogsCms(oUsuarioWeb.id_usuario, "Seleccionó como direccion de despacho: " + oOrdenDireccion.NombreDireccion + " con código " + oOrdenDireccion.CodigoDireccion + " para la orden " + codigoOrden);
                }
                else
                {
                }
                litNombreEntrega.Text    = oDireccionDespacho.NombreDespacho + " " + oDireccionDespacho.ApellidoDespacho;
                litDireccionEntrega.Text = oDireccionDespacho.DireccionDespacho; //falta distrito provincia departamento y pais;
                litTelefonoEntrega.Text  = oDireccionDespacho.DescripcionTelefonoDespacho;
                //RegistrarLogsCms(oUsuarioWeb.email_usuario, "Seleccionó como direccion de recojo: " + recojo);
            }


            //hplPagar.Attributes.Add("rel", url_root + "confirmacion_visanet?codigoOrden=" + codigoOrden);
            hplPagar.Attributes.Add("rel", url_root + "Content/VisanetPaymentForm.aspx");
            hplPagar.Attributes.Add("relfalse", url_root + "producto_compras");

            DateTime fechaEntrega = new DateTime();
            fechaEntrega         = DateTime.Now.AddDays(5); //DateTime.Now.AddDays(2);
            litFechaEntrega.Text = fechaEntrega.ToShortDateString();
            //agregar la direccion
            //tipoDireccion 1 entrega 2 despacho
            eOrdenEntrega  oOrdenEntrega  = new eOrdenEntrega();
            eOrdenDespacho oOrdenDespacho = new eOrdenDespacho();



            switch (tipoDireccion)
            {
            case 1:
                //agregar a tb_orden_entrega
                oOrdenEntrega.CodigoOrdenEntrega          = recojo;
                oOrdenEntrega.CodigoOrden                 = oOrden.CodigoOrden;
                oOrdenEntrega.EstadoOrdenEntrega          = "No procesada";
                oOrdenEntrega.FechaEstimadaRecojo         = fechaEntrega;
                oOrdenEntrega.TipoComprobanteOrdenEntrega = "No seleccionado";
                int agregaOrdenEntrega = cCMS.OrdenEntrega_Add(oOrdenEntrega);
                break;

            case 2:
                //agregar a tb_orden_despacho
                oOrdenDespacho.CodigoOrden                  = oOrden.CodigoOrden;
                oOrdenDespacho.CodigoOrdenDespacho          = despacho;
                oOrdenDespacho.EstadoOrdenDespacho          = "No procesada";
                oOrdenDespacho.FechaEstimadaRecojo          = fechaEntrega;
                oOrdenDespacho.TipoComprobanteOrdenDespacho = "No seleccionado";
                int agregaOrdenDespacho = cCMS.OrdenDespacho_Add(oOrdenDespacho);
                break;
            }

            //Parametros para generar el eTicket
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "orden_cliente", "var codigoOrden='" + codigoOrden + "'; totalSoles='" + totalSoles + "'; var totalDolares='" + totalDolares + "';", true);
        }