public Asiento(Entity_asiento datos) { Estado = EstadoAsiento.Borrador; Movimientos = null; Datos = datos; ActualizarMovimientos(); }
public int GenerarAsiento( string descripcion, string tipo, DateTime fecha, bool editable, bool habilitado, bool sistema, PreMovimiento[] premovimientos) { if (premovimientos.Length == 0) { throw new Exception("El asiento no se ha podido registrar debido a que no tiene movimientos asignados."); } Entity_asiento datos = new Entity_asiento(); datos.Habilitado = habilitado; datos.Generadosistema = sistema; datos.Fecha = fecha; datos.Descripcion = descripcion; datos.Editable = editable; datos.Ejercicio_codejercicio = (int)this.CodEjercicio; datos.Ejercicio_empresa_idempresa = this.CodEmpresa; datos.Tipoasiento_empresa_idempresa = this.CodEmpresa; datos.Tipoasiento_descripcion = tipo; var movimientos = new List<Movimiento>(premovimientos.Length); int i = 0; foreach (PreMovimiento m in premovimientos) { Movimiento mov = new Movimiento(m); mov.Cod = ++i; mov.Datos.Asiento_ejercicio_empresa_idempresa = this.CodEmpresa; mov.Datos.Cuenta_plancuentas_ejercicio_empresa_idempresa = this.CodEmpresa; mov.Datos.Cuenta_plancuentas_ejercicio_codejercicio = (int)this.CodEjercicio; mov.Datos.Asiento_ejercicio_codejercicio = (int)this.CodEjercicio; mov.Datos.Cuenta_plancuentas_codplancuentas = this.CodPlanCuentas; mov.Datos.Tipomovimiento_empresa_idempresa = this.CodEmpresa; movimientos.Add(mov); } Asiento asiento = new Asiento(datos); asiento.Movimientos = movimientos; if (!asiento.Balanceado) { throw new Exception("El asiento no se ha podido registrar debido a que no se encuentra balanceado."); } Datos.Phantom.Insertar(datos); DataSet ds = Datos.Consultar("SELECT LAST_INSERT_ID();"); var cod = int.Parse(CapaDatos.Datos.GetValor(ds).ToString()); try { foreach (Movimiento m in asiento.Movimientos) { m.Datos.Asiento_idasiento = cod; Datos.Phantom.Insertar(m.Datos); } } catch (Exception ex) { asiento.Movimientos = null; Datos.Phantom.Eliminar(datos); throw ex; } return cod; }
public Asiento() { Datos = new Entity_asiento(); Estado = EstadoAsiento.Borrador; Datos.Editable = true; Movimientos = null; }