public async Task <CreateCuentaResultDto> CrearCuenta(CreateCuentaDto input) { try { if (input.Level == 0) { await cuentasManager.CreateCuentaRootAsync( numero : input.NumeroCuenta, tipo : input.TipoCuenta, monedaId : input.Moneda, balance : input.TipoBalance, nombre : input.Nombre ); } else { await cuentasManager.CreateCuentaChildAsync( parent : input.ParentId, numero : input.NumeroCuenta, monedaId : input.Moneda, balance : input.TipoBalance, nombre : input.Nombre); } return(new CreateCuentaResultDto() { NumeroCuenta = input.NumeroCuenta, IsCreated = true }); } catch (Exception exception) { return(new CreateCuentaResultDto() { IsCreated = false, NumeroCuenta = input.NumeroCuenta, ErrorMessageResult = exception.Message, }); } }
public async Task CreateTest() { await WithUnitOfWorkAsync(async() => { var cuenta = await cuentasManager.CreateCuentaRootAsync( numero: "0100-0000-000-000-000-00-00", tipo: CuentaTypeEnum.Activo, monedaId: "CRC", balance: BalanceTypeEnum.Debito, nombre: "Activo"); var child1 = await cuentasManager.CreateCuentaChildAsync( parent: cuenta.Id, numero: "0100-0001-000-000-000-00-00", monedaId: "CRC", balance: BalanceTypeEnum.Debito, nombre: "Activo Fijo"); await periodoContableManager.CreateAsync(new MesContable(2010, 1), new MesContable(2010, 12)); }); Asiento asiento = null; await WithUnitOfWorkAsync(async() => { asiento = await asientoManager.CreateAsync(new DateTime(2010, 1, 2)); asiento.AddLinea( cuentaId: "010000010000000000000", descripcion: "Asiento de prueba", balance: BalanceTypeEnum.Debito, monedaId: "CRC", cambio: 1, monto: 150.20M ); }); asiento.Lineas.Count.ShouldBe(1); }
public async Task CanCreateCuentaChild() { Cuenta cuenta = null; Cuenta child1 = null, child2 = null, child3 = null, child4 = null, child5 = null, child6 = null; await WithUnitOfWorkAsync(async() => { cuenta = await cuentasManager.CreateCuentaRootAsync( numero: "0100-0000-000-000-000-00-00", tipo: CuentaTypeEnum.Activo, monedaId: "CRC", balance: BalanceTypeEnum.Debito, nombre: "Activo"); }); cuenta.ShouldNotBe(null); cuenta.Id.ShouldBe("010000000000000000000"); await WithUnitOfWorkAsync(async() => { child1 = await cuentasManager.CreateCuentaChildAsync( parent: cuenta.Id, numero: "0100-0001-000-000-000-00-00", monedaId: "CRC", balance: BalanceTypeEnum.Debito, nombre: "Activo Fijo"); }); await WithUnitOfWorkAsync(async() => { child2 = await cuentasManager.CreateCuentaChildAsync( parent: child1.Id, numero: "0100-0001-001-000-000-00-00", monedaId: "CRC", balance: BalanceTypeEnum.Debito, nombre: "Activo Fijo 2"); }); await WithUnitOfWorkAsync(async() => { child3 = await cuentasManager.CreateCuentaChildAsync( parent: child2.Id, numero: "0100-0001-001-001-000-00-00", monedaId: "CRC", balance: BalanceTypeEnum.Debito, nombre: "Activo Fijo 3"); }); await WithUnitOfWorkAsync(async() => { child4 = await cuentasManager.CreateCuentaChildAsync( parent: child3.Id, numero: "0100-0001-001-001-001-00-00", monedaId: "CRC", balance: BalanceTypeEnum.Debito, nombre: "Activo Fijo 4"); }); await WithUnitOfWorkAsync(async() => { child5 = await cuentasManager.CreateCuentaChildAsync( parent: child4.Id, numero: "0100-0001-001-001-001-01-00", monedaId: "CRC", balance: BalanceTypeEnum.Debito, nombre: "Activo Fijo 5"); }); await WithUnitOfWorkAsync(async() => { child6 = await cuentasManager.CreateCuentaChildAsync( parent: child5.Id, numero: "0100-0001-001-001-001-01-01", monedaId: "CRC", balance: BalanceTypeEnum.Debito, nombre: "Activo Fijo 6"); }); child6.Id.ShouldBe("010000010010010010101"); child6.ParentId.ShouldBe("010000010010010010100"); }