public void PrecioEspecialProductoCliente_Consulta(ref VentanaPrecioEspecialPro precioEspecialPro, string Conexion, int id_Emp, int id_Cd, int id_Cli, int id_Prd)
 {
     try
     {
         CD_ProPrecioEspecial claseCapaDatos = new CD_ProPrecioEspecial();
         claseCapaDatos.PrecioEspecialProductoCliente_Consulta(ref precioEspecialPro, Conexion, id_Emp, id_Cd, id_Cli, id_Prd);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Example #2
0
        private void Guardar()
        {
            try
            {
                Sesion session = new Sesion();
                session = (Sesion)Session["Sesion" + Session.SessionID];
                CapaDatos.Funciones funcion           = new CapaDatos.Funciones();
                CN_PrecioEspecial   clsPrecioEspecial = new CN_PrecioEspecial();
                var verificador = -1;
                List <VentanaPrecioEspecialPro> List    = new List <VentanaPrecioEspecialPro>();
                VentanaPrecioEspecialPro        ape_Prd = default(VentanaPrecioEspecialPro);

                for (int x = 0; x < rg1.Items.Count; x++)
                {
                    ape_Prd            = new VentanaPrecioEspecialPro();
                    ape_Prd.Id_Prd     = !string.IsNullOrEmpty(rg1.Items[x]["Id_Prd"].Text) ?  Convert.ToInt32(rg1.Items[x]["Id_Prd"].Text) : 0;
                    ape_Prd.Ape_VolVta = (rg1.Items[x].FindControl("txtVolVta") as RadNumericTextBox).Value.HasValue ? Convert.ToInt32((rg1.Items[x].FindControl("txtVolVta") as RadNumericTextBox).Text) : 0;
                    ape_Prd.Ape_PreVta = (rg1.Items[x].FindControl("txtPrecioVta") as RadNumericTextBox).Value.HasValue ? (double)(rg1.Items[x].FindControl("txtPrecioVta") as RadNumericTextBox).Value : 0;
                    ape_Prd.Ape_PreEsp = (rg1.Items[x].FindControl("txtPrecioAAAEsp") as RadNumericTextBox).Value.HasValue ? (double)(rg1.Items[x].FindControl("txtPrecioAAAEsp") as RadNumericTextBox).Value : 0;
                    if (!string.IsNullOrEmpty((rg1.Items[x]["Inicia"].FindControl("rdp_FecIni") as RadDatePicker).DbSelectedDate.ToString()))//(rg1.Items[x]["Inicia"].Text)))
                    {
                        ape_Prd.Ape_FecInicio = !string.IsNullOrEmpty((rg1.Items[x]["Inicia"].FindControl("rdp_FecIni") as RadDatePicker).DbSelectedDate.ToString()) ? Convert.ToDateTime((rg1.Items[x]["Inicia"].FindControl("rdp_FecIni") as RadDatePicker).DbSelectedDate.ToString()) : DateTime.MinValue;
                    }
                    else
                    {
                        ape_Prd.Ape_FecInicio = DateTime.MinValue;
                    }

                    if (!string.IsNullOrEmpty((rg1.Items[x]["Vigencia"].FindControl("rdp_FecVigencia") as RadDatePicker).DbSelectedDate.ToString()))//(rg1.Items[x]["Vigencia"].Text)))
                    {
                        ape_Prd.Ape_FecFin = !string.IsNullOrEmpty((rg1.Items[x]["Vigencia"].FindControl("rdp_FecVigencia") as RadDatePicker).DbSelectedDate.ToString()) ? Convert.ToDateTime((rg1.Items[x]["Vigencia"].FindControl("rdp_FecVigencia") as RadDatePicker).DbSelectedDate.ToString()) : DateTime.MinValue;
                    }
                    else
                    {
                        ape_Prd.Ape_FecFin = DateTime.MinValue;
                    }

                    if (ape_Prd.Id_Prd == 0 || ape_Prd.Ape_VolVta == 0 || ape_Prd.Ape_PreVta == 0 || ape_Prd.Ape_FecInicio == DateTime.MinValue || ape_Prd.Ape_FecFin == DateTime.MinValue)
                    {
                        Alerta("Todos los campos son requeridos en el grid");
                        return;
                    }

                    if ((rg1.Items[x]["Autorizar"].FindControl("chkAutorizar") as RadioButton).Checked)
                    {
                        ape_Prd.Ape_Estatus = "A";
                    }
                    else
                    if ((rg1.Items[x]["Rechazado"].FindControl("chkRechazar") as RadioButton).Checked)
                    {
                        ape_Prd.Ape_Estatus = "R";
                    }
                    else
                    {
                        Alerta("Todas las partidas deben ser autorizadas o rechazadas");
                        return;
                    }

                    if (ape_Prd.Ape_FecInicio > ape_Prd.Ape_FecFin)
                    {
                        Alerta("Revise los rangos de fechas de vigencia antes de guardar la aprobación");
                        return;
                    }
                    //if (Convert.ToInt32(ape_Prd.Ape_FecInicio.ToString("MM")) < 3 && Convert.ToInt32(ape_Prd.Ape_FecFin.ToString("MM")) > 3)
                    //{
                    //    Alerta("La vigencia solo puede ser hasta el mes de Marzo, si el inicio es antes de dicho mes");
                    //    return;
                    //}
                    //ape_Prd.Ape_PreEsp = !string.IsNullOrEmpty(rg1.Items[x]["Ape_PreEsp"].Text) ? Convert.ToDouble((rg1.Items[x]["Ape_PreEsp"].FindControl("txtPrecioAAAEsp") as RadNumericTextBox).Text) : 0.00;
                    //if (ape_Prd.Ape_PreEsp <= 0.00)
                    //{
                    //    Alerta("El precio AAA Especial no debe ser ");
                    //    return;
                    //}
                    ape_Prd.Ape_FecAut = funcion.GetLocalDateTime(session.Minutos);
                    List.Add(ape_Prd);
                }

                PrecioEspecial ape = new PrecioEspecial();
                ape.Id_Emp           = session.Id_Emp;
                ape.Id_Cd            = session.Id_Cd_Ver;
                ape.Id_Ape           = Convert.ToInt32(lblFolio.Text);
                ape.Ape_NotaResp     = txtNotaResp.Text;
                ape.Accion           = HF_Tipo.Value;
                ape.Ape_Convenio     = txtNumConvenio.Text;
                ape.Ape_NumProveedor = Convert.ToInt32(cmbProveedor.SelectedValue);
                ape.Ape_NumUsuario   = txtNumUsuario.Text;



                clsPrecioEspecial.AutorizarPrecioEspecial(ape, session.Emp_Cnx, List, ref verificador);

                if (verificador == 1)
                {
                    EnviaEmail();
                    Alerta("Se atendió correctamente la solicitud <b>#" + lblFolio.Text + "</b>");
                    Inicializar();
                }
                else
                {
                    Alerta("Ocurrió un error al intentar atender la solicitud #" + lblFolio.Text);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void PartidasCalcularPrecioLista(ref DataTable tabla)
        {
            foreach (DataRow row in tabla.Rows)
            {
                double precioProductoAceptado = 0;
                int    Id_Emp = Convert.ToInt32(row[0]);
                int    Id_Cd  = Convert.ToInt32(row[1]);
                int    Id_Cte = Convert.ToInt32(row[2]);
                int    Id_Prd = Convert.ToInt32(row[3]);

                //obtener precio especial del producto
                //para el cliente actual de la factura
                //desde la CAPTURA de SOLICITUDES DE PRECIOS ESPECIALES
                VentanaPrecioEspecialPro precioEspecialPro = null;
                new CN_PrecioEspecial().PrecioEspecialProductoCliente_Consulta(ref precioEspecialPro, this.ReportParameters["@Conexion"].Value.ToString()
                                                                               , Id_Emp, Id_Cd, Id_Cte, Id_Prd /* , Convert.ToInt32(cmbMoneda.SelectedValue) */);

                if (precioEspecialPro != null && precioEspecialPro.Ape_PreEsp > 0)
                {
                    /*
                     * NOTA: si el precio está en dólares u otro tipo de moneda,
                     * se hace la conversión al tipo de moneda de la Valuacion de proyectos
                     */
                    if (precioEspecialPro.Id_Mon != 1) // MONEDA = PESO (1) siempre en captura de valuacion proyectos
                    {
                        //Consultar tipo de cambio
                        double tipoCambioFactura        = 1; // MONEDA = PESO (1) siempre en captura de valuacion proyectos
                        double tipoCambioPrecioEspecial = 0;
                        foreach (TipoMoneda tm in this.ListaTipoMoneda)
                        {
                            if (tm.Id_Mon == precioEspecialPro.Id_Mon)
                            {
                                tipoCambioPrecioEspecial = tm.Mon_TipCambio;
                            }
                        }
                        precioProductoAceptado = (precioEspecialPro.Ape_PreEsp * tipoCambioPrecioEspecial) / tipoCambioFactura;
                    }
                    else
                    {
                        precioProductoAceptado = precioEspecialPro.Ape_PreEsp;
                    }
                }
                else
                {
                    //Si no hay un precio especial en SOLICITUD DE PRECIOS ESPECIALES
                    //va por el precio del catalogo CLIENTE-PRODUCTO, si no hay toma el precio AAA normal del producto

                    //obtener precio AAA
                    float precioAAA = 0;
                    new CN_ProductoPrecios().ConsultaListaProductoPrecioAAA(ref precioAAA, Id_Emp, Id_Cd, Id_Prd, this.ReportParameters["@Conexion"].Value.ToString());

                    //obtener precio especial de producto
                    //desde el catálogo CAT_CLIENTEPRODUCTO
                    float       precioPublicoCAT_CLIENTEPRODUCTO = 0;
                    ClienteProd clienteProd = new ClienteProd();
                    clienteProd.Id_Emp = Id_Emp;
                    clienteProd.Id_Cd  = Id_Cd;
                    clienteProd.Id_Cte = Id_Cte;
                    clienteProd.Id_Prd = Id_Prd;
                    new CN_CatClienteProd().ClienteProductoPrecioPublico_Consultar(ref clienteProd, this.ReportParameters["@Conexion"].Value.ToString(), ref precioPublicoCAT_CLIENTEPRODUCTO);

                    precioProductoAceptado = precioPublicoCAT_CLIENTEPRODUCTO > 0 ? precioPublicoCAT_CLIENTEPRODUCTO : precioAAA;
                }

                row[8] = precioProductoAceptado;
            }
        }