EOSTest.cs
1 using System;
2 using Microsoft.VisualStudio.TestTools.UnitTesting;
3 using Sage.ES.S50.UnitTest.Tools;
4 using sage.ew.articulo;
5 using sage.ew.contabilidad;
7 using sage.ew.global;
8 using sage.ew.interficies;
9 using sage.ew.formul;
10 using sage.ew.docscompra;
11 using System.Linq;
13 
14 namespace Sage.ES.S50.UnitTest.contabilidad
15 {
19  [TestClass()]
20  public class EOSTest
21  {
22 
23  #region PROPIEDADES
24  private Proveedor _oProveedor;
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 = "";
75  string _TipoIva = "";
79  string _TipoIva2 = "";
83  string _TipoIva3 = "";
87  string _TipoIvaNoSujeto = "";
91  string _TipoIvaServicios = "";
95  string _Factura = "";
99  string _Mensaje = "";
100 
101  public TestContext TestContext
102  {
103  get
104  {
105  return testContextInstance;
106  }
107  set
108  {
109  testContextInstance = value;
110  }
111  }
112 
113  private TestContext testContextInstance;
114 
115  #endregion
116 
117 
118  #region METODOS PARA LA CREACIÓN DE DATOS PARA EL TEST
119 
120  // Ya no es necesario crear los datos desde el Test, preparados en el S50 de la màquina donde se ejecutan los test.
121 
130  //private bool CrearCuentaEOS(string tcCuenta, string tcNombre, string tcConceptoEOS, string tcConceptoIRPF)
131  //{
132  // bool llOk = false;
133 
134  // using (Cuenta loCuenta = new Cuenta())
135  // {
136  // loCuenta._Codigo = tcCuenta;
137  // loCuenta._Load();
138  // if (!loCuenta._Existe_Registro())
139  // {
140  // loCuenta._New(tcCuenta, tcNombre);
141  // loCuenta._Load();
142  // }
143 
144  // loCuenta._Nombre = tcNombre;
145  // loCuenta._ConceptoEOS = tcConceptoEOS;
146  // loCuenta._ConceptoIRPF = tcConceptoIRPF;
147  // llOk = loCuenta._Save();
148  // }
149 
150  // return llOk;
151  //}
152 
157  //private bool CrearCuentas()
158  //{
159  // bool llOk = true;
160 
161  // // Gastos 600
162  // if (!CrearCuentaEOS(_CuentaGasto, "CUENTA GASTOS EOS", "01", "10"))
163  // llOk = false;
164 
165  // // servicios 629
166  // if (!CrearCuentaEOS(_CuentaServicios, "CUENTA SERVICIOS EOS", "02", "G03"))
167  // llOk = false;
168 
169  // // inmobilizado 265
170  // if (!CrearCuentaEOS(_CuentaInmobilizado, "CUENTA INMOBILIZADO EOS", "01", "10"))
171  // llOk = false;
172 
173  // return llOk;
174  //}
175 
182  //private bool ConfigurarCuentaContable(string tcCodigo, string tcNombre)
183  //{
184  // bool llOk = true;
185 
186  // using (Cuenta loCuenta = new Cuenta())
187  // {
188  // loCuenta._Codigo = tcCodigo;
189  // if (!loCuenta._Existe_Registro())
190  // llOk = loCuenta._New(tcCodigo, tcNombre);
191  // }
192 
193  // return llOk;
194  //}
195 
200  //private bool ConfigurarCuentasTipoIVANoSujeto()
201  //{
202  // bool llOk = true;
203 
204  // llOk = ConfigurarCuentaContable("47700777", "IVA REPERCUTIDOO ");
205  // llOk = llOk && ConfigurarCuentaContable("47200777", "IVA SOPORTADO");
206 
207  // llOk = llOk && ConfigurarCuentaContable("47701777", "RECARGO REPERCUTIDO");
208  // llOk = llOk && ConfigurarCuentaContable("47201777", "RECARGO SOPORTADO");
209 
210  // llOk = llOk && ConfigurarCuentaContable("47710777", "CUENTA _Pendevrep");
211  // llOk = llOk && ConfigurarCuentaContable("47711777", "CUENTA _Recrepcdev");
212 
213  // llOk = llOk && ConfigurarCuentaContable("47220777", "CUENTA _Pendedsop");
214  // llOk = llOk && ConfigurarCuentaContable("47221777", "CUENTA _Recsopcdev");
215 
216  // llOk = llOk && ConfigurarCuentaContable("47230777", "CUENTA _Cta_IVA_Sop_Nodeduc");
217  // llOk = llOk && ConfigurarCuentaContable("47240777", "CUENTA _Pendedsop_Nodeduc");
218 
219  // return llOk;
220  //}
221 
226  //private bool ConfigurarCuentasTipoIVAServicios()
227  //{
228  // bool llOk = true;
229 
230  // llOk = ConfigurarCuentaContable("47700778", "IVA REPERCUTIDOO ");
231  // llOk = llOk && ConfigurarCuentaContable("47200778", "IVA SOPORTADO");
232 
233  // llOk = llOk && ConfigurarCuentaContable("47701778", "RECARGO REPERCUTIDO");
234  // llOk = llOk && ConfigurarCuentaContable("47201778", "RECARGO SOPORTADO");
235 
236  // llOk = llOk && ConfigurarCuentaContable("47710778", "CUENTA _Pendevrep");
237  // llOk = llOk && ConfigurarCuentaContable("47711778", "CUENTA _Recrepcdev");
238 
239  // llOk = llOk && ConfigurarCuentaContable("47220778", "CUENTA _Pendedsop");
240  // llOk = llOk && ConfigurarCuentaContable("47221778", "CUENTA _Recsopcdev");
241 
242  // llOk = llOk && ConfigurarCuentaContable("47230778", "CUENTA _Cta_IVA_Sop_Nodeduc");
243  // llOk = llOk && ConfigurarCuentaContable("47240778", "CUENTA _Pendedsop_Nodeduc");
244 
245  // return llOk;
246  //}
247 
252  //private bool CrearIVANoSujeto()
253  //{
254  // bool llOk = ConfigurarCuentasTipoIVANoSujeto();
255  // if (!llOk)
256  // return false;
257 
258  // using (TipoIVA loTipoIva = new TipoIVA())
259  // {
260  // loTipoIva._Codigo = _TipoIvaNoSujeto;
261  // //if (!loTipoIva._Existe_Registro())
262  // //{
263  // // loTipoIva._New(loTipoIva._Codigo);
264  // // loTipoIva._Codigo = _TipoIvaNoSujeto;
265  // //}
266 
267  // loTipoIva._Nombre = "IVA NO Sujeto 0%";
268  // loTipoIva._IVA = 0M;
269  // loTipoIva._Recargo = 0M;
270  // loTipoIva._Cta_IVA_Rep = "47700777";
271  // loTipoIva._Cta_IVA_Sop = "47200777";
272  // loTipoIva._Cta_REC_Rep = "47701777";
273  // loTipoIva._Cta_REC_Sop = "47201777";
274 
275  // loTipoIva._Pendevrep = "47710777";
276  // loTipoIva._Recrepcdev = "47711777";
277  // loTipoIva._Pendedsop = "47220777";
278  // loTipoIva._Recsopcdev = "47221777";
279 
280  // loTipoIva._Cta_IVA_Sop_Nodeduc = "47230777";
281  // loTipoIva._Pendedsop_Nodeduc = "47240777";
282 
283  // loTipoIva._IVA_Deducible = true;
284  // loTipoIva._IVA_Exento = true;
285  // loTipoIva._Tipo = TipoIVA.TipoImpuesto.IVA;
286 
287  // llOk = loTipoIva._Save();
288  // }
289 
290  // return llOk;
291  //}
292 
297  //private bool CrearIVAServicios()
298  //{
299  // bool llOk = ConfigurarCuentasTipoIVAServicios();
300  // if (!llOk)
301  // return false;
302 
303  // using (TipoIVA loTipoIva = new TipoIVA())
304  // {
305  // loTipoIva._Codigo = _TipoIvaServicios;
306  // //if (!loTipoIva._Existe_Registro())
307  // //{
308  // // loTipoIva._New(loTipoIva._Codigo,);
309  // // loTipoIva._Load();
310  // //}
311 
312  // loTipoIva._Nombre = "IVA SERVICIOS";
313  // loTipoIva._IVA = 21M;
314  // loTipoIva._Recargo = 0M;
315  // loTipoIva._Cta_IVA_Rep = "47700778";
316  // loTipoIva._Cta_IVA_Sop = "47200778";
317  // loTipoIva._Cta_REC_Rep = "47701778";
318  // loTipoIva._Cta_REC_Sop = "47201778";
319 
320  // loTipoIva._Pendevrep = "47710778";
321  // loTipoIva._Recrepcdev = "47711778";
322  // loTipoIva._Pendedsop = "47220778";
323  // loTipoIva._Recsopcdev = "47221778";
324 
325  // loTipoIva._Cta_IVA_Sop_Nodeduc = "47230778";
326  // loTipoIva._Pendedsop_Nodeduc = "47240778";
327 
328  // loTipoIva._IVA_Deducible = true;
329  // loTipoIva._IVA_Exento = false;
330  // loTipoIva._Tipo = TipoIVA.TipoImpuesto.IVA;
331 
332  // llOk = loTipoIva._Save();
333  // }
334 
335  // return llOk;
336  //}
337 
342  //private bool CrearProveedor()
343  //{
344  // bool lbOk = true;
345 
346  // _oProveedor = new Proveedor();
347  // _oProveedor._Codigo = _Contrapartida = _oProveedor._ObtenerNuevoCodigo();
348  // _oProveedor._Nombre = $"Proveedor {_Contrapartida} para pruebas EOS";
349  // _oProveedor._Pais = "ES";
350  // _oProveedor._Recargo = true;
351  // _oProveedor._RECC = false;
352  // _oProveedor._RetencionTipo = "";
353  // _oProveedor._TipoIVA = "";
354  // _oProveedor._Contrapartida = "";
355  // _oProveedor._FormaPago = "";
356 
357  // lbOk = _oProveedor._Save();
358 
359  // return lbOk;
360  //}
361 
362  #endregion METODOS PARA LA CREACIÓN DE DATOS PARA EL TEST
363 
364 
365  #region METODOS PRIVADOS
366 
370  private void VaciarPropiedades()
371  {
372  _Contrapartida = "";
373  _CuentaInmobilizado = "";
374  _CuentaServicios = "";
375  _CuentaGasto = "";
376  _Factura = "";
377  _CuentaRetencion = "";
378  _CuentaIVA = "";
379  _TipoIva = "";
380  _CuentaIVA2 = "";
381  _TipoIva2 = "";
382  _CuentaIVA3 = "";
383  _TipoIva3 = "";
384  _TipoIvaNoSujeto = "";
385  _TipoIvaServicios = "";
386  }
387 
393  private bool PreparacionDatos(string tcMensaje)
394  {
395  int lnNumFacCompra = Convert.ToInt32(EW_GLOBAL._GetLenCampo(KeyDiccionarioLenCampos.wn_factcompra));
396 
397  // Indicamos las cuentas, tipos de IVA,... que hemos preparado en el S50 para este test
398  _Contrapartida = "40098777";
399  _CuentaGasto = "60000777";
400  _CuentaInmobilizado = "26500777";
401  _CuentaServicios = "62900777";
402  _Factura = "EO205005".PadLeft(lnNumFacCompra);
403  _TipoIva = "01";
404  _TipoIva2 = "02";
405  _TipoIva3 = "03";
406  _TipoIvaNoSujeto = "77";
407  _TipoIvaServicios = "78";
408 
409  // Ya no es necesario crear los datos desde el Test, preparados en el S50 de la màquina donde se ejecutan los test.
410  //CrearCuentas();
411  //CrearProveedor();
412  //CrearIVANoSujeto();
413  //CrearIVAServicios();
414 
415  bool llOk = ComprobarDatosPrueba(tcMensaje);
416  Assert.AreEqual(llOk, true, _Mensaje);
417 
418  return llOk;
419  }
420 
426  private void GenerarLineasAsiento(ref Asientos toAsiento, ref string tcMensaje)
427  {
428  // Primera línea con la cuenta de gastos para la parte del IVA 4%
429  IAsientosLinea loAsiLin = toAsiento._AddLinea();
430  loAsiLin._Cuenta = _CuentaGasto;
431  loAsiLin._Definicion = "Asiento prueba " + tcMensaje.Trim();
432  loAsiLin._Debe = 7095.55M;
433 
434  // Líneas de IVA 4% y su recargo (generadas con propuesta de impuestos)
435  AddLineaIvaAsiento(ref toAsiento, ref tcMensaje, _CuentaIVA);
436 
437  // Cambiamos la última línea que nos ha generado la propuesta y cambiamos la contrapartida por la cuenta de gasto otra vez, para tener la parte del IVA 10% por separado
438  loAsiLin = toAsiento._Lineas.LastOrDefault();
439  loAsiLin._Cuenta = _CuentaGasto;
440  loAsiLin._Debe = 788.35M;
441  loAsiLin._Haber = 0.00M;
442 
443  // Líneas de IVA 10% y su recargo (generadas con propuesta de impuestos)
444  AddLineaIvaAsiento(ref toAsiento, ref tcMensaje, _CuentaIVA2);
445 
446  // Cambiamos la última línea que nos ha generado la propuesta y cambiamos la contrapartida por la cuenta de gasto otra vez, para tener la parte del IVA 21% por separado
447  loAsiLin = toAsiento._Lineas.LastOrDefault();
448  loAsiLin._Cuenta = _CuentaGasto;
449  loAsiLin._Debe = 221.00M;
450  loAsiLin._Haber = 0.00M;
451 
452  // Líneas de IVA 21% y su recargo (generadas con propuesta de impuestos)
453  AddLineaIvaAsiento(ref toAsiento, ref tcMensaje, _CuentaIVA3);
454 
455  // Cambiamos la última línea que nos ha generado la propuesta y cambiamos la contrapartida por la cuenta de OTROS SERVICIOS
456  loAsiLin = toAsiento._Lineas.LastOrDefault();
457  loAsiLin._Cuenta = _CuentaServicios;
458  loAsiLin._Debe = 64.53M;
459  loAsiLin._Haber = 0.00M;
460 
461  // Línea de IVA 21% sin recargo (generado con propuesta de impuestos)
462  AddLineaIvaAsiento(ref toAsiento, ref tcMensaje, _CuentaIVAServicios);
463 
464  // Cambiamos la última línea que nos ha generado la propuesta y cambiamos la contrapartida por la cuenta de INMOBILIZADO
465  loAsiLin = toAsiento._Lineas.LastOrDefault();
466  loAsiLin._Cuenta = _CuentaInmobilizado;
467  loAsiLin._Debe = 64.34M;
468  loAsiLin._Haber = 0.00M;
469 
470  // Añadimos la contrapartida (Proveedor)
471  loAsiLin = toAsiento._AddLinea();
472  loAsiLin._Cuenta = _Contrapartida;
473  loAsiLin._Haber = 8714.40M;
474 
475  // Línea de IVA NO SUJETO
476  loAsiLin._DatosIvaExento._TipoIva = _TipoIvaNoSujeto;
477  loAsiLin._DatosIvaExento._Importe = 64.34M;
478  loAsiLin._Definicion = "Asiento prueba " + tcMensaje.Trim();
479  loAsiLin._DatosIvaExento._Save();
480 
481  // Nos aseguramos de no tener datos EOS antes de realizar el Save, para que los proponga
482  if (toAsiento._DatosEOS != null)
483  {
484  for (int i = toAsiento._DatosEOS.Count() - 1; i >= 0; i--)
485  toAsiento._DatosEOS[i]._Delete();
486  }
487  }
488 
494  private void ComprobacionDatosAsiento(Asientos toAsiento, string tcMensaje)
495  {
496  Assert.IsNotNull(toAsiento, tcMensaje.Trim() + "No se ha generado el asiento.");
497  if (toAsiento != null)
498  {
499  // Asiento descuadrado ?
500  Assert.AreEqual(0, toAsiento._TotalDebe - toAsiento._TotalHaber, tcMensaje.Trim() + "Asiento descuadrado. Descuadre = " + (toAsiento._TotalDebe - toAsiento._TotalHaber).ToString());
501  Assert.AreEqual(8714.40M, toAsiento._TotalDebe, tcMensaje.Trim() + "Importe incorrecto asiento");
502  }
503 
504  // Si la generación del asiento ha ido bien, descargo el asiento y lo vuelvo a cargar para comprobar que está bien guardada la factura
505  int lnNumAsi = toAsiento._Numero;
506  toAsiento._DescargarDatos();
507  toAsiento._Load(_Empresa, lnNumAsi);
508  if (toAsiento._LineasIVA.Count < 4)
509  Assert.Fail(tcMensaje.Trim() + "Ha fallado la generación del asiento. No se han guardado los IVA's. Mensaje error " + toAsiento._Mensaje_Error);
510 
511  // Comprobación datos EOS
512  if (toAsiento._DatosEOS != null && toAsiento._DatosEOS.Count == 5)
513  {
514  foreach (IAsientosDatosEOS loItemEOS in toAsiento._DatosEOS)
515  {
516  if (loItemEOS._CodigoIVA == _TipoIva)
517  {
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");
521  }
522  else if (loItemEOS._CodigoIVA == _TipoIva2)
523  {
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");
527  }
528  else if (loItemEOS._CodigoIVA == _TipoIva3)
529  {
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");
533  }
534  else if (loItemEOS._CodigoIVA == _TipoIvaServicios)
535  {
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");
539  }
540  else if (loItemEOS._CodigoIVA == _TipoIvaNoSujeto)
541  {
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");
545  }
546  }
547  }
548  else
549  Assert.Fail(tcMensaje.Trim() + "Ha fallado la generación del asiento. No se han guardado los datos EOS. Mensaje error " + toAsiento._Mensaje_Error);
550  }
551 
556  private Asientos NuevoAsiento()
557  {
558  Asientos loAsiento = new Asientos();
559  loAsiento._New(_Empresa, eTipoOrigenAsiento.EntradaAsientos); // El origen debe ser des de asientos
560  loAsiento._oForm = new FormBase(); // Necesito un formulario para simular que lo estoy haciendo des de asientos
561  loAsiento._Numero = loAsiento._ObtenerNumeroAsiento();
562  loAsiento._PropuestaAutomatica = true; // Activamos la propuesta automática de impuestos
563  loAsiento._Fecha = new DateTime(2021, 6, 20); // Ponemos fecha del 2021, ya que en el S50 donde se prueba es el último ejercicio creado
564 
565  return loAsiento;
566  }
567 
574  private bool ValidarCuenta(string tcCuenta, string tcMensaje)
575  {
576  bool llOk = true;
577 
578  // Verifico que tengo la cuenta en la bd.
579  if (!string.IsNullOrWhiteSpace(tcCuenta))
580  {
581  using (Cuenta loCuenta = new Cuenta())
582  {
583  loCuenta._Codigo = tcCuenta;
584  loCuenta._Load();
585  llOk = loCuenta._Existe_Registro();
586  if (!llOk)
587  Mensaje(tcMensaje.Trim());
588  }
589  }
590 
591  return llOk;
592  }
593 
599  private bool ValidarTipoIVA(string tcTipoIVA, ref string tcCuentaIVA, ref string tcMensaje)
600  {
601  bool llOk = true;
602 
603  using (TipoIVA loTipoIva = new TipoIVA())
604  {
605  loTipoIva._Codigo = tcTipoIVA;
606  loTipoIva._Load();
607  llOk = loTipoIva._Existe_Registro();
608  if (!llOk)
609  Mensaje(tcMensaje.Trim() + "No existe el tipo de IVA " + tcTipoIVA + " para el test EOS");
610  else
611  tcCuentaIVA = loTipoIva._Cta_IVA_Sop;
612  }
613 
614  return llOk;
615  }
616 
621  private bool ComprobarDatosPrueba(string tcMensaje)
622  {
623  bool llOk = ValidarCuenta(_Contrapartida, tcMensaje.Trim() + "No existe el proveedor " + _Contrapartida);
624 
625  if (!ValidarCuenta(_CuentaGasto, tcMensaje.Trim() + "No existe la contrapartida " + _CuentaGasto))
626  llOk = false;
627 
628  if (!ValidarCuenta(_CuentaServicios, tcMensaje.Trim() + "No existe la cuenta de servicios " + _CuentaServicios))
629  llOk = false;
630 
631  if (!ValidarCuenta(_CuentaInmobilizado, tcMensaje.Trim() + "No existe la cuenta de inmobilizado " + _CuentaInmobilizado))
632  llOk = false;
633 
634  // Verifico que tengo el TIPOIVA en la bd.
635  if (!ValidarTipoIVA(_TipoIva, ref _CuentaIVA, ref tcMensaje))
636  llOk = false;
637 
638  // Verifico que tengo el TIPOIVA2 en la bd.
639  if (!ValidarTipoIVA(_TipoIva2, ref _CuentaIVA2, ref tcMensaje))
640  llOk = false;
641 
642  // Verifico que tengo el TIPOIVA3 en la bd.
643  if (!ValidarTipoIVA(_TipoIva3, ref _CuentaIVA3, ref tcMensaje))
644  llOk = false;
645 
646  // Verifico que tengo el TIPOIVANOSUJETO en la bd.
647  if (!ValidarTipoIVA(_TipoIvaNoSujeto, ref _CuentaIVANoSujeto, ref tcMensaje))
648  llOk = false;
649 
650  // Verifico que tengo el TIPOIVASERVICIOS en la bd.
651  if (!ValidarTipoIVA(_TipoIvaServicios, ref _CuentaIVAServicios, ref tcMensaje))
652  llOk = false;
653 
654  return llOk;
655  }
656 
663  private void AddLineaIvaAsiento(ref Asientos toAsiento, ref string tcMensaje, string tcCuenta)
664  {
665  bool llOk = false;
666  IAsientosLinea loAsiLin = toAsiento._AddLinea();
667  loAsiLin._Cuenta = tcCuenta;
668  loAsiLin._DatosIva._Fecha = toAsiento._Fecha;
669  loAsiLin._DatosIva._Cuenta = _Contrapartida;
670  loAsiLin._Factura = _Factura;
671  llOk = loAsiLin._DatosIva._Save();
672 
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);
675 
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.");
678  }
679 
680  #endregion
681 
682 
683  #region METODOS PUBLICOS
684 
685  // Usar ClassInitialize para ejecutar código antes de comenzar a ejecutar todas las pruebas, se ejecuta una sola vez.
686  [ClassInitialize()]
687  public static void Tasks_Before_AllTests(TestContext context)
688  {
689  context.__Test_LoadRandomConfig();
690 
691  return;
692  }
693 
694  // Usar TestInitialize para ejecutar código antes de ejecutar cada prueba
695  [TestInitialize()]
696  public void Tasks_Before_EachTest()
697  {
698  return;
699  }
700 
701  // Usar ClassCleanup para ejecutar código después de finalizar la ejecución de todas las pruebas, se ejecuta una sola vez.
702  [ClassCleanup()]
703  public static void Tasks_After_AllTests()
704  {
705  return;
706  }
707 
708  // Usar TestCleanup para ejecutar código después de que ejecutar cada prueba
709  [TestCleanup()]
710  public void Tasks_After_EachTest()
711  {
712  return;
713  }
714 
719  public void Mensaje(string tcMensaje)
720  {
721  if (!string.IsNullOrWhiteSpace(_Mensaje))
722  _Mensaje = _Mensaje.Trim() + Environment.NewLine;
723 
724  _Mensaje = _Mensaje + tcMensaje;
725  }
726 
730  [Owner(Owners.Marc_Freixes),
731  TestMethod(),
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")]
734  [Priority(1)]
735  [TestCategory("Contabilidad")]
737  {
738  bool llOk = false;
739  string lcMensaje = "Test EOS Asiento factura de compra Contaplus.";
740 
742  PreparacionDatos(lcMensaje);
743 
745  Asientos loAsiento = NuevoAsiento();
746  if (loAsiento._Numero < 0)
747  Assert.Fail(lcMensaje.Trim() + "No se ha podido dar número de asiento. Mensaje error " + loAsiento._Mensaje_Error);
748 
749  GenerarLineasAsiento(ref loAsiento, ref lcMensaje);
750  llOk = loAsiento._Save();
751 
753  if (!llOk && loAsiento != null)
754  Assert.Fail(lcMensaje.Trim() + "Ha fallado la generación del asiento. Mensaje error " + loAsiento._Mensaje_Error);
755  else
756  ComprobacionDatosAsiento(loAsiento, lcMensaje);
757 
758  // Eliminar el asiento
759  if (!loAsiento._Delete())
760  Assert.Fail(lcMensaje.Trim() + "No se ha podido borrar el asiento. Mensaje error " + loAsiento._Mensaje_Error);
761  }
762 
763 
764 
765  #endregion METODOS PUBLICOS
766  }
767 }
bool _PropuestaAutomatica
Propuesta automática de impuestos
Definition: Asientos.cs:1414
override void _Load()
Load
void AsientoEOSTest_CCR205005()
Prueba de EOS para el CCR 205005, Asiento de factura compra con 4 IVA&#39;s distintos + IVA No sujeto + c...
Definition: EOSTest.cs:736
decimal _TotalDebe
total debe
Definition: Asientos.cs:1119
BindingList< IAsientosDatosEOS > _DatosEOS
Datos EOS. Task 152326
Definition: Asientos.cs:1319
IAsientosDatosIvaExento _DatosIvaExento
Iva Exento
void Mensaje(string tcMensaje)
Mensaje
Definition: EOSTest.cs:719
bool _Load()
Realiza la carga de los datos del asiento en base a EMPRESA y NUMERO que tenga asignado el objeto...
Definition: Asientos.cs:1716
void _DescargarDatos()
Descargamos los datos del asiento
Definition: Asientos.cs:2836
FormBase _oForm
Referencia al posible formulario asociado a la clase de negocio
Definition: Asientos.cs:988
decimal _Debe
Importe en la partida DEBE
BindingList< IAsientosDatosIva > _LineasIVA
Líneas IVA del asiento
Definition: Asientos.cs:1089
int _Numero
Número de asiento.
Definition: Asientos.cs:650
string _Cuenta
Código de la cuenta
bool _New(eTipoOrigenAsiento teOrigenAsiento=eTipoOrigenAsiento.Defecto)
Nou asiento
Definition: Asientos.cs:1650
Clase utilizada para realizar asientos contables.
Definition: Asientos.cs:36
Clase de negocio Proveedor
Definition: Proveedor.cs:33
int _ObtenerNumeroAsiento()
Obtengo un número de asiento nuevo y actualizo el contador
Definition: Asientos.cs:4092
KeyDiccionarioLenCampos
Clave del diccionario LenCampos
Definition: Diccionarios.cs:11
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.
static void Tasks_Before_AllTests(TestContext context)
Definition: EOSTest.cs:687
virtual bool _Existe_Registro()
Nos indica si existe el registro en la Base de Datos
Definition: clsEwBase.cs:3649
eTipoOrigenAsiento
Enumeració per saber d&#39;on ve l&#39;assentament
decimal _Haber
Importe en la partida HABER
override string _Codigo
Campo clave del mantenimiento
Clase de negocio del mantenimiento de cuentas contables
virtual string _Codigo
Valor del campo clave que
Definition: clsEwBase.cs:2513
Formulario base de Eurowin
Definition: clsFormul.cs:400
void _Load(string tcGuid_Id)
Aquest mètode ens carregarà el registre que tingui associat aquest Guid
Definition: clsEwBase.cs:3921
decimal _TotalHaber
total haber
Definition: Asientos.cs:1130
string _Cuenta
Código de la cuenta
bool _Save(bool tlRevisarTodaFactura=true)
Save
string _Mensaje_Error
Mensaje de error
Definition: Asientos.cs:881
DateTime _Fecha
Fecha del asiento.
Definition: Asientos.cs:659
interficie asiento linia
string _Cta_IVA_Sop
_CTA_IVA_Sop (string)
Definition: clsTipoIVA.cs:166
Clase de prueba para los datos EOS en asientos /summary>
Definition: EOSTest.cs:20