private void changeDets(Producto producto)
        {
            switch (opc)
            {
            case "Mensualidad":

                lblPrecio.Text = "$" + producto.Precio;
                Cuota cuota = CuotaDAL.getCuotaById((Int64)dgvProductos.CurrentRow.Cells[0].Value);
                txtAporte.Text = (cuota.Precio - cuota.Total).ToString();
                break;

            case "Cancelacion":
                if (dgvProductos.CurrentRow != null)
                {
                    decimal totaldebe = DetFacturaDAL.getTotalDebeReserva((Int64)dgvProductos.CurrentRow.Cells[0].Value, IdPersona);
                    lblPrecio.Text    = "$" + producto.Precio.ToString() + " - Pendiente $" + Decimal.Round(totaldebe, 2);
                    txtAporte.Text    = Decimal.Round(totaldebe, 2).ToString();
                    txtDescuento.Text = "0.00";
                }
                break;

            case "Contado":
                lblPrecio.Text = "$" + producto.Precio;
                txtAporte.Text = (producto.Precio).ToString();

                break;

            default: break;
            }
        }
        private void txtAporte_Leave(object sender, EventArgs e)
        {
            txtAporte.Text = txtAporte.Text == "" || txtAporte.Text == "." || txtAporte.Text == "-0" ? "0.00" : txtAporte.Text;

            if (Validation.Validation.Val_DecimalFormat(txtAporte.Text))
            {
                if (dgvProductos.CurrentRow != null)
                {
                    switch (opc)
                    {
                    case "Mensualidad":
                        Cuota cuota = CuotaDAL.getCuotaById((Int64)dgvProductos.CurrentRow.Cells[0].Value);

                        if (Convert.ToDecimal(txtAporte.Text) > (cuota.Precio - cuota.Total))
                        {
                            txtAporte.Text = (cuota.Precio - cuota.Total).ToString();
                        }
                        if (Convert.ToDecimal(txtAporte.Text) < 0)
                        {
                            txtAporte.Text = "0.00";
                        }
                        break;

                    case "Cancelacion":
                        decimal totaldebe = DetFacturaDAL.getTotalDebeReserva((Int64)dgvProductos.CurrentRow.Cells[0].Value, IdPersona);
                        if (Convert.ToDecimal(txtAporte.Text) < 0)
                        {
                            txtAporte.Text = "0.00";
                        }

                        if (Convert.ToDecimal(txtAporte.Text) > totaldebe)
                        {
                            txtAporte.Text = Decimal.Round(totaldebe, 2).ToString();
                        }
                        break;

                    case "Contado":
                        Producto producto = ProductoDAL.getProductoById((Int64)dgvProductos.CurrentRow.Cells[0].Value);
                        txtAporte.Text = Convert.ToDecimal(txtAporte.Text) > producto.Precio ? (producto.Precio).ToString() : txtAporte.Text;;
                        if (Convert.ToDecimal(txtAporte.Text) < 0)
                        {
                            txtAporte.Text = "0.00";
                        }
                        break;

                    default: break;
                    }
                }
                valAporte.BackColor = Color.FromArgb(0, 100, 182);
                errAporte.Clear();
            }
            else
            {
                errAporte.SetError(txtAporte, "El aporte no tiene un formato adecuado,\npor favor ingrese un numero entero o decimal.");
                valAporte.BackColor = Color.Red;
            }
        }
        private void frmBuscarProducto_Load(object sender, EventArgs e)
        {
            try
            {
                switch (opc)
                {
                case "Mensualidad":
                    checkBecado.Checked = Matricula.Becado == 1;
                    Curso curso = CursoDAL.getCursoById(Matricula.IdCurso);
                    FillDgv_Mensualidades(CuotaDAL.getCuotasByIdMatricula(Matricula.Id, 1000));
                    lblEstudiante.Text           = Matricula.Estudiante.Persona.Nombre;
                    lblCurso.Text                = curso.Nombre;
                    lblDocente.Text              = curso.Contrato.Empleado.Persona.Nombre;
                    btnRegistrarProducto.Visible = false;
                    btnRegistrarProducto.Enabled = false;
                    lblTituloDgv.Text            = "Mensualidades pendientes";
                    break;

                case "Cancelacion":
                    pnlParamMensualidad.Visible = false;
                    pnlParamMensualidad.Enabled = false;
                    checkBecado.Visible         = false;
                    FillDgv_Reservaciones(DetFacturaDAL.getDetsfacturaByIdPersona(IdPersona));
                    break;

                case "Contado":
                    pnlParamMensualidad.Visible = false;
                    pnlParamMensualidad.Enabled = false;
                    checkBecado.Visible         = false;
                    FillDgv_Productos(ProductoDAL.getProductos(1000));
                    if (dgvProductos.CurrentRow != null)
                    {
                        Producto producto = ProductoDAL.getProductoById((Int64)dgvProductos.CurrentRow.Cells[0].Value);
                        lblPrecio.Text = "$" + producto.Precio;
                        txtAporte.Text = (producto.Precio).ToString();
                    }
                    break;

                default: break;
                }
                ready = true;
            }
            catch (Exception ex)
            {
                string folderName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Errores_" + Assembly.GetExecutingAssembly().GetName().Name + "_V_" + Assembly.GetExecutingAssembly().GetName().Version.ToString();
                string fileName   = "Exeptions_" + Name + ".txt";

                Validation.FormManager frmManager = new Validation.FormManager();
                frmManager.writeException(folderName, fileName, ex, "Ha ocurrido un error al intentar cargar la información de este control");
                MessageBox.Show("Ha ocurrido un error al intentar cargar la información de este control, por favor comuniquese con el desarrollador al correo " + Properties.Settings.Default.developerEmail, "Error fatal", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 private void FillDgv_Reservaciones(List <Detfactura> lista)
 {
     try
     {
         dgvProductos.Rows.Clear();
         foreach (Detfactura detfactura in lista)
         {
             dgvProductos.Rows.Add(detfactura.Id, "($" + DetFacturaDAL.getTotalDebeReserva(detfactura.Id, IdPersona) + ") " + detfactura.Producto.Nombre);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
        private void dgvProductos_CurrentCellChanged(object sender, EventArgs e)
        {
            if (dgvProductos.CurrentRow != null)
            {
                switch (opc)
                {
                case "Mensualidad":
                    changeDets(ProductoDAL.getProductoMensualidad());
                    break;

                case "Cancelacion":
                    changeDets(ProductoDAL.getProductoById(DetFacturaDAL.getDetfacturaById((Int64)dgvProductos.CurrentRow.Cells[0].Value).IdProducto));

                    break;

                case "Contado":
                    changeDets(ProductoDAL.getProductoById((Int64)dgvProductos.CurrentRow.Cells[0].Value));

                    break;

                default: break;
                }
            }
        }
示例#6
0
        private void btnCancelacion_Click(object sender, EventArgs e)
        {
            try
            {
                if (EditingObject.IdPersona > 0)
                {
                    frmBuscarProducto buscarproducto = new frmBuscarProducto();
                    buscarproducto.opc       = "Cancelacion";
                    buscarproducto.IdPersona = EditingObject.IdPersona;
                    buscarproducto.ShowDialog();
                    if (buscarproducto.currentDetFactura != null)
                    {
                        if (EditingObject.DetsFactura.Where(a => a.RefNFactura == buscarproducto.currentDetFactura.RefNFactura).SingleOrDefault() != null)
                        {
                            if (MessageBox.Show("Ya existe una cancelación para este producto o servicio y no se puede duplicar el detalle. ¿Desea hacer un solo detalle fusionando los datos?", "Confirmar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                            {
                                decimal totaldebe = DetFacturaDAL.getTotalDebeReserva(buscarproducto.currentDetFactura.Id, EditingObject.IdPersona);

                                if (EditingObject.DetsFactura.Where(a => a.RefNFactura == buscarproducto.currentDetFactura.RefNFactura).SingleOrDefault().Total + buscarproducto.currentDetFactura.Total > totaldebe)
                                {
                                    EditingObject.DetsFactura.Where(a => a.RefNFactura == buscarproducto.currentDetFactura.RefNFactura).SingleOrDefault().Total = totaldebe;
                                }
                                else
                                {
                                    EditingObject.DetsFactura.Where(a => a.RefNFactura == buscarproducto.currentDetFactura.RefNFactura).SingleOrDefault().Total += buscarproducto.currentDetFactura.Total;
                                }
                                if (EditingObject.DetsFactura.Where(a => a.RefNFactura == buscarproducto.currentDetFactura.RefNFactura).SingleOrDefault().Descuento + buscarproducto.currentDetFactura.Descuento > totaldebe)
                                {
                                    EditingObject.DetsFactura.Where(a => a.RefNFactura == buscarproducto.currentDetFactura.RefNFactura).SingleOrDefault().Descuento = totaldebe;
                                }
                                else
                                {
                                    EditingObject.DetsFactura.Where(a => a.RefNFactura == buscarproducto.currentDetFactura.RefNFactura).SingleOrDefault().Descuento += buscarproducto.currentDetFactura.Descuento;
                                }
                                for (int i = 0; i < dgvCursos.Rows.Count; i++)
                                {
                                    dgvCursos.Rows[i].Cells["descuento"].Value = (Int64)dgvCursos.Rows[i].Cells[0].Value == EditingObject.DetsFactura.Where(a => a.RefNFactura == buscarproducto.currentDetFactura.RefNFactura).SingleOrDefault().Id ? EditingObject.DetsFactura.Where(a => a.RefNFactura == buscarproducto.currentDetFactura.RefNFactura).SingleOrDefault().Descuento.ToString() : dgvCursos.Rows[i].Cells["descuento"].Value.ToString();
                                    dgvCursos.Rows[i].Cells["subtotal"].Value  = (Int64)dgvCursos.Rows[i].Cells[0].Value == EditingObject.DetsFactura.Where(a => a.RefNFactura == buscarproducto.currentDetFactura.RefNFactura).SingleOrDefault().Id ? EditingObject.DetsFactura.Where(a => a.RefNFactura == buscarproducto.currentDetFactura.RefNFactura).SingleOrDefault().Total.ToString() : dgvCursos.Rows[i].Cells["subtotal"].Value.ToString();
                                }
                                CalucularTotales();
                            }
                        }
                        else
                        {
                            EditingObject.DetsFactura.Add(buscarproducto.currentDetFactura);
                            dgvCursos.Rows.Add(
                                buscarproducto.currentDetFactura.Id,
                                buscarproducto.currentDetFactura.Producto.Nombre, "Cancelación",
                                buscarproducto.currentDetFactura.Producto.Precio,
                                buscarproducto.currentDetFactura.Descuento,
                                buscarproducto.currentDetFactura.Total,
                                buscarproducto.currentDetFactura.IdProducto);
                            CalucularTotales();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string folderName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Errores_" + Assembly.GetExecutingAssembly().GetName().Name + "_V_" + Assembly.GetExecutingAssembly().GetName().Version.ToString();
                string fileName   = "Exeptions_" + Name + ".txt";

                Validation.FormManager frmManager = new Validation.FormManager();
                frmManager.writeException(folderName, fileName, ex, "Ha ocurrido un error al intentar cargar la información de la cuenta pendiente en este control");
                MessageBox.Show("Ha ocurrido un error al intentar cargar la información de la cuenta pendiente en este control, por favor comuniquese con el desarrollador al correo " + Properties.Settings.Default.developerEmail, "Error fatal", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgvProductos.CurrentRow != null && Val_NewObject())
                {
                    switch (opc)
                    {
                    case "Mensualidad":
                        if (dgvProductos.CurrentRow != null)
                        {
                            currentDetFactura = new Detfactura(
                                0,
                                "Mensualidad",
                                Convert.ToDecimal(txtAporte.Text),
                                Convert.ToDecimal(txtDescuento.Text),
                                "M",
                                null,
                                0,
                                ProductoDAL.getProductoMensualidad().Id,
                                ProductoDAL.getProductoMensualidad(),
                                new Matricdetfac(
                                    0,
                                    0,
                                    (Int64)dgvProductos.CurrentRow.Cells[0].Value)
                                );
                            this.Close();
                        }
                        break;

                    case "Cancelacion":
                        if (dgvProductos.CurrentRow != null)
                        {
                            currentDetFactura = new Detfactura(
                                (Int64)dgvProductos.CurrentRow.Cells[0].Value,
                                ProductoDAL.getProductoById(DetFacturaDAL.getDetfacturaById((Int64)dgvProductos.CurrentRow.Cells[0].Value).IdProducto).Nombre,
                                Convert.ToDecimal(txtAporte.Text),
                                Convert.ToDecimal(txtDescuento.Text),
                                "C",
                                DetFacturaDAL.getDetfacturaById((Int64)dgvProductos.CurrentRow.Cells[0].Value).RefNFactura,
                                0,
                                ProductoDAL.getProductoById(DetFacturaDAL.getDetfacturaById((Int64)dgvProductos.CurrentRow.Cells[0].Value).IdProducto).Id,
                                ProductoDAL.getProductoById(DetFacturaDAL.getDetfacturaById((Int64)dgvProductos.CurrentRow.Cells[0].Value).IdProducto),
                                null
                                );
                            this.Close();
                        }
                        break;

                    case "Contado":
                        if (dgvProductos.CurrentRow != null)
                        {
                            currentDetFactura = new Detfactura(
                                0,
                                "Al contado",
                                Convert.ToDecimal(txtAporte.Text),
                                Convert.ToDecimal(txtDescuento.Text),
                                Convert.ToDecimal(txtAporte.Text) < ProductoDAL.getProductoById((Int64)dgvProductos.CurrentRow.Cells[0].Value).Precio ? "R" : "F",
                                null,
                                0,
                                ProductoDAL.getProductoById((Int64)dgvProductos.CurrentRow.Cells[0].Value).Id,
                                ProductoDAL.getProductoById((Int64)dgvProductos.CurrentRow.Cells[0].Value),
                                null
                                );
                            this.Close();
                        }
                        break;

                    default: break;
                    }
                }
            }
            catch (Exception ex)
            {
                string folderName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Errores_" + Assembly.GetExecutingAssembly().GetName().Name + "_V_" + Assembly.GetExecutingAssembly().GetName().Version.ToString();
                string fileName   = "Exeptions_" + Name + ".txt";

                Validation.FormManager frmManager = new Validation.FormManager();
                frmManager.writeException(folderName, fileName, ex, "Ha ocurrido un error al intentar seleccionar la información de este control");
                MessageBox.Show("Ha ocurrido un error al intentar seleccionar la información de este control, por favor comuniquese con el desarrollador al correo " + Properties.Settings.Default.developerEmail, "Error fatal", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }