










Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Una práctica de programación en C# para la asignatura Lenguaje de programación Orientada a Objeto II de la Universidad Autónoma Latinoamericana. La práctica consiste en la creación de una clase llamada clsOPEDFacturador, que contiene atributos, propiedades y métodos para el cálculo del valor a pagar por un producto, teniendo en cuenta el valor unitario, la cantidad, el descuento y el subtotal.
Qué aprenderás
Tipo: Apuntes
1 / 18
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Sugerencia
**- intCodigo: (int)
Form: frmPractica (Text): Práctica # 2 – Reglas de negocio (Sin botones de control) DateTimePicker: dtpFecha ComboBox: cboProductos TextBox: txtVr (ReadOnly: True ) TextBox: txtCant Button: btnRegistrar Label: lblVrDscto : Label: lblVrPagar : Button: btnLimpiar Button: btnTerminar
public string Error { get { return strError; } } #endregion #region "Métodos Públicos" public bool ConsultarDto() { try { string _strPath = AppDomain.CurrentDomain.BaseDirectory + @"ListaDescuentos.txt"; //Variable para almacenar la cantidad de líneas que tiene el archivo int _intCantLineas = 0; string[] _strVecLineas; string _strLinea; string _strCdigo; //Capturamos la cantidad de líneas que tiene el archivo _intCantLineas = File.ReadAllLines(_strPath).Length; //Verificamos si el archivo tiene líneas if (_intCantLineas == 0) { strError = "El archivo de descuentos no tiene registros.\r\n Verifique la información"; return false; } //Creamos el objeto para leer el archivo StreamReader _objReader = new StreamReader(_strPath); _strLinea = _objReader.ReadLine(); while (_strLinea != null) { _strVecLineas = _strLinea.Split(':'); //Código del Producto
_strCdigo = _strVecLineas[0]; //Verificamos si el producto leido es el producto que estamos procesando. En tal caso terminamos el ciclo if (_strCdigo == intCodigo.ToString()) { //Extraemos valor del descuento dblPorcDscto = Convert.ToDouble(_strVecLineas[1]); break; } _strLinea = _objReader.ReadLine(); } _objReader.Close(); _objReader = null; return true; } catch (Exception ex) { throw ex; } } #endregion } }
public double Vr_Unitario { set { dblVrUnit = value; } } public double Cantidad { set { dblCant = value; } } public double VrDscto { get { return dblVrDscto; } } public double VrAPagar { get { return dblVrAPagar; } } public string Error { get { return strError; } } public double SubTotal
get { return dblSubTotal; } } #endregion #region "Métodos Privados" private bool Validar() { if (intCodigo <= 0) { strError = "Código del producto no válido"; return false; } if (dblVrUnit <= 0) { strError = "Valor unitario no válido. Este dato debe ser un número mayor que cero"; return false; } if (dblCant <= 0) { strError = "Cantidad no válida. Este dato debe ser un número mayor que cero"; return false; } return true; } #endregion #region "Métodos Públicos" public bool Procesar() { try { if (!Validar()) { return false; } //Instanciamos la clase de relgas de negocio clsRNFacturador _objFacRN = new clsRNFacturador();
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using libOpeFacturador; namespace prjPractica { public partial class frmPractica3 : Form { #region "Constructor" public frmPractica3() { InitializeComponent(); } #endregion #region "Variables Globales" string strError; double dblNumAux; #endregion #region "Métodos Privados" private bool ValidarCampos() { if (this.dtpFecha.Value < Convert.ToDateTime(DateTime.Now.ToShortDateString())) { strError = "La fecha elegida no puede ser menor que el día actual"; return false; } if (this.cboProductos.SelectedIndex <= 0) { strError = "Debe seleccionar un producto"; return false;
if (this.txtCant.Text == string.Empty) { strError = "Debe ingresar una cantidad de producto"; return false; } if (this.txtVr.Text == string.Empty) { strError = "No se puede realizar el proceso sin el valor unitario del producto"; return false; } return true; } private void LimpiarCampos() { this.dtpFecha.Value = DateTime.Now; this.cboProductos.SelectedIndex = -1; this.txtCant.Text = string.Empty; this.txtVr.Text = string.Empty; this.lblVrDscto.Text = string.Empty; this.lblVrPagar.Text = string.Empty; } private void LlenarCombo() { try { this.cboProductos.Items.Add("Seleccione un Producto"); //Index = 0 this.cboProductos.Items.Add("Aguacate"); //Index = 1 this.cboProductos.Items.Add("Zanahoria"); //Index = 2 this.cboProductos.Items.Add("Papa Nevada"); //Index = 3 this.cboProductos.Items.Add("Cebolla Huevo"); //Index = 4 this.cboProductos.Items.Add("Tomate de Aliño"); //Index = 5 this.cboProductos.Items.Add("Pera"); //Index = 6 this.cboProductos.SelectedIndex = 0; } catch (Exception ex) { MessageBox.Show(ex.Message, "Verduras del Campo",MessageBoxButtons.OK, MessageBoxIcon.Error);
private void CalcularTotal() { try { //Verificamos que los campos tengan datos if (!ValidarCampos()) { MessageBox.Show(strError, "Verduras del Campo",MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } //Instanciamos la librería operativa clsOpeFacturador _objFacturar = new clsOpeFacturador(); //Asignamos los valores para que la librería haga los cálculos _objFacturar.Codigo = this.cboProductos.SelectedIndex; _objFacturar.Cantidad = Convert.ToDouble(this.txtCant.Text.Trim().Replace(".", "").Replace(",","").Replace("$", "")); _objFacturar.Vr_Unitario = Convert.ToDouble(this.txtVr.Text.Trim().Replace(".", "").Replace(",", "").Replace("$", "")); //Solicitamos realizar el cáclulo if (!_objFacturar.Procesar()) { //Si los cálculos fallaron recuperamos el error que se produjo en la clsOpeFacturador MessageBox.Show(_objFacturar.Error, "Verduras del Campo",MessageBoxButtons.OK, MessageBoxIcon.Information); return; } this.lblVrDscto.Text = _objFacturar.VrDscto.ToString("C0"); this.lblVrPagar.Text = _objFacturar.VrAPagar.ToString("C0"); } catch (Exception ex) {
MessageBox.Show(ex.Message, "Verduras del Campo",MessageBoxButtons.OK, MessageBoxIcon.Error); } } #endregion #region "Eventos" private void btnLimpiar_Click(object sender, EventArgs e) { LimpiarCampos(); } private void frmPractica3_Load(object sender, EventArgs e) { LlenarCombo(); } private void cboProductos_SelectedIndexChanged(object sender, EventArgs e) { HallarVrUnitario(); } private void txtVr_TextChanged(object sender, EventArgs e) { //Damos formato al TextBox solo si esté no está vacío if (this.txtVr.Text != string.Empty) { //Convertimos en double el textbox quitando: ',' '.' y '$' dblNumAux = Convert.ToDouble(this.txtVr.Text.Replace(".", "").Replace(",", "").Replace("$", "")); this.txtVr.Text = dblNumAux.ToString("C0"); } } private void txtCant_Leave(object sender, EventArgs e) { //Damos formato al TextBox //Convertimos en double el textbox quitando: ',' '.' y '$' dblNumAux = Convert.ToDouble(this.txtCant.Text.Replace(".", "").Replace(",", "").Replace("$",""));