2 using Microsoft.VisualStudio.TestTools.UnitTesting;
14 namespace Sage.ES.S50.UnitTest.contabilidad
31 string _Empresa =
"01";
35 static string _CuentaServicios =
"";
39 static string _CuentaInmobilizado =
"";
43 static string _CuentaGasto =
"";
47 string _CuentaIVA =
"";
51 string _CuentaIVA2 =
"";
55 string _CuentaIVA3 =
"";
59 string _CuentaIVANoSujeto =
"";
63 string _CuentaIVAServicios =
"";
67 string _CuentaRetencion =
"";
71 string _Contrapartida =
"";
79 string _TipoIva2 =
"";
83 string _TipoIva3 =
"";
87 string _TipoIvaNoSujeto =
"";
91 string _TipoIvaServicios =
"";
101 public TestContext TestContext
105 return testContextInstance;
109 testContextInstance = value;
113 private TestContext testContextInstance;
118 #region METODOS PARA LA CREACIÓN DE DATOS PARA EL TEST 362 #endregion METODOS PARA LA CREACIÓN DE DATOS PARA EL TEST 365 #region METODOS PRIVADOS 370 private void VaciarPropiedades()
373 _CuentaInmobilizado =
"";
374 _CuentaServicios =
"";
377 _CuentaRetencion =
"";
384 _TipoIvaNoSujeto =
"";
385 _TipoIvaServicios =
"";
393 private bool PreparacionDatos(
string tcMensaje)
398 _Contrapartida =
"40098777";
399 _CuentaGasto =
"60000777";
400 _CuentaInmobilizado =
"26500777";
401 _CuentaServicios =
"62900777";
402 _Factura =
"EO205005".PadLeft(lnNumFacCompra);
406 _TipoIvaNoSujeto =
"77";
407 _TipoIvaServicios =
"78";
415 bool llOk = ComprobarDatosPrueba(tcMensaje);
416 Assert.AreEqual(llOk,
true, _Mensaje);
426 private void GenerarLineasAsiento(ref
Asientos toAsiento, ref
string tcMensaje)
430 loAsiLin.
_Cuenta = _CuentaGasto;
431 loAsiLin.
_Definicion =
"Asiento prueba " + tcMensaje.Trim();
432 loAsiLin.
_Debe = 7095.55M;
435 AddLineaIvaAsiento(ref toAsiento, ref tcMensaje, _CuentaIVA);
438 loAsiLin = toAsiento._Lineas.LastOrDefault();
439 loAsiLin.
_Cuenta = _CuentaGasto;
440 loAsiLin.
_Debe = 788.35M;
444 AddLineaIvaAsiento(ref toAsiento, ref tcMensaje, _CuentaIVA2);
447 loAsiLin = toAsiento._Lineas.LastOrDefault();
448 loAsiLin.
_Cuenta = _CuentaGasto;
449 loAsiLin.
_Debe = 221.00M;
453 AddLineaIvaAsiento(ref toAsiento, ref tcMensaje, _CuentaIVA3);
456 loAsiLin = toAsiento._Lineas.LastOrDefault();
457 loAsiLin.
_Cuenta = _CuentaServicios;
458 loAsiLin.
_Debe = 64.53M;
462 AddLineaIvaAsiento(ref toAsiento, ref tcMensaje, _CuentaIVAServicios);
465 loAsiLin = toAsiento._Lineas.LastOrDefault();
466 loAsiLin.
_Cuenta = _CuentaInmobilizado;
467 loAsiLin.
_Debe = 64.34M;
471 loAsiLin = toAsiento._AddLinea();
472 loAsiLin.
_Cuenta = _Contrapartida;
473 loAsiLin.
_Haber = 8714.40M;
478 loAsiLin.
_Definicion =
"Asiento prueba " + tcMensaje.Trim();
482 if (toAsiento._DatosEOS != null)
484 for (
int i = toAsiento._DatosEOS.Count() - 1; i >= 0; i--)
485 toAsiento._DatosEOS[i]._Delete();
494 private void ComprobacionDatosAsiento(
Asientos toAsiento,
string tcMensaje)
496 Assert.IsNotNull(toAsiento, tcMensaje.Trim() +
"No se ha generado el asiento.");
497 if (toAsiento != null)
501 Assert.AreEqual(8714.40M, toAsiento.
_TotalDebe, tcMensaje.Trim() +
"Importe incorrecto asiento");
505 int lnNumAsi = toAsiento.
_Numero;
507 toAsiento.
_Load(_Empresa, lnNumAsi);
509 Assert.Fail(tcMensaje.Trim() +
"Ha fallado la generación del asiento. No se han guardado los IVA's. Mensaje error " + toAsiento.
_Mensaje_Error);
518 Assert.AreEqual(7095.55M, loItemEOS.
_BaseImponible, tcMensaje.Trim() +
"Base IVA 01(4%) incorrecto");
519 Assert.AreEqual(283.82M, loItemEOS.
_CuotaIVA, tcMensaje.Trim() +
"Cuota IVA 01(4%) incorrecto");
520 Assert.AreEqual(35.48M, loItemEOS.
_CuotaRecargo, tcMensaje.Trim() +
"Cuota recargo IVA 01(4%) incorrecto");
524 Assert.AreEqual(788.35M, loItemEOS.
_BaseImponible, tcMensaje.Trim() +
"Base IVA 02(10%) incorrecto");
525 Assert.AreEqual(78.84M, loItemEOS.
_CuotaIVA, tcMensaje.Trim() +
"Cuota IVA 02(10%) incorrecto");
526 Assert.AreEqual(11.04M, loItemEOS.
_CuotaRecargo, tcMensaje.Trim() +
"Cuota recargo IVA 02(10%) incorrecto");
530 Assert.AreEqual(221M, loItemEOS.
_BaseImponible, tcMensaje.Trim() +
"Base IVA 03(21%) incorrecto");
531 Assert.AreEqual(46.41M, loItemEOS.
_CuotaIVA, tcMensaje.Trim() +
"Cuota IVA 03(21%) incorrecto");
532 Assert.AreEqual(11.49M, loItemEOS.
_CuotaRecargo, tcMensaje.Trim() +
"Cuota recargo IVA 03(21%) incorrecto");
534 else if (loItemEOS.
_CodigoIVA == _TipoIvaServicios)
536 Assert.AreEqual(64.53M, loItemEOS.
_BaseImponible, tcMensaje.Trim() +
"Base IVA 78(21%) incorrecto");
537 Assert.AreEqual(13.55M, loItemEOS.
_CuotaIVA, tcMensaje.Trim() +
"Cuota IVA 78(21%) incorrecto");
538 Assert.AreEqual(0M, loItemEOS.
_CuotaRecargo, tcMensaje.Trim() +
"Cuota recargo(21%) IVA 78 incorrecto");
540 else if (loItemEOS.
_CodigoIVA == _TipoIvaNoSujeto)
542 Assert.AreEqual(64.34M, loItemEOS.
_BaseImponible, tcMensaje.Trim() +
"Base IVA 77(0%) incorrecto");
543 Assert.AreEqual(0M, loItemEOS.
_CuotaIVA, tcMensaje.Trim() +
"Cuota IVA 77(0%) incorrecto");
544 Assert.AreEqual(0M, loItemEOS.
_CuotaRecargo, tcMensaje.Trim() +
"Cuota recargo IVA 77(0%) incorrecto");
549 Assert.Fail(tcMensaje.Trim() +
"Ha fallado la generación del asiento. No se han guardado los datos EOS. Mensaje error " + toAsiento.
_Mensaje_Error);
563 loAsiento.
_Fecha =
new DateTime(2021, 6, 20);
574 private bool ValidarCuenta(
string tcCuenta,
string tcMensaje)
579 if (!
string.IsNullOrWhiteSpace(tcCuenta))
587 Mensaje(tcMensaje.Trim());
599 private bool ValidarTipoIVA(
string tcTipoIVA, ref
string tcCuentaIVA, ref
string tcMensaje)
609 Mensaje(tcMensaje.Trim() +
"No existe el tipo de IVA " + tcTipoIVA +
" para el test EOS");
621 private bool ComprobarDatosPrueba(
string tcMensaje)
623 bool llOk = ValidarCuenta(_Contrapartida, tcMensaje.Trim() +
"No existe el proveedor " + _Contrapartida);
625 if (!ValidarCuenta(_CuentaGasto, tcMensaje.Trim() +
"No existe la contrapartida " + _CuentaGasto))
628 if (!ValidarCuenta(_CuentaServicios, tcMensaje.Trim() +
"No existe la cuenta de servicios " + _CuentaServicios))
631 if (!ValidarCuenta(_CuentaInmobilizado, tcMensaje.Trim() +
"No existe la cuenta de inmobilizado " + _CuentaInmobilizado))
635 if (!ValidarTipoIVA(_TipoIva, ref _CuentaIVA, ref tcMensaje))
639 if (!ValidarTipoIVA(_TipoIva2, ref _CuentaIVA2, ref tcMensaje))
643 if (!ValidarTipoIVA(_TipoIva3, ref _CuentaIVA3, ref tcMensaje))
647 if (!ValidarTipoIVA(_TipoIvaNoSujeto, ref _CuentaIVANoSujeto, ref tcMensaje))
651 if (!ValidarTipoIVA(_TipoIvaServicios, ref _CuentaIVAServicios, ref tcMensaje))
663 private void AddLineaIvaAsiento(ref
Asientos toAsiento, ref
string tcMensaje,
string tcCuenta)
673 Assert.AreEqual(llOk,
true, tcMensaje.Trim() +
"No se pudo generar el registro de IVA de la factura de compra " +
674 " (EMPRESA, FACTURA, PROVEEDOR) (" + _Empresa +
"," + _Factura +
"," + _Contrapartida +
") Mensaje de error: " + toAsiento._Mensaje_Error);
676 Assert.AreEqual(loAsiLin.
_DatosIva.
_IVA, loAsiLin.
_Debe - loAsiLin.
_Haber, tcMensaje.Trim() +
"El importe de la base imponible del registro de IVA no coincide con " +
677 "el importe de la línea del asiento.");
683 #region METODOS PUBLICOS 689 context.__Test_LoadRandomConfig();
721 if (!
string.IsNullOrWhiteSpace(_Mensaje))
722 _Mensaje = _Mensaje.Trim() + Environment.NewLine;
724 _Mensaje = _Mensaje + tcMensaje;
730 [Owner(Owners.Marc_Freixes),
732 Description(
"(EOS) Asiento de factura compra con 4 IVA's distintos + IVA No sujeto + cuenta otros servicios + cuenta inmobilizado estilo Contaplus"),
733 DeploymentItem(
"sage.50.exe")]
735 [TestCategory(
"Contabilidad")]
739 string lcMensaje =
"Test EOS Asiento factura de compra Contaplus.";
742 PreparacionDatos(lcMensaje);
745 Asientos loAsiento = NuevoAsiento();
747 Assert.Fail(lcMensaje.Trim() +
"No se ha podido dar número de asiento. Mensaje error " + loAsiento.
_Mensaje_Error);
749 GenerarLineasAsiento(ref loAsiento, ref lcMensaje);
750 llOk = loAsiento._Save();
753 if (!llOk && loAsiento != null)
754 Assert.Fail(lcMensaje.Trim() +
"Ha fallado la generación del asiento. Mensaje error " + loAsiento._Mensaje_Error);
756 ComprobacionDatosAsiento(loAsiento, lcMensaje);
759 if (!loAsiento._Delete())
760 Assert.Fail(lcMensaje.Trim() +
"No se ha podido borrar el asiento. Mensaje error " + loAsiento._Mensaje_Error);
765 #endregion METODOS PUBLICOS
bool _PropuestaAutomatica
Propuesta automática de impuestos
override void _Load()
Load
void AsientoEOSTest_CCR205005()
Prueba de EOS para el CCR 205005, Asiento de factura compra con 4 IVA's distintos + IVA No sujeto + c...
decimal _TotalDebe
total debe
BindingList< IAsientosDatosEOS > _DatosEOS
Datos EOS. Task 152326
IAsientosDatosIvaExento _DatosIvaExento
Iva Exento
void Mensaje(string tcMensaje)
Mensaje
bool _Load()
Realiza la carga de los datos del asiento en base a EMPRESA y NUMERO que tenga asignado el objeto...
void _DescargarDatos()
Descargamos los datos del asiento
FormBase _oForm
Referencia al posible formulario asociado a la clase de negocio
decimal _CuotaIVA
Cuota de IVA
decimal _Debe
Importe en la partida DEBE
BindingList< IAsientosDatosIva > _LineasIVA
Líneas IVA del asiento
int _Numero
Número de asiento.
string _Cuenta
Código de la cuenta
bool _New(eTipoOrigenAsiento teOrigenAsiento=eTipoOrigenAsiento.Defecto)
Nou asiento
void Tasks_After_EachTest()
Clase utilizada para realizar asientos contables.
Clase de negocio Proveedor
int _ObtenerNumeroAsiento()
Obtengo un número de asiento nuevo y actualizo el contador
KeyDiccionarioLenCampos
Clave del diccionario LenCampos
Interficie para los datos del ligro registro de ingresos y gastos (EOS)
IAsientosDatosIva _DatosIva
Iva relacionat amb la linia
string _Definicion
Definición de la cuenta.
decimal _BaseImponible
Base imponible
static void Tasks_Before_AllTests(TestContext context)
virtual bool _Existe_Registro()
Nos indica si existe el registro en la Base de Datos
eTipoOrigenAsiento
Enumeració per saber d'on ve l'assentament
decimal _Haber
Importe en la partida HABER
decimal _CuotaRecargo
Cuota de IVA
override string _Codigo
Campo clave del mantenimiento
Clase de negocio del mantenimiento de cuentas contables
void Tasks_Before_EachTest()
virtual string _Codigo
Valor del campo clave que
void _Load(string tcGuid_Id)
Aquest mètode ens carregarà el registre que tingui associat aquest Guid
static void Tasks_After_AllTests()
decimal _TotalHaber
total haber
string _CodigoIVA
Código de IVA
string _Cuenta
Código de la cuenta
bool _Save(bool tlRevisarTodaFactura=true)
Save
string _Mensaje_Error
Mensaje de error
DateTime _Fecha
Fecha del asiento.
string _Cta_IVA_Sop
_CTA_IVA_Sop (string)
Clase de prueba para los datos EOS en asientos /summary>