private void fillMovements(placements placement) { if (placement != null) { movements = (from em in entities.placements_movements join em2 in entities.countables_accounts on em.account equals em2.id where em.placement_id == placement.id select em).ToList(); } dgvMovements.DataSource = null; dgvMovements.DataSource = movements.Select( o => new { Column1 = ((countables_accounts)accounts.Where(e => e.id == o.account).First()).description, Column2 = o.movement_type, Column3 = o.amount } ).ToList(); dgvMovements.Columns[0].HeaderText = "Cuenta"; dgvMovements.Columns[1].HeaderText = "Tipo Movimiento"; dgvMovements.Columns[2].HeaderText = "Monto"; dgvMovements.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; }
public void setEntradaContable(placements placement) { this.placement = placement; txtDescription.Text = placement.description; setCurrency(placement.currency_type); fillMovements(placement); }
public void savePlacement(placements placement) { if (placement != null) { entities.placements.Add(placement); } entities.SaveChanges(); }
public void mayorize(placements placement) { var movements = (from em in entities.placements_movements where em.placement_id == placement.id select em).ToList(); foreach (var movement in movements) { updateBalance(movement.account, movement.movement_type, movement.amount, false); } entities.SaveChanges(); }
private String validate(placements placement) { StringBuilder sb = new StringBuilder(); foreach (var prop in placement.GetType().GetProperties()) { if (prop.PropertyType == typeof(string)) { prop.SetValue(placement, ((string)prop.GetValue(placement)).Trim()); } } if (placement.description.Length == 0) { sb.Append("- El campo descripción es obligatorio\n"); } decimal totalDebito = 0; decimal totalCredito = 0; foreach (var movement in movements) { if (movement.movement_type == "DB") { totalDebito += movement.amount; } else { totalCredito += movement.amount; } } if (totalCredito <= 0) { sb.Append("- El total de créditos debe ser mayor a 0\n"); } if (totalDebito <= 0) { sb.Append("- El total de débitos debe ser mayor a 0\n"); } if ((totalCredito - totalDebito) != 0) { sb.Append("- Los montos de débito y crédito no concuerdan\n"); } return(sb.ToString()); }
public void setEntradaContable(placements placement, bool readOnly) { this.setEntradaContable(placement); // read only options to do txtDescription.ReadOnly = true; cbCurrency.Enabled = false; lblAccount.Visible = false; lblAmount.Visible = false; lblMovementType.Visible = false; cbAccount.Visible = false; cbMovementType.Visible = false; btnAdd.Visible = false; txtAmount.Visible = false; btnCancel.Text = "Cerrar"; btnSave.Visible = false; btnDelete.Visible = false; }
private void btnDetails_Click(object sender, EventArgs e) { DataGridViewRow row = null; if (dgvPlacements.SelectedRows.Count == 1) { row = dgvPlacements.SelectedRows[0]; } else if (dgvPlacements.SelectedCells.Count == 1) { int i = dgvPlacements.SelectedCells[0].RowIndex; row = dgvPlacements.Rows[i]; } else { MessageBox.Show( "Debe seleccionar solo 1 asiento a visualizar", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information ); } if (row != null) { EntradaContable tipoCuenta = EntradaContable.getInstance(); int id = Int32.Parse(row.Cells[0].Value.ToString()); placements placement = (from em in entities.placements where em.id == id select em).First(); tipoCuenta.setEntradaContable(placement, true); tipoCuenta.Show(); tipoCuenta.Focus(); } }
private void btnSave_Click(object sender, EventArgs e) { bool created = false; placements placement = new placements() { description = txtDescription.Text, auxiliary_id = 1, date = DateTime.Now, currency_type = ((currencies_types)cbCurrency.SelectedItem).id, exchange_rate = ((currencies_types)cbCurrency.SelectedItem).exchange_rate, state = "R" }; String errors = validate(placement); if (errors.Length > 0) { MessageBox.Show( errors, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); return; } using (var transaction = entities.Database.BeginTransaction()) { try { entities.placements.Add(placement); foreach (var el in movements) { el.placement_id = placement.id; entities.placements_movements.Add(el); } entities.SaveChanges(); MnjEntradaContable.getInstance().mayorize(placement); transaction.Commit(); created = true; } catch (Exception ex) { Console.WriteLine(ex); transaction.Rollback(); } }; if (created) { MessageBox.Show( "Asiento registrado con éxito", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information ); MnjEntradaContable.getInstance().loadPlacements(""); this.Close(); } else { MessageBox.Show( "El asiento no pudo ser registrado", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); } }
private void btnRevert_Click(object sender, EventArgs e) { DataGridViewRow row = null; if (dgvPlacements.SelectedRows.Count == 1) { row = dgvPlacements.SelectedRows[0]; } else if (dgvPlacements.SelectedCells.Count == 1) { int i = dgvPlacements.SelectedCells[0].RowIndex; row = dgvPlacements.Rows[i]; } else { MessageBox.Show( "Debe seleccionar solo 1 asiento a reversar", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information ); } if (row != null) { int id = Int32.Parse(row.Cells[0].Value.ToString()); placements placement = (from em in entities.placements where em.id == id select em).First(); if (placement == null) { MessageBox.Show( "¡Asiento no encontrado!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); } else if (placement.state == "C") { MessageBox.Show( "¡Este asiento ha sido reversado!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); } else { DialogResult revertIt = MessageBox.Show( "¿Estas seguro que quieres realizar un reverso a esta entrada\n\nEstos cambios no se pueden deshacer?", "Confirmar", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question ); if (DialogResult.Yes == revertIt) { bool updated = false; using (var transaction = entities.Database.BeginTransaction()) { try { placement.state = "C"; entities.SaveChanges(); mayorize(placement, true); transaction.Commit(); updated = true; } catch (Exception ex) { Console.WriteLine(ex); updated = false; transaction.Rollback(); } } if (updated) { MessageBox.Show( "¡Reverso realizado con exito!", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information ); loadPlacements(""); } else { MessageBox.Show( "¡Ha ocurrido un error, intente nuevamente más tarde!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); } } } } }