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; } }
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; } }