示例#1
0
        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,
                });
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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");
        }