Ejemplo n.º 1
0
 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;
        }
Ejemplo n.º 3
0
 public Asiento()
 {
     Datos = new Entity_asiento();
     Estado = EstadoAsiento.Borrador;
     Datos.Editable = true;
     Movimientos = null;
 }