AsientosFacturasVentaGeneradorTest.cs
1 using sage.ew.contabilidad;
2 using sage.ew.articulo;
3 using sage.ew.ewbase;
4 using sage.ew.docscompra;
5 using sage.ew.cliente;
6 using sage.ew.db;
7 using sage.ew.global;
8 using System.Data;
9 using sage.ew.interficies;
10 using Microsoft.VisualStudio.TestTools.UnitTesting;
11 using System;
12 
13 
14 namespace Sage.ES.S50.UnitTest.Contabilidad
15 {
19  //[TestClass()]
20  //public class AsientosFacturasVentaGeneradorTest
21  //{
22  // #region PROPIEDADES
23 
24  // // Cliente a utilizar en los tests de asientos de facturas de compra
25  // string _Cliente = "43070000";
26 
27  // // Datos del tipo de IVA normal a utilizar en la prueba
28  // string _TipoIva = "XX";
29  // decimal _PrcIva = 21;
30  // decimal _PrcRecEquiv = 1;
31 
32  // // Datos del tipo de IVA EXENTO a utilizar en la prueba
33  // string _TipoIvaEx = "XE";
34 
35  // // Datos del tipo de retención a utilizar en la prueba
36  // string _TipoRet = "XX";
37  // decimal _PrcReten = 15;
38 
39  // // Empresa en la que generar el asiento
40  // string _Empresa = "01";
41 
42  // // Factura de compra a generar el asiento
43  // string _Factura = "";
44 
45  // // Base de la linia de tipoiva
46  // decimal _BaseIva = 0;
47 
48  // // Importe de la contrapartida
49  // decimal _ImpContrapartida = 0;
50 
51  // // Cuenta contrapartida
52  // string _Contrapartida = "70000001";
53 
54 
55  // public TestContext TestContext
56  // {
57  // get
58  // {
59  // return testContextInstance;
60  // }
61  // set
62  // {
63  // testContextInstance = value;
64  // }
65  // }
66  // private TestContext testContextInstance;
67 
68  // #endregion
69 
70 
71  // // Usar ClassInitialize para ejecutar código antes de comenzar a ejecutar todas las pruebas, se ejecuta una sola vez.
72  // [ClassInitialize()]
73  // public static void Tasks_Before_AllTests(TestContext context)
74  // {
75 
76  // context.__Test_LoadRandomConfig();
77  // // Cuentas para el tipo de IVA normal.
78 
79  // Cuenta loCuenta = new Cuenta();
80  // loCuenta._Codigo = "47700031";
81  // if (!loCuenta._Existe_Registro())
82  // loCuenta._New("47700031", "IVA REPERCUTIDO");
83  // else
84  // {
85  // loCuenta._Nombre = "IVA REPERCUTIDO";
86  // loCuenta._Save();
87  // }
88 
89  // loCuenta._Codigo = "47700036";
90  // if (!loCuenta._Existe_Registro())
91  // loCuenta._New("47700036", "RECARGO EQUIV. REPERCUTIDO");
92  // else
93  // {
94  // loCuenta._Nombre = "RECARGO EQUIV. REPERCUTIDO";
95  // loCuenta._Save();
96  // }
97 
98  // loCuenta._Codigo = "47200031";
99  // if (!loCuenta._Existe_Registro())
100  // loCuenta._New("47200031", "IVA SOPORTADO");
101  // else
102  // {
103  // loCuenta._Nombre = "IVA SOPORTADO";
104  // loCuenta._Save();
105  // }
106 
107  // loCuenta._Codigo = "47200036";
108  // if (!loCuenta._Existe_Registro())
109  // loCuenta._New("47200036", "RECARGO EQUIV. SOPORTADO");
110  // else
111  // {
112  // loCuenta._Nombre = "RECARGO EQUIV. SOPORTADO";
113  // loCuenta._Save();
114  // }
115 
116  // // Cuentas de criterio caja necesarias para dar de alta el código de TIPO de IVA, sino no hará el _Save()
117  // loCuenta._Codigo = "47710031";
118  // if (!loCuenta._Existe_Registro())
119  // loCuenta._New("47710031", "IVA REPERCUTIDO CRITERIO CAJA");
120  // else
121  // {
122  // loCuenta._Nombre = "IVA REPERCUTIDO CRITERIO CAJA";
123  // loCuenta._Save();
124  // }
125 
126  // loCuenta._Codigo = "47710036";
127  // if (!loCuenta._Existe_Registro())
128  // loCuenta._New("47710036", "RECARGO EQUIV. REPERCUTIDO CRITERIO CAJA");
129  // else
130  // {
131  // loCuenta._Nombre = "RECARGO EQUIV. REPERCUTIDO CRITERIO CAJA";
132  // loCuenta._Save();
133  // }
134 
135  // loCuenta._Codigo = "47210031";
136  // if (!loCuenta._Existe_Registro())
137  // loCuenta._New("47210031", "IVA SOPORTADO CRITERIO CAJA");
138  // else
139  // {
140  // loCuenta._Nombre = "IVA SOPORTADO CRITERIO CAJA";
141  // loCuenta._Save();
142  // }
143 
144  // loCuenta._Codigo = "47210036";
145  // if (!loCuenta._Existe_Registro())
146  // loCuenta._New("47210036", "RECARGO EQUIV. SOPORTADO CRITERIO CAJA");
147  // else
148  // {
149  // loCuenta._Nombre = "RECARGO EQUIV. SOPORTADO CRITERIO CAJA";
150  // loCuenta._Save();
151  // }
152 
153 
154  // // CUENTAS PARA EL TIPO DE IVA EXENTO
155 
156  // loCuenta._Codigo = "47700091";
157  // if (!loCuenta._Existe_Registro())
158  // loCuenta._New("47700091", "IVA REPERCUTIDO");
159  // else
160  // {
161  // loCuenta._Nombre = "IVA REPERCUTIDO";
162  // loCuenta._Save();
163  // }
164 
165  // loCuenta._Codigo = "47700096";
166  // if (!loCuenta._Existe_Registro())
167  // loCuenta._New("47700096", "RECARGO EQUIV. REPERCUTIDO");
168  // else
169  // {
170  // loCuenta._Nombre = "RECARGO EQUIV. REPERCUTIDO";
171  // loCuenta._Save();
172  // }
173 
174  // loCuenta._Codigo = "47200091";
175  // if (!loCuenta._Existe_Registro())
176  // loCuenta._New("47200091", "IVA SOPORTADO");
177  // else
178  // {
179  // loCuenta._Nombre = "IVA SOPORTADO";
180  // loCuenta._Save();
181  // }
182 
183  // loCuenta._Codigo = "47200096";
184  // if (!loCuenta._Existe_Registro())
185  // loCuenta._New("47200096", "RECARGO EQUIV. SOPORTADO");
186  // else
187  // {
188  // loCuenta._Nombre = "RECARGO EQUIV. SOPORTADO";
189  // loCuenta._Save();
190  // }
191 
192  // // Cuentas de criterio caja necesarias para dar de alta el código de TIPO de IVA, sino no hará el _Save()
193  // loCuenta._Codigo = "47710091";
194  // if (!loCuenta._Existe_Registro())
195  // loCuenta._New("47710091", "IVA REPERCUTIDO CRITERIO CAJA");
196  // else
197  // {
198  // loCuenta._Nombre = "IVA REPERCUTIDO CRITERIO CAJA";
199  // loCuenta._Save();
200  // }
201 
202  // loCuenta._Codigo = "47710096";
203  // if (!loCuenta._Existe_Registro())
204  // loCuenta._New("47710096", "RECARGO EQUIV. REPERCUTIDO CRITERIO CAJA");
205  // else
206  // {
207  // loCuenta._Nombre = "RECARGO EQUIV. REPERCUTIDO CRITERIO CAJA";
208  // loCuenta._Save();
209  // }
210 
211  // loCuenta._Codigo = "47210091";
212  // if (!loCuenta._Existe_Registro())
213  // loCuenta._New("47210091", "IVA SOPORTADO CRITERIO CAJA");
214  // else
215  // {
216  // loCuenta._Nombre = "IVA SOPORTADO CRITERIO CAJA";
217  // loCuenta._Save();
218  // }
219 
220  // loCuenta._Codigo = "47210096";
221  // if (!loCuenta._Existe_Registro())
222  // loCuenta._New("47210096", "RECARGO EQUIV. SOPORTADO CRITERIO CAJA");
223  // else
224  // {
225  // loCuenta._Nombre = "RECARGO EQUIV. SOPORTADO CRITERIO CAJA";
226  // loCuenta._Save();
227  // }
228 
229 
230 
231 
232  // // Me aseguro de que las cuentas contables del TIPO de RETENCION que utilizaré existan.
233  // loCuenta._Codigo = "47300001";
234  // if (!loCuenta._Existe_Registro())
235  // loCuenta._New("47300001", "RETENCION SOPORTADA");
236  // else
237  // {
238  // loCuenta._Nombre = "RETENCION SOPORTADA";
239  // loCuenta._Save();
240  // }
241 
242  // loCuenta._Codigo = "47510001";
243  // if (!loCuenta._Existe_Registro())
244  // loCuenta._New("47510001", "RETENCION REPERCUTIDA");
245  // else
246  // {
247  // loCuenta._Nombre = "RETENCION REPERCUTIDA";
248  // loCuenta._Save();
249  // }
250 
251  // // Me aseguro de que la cuenta del banco del proveedor exista
252  // loCuenta._Codigo = "57200001";
253  // if (!loCuenta._Existe_Registro())
254  // loCuenta._New("57200001", "BANCO");
255  // else
256  // {
257  // loCuenta._Nombre = "BANCO";
258  // loCuenta._Save();
259  // }
260  // }
261 
262 
263  // // Usar TestInitialize para ejecutar código antes de ejecutar cada prueba
264  // [TestInitialize()]
265  // public void Tasks_Before_EachTest()
266  // {
267  // // Me aseguro de tener estas variables.
268  // sage.ew.global.EW_GLOBAL.ValorEnClave_VarGlob("wl_sage50", true);
269  // sage.ew.global.EW_GLOBAL.ValorEnClave_VarGlob("wc_usuario", "SUPERVISOR");
270  // EW_GLOBAL._Empresa._TrabajaEOS = true;
271 
272  // // Coger la empresa de la configuracion
273  // this._Empresa = Convert.ToString(EW_GLOBAL._GetVariable("wc_empresa"));
274  // }
275 
276 
277  // // Usar ClassCleanup para ejecutar código después de finalizar la ejecución de todas las pruebas, se ejecuta una sola vez.
278  // [ClassCleanup()]
279  // public static void Tasks_After_AllTests()
280  // {
281 
282  // }
283 
284 
285  // // Usar TestCleanup para ejecutar código después de que ejecutar cada prueba
286  // [TestCleanup()]
287  // public void Tasks_After_EachTest()
288  // {
289 
290  // }
291 
292 
293  // /// <summary>
294  // /// Crea en la base de datos los datos generales que seran necesarios para todas las pruebas.
295  // /// </summary>
296  // public void PrepararDatosPrueba()
297  // {
298 
299  // Cuenta loCuenta = new Cuenta();
300 
301  // // Me aseguro de que la cuenta contable de contrapartida exista.
302  // if (!string.IsNullOrWhiteSpace(this._Contrapartida))
303  // {
304  // loCuenta._Codigo = this._Contrapartida;
305  // if (!loCuenta._Existe_Registro())
306  // loCuenta._New(this._Contrapartida, "VENTA DE MERCADERIAS");
307  // else
308  // {
309  // loCuenta._Nombre = "VENTA DE MERCADERIAS";
310  // loCuenta._Save();
311  // }
312  // }
313 
314 
315  // // Me aseguro de que la cuenta contable del proveedor exista
316  // if (!string.IsNullOrWhiteSpace(this._Cliente))
317  // {
318  // loCuenta._Codigo = this._Cliente;
319  // if (!loCuenta._Existe_Registro())
320  // loCuenta._New(this._Cliente, "Cliente " + this._Cliente + " para pruebas");
321  // else
322  // {
323  // loCuenta._Nombre = "Cliente " + this._Cliente + " para pruebas";
324  // loCuenta._Save();
325  // }
326  // }
327 
328 
329  // // Creo el tipo de IVA con el que trabajaré, si ya existe lo sobreescribo.
330  // TipoIVA loTipoIva = new TipoIVA();
331  // loTipoIva._Codigo = this._TipoIva;
332  // if (!loTipoIva._Existe_Registro())
333  // loTipoIva._New( this._TipoIva);
334 
335 
336  // loTipoIva._Nombre = "Tipo de IVA " + this._PrcIva.ToString().Trim() + "% y " + this._PrcRecEquiv.ToString().Trim() + "% recequiv para pruebas";
337  // loTipoIva._IVA = this._PrcIva;
338  // loTipoIva._Recargo = this._PrcRecEquiv;
339  // loTipoIva._IVA_Exento = false;
340  // loTipoIva._Cta_IVA_Rep = "47700031";
341  // loTipoIva._Cta_REC_Rep = "47700036";
342  // loTipoIva._Cta_IVA_Sop = "47200031";
343  // loTipoIva._Cta_REC_Sop = "47200036";
344 
345  // loTipoIva._Pendevrep = "47710031";
346  // loTipoIva._Recrepcdev = "47710036";
347  // loTipoIva._Pendedsop = "47210031";
348  // loTipoIva._Recsopcdev = "47210036";
349 
350  // loTipoIva._Save();
351 
352 
353  // // Creo el tipo de IVA EXENTO con el que trabajaré, si ya existe lo sobreescribo.
354  // TipoIVA loTipoIva2 = new TipoIVA();
355  // loTipoIva2._Codigo = this._TipoIvaEx;
356  // if (!loTipoIva2._Existe_Registro())
357  // loTipoIva2._New(this._TipoIvaEx);
358 
359 
360  // loTipoIva2._Nombre = "Tipo de IVA EXENTO para pruebas";
361  // loTipoIva2._IVA = 0;
362  // loTipoIva2._Recargo = 0;
363  // loTipoIva2._IVA_Exento = true;
364 
365  // loTipoIva2._Cta_IVA_Rep = "47700091";
366  // loTipoIva2._Cta_REC_Rep = "47700096";
367  // loTipoIva2._Cta_IVA_Sop = "47200091";
368  // loTipoIva2._Cta_REC_Sop = "47200096";
369 
370  // loTipoIva2._Pendevrep = "47710091";
371  // loTipoIva2._Recrepcdev = "47710096";
372  // loTipoIva2._Pendedsop = "47210091";
373  // loTipoIva2._Recsopcdev = "47210096";
374 
375  // loTipoIva2._Save();
376 
377 
378  // // Creo el tipo de RETENCION con el que trabajaré, si ya existe lo sobreescribo.
379  // TipoRetencion loTipoRet = new TipoRetencion();
380  // loTipoRet._Codigo = this._TipoRet;
381  // if (!loTipoRet._Existe_Registro())
382  // loTipoRet._New(this._TipoRet);
383 
384  // loTipoRet._Nombre = "Retencion " + this._PrcReten.ToString().Trim() + "% para pruebas";
385  // loTipoRet._Retencion = this._PrcReten;
386  // loTipoRet._CTA_RE_SOP = "47300001";
387  // loTipoRet._CTA_RE_REP = "47510001";
388  // loTipoRet._Save();
389 
390 
391  // }
392 
393 
394  // /// <summary>
395  // /// Preparar los datos necesarios para la prueba y pone en el cliente los parámetros recibidos.
396  // /// </summary>
397  // /// <param name="tlAplicarRetencion">Aplicar retención (si/no) en el cliente de prueba</param>
398  // /// <param name="loTipoRetencion">Tipo de retención a poner en el cliente de prueba.</param>
399  // /// <param name="tlRecargoEquiv">Recargo de equivalencia (si/no) a poner en el cliente de prueba</param>
400  // /// <param name="tnProntoPago">% de pronto pago a poner en el cliente de prueba</param>
401  // /// <param name="tcPais">Código país.</param>
402  // /// <param name="tcTipoIva">Código tipo IVA</param>
403  // /// <param name="toTipoClienter">Tipo cliente (nacional, comuntiario, extracomunitario)</param>
404  // /// <param name="tnRecFinan">% de recargo financiero para el cliente de la prueba</param>
405  // public void ConfigurarCliente(bool tlAplicarRetencion, sage.ew.cliente.Cliente.TipoRetencion loTipoRetencion, bool tlRecargoEquiv, decimal tnProntoPago, string tcPais, string tcTipoIva, sage.ew.cliente.Cliente.TipoCliente toTipoCliente, decimal tnRecFinan)
406  // {
407  // // Creo el cliente con el que trabajaré, si ya existe lo sobreescribo.
408  // sage.ew.cliente.Cliente loCliente = new sage.ew.cliente.Cliente();
409  // loCliente._Codigo = this._Cliente;
410  // if (!loCliente._Existe_Registro())
411  // DB.SQLExec("insert into " + DB.SQLDatabase("GESTION", "CLIENTES") + " (codigo,nombre) values (" + DB.SQLString(loCliente._Codigo) + ", " + DB.SQLString("Cliente " + this._Cliente + " para pruebas") + ")");
412 
413  // loCliente._Nombre = "Cliente " + this._Cliente + " para pruebas";
414  // loCliente._Pais = tcPais;
415  // loCliente._ProntoPago = tnProntoPago;
416  // loCliente._RECC = false;
417  // loCliente._Recargo = tlRecargoEquiv;
418  // loCliente._RetencionFiscal = tlAplicarRetencion;
419  // loCliente._RetencionBaseFactura = loTipoRetencion;
420  // loCliente._RetencionTipo = tlAplicarRetencion ? this._TipoRet : "";
421  // loCliente._TipoIVA = tcTipoIva;
422  // loCliente._TipoCliente = toTipoCliente;
423  // loCliente._RECC = false; // Siempre a false pues actualmente en el proceso interviene FOX y no se podria hacer la prueba.
424  // loCliente._Contrapartida = "";
425  // loCliente._RecargoFinanciero = tnRecFinan;
426  // loCliente._Save();
427  // }
428 
429 
430  // /// <summary>
431  // /// Comprobar datos propios de la prueba
432  // /// </summary>
433  // public void ComprobarDatosPrueba()
434  // {
435 
436  // // Verifico que tengo el cliente en la bd.
437  // if (!string.IsNullOrWhiteSpace(this._Cliente))
438  // {
439  // sage.ew.cliente.Cliente loCliente = new sage.ew.cliente.Cliente();
440  // loCliente._Codigo = this._Cliente;
441  // loCliente._Load();
442  // Assert.AreEqual(ewMante._EstadosMantenimiento.MostrandoRegistro, loCliente._Estado, "No existe el cliente " + this._Cliente);
443  // }
444 
445  // // Verifico que tengo la contrapartida en la bd.
446  // if (!string.IsNullOrWhiteSpace(this._Contrapartida))
447  // {
448  // Cuenta loCuenta = new Cuenta();
449  // loCuenta._Codigo = this._Contrapartida;
450  // loCuenta._Load();
451  // Assert.AreEqual(ewMante._EstadosMantenimiento.MostrandoRegistro, loCuenta._Estado, "No existe la contrapartida " + this._Contrapartida);
452  // }
453 
454  // // Verifico que tengo el TIPOIVA en la bd.
455  // TipoIVA loTipoIva = new TipoIVA();
456  // loTipoIva._Codigo = this._TipoIva;
457  // loTipoIva._Load();
458  // Assert.AreEqual(ewMante._EstadosMantenimiento.MostrandoRegistro, loTipoIva._Estado, "No existe el tipo de IVA " + this._TipoIva + " para el test AsientosFacturasVentaGeneradorTest");
459 
460 
461 
462  // // Verifico que tengo el TIPOIVA exento en la bd.
463  // TipoIVA loTipoIva2 = new TipoIVA();
464  // loTipoIva2._Codigo = this._TipoIvaEx;
465  // loTipoIva2._Load();
466  // Assert.AreEqual(ewMante._EstadosMantenimiento.MostrandoRegistro, loTipoIva2._Estado, "No existe el tipo de IVA EXENTO " + this._TipoIvaEx + " para el test AsientosFacturasVentaGeneradorTest");
467 
468 
469 
470  // // Verifico que tengo el TIPORET en la bd.
471  // TipoRetencion loTipoRet = new TipoRetencion();
472  // loTipoRet._Codigo = this._TipoRet;
473  // loTipoRet._Load();
474  // Assert.AreEqual(ewMante._EstadosMantenimiento.MostrandoRegistro, loTipoRet._Estado, "No existe el tipo de retención " + this._TipoRet + " para el test AsientosFacturasVentaGeneradorTest");
475  // }
476 
477 
478  // /// <summary>
479  // /// Eliminar datos que pueda haber de la factura que se pretende generar.
480  // /// </summary>
481  // public void EliminacionDatosPruebasAnteriores()
482  // {
483  // bool llOk = true;
484 
485  // if (!string.IsNullOrWhiteSpace(this._Empresa) && string.IsNullOrWhiteSpace(this._Cliente) && !string.IsNullOrWhiteSpace(this._Factura))
486  // {
487  // llOk = DB.SQLExec("delete from " + DB.SQLDatabase("gestion", "asientos") + " where empresa='" + this._Empresa + "' and factura='" + this._Factura + "'");
488  // Assert.AreEqual(true, llOk, "No se pudo preparar correctamente la prueba, no se pudo eliminar el asiento para la factura la (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
489  // }
490 
491  // // Borrar datos de la factura que se pretende generar en IVAREPER
492  // llOk = DB.SQLExec("delete from " + DB.SQLDatabase("gestion", "ivareper") + " where empresa='" + this._Empresa +"' and numfra='" + this._Factura + "'");
493  // Assert.AreEqual(true, llOk, "No se pudo preparar correctamente la prueba, no se pudieron eliminar los registros de IVAREPER para la (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
494 
495  // // Borrar datos de la factura que se pretende generar en IVA_EXEN
496  // llOk = DB.SQLExec("delete from " + DB.SQLDatabase("gestion", "iva_exen") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and factura='" + this._Factura + "' and tipo=2");
497  // Assert.AreEqual(true, llOk, "No se pudo preparar correctamente la prueba, no se pudieron eliminar los registros de IVA_EXEN para la (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
498 
499  // // Borrar datos de la factura que se pretende generar en RETREPER
500  // llOk = DB.SQLExec("delete from " + DB.SQLDatabase("gestion", "retsopor") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and numfra='" + this._Factura + "'");
501  // Assert.AreEqual(true, llOk, "No se pudo preparar correctamente la prueba, no se pudieron eliminar los registros de RETSOPOR para la (EMPRESA, CUENTA, FACTURA) (" + this._Empresa + "," + this._Cliente + "," + this._Factura + ")");
502 
503  // // Borrar datos de la factura que se pretende generar en PREVI_CL
504  // llOk = DB.SQLExec("delete from " + DB.SQLDatabase("comunes", "previ_cl") + " where empresa='" + this._Empresa + "' and cliente='" + this._Cliente + "' and factura='" + this._Factura + "'");
505  // Assert.AreEqual(true, llOk, "No se pudo preparar correctamente la prueba, no se pudieron eliminar los registros de PREVI_CL para la (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
506 
507  // // Borrar datos de la factura que se pretende generar en EOS
508  // llOk = DB.SQLExec("delete from " + DB.SQLDatabase("gestion", "eos") + " where empresa='" + this._Empresa + "' and factura='" + this._Factura + "'");
509  // Assert.AreEqual(true, llOk, "No se pudo preparar correctamente la prueba, no se pudieron eliminar los registros de EOS para la (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
510 
511  // }
512 
513 
514  // /// <summary>
515  // /// Prueba de creación de asiento de factura de venta TEST1:
516  // /// Retencion cliente: no
517  // /// Rec.Equiv cliente: no
518  // /// Rec.Financiero cliente: no
519  // /// Pronto pago: no
520  // /// Asiento de venta a cliente sin retención, sin pronto pago, sin recargo equiv., sin recargo financiero, cliente nacional, IVA al 21%
521  // /// Base 1000, IVA 210, Total 1210
522  // ///</summary>
523  // [Owner(Owners.JoseMaria_Gay),
524  // TestMethod(),
525  // Description("Asiento de factura de venta a cliente sin retención, sin pronto pago, sin recargo equiv., sin recargo financiero, cliente nacional, IVA 21%, Base 1000, IVA 210, Total 1210"),
526  // DeploymentItem("sage.50.exe")]
527  // [Priority(1)]
528  // public void AsientosFacturasVentasGeneradorTest1()
529  // {
530  // bool llOk = false;
531 
532  // this._Cliente = "43070000";
533  // this._Contrapartida = "70000001";
534  // this._Factura = "XX".PadLeft(10);
535  // this._BaseIva = 1000;
536  // this._ImpContrapartida = 1000;
537  // this._TipoIva = "XX";
538  // this._TipoRet = "XX";
539  // this._TipoIvaEx = "XE";
540 
541  // // Crea si no existen en la bd los tipos de IVA y retención para la prueba.
542  // PrepararDatosPrueba();
543 
544 
545  // // Configura la ficha del cliente para la prueba: sin retencion, sin recargo, sin pronto, cliente nacional, sin recargo financiero
546  // ConfigurarCliente(false, sage.ew.cliente.Cliente.TipoRetencion.SinRetencion, false, 0, "034", "", sage.ew.cliente.Cliente.TipoCliente.Nacional, 0);
547 
548 
549  // // Comprobar que los datos de prueba introducidos son correctos.
550  // ComprobarDatosPrueba();
551 
552 
553  // // Elimina asiento, iva y previsiones pruebas anteriores
554  // EliminacionDatosPruebasAnteriores();
555 
556 
557  // // Comienzo.
558  // AsientosFacturasVentaGenerador loGenAsiFacVen = new AsientosFacturasVentaGenerador();
559  // loGenAsiFacVen._LinkForm = false;
560 
561  // loGenAsiFacVen._Fecha_Asiento = DateTime.Today;
562  // loGenAsiFacVen._Fecha_Factura = DateTime.Today;
563 
564  // // Al hacer esta asignacion los campos de retencion y pronto pago del objeto loGenAsiFacVen deben quedar
565  // // asignados automaticamente
566  // loGenAsiFacVen._CliPro = this._Cliente;
567 
568  // loGenAsiFacVen._Factura = this._Factura;
569 
570  // // Una linia de TIPOIVA
571  // if (loGenAsiFacVen._TipoIvaLineas.Count == 0)
572  // loGenAsiFacVen._TipoIvaLineas.Add(new AsientosFacturasGenerador.TipoIvaLinea(loGenAsiFacVen));
573 
574  // AsientosFacturasVentaGenerador.TipoIvaLinea loLiniaTipoIva = loGenAsiFacVen._TipoIvaLineas[0];
575  // loLiniaTipoIva._Codigo = this._TipoIva;
576  // loLiniaTipoIva._Base = this._BaseIva;
577 
578 
579 
580  // // Una linia de CONTRAPARTIDA
581  // if (loGenAsiFacVen._ContrapartidasLineas.Count == 0)
582  // loGenAsiFacVen._ContrapartidasLineas.Add(new AsientosFacturasGenerador.ContraPartidaLinea(loGenAsiFacVen));
583 
584  // AsientosFacturasVentaGenerador.ContraPartidaLinea loLiniaContrapartida = loGenAsiFacVen._ContrapartidasLineas[0];
585  // loLiniaContrapartida._Cuenta = this._Contrapartida;
586  // loLiniaContrapartida._Importe = this._ImpContrapartida;
587 
588 
589 
590  // // Warnings no lo paso, voy directo a los errores de configuracion previos a la generacion
591  // loGenAsiFacVen._Error_Message = "";
592  // llOk = loGenAsiFacVen._GenerarAsientoFactura_Before_Errors();
593  // Assert.AreEqual(llOk, true, "Test 1 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba, "+
594  // "no se superó el control previo de errores para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," +
595  // this._Factura + ") Mensaje de error: " + loGenAsiFacVen._Error_Message);
596 
597 
598  // // Genero el asientn
599  // if (llOk)
600  // {
601  // loGenAsiFacVen._Error_Message = "";
602  // llOk = loGenAsiFacVen._GenerarAsientoFactura();
603  // Assert.AreEqual(llOk, true, "Test 1 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba para la factura " +
604  // "(EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ") Mensaje de error: " +
605  // loGenAsiFacVen._Error_Message);
606 
607  // if (llOk)
608  // {
609  // IAsientos loAsiento = loGenAsiFacVen._AsientoGenerado;
610  // Assert.IsNotNull(loAsiento,"Test 1 GeneradorAsientosFacturasVenta. No se ha generador el asiento de factura de venta correctamente.");
611 
612  // if (loAsiento != null)
613  // {
614  // // Asiento descuadrado ?
615  // Assert.AreEqual(0, loAsiento._TotalDebe - loAsiento._TotalHaber, "Test 1 GeneradorAsientosFacturasVenta. Asiento generado descuadrado. Descuadre = "+(loAsiento._TotalDebe-loAsiento._TotalHaber).ToString());
616 
617  // //Generar previsiones.
618  // loGenAsiFacVen._GenerarPrevisiones(false);
619 
620 
621  // // 3 lineas en asiento ?
622  // Assert.AreEqual(3, loAsiento._Lineas.Count, "Test 1 GeneradorAsientosFacturasVenta. Asiento generado correctamente pero se esperaban 3 lineas y tiene " + loAsiento._Lineas.Count.ToString());
623  // if (loAsiento._Lineas.Count == 3)
624  // {
625  // TipoIVA loTipoIva = new TipoIVA();
626 
627  // loTipoIva._Codigo = this._TipoIva;
628 
629  // // Verificamos que en cada linea haya la cuenta que esperamos
630  // Assert.AreEqual(this._Cliente, loAsiento._Lineas[0]._Cuenta, "Test 1 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener cuenta contable " + this._Cliente + " y es " + loAsiento._Lineas[0]._Cuenta);
631  // Assert.AreEqual(this._Contrapartida, loAsiento._Lineas[1]._Cuenta, "Test 1 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener cuenta contable de gastos " + this._Contrapartida + " y es " + loAsiento._Lineas[1]._Cuenta);
632  // Assert.AreEqual(loTipoIva._Cta_IVA_Rep, loAsiento._Lineas[2]._Cuenta, "Test 1 GeneradorAsientosFacturasVenta. La tercera linea del asiento debería tener cuenta contable de IVA " + loTipoIva._Cta_IVA_Rep + " y es " + loAsiento._Lineas[2]._Cuenta);
633 
634 
635  // // Verificamos que en cada linea haya el importe que esperamos
636  // Assert.AreEqual(1210, loAsiento._Lineas[0]._Debe, "Test 1 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener importe 1210 en el DEBE y tiene " + loAsiento._Lineas[0]._Debe);
637  // Assert.AreEqual(1000, loAsiento._Lineas[1]._Haber, "Test 1 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener importe 1000 en el HABER y tiene " + loAsiento._Lineas[1]._Haber);
638  // Assert.AreEqual(210, loAsiento._Lineas[2]._Haber, "Test 1 GeneradorAsientosFacturasVenta. La tercera linea del asiento debería tener importe 210 en el HABER y tiene " + loAsiento._Lineas[2]._Haber);
639 
640  // // Verificamos un registro en IVAREPER.
641  // DataTable ldtRegIvareper = new DataTable();
642  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "ivareper") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and numfra='" + this._Factura + "'", ref ldtRegIvareper);
643  // Assert.AreEqual(1, ldtRegIvareper.Rows.Count, "Test 1 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registro de IVAREPER en el asientos para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
644 
645  // // Verificamos previsiones de pago generadas.
646  // DataTable ldtRegPreviCl = new DataTable();
647  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("comunes", "previ_cl") + " where empresa='" + this._Empresa + "' and cliente='" + this._Cliente + "' and factura='" + this._Factura + "'", ref ldtRegPreviCl);
648  // Assert.IsTrue(ldtRegPreviCl.Rows.Count > 0, "Test 1 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en COMUNES.PREVI_CL para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
649 
650  // // Verificamos registros EOS
651  // DataTable ldtRegEOS = new DataTable();
652  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "eos") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Contrapartida + "' and factura='" + this._Factura + "'", ref ldtRegEOS);
653  // Assert.IsTrue(ldtRegPreviCl.Rows.Count > 0, "Test 1 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en la tabla EOS para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
654 
655  // }
656  // }
657  // }
658  // }
659 
660  // EliminacionDatosPruebasAnteriores();
661  // }
662 
663 
664  // /// <summary>
665  // /// Prueba de creación de asiento de factura de venta TEST2:
666  // /// Retencion cliente: no
667  // /// Rec.Equiv cliente: si
668  // /// Rec.financiero clente: no
669  // /// Pronto pago: si
670  // /// Asiento de venta a cliente sin retención, con pronto pago, con recargo equiv, sin recargo financiero, cliente nacional, IVA 21%, RECEQUIV 1%, P.P. 10%
671  // /// Base 1000, IVA 210, RecEquiv 10, Total 1220
672  // ///</summary>
673  // [Owner(Owners.JoseMaria_Gay),
674  // TestMethod(),
675  // Description("Asiento de factura de venta a cliente sin retención, con pronto pago, con recargo equiv, sin recargo financiero, cliente nacional, IVA 21%, RECEQUIV 1%, P.P. 10%, Base 1000, IVA 210, RecEquiv 10, Total 1220"),
676  // DeploymentItem("sage.50.exe")]
677  // [Priority(1)]
678  // public void AsientosFacturasVentasGeneradorTest2()
679  // {
680  // bool llOk = false;
681 
682  // this._Cliente = "43070000";
683  // this._Contrapartida = "70000001";
684  // this._Factura = "XX".PadLeft(10);
685  // this._BaseIva = 1000;
686  // this._ImpContrapartida = 1111.11M;
687  // this._TipoIva = "XX";
688  // this._TipoRet = "XX";
689  // this._TipoIvaEx = "XE";
690 
691  // // Crea si no existen en la bd los tipos de IVA y retención para la prueba.
692  // PrepararDatosPrueba();
693 
694 
695  // // Configura la ficha del cl iente para la prueba: sin retencion, con recargo equivalencia, con 10% pronto pago, cliente nacional, sin recargo financiero
696  // ConfigurarCliente(false, sage.ew.cliente.Cliente.TipoRetencion.SinRetencion, true, 10, "034", "", sage.ew.cliente.Cliente.TipoCliente.Nacional,0);
697 
698 
699  // // Comprobar que los datos de prueba introducidos son correctos.
700  // ComprobarDatosPrueba();
701 
702 
703  // // Elimina asiento, iva y previsiones pruebas anteriores
704  // EliminacionDatosPruebasAnteriores();
705 
706 
707  // // Comienzo.
708  // AsientosFacturasVentaGenerador loGenAsiFacVen = new AsientosFacturasVentaGenerador();
709  // loGenAsiFacVen._LinkForm = false;
710 
711  // loGenAsiFacVen._Fecha_Asiento = DateTime.Today;
712  // loGenAsiFacVen._Fecha_Factura = DateTime.Today;
713 
714  // // Al hacer esta asignacion los campos de retencion y pronto pago del objeto loGenAsiFacVen deben quedar
715  // // asignados automaticamente
716  // loGenAsiFacVen._CliPro = this._Cliente;
717 
718  // loGenAsiFacVen._Factura = this._Factura;
719 
720  // // Una linia de TIPOIVA
721  // if (loGenAsiFacVen._TipoIvaLineas.Count == 0)
722  // loGenAsiFacVen._TipoIvaLineas.Add(new AsientosFacturasGenerador.TipoIvaLinea(loGenAsiFacVen));
723 
724  // AsientosFacturasVentaGenerador.TipoIvaLinea loLiniaTipoIva = loGenAsiFacVen._TipoIvaLineas[0];
725  // loLiniaTipoIva._Codigo = this._TipoIva;
726  // loLiniaTipoIva._Base = this._BaseIva;
727 
728 
729 
730  // // Una linia de CONTRAPARTIDA
731  // if (loGenAsiFacVen._ContrapartidasLineas.Count == 0)
732  // loGenAsiFacVen._ContrapartidasLineas.Add(new AsientosFacturasGenerador.ContraPartidaLinea(loGenAsiFacVen));
733 
734  // AsientosFacturasVentaGenerador.ContraPartidaLinea loLiniaContrapartida = loGenAsiFacVen._ContrapartidasLineas[0];
735  // loLiniaContrapartida._Cuenta = this._Contrapartida;
736  // loLiniaContrapartida._Importe = this._ImpContrapartida;
737 
738 
739 
740  // // Warnings no lo paso, voy directo a los errores de configuracion previos a la generacion
741  // loGenAsiFacVen._Error_Message = "";
742  // llOk = loGenAsiFacVen._GenerarAsientoFactura_Before_Errors();
743  // Assert.AreEqual(llOk, true, "Test 2 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba, " +
744  // "no se superó el control previo de errores para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," +
745  // this._Factura + ") Mensaje de error: " + loGenAsiFacVen._Error_Message);
746 
747 
748  // // Genero el asientn
749  // if (llOk)
750  // {
751  // loGenAsiFacVen._Error_Message = "";
752  // llOk = loGenAsiFacVen._GenerarAsientoFactura();
753  // Assert.AreEqual(llOk, true, "Test 2 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba para la factura " +
754  // "(EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ") Mensaje de error: " +
755  // loGenAsiFacVen._Error_Message);
756 
757  // if (llOk)
758  // {
759  // IAsientos loAsiento = loGenAsiFacVen._AsientoGenerado;
760  // Assert.IsNotNull(loAsiento, "Test 2 GeneradorAsientosFacturasVenta. No se ha generador el asiento de factura de venta correctamente.");
761 
762  // if (loAsiento != null)
763  // {
764  // // Asiento descuadrado ?
765  // Assert.AreEqual(0, loAsiento._TotalDebe - loAsiento._TotalHaber, "Test 2 GeneradorAsientosFacturasVenta. Asiento generado descuadrado. Descuadre = " + (loAsiento._TotalDebe - loAsiento._TotalHaber).ToString());
766 
767  // //Generar previsiones.
768  // loGenAsiFacVen._GenerarPrevisiones(false);
769 
770 
771  // // 5 lineas en asiento ?
772  // Assert.AreEqual(5, loAsiento._Lineas.Count, "Test 2 GeneradorAsientosFacturasVenta. Asiento generado correctamente pero se esperaban 5 lineas y tiene " + loAsiento._Lineas.Count.ToString());
773  // if (loAsiento._Lineas.Count == 5)
774  // {
775  // TipoIVA loTipoIva = new TipoIVA();
776 
777  // loTipoIva._Codigo = this._TipoIva;
778 
779  // // Verificamos que en cada linea haya la cuenta que esperamos
780  // Assert.AreEqual(this._Cliente, loAsiento._Lineas[0]._Cuenta, "Test 2 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener cuenta contable " + this._Cliente + " y es " + loAsiento._Lineas[0]._Cuenta);
781  // Assert.AreEqual(this._Contrapartida, loAsiento._Lineas[1]._Cuenta, "Test 2 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener cuenta contable de gastos " + this._Contrapartida + " y es " + loAsiento._Lineas[1]._Cuenta);
782  // Assert.AreEqual(loTipoIva._Cta_IVA_Rep, loAsiento._Lineas[2]._Cuenta, "Test 2 GeneradorAsientosFacturasVenta. La tercera linea del asiento debería tener cuenta contable de IVA " + loTipoIva._Cta_IVA_Rep + " y es " + loAsiento._Lineas[2]._Cuenta);
783  // Assert.AreEqual(loTipoIva._Cta_REC_Rep, loAsiento._Lineas[3]._Cuenta, "Test 2 GeneradorAsientosFacturasVenta. La cuarta linea del asiento debería tener cuenta contable de RECEQUIV " + loTipoIva._Cta_REC_Rep + " y es " + loAsiento._Lineas[3]._Cuenta);
784  // string lcCuentaPPVentas = Convert.ToString(EW_GLOBAL._GetVariable("wc_vdtos"));
785  // Assert.AreEqual(lcCuentaPPVentas, loAsiento._Lineas[4]._Cuenta, "Test 2 GeneradorAsientosFacturasVenta. La quinta linea del asiento debería tener cuenta contable de DTO.P.P. VENTAS " + lcCuentaPPVentas + " y es " + loAsiento._Lineas[4]._Cuenta);
786 
787  // // Verificamos que en cada linea haya el importe que esperamos
788  // Assert.AreEqual(1220, loAsiento._Lineas[0]._Debe, "Test 2 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener importe 1220 en el DEBE y tiene " + loAsiento._Lineas[0]._Debe);
789  // Assert.AreEqual<decimal>(1111.11M, loAsiento._Lineas[1]._Haber, "Test 2 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener importe 1111.11 en el HABER y tiene " + loAsiento._Lineas[1]._Haber);
790  // Assert.AreEqual(210, loAsiento._Lineas[2]._Haber, "Test 2 GeneradorAsientosFacturasVenta. La tercera linea del asiento debería tener importe 210 en el HABER y tiene " + loAsiento._Lineas[2]._Haber);
791  // Assert.AreEqual(10, loAsiento._Lineas[3]._Haber, "Test 2 GeneradorAsientosFacturasVenta. La cuarta linea del asiento debería tener importe 10 en el HABER y tiene " + loAsiento._Lineas[3]._Haber);
792  // Assert.AreEqual<decimal>(111.11M, loAsiento._Lineas[4]._Debe, "Test 2 GeneradorAsientosFacturasVenta. La quinta linea del asiento debería tener importe 111.11 en el DEBE y tiene " + loAsiento._Lineas[4]._Debe);
793 
794  // // Verificamos un registro en IVAREPER.
795  // DataTable ldtRegIvareper = new DataTable();
796  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "ivareper") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and numfra='" + this._Factura + "'", ref ldtRegIvareper);
797  // Assert.AreEqual(1, ldtRegIvareper.Rows.Count, "Test 2 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registro de IVAREPER en el asientos para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
798 
799  // // Verificamos previsiones de pago generadas.
800  // DataTable ldtRegPreviCl = new DataTable();
801  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("comunes", "previ_cl") + " where empresa='" + this._Empresa + "' and cliente='" + this._Cliente + "' and factura='" + this._Factura + "'", ref ldtRegPreviCl);
802  // Assert.IsTrue(ldtRegPreviCl.Rows.Count > 0, "Test 2 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en COMUNES.PREVI_CL para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
803 
804  // // Verificamos registros EOS
805  // DataTable ldtRegEOS = new DataTable();
806  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "eos") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Contrapartida + "' and factura='" + this._Factura + "'", ref ldtRegEOS);
807  // Assert.IsTrue(ldtRegPreviCl.Rows.Count > 0, "Test 2 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en la tabla EOS para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
808  // }
809  // }
810  // }
811  // }
812 
813  // EliminacionDatosPruebasAnteriores();
814  // }
815 
816 
817  // /// <summary>
818  // /// Prueba de creación de asiento de factura de venta TEST3:
819  // /// Retencion cliente: si, sobre base.
820  // /// Rec.Equiv cliente: si
821  // /// Recargo financiero: no
822  // /// Pronto pago: si
823  // /// Asiento de factura de venta a cliente con retención, con pronto pago, con recargo equiv, sin recargo financiero, cliente nacional, IVA 21%, RECEQUIV 1%, P.P. 10%, RET.BASE 15%
824  // /// Base 1000, IVA 210, RecEquiv 10, Ret. 150, Total 1070
825  // ///</summary>
826  // [Owner(Owners.JoseMaria_Gay),
827  // TestMethod(),
828  // Description("Asiento de factura de venta a cliente con retención, con pronto pago, con recargo equiv, sin recargo financiero, cliente nacional, IVA 21%, RECEQUIV 1%, P.P. 10%, RET.BASE 15%, Base 1000, IVA 210, RecEquiv 10, Ret. 150, Total 1070"),
829  // DeploymentItem("sage.50.exe")]
830  // [Priority(1)]
831  // public void AsientosFacturasVentasGeneradorTest3()
832  // {
833  // bool llOk = false;
834 
835  // this._Cliente = "43070000";
836  // this._Contrapartida = "70000001";
837  // this._Factura = "XX".PadLeft(10);
838  // this._BaseIva = 1000;
839  // this._ImpContrapartida = 1111.11M;
840  // this._TipoIva = "XX";
841  // this._TipoRet = "XX";
842  // this._TipoIvaEx = "XE";
843 
844  // // Crea si no existen en la bd los tipos de IVA y retención para la prueba.
845  // PrepararDatosPrueba();
846 
847 
848  // // Configura la ficha del cliente para la prueba: con retencion sobre base, con recargo equiv, con pronto, cliente nacional, sin recargo financiero
849  // ConfigurarCliente(true, sage.ew.cliente.Cliente.TipoRetencion.SobreBase, true, 10, "034", "", sage.ew.cliente.Cliente.TipoCliente.Nacional,0);
850 
851 
852  // // Comprobar que los datos de prueba introducidos son correctos.
853  // ComprobarDatosPrueba();
854 
855 
856  // // Elimina asiento, iva y previsiones pruebas anteriores
857  // EliminacionDatosPruebasAnteriores();
858 
859 
860  // // Comienzo.
861  // AsientosFacturasVentaGenerador loGenAsiFacVen = new AsientosFacturasVentaGenerador();
862  // loGenAsiFacVen._LinkForm = false;
863 
864  // loGenAsiFacVen._Fecha_Asiento = DateTime.Today;
865  // loGenAsiFacVen._Fecha_Factura = DateTime.Today;
866 
867  // // Al hacer esta asignacion los campos de retencion y pronto pago del objeto loGenAsiFacVen deben quedar
868  // // asignados automaticamente
869  // loGenAsiFacVen._CliPro = this._Cliente;
870 
871  // loGenAsiFacVen._Factura = this._Factura;
872 
873  // // Una linia de TIPOIVA
874  // if (loGenAsiFacVen._TipoIvaLineas.Count == 0)
875  // loGenAsiFacVen._TipoIvaLineas.Add(new AsientosFacturasGenerador.TipoIvaLinea(loGenAsiFacVen));
876 
877  // AsientosFacturasVentaGenerador.TipoIvaLinea loLiniaTipoIva = loGenAsiFacVen._TipoIvaLineas[0];
878  // loLiniaTipoIva._Codigo = this._TipoIva;
879  // loLiniaTipoIva._Base = this._BaseIva;
880 
881 
882 
883  // // Una linia de CONTRAPARTIDA
884  // if (loGenAsiFacVen._ContrapartidasLineas.Count == 0)
885  // loGenAsiFacVen._ContrapartidasLineas.Add(new AsientosFacturasGenerador.ContraPartidaLinea(loGenAsiFacVen));
886 
887  // AsientosFacturasVentaGenerador.ContraPartidaLinea loLiniaContrapartida = loGenAsiFacVen._ContrapartidasLineas[0];
888  // loLiniaContrapartida._Cuenta = this._Contrapartida;
889  // loLiniaContrapartida._Importe = this._ImpContrapartida;
890 
891 
892 
893  // // Warnings no lo paso, voy directo a los errores de configuracion previos a la generacion
894  // loGenAsiFacVen._Error_Message = "";
895  // llOk = loGenAsiFacVen._GenerarAsientoFactura_Before_Errors();
896  // Assert.AreEqual(llOk, true, "Test 3 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba, " +
897  // "no se superó el control previo de errores para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," +
898  // this._Factura + ") Mensaje de error: " + loGenAsiFacVen._Error_Message);
899 
900 
901  // // Genero el asientn
902  // if (llOk)
903  // {
904  // loGenAsiFacVen._Error_Message = "";
905  // llOk = loGenAsiFacVen._GenerarAsientoFactura();
906  // Assert.AreEqual(llOk, true, "Test 3 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba para la factura " +
907  // "(EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ") Mensaje de error: " +
908  // loGenAsiFacVen._Error_Message);
909 
910  // if (llOk)
911  // {
912  // IAsientos loAsiento = loGenAsiFacVen._AsientoGenerado;
913  // Assert.IsNotNull(loAsiento, "Test 3 GeneradorAsientosFacturasVenta. No se ha generador el asiento de factura de venta correctamente.");
914 
915  // if (loAsiento != null)
916  // {
917  // // Asiento descuadrado ?
918  // Assert.AreEqual(0, loAsiento._TotalDebe - loAsiento._TotalHaber, "Test 3 GeneradorAsientosFacturasVenta. Asiento generado descuadrado. Descuadre = " + (loAsiento._TotalDebe - loAsiento._TotalHaber).ToString());
919 
920  // //Generar previsiones.
921  // loGenAsiFacVen._GenerarPrevisiones(false);
922 
923 
924  // // 6 lineas en asiento ?
925  // Assert.AreEqual(6, loAsiento._Lineas.Count, "Test 3 GeneradorAsientosFacturasVenta. Asiento generado correctamente pero se esperaban 6 lineas y tiene " + loAsiento._Lineas.Count.ToString());
926  // if (loAsiento._Lineas.Count == 6)
927  // {
928  // TipoIVA loTipoIva = new TipoIVA();
929  // loTipoIva._Codigo = this._TipoIva;
930 
931  // TipoRetencion loTipoRet = new TipoRetencion();
932  // loTipoRet._Codigo = this._TipoRet;
933 
934  // // Verificamos que en cada linea haya la cuenta que esperamos
935  // Assert.AreEqual(this._Cliente, loAsiento._Lineas[0]._Cuenta, "Test 3 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener cuenta contable " + this._Cliente + " y es " + loAsiento._Lineas[0]._Cuenta);
936  // Assert.AreEqual(this._Contrapartida, loAsiento._Lineas[1]._Cuenta, "Test 3 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener cuenta contable de gastos " + this._Contrapartida + " y es " + loAsiento._Lineas[1]._Cuenta);
937  // Assert.AreEqual(loTipoIva._Cta_IVA_Rep, loAsiento._Lineas[2]._Cuenta, "Test 3 GeneradorAsientosFacturasVenta. La tercera linea del asiento debería tener cuenta contable de IVA " + loTipoIva._Cta_IVA_Rep + " y es " + loAsiento._Lineas[2]._Cuenta);
938  // Assert.AreEqual(loTipoIva._Cta_REC_Rep, loAsiento._Lineas[3]._Cuenta, "Test 3 GeneradorAsientosFacturasVenta. La cuarta linea del asiento debería tener cuenta contable de RECEQUIV " + loTipoIva._Cta_REC_Sop + " y es " + loAsiento._Lineas[3]._Cuenta);
939  // string lcCuentaPPVentas = Convert.ToString(EW_GLOBAL._GetVariable("wc_vdtos"));
940  // Assert.AreEqual(lcCuentaPPVentas, loAsiento._Lineas[4]._Cuenta, "Test 3 GeneradorAsientosFacturasVenta. La quinta linea del asiento debería tener cuenta contable de DTO.P.P. VENTAS " + lcCuentaPPVentas + " y es " + loAsiento._Lineas[4]._Cuenta);
941  // Assert.AreEqual(loTipoRet._CTA_RE_SOP, loAsiento._Lineas[5]._Cuenta, "Test 3 GeneradorAsientosFacturasVenta. La sexta linea del asiento debería tener cuenta contable de retencion soportada " + loTipoRet._CTA_RE_SOP + " y es " + loAsiento._Lineas[5]._Cuenta);
942 
943  // // Verificamos que en cada linea haya el importe que esperamos
944  // Assert.AreEqual(1070, loAsiento._Lineas[0]._Debe, "Test 3 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener importe 1070 en el DEBE y tiene " + loAsiento._Lineas[0]._Debe);
945  // Assert.AreEqual<decimal>(1111.11M, loAsiento._Lineas[1]._Haber, "Test 3 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener importe 1111.11 en el HABER y tiene " + loAsiento._Lineas[1]._Haber);
946  // Assert.AreEqual(210, loAsiento._Lineas[2]._Haber, "Test 3 GeneradorAsientosFacturasVenta. La tercera linea del asiento debería tener importe 210 en el HABER y tiene " + loAsiento._Lineas[2]._Haber);
947  // Assert.AreEqual(10, loAsiento._Lineas[3]._Haber, "Test 3 GeneradorAsientosFacturasVenta. La cuarta linea del asiento debería tener importe 10 en el HABER y tiene " + loAsiento._Lineas[3]._Haber);
948  // Assert.AreEqual<decimal>(111.11M, loAsiento._Lineas[4]._Debe, "Test 3 GeneradorAsientosFacturasVenta. La quinta linea del asiento debería tener importe 111.11 en el DEBE y tiene " + loAsiento._Lineas[4]._Debe);
949  // Assert.AreEqual(150, loAsiento._Lineas[5]._Debe, "Test 3 GeneradorAsientosFacturasVenta. La sexta linea del asiento debería tener importe 150 en el DEBE y tiene " + loAsiento._Lineas[5]._Debe);
950 
951  // // Verificamos un registro en IVAREPER.
952  // DataTable ldtRegIvareper = new DataTable();
953  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "ivareper") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and numfra='" + this._Factura + "'", ref ldtRegIvareper);
954  // Assert.AreEqual(1, ldtRegIvareper.Rows.Count, "Test 3 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registro de IVAREPER en el asientos para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
955 
956  // // Verificamos un registro en RETSOPOR
957  // DataTable ldtRegRetSopor = new DataTable();
958  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "retsopor") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and numfra='" + this._Factura + "'", ref ldtRegRetSopor);
959  // Assert.AreEqual(1, ldtRegRetSopor.Rows.Count, "Test 3 GeneradorAsientosFacturasCompra, asiento generado pero no se ha detectado registro de RETSOPOR en el asientos para la factura (EMPRESA, CLIENTE, FACTURA) (" + this._Empresa + "," + this._Cliente + "," + this._Factura + ")");
960 
961  // // Verificamos que el importe de retencion en RETSOPOR sea el correcto.
962  // if (ldtRegRetSopor.Rows.Count == 1)
963  // Assert.AreEqual(150, Convert.ToDecimal(ldtRegRetSopor.Rows[0]["retencio"]), "Test 3 GeneradorAsientosFacturasCompra, asiento generado y detectado registro de RETSOPOR pero con importe incorrecto para la factura (EMPRESA, CLIENTE, FACTURA) (" + this._Empresa + "," + this._Cliente + "," + this._Factura + "), debería ser 150 y es " + Convert.ToDecimal(ldtRegRetSopor.Rows[0]["retencio"]).ToString().Trim());
964 
965  // // Verificamos previsiones de pago generadas.
966  // DataTable ldtRegPreviCl = new DataTable();
967  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("comunes", "previ_cl") + " where empresa='" + this._Empresa + "' and cliente='" + this._Cliente + "' and factura='" + this._Factura + "'", ref ldtRegPreviCl);
968  // Assert.IsTrue(ldtRegPreviCl.Rows.Count > 0, "Test 3 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en COMUNES.PREVI_CL para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
969 
970  // // Verificamos registros EOS (contrapartida)
971  // DataTable ldtRegEOS = new DataTable();
972  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "eos") + " where empresa='" + this._Empresa + "' and factura='" + this._Factura + "'", ref ldtRegEOS);
973  // Assert.IsTrue(ldtRegEOS.Rows.Count > 0, "Test 3 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en la tabla EOS para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
974  // }
975  // }
976  // }
977  // }
978 
979  // EliminacionDatosPruebasAnteriores();
980  // }
981 
982 
983  // /// <summary>
984  // /// Prueba de creación de asiento de factura de venta TEST4:
985  // /// Retencion cliente: si, sobre totfac.
986  // /// Rec.Equiv cliente: si
987  // /// Recargo financiero: no
988  // /// Pronto pago: si
989  // /// Asiento de factura de venta a cliente con retención, con pronto pago, con recargo equiv, sin recargo financiero, cliente nacional, IVA 21%, RECEQUIV 1%, P.P. 10%, RET.TOTFAC 15%
990  // /// Base 1000, IVA 210, RecEquiv 10, Ret. 150, Total 1070
991  // ///</summary>
992  // [Owner(Owners.JoseMaria_Gay),
993  // TestMethod(),
994  // Description("Asiento de factura de venta a cliente con retención, con pronto pago, con recargo equiv, sin recargo financiero, cliente nacional, IVA 21%, RECEQUIV 1%, P.P. 10%, RET.TOTFAC 15%, Base 1000, IVA 210, RecEquiv 10, Ret. 183, Total 1037"),
995  // DeploymentItem("sage.50.exe")]
996  // [Priority(1)]
997  // public void AsientosFacturasVentasGeneradorTest4()
998  // {
999  // bool llOk = false;
1000 
1001  // this._Cliente = "43070000";
1002  // this._Contrapartida = "70000001";
1003  // this._Factura = "XX".PadLeft(10);
1004  // this._BaseIva = 1000;
1005  // this._ImpContrapartida = 1111.11M;
1006  // this._TipoIva = "XX";
1007  // this._TipoRet = "XX";
1008  // this._TipoIvaEx = "XE";
1009 
1010  // // Crea si no existen en la bd los tipos de IVA y retención para la prueba.
1011  // PrepararDatosPrueba();
1012 
1013 
1014  // // Configura la ficha del cliente para la prueba: con retencion sobre totfac, con recargo equivalencia, con pronto, cliente nacional, sin recargo financiero
1015  // ConfigurarCliente(true, sage.ew.cliente.Cliente.TipoRetencion.SobreFactura, true, 10, "034", "", sage.ew.cliente.Cliente.TipoCliente.Nacional, 0);
1016 
1017 
1018  // // Comprobar que los datos de prueba introducidos son correctos.
1019  // ComprobarDatosPrueba();
1020 
1021 
1022  // // Elimina asiento, iva y previsiones pruebas anteriores
1023  // EliminacionDatosPruebasAnteriores();
1024 
1025 
1026  // // Comienzo.
1027  // AsientosFacturasVentaGenerador loGenAsiFacVen = new AsientosFacturasVentaGenerador();
1028  // loGenAsiFacVen._LinkForm = false;
1029 
1030  // loGenAsiFacVen._Fecha_Asiento = DateTime.Today;
1031  // loGenAsiFacVen._Fecha_Factura = DateTime.Today;
1032 
1033  // // Al hacer esta asignacion los campos de retencion y pronto pago del objeto loGenAsiFacVen deben quedar
1034  // // asignados automaticamente
1035  // loGenAsiFacVen._CliPro = this._Cliente;
1036 
1037  // loGenAsiFacVen._Factura = this._Factura;
1038 
1039  // // Una linia de TIPOIVA
1040  // if (loGenAsiFacVen._TipoIvaLineas.Count == 0)
1041  // loGenAsiFacVen._TipoIvaLineas.Add(new AsientosFacturasGenerador.TipoIvaLinea(loGenAsiFacVen));
1042 
1043  // AsientosFacturasVentaGenerador.TipoIvaLinea loLiniaTipoIva = loGenAsiFacVen._TipoIvaLineas[0];
1044  // loLiniaTipoIva._Codigo = this._TipoIva;
1045  // loLiniaTipoIva._Base = this._BaseIva;
1046 
1047 
1048 
1049  // // Una linia de CONTRAPARTIDA
1050  // if (loGenAsiFacVen._ContrapartidasLineas.Count == 0)
1051  // loGenAsiFacVen._ContrapartidasLineas.Add(new AsientosFacturasGenerador.ContraPartidaLinea(loGenAsiFacVen));
1052 
1053  // AsientosFacturasVentaGenerador.ContraPartidaLinea loLiniaContrapartida = loGenAsiFacVen._ContrapartidasLineas[0];
1054  // loLiniaContrapartida._Cuenta = this._Contrapartida;
1055  // loLiniaContrapartida._Importe = this._ImpContrapartida;
1056 
1057 
1058 
1059  // // Warnings no lo paso, voy directo a los errores de configuracion previos a la generacion
1060  // loGenAsiFacVen._Error_Message = "";
1061  // llOk = loGenAsiFacVen._GenerarAsientoFactura_Before_Errors();
1062  // Assert.AreEqual(llOk, true, "Test 4 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba, " +
1063  // "no se superó el control previo de errores para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," +
1064  // this._Factura + ") Mensaje de error: " + loGenAsiFacVen._Error_Message);
1065 
1066 
1067  // // Genero el asientn
1068  // if (llOk)
1069  // {
1070  // loGenAsiFacVen._Error_Message = "";
1071  // llOk = loGenAsiFacVen._GenerarAsientoFactura();
1072  // Assert.AreEqual(llOk, true, "Test 4 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba para la factura " +
1073  // "(EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ") Mensaje de error: " +
1074  // loGenAsiFacVen._Error_Message);
1075 
1076  // if (llOk)
1077  // {
1078  // IAsientos loAsiento = loGenAsiFacVen._AsientoGenerado;
1079  // Assert.IsNotNull(loAsiento, "Test 4 GeneradorAsientosFacturasVenta. No se ha generador el asiento de factura de venta correctamente.");
1080 
1081  // if (loAsiento != null)
1082  // {
1083  // // Asiento descuadrado ?
1084  // Assert.AreEqual(0, loAsiento._TotalDebe - loAsiento._TotalHaber, "Test 4 GeneradorAsientosFacturasVenta. Asiento generado descuadrado. Descuadre = " + (loAsiento._TotalDebe - loAsiento._TotalHaber).ToString());
1085 
1086  // //Generar previsiones.
1087  // loGenAsiFacVen._GenerarPrevisiones(false);
1088 
1089 
1090  // // 6 lineas en asiento ?
1091  // Assert.AreEqual(6, loAsiento._Lineas.Count, "Test 4 GeneradorAsientosFacturasVenta. Asiento generado correctamente pero se esperaban 6 lineas y tiene " + loAsiento._Lineas.Count.ToString());
1092  // if (loAsiento._Lineas.Count == 6)
1093  // {
1094  // TipoIVA loTipoIva = new TipoIVA();
1095  // loTipoIva._Codigo = this._TipoIva;
1096 
1097  // TipoRetencion loTipoRet = new TipoRetencion();
1098  // loTipoRet._Codigo = this._TipoRet;
1099 
1100  // // Verificamos que en cada linea haya la cuenta que esperamos
1101  // Assert.AreEqual(this._Cliente, loAsiento._Lineas[0]._Cuenta, "Test 4 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener cuenta contable " + this._Cliente + " y es " + loAsiento._Lineas[0]._Cuenta);
1102  // Assert.AreEqual(this._Contrapartida, loAsiento._Lineas[1]._Cuenta, "Test 4 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener cuenta contable de gastos " + this._Contrapartida + " y es " + loAsiento._Lineas[1]._Cuenta);
1103  // Assert.AreEqual(loTipoIva._Cta_IVA_Rep, loAsiento._Lineas[2]._Cuenta, "Test 4 GeneradorAsientosFacturasVenta. La tercera linea del asiento debería tener cuenta contable de IVA " + loTipoIva._Cta_IVA_Rep + " y es " + loAsiento._Lineas[2]._Cuenta);
1104  // Assert.AreEqual(loTipoIva._Cta_REC_Rep, loAsiento._Lineas[3]._Cuenta, "Test 4 GeneradorAsientosFacturasVenta. La cuarta linea del asiento debería tener cuenta contable de RECEQUIV " + loTipoIva._Cta_REC_Sop + " y es " + loAsiento._Lineas[3]._Cuenta);
1105  // string lcCuentaPPVentas = Convert.ToString(EW_GLOBAL._GetVariable("wc_vdtos"));
1106  // Assert.AreEqual(lcCuentaPPVentas, loAsiento._Lineas[4]._Cuenta, "Test 4 GeneradorAsientosFacturasVenta. La quinta linea del asiento debería tener cuenta contable de DTO.P.P. COMPRAS " + lcCuentaPPVentas + " y es " + loAsiento._Lineas[4]._Cuenta);
1107  // Assert.AreEqual(loTipoRet._CTA_RE_SOP, loAsiento._Lineas[5]._Cuenta, "Test 4 GeneradorAsientosFacturasVenta. La sexta linea del asiento debería tener cuenta contable de retencion repercutida " + loTipoRet._CTA_RE_SOP + " y es " + loAsiento._Lineas[5]._Cuenta);
1108 
1109  // // Verificamos que en cada linea haya el importe que esperamos
1110  // Assert.AreEqual(1037, loAsiento._Lineas[0]._Debe, "Test 4 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener importe 1037 en el DEBE y tiene " + loAsiento._Lineas[0]._Debe);
1111  // Assert.AreEqual<decimal>(1111.11M, loAsiento._Lineas[1]._Haber, "Test 4 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener importe 1111.11 en el HABER y tiene " + loAsiento._Lineas[1]._Haber);
1112  // Assert.AreEqual(210, loAsiento._Lineas[2]._Haber, "Test 4 GeneradorAsientosFacturasVenta. La tercera linea del asiento debería tener importe 210 en el HABER y tiene " + loAsiento._Lineas[2]._Haber);
1113  // Assert.AreEqual(10, loAsiento._Lineas[3]._Haber, "Test 4 GeneradorAsientosFacturasVenta. La cuarta linea del asiento debería tener importe 10 en el HABER y tiene " + loAsiento._Lineas[3]._Haber);
1114  // Assert.AreEqual<decimal>(111.11M, loAsiento._Lineas[4]._Debe, "Test 4 GeneradorAsientosFacturasVenta. La quinta linea del asiento debería tener importe 111.11 en el DEBE y tiene " + loAsiento._Lineas[4]._Debe);
1115  // Assert.AreEqual(183, loAsiento._Lineas[5]._Debe, "Test 4 GeneradorAsientosFacturasVenta. La sexta linea del asiento debería tener importe 183 en el DEBE y tiene " + loAsiento._Lineas[5]._Debe);
1116 
1117  // // Verificamos un registro en IVAREPER.
1118  // DataTable ldtRegIvareper = new DataTable();
1119  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "ivareper") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and numfra='" + this._Factura + "'", ref ldtRegIvareper);
1120  // Assert.AreEqual(1, ldtRegIvareper.Rows.Count, "Test 4 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registro de IVAREPER en el asientos para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1121 
1122  // // Verificamos un registro en RETSOPOR
1123  // DataTable ldtRegRetSopor = new DataTable();
1124  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "retsopor") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and numfra='" + this._Factura + "'", ref ldtRegRetSopor);
1125  // Assert.AreEqual(1, ldtRegRetSopor.Rows.Count, "Test 4 GeneradorAsientosFacturasCompra, asiento generado pero no se ha detectado registro de RETSOPOR en el asientos para la factura (EMPRESA, CLIENTE, FACTURA) (" + this._Empresa + "," + this._Cliente + "," + this._Factura + ")");
1126 
1127  // // Verificamos que el importe de retencion en RETSOPOR sea el correcto.
1128  // if (ldtRegRetSopor.Rows.Count == 1)
1129  // Assert.AreEqual(183, Convert.ToDecimal(ldtRegRetSopor.Rows[0]["retencio"]), "Test 4 GeneradorAsientosFacturasCompra, asiento generado y detectado registro de RETSOPOR pero con importe incorrecto para la factura (EMPRESA, CLIENTE, FACTURA) (" + this._Empresa + "," + this._Cliente + "," + this._Factura + "), debería ser 183 y es " + Convert.ToDecimal(ldtRegRetSopor.Rows[0]["retencio"]).ToString().Trim());
1130 
1131  // // Verificamos previsiones de pago generadas.
1132  // DataTable ldtRegPreviCl = new DataTable();
1133  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("comunes", "previ_cl") + " where empresa='" + this._Empresa + "' and cliente='" + this._Cliente + "' and factura='" + this._Factura + "'", ref ldtRegPreviCl);
1134  // Assert.IsTrue(ldtRegPreviCl.Rows.Count > 0, "Test 4 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en COMUNES.PREVI_CL para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1135 
1136  // // Verificamos registros EOS (contrapartida)
1137  // DataTable ldtRegEOS = new DataTable();
1138  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "eos") + " where empresa='" + this._Empresa + "' and factura='" + this._Factura + "'", ref ldtRegEOS);
1139  // Assert.IsTrue(ldtRegEOS.Rows.Count > 0, "Test 4 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en la tabla EOS para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1140  // }
1141  // }
1142  // }
1143  // }
1144 
1145  // EliminacionDatosPruebasAnteriores();
1146  // }
1147 
1148 
1149  // /// <summary>
1150  // /// Prueba de creación de asiento de factura de venta TEST5:
1151  // /// Retencion cliente: si, sobre totfac.
1152  // /// Rec.Equiv cliente: no
1153  // /// Recargo financiero: no
1154  // /// Pronto pago: no
1155  // /// Asiento de factura de venta a cliente con retención, sin pronto pago, sin recargo equiv, sin recargo financiero, cliente nacional, IVA 21%, RET.TOTFAC 15%
1156  // /// Base 1000, IVA 210, Ret. 181.5, Total 1028.50
1157  // ///</summary>
1158  // [Owner(Owners.JoseMaria_Gay),
1159  // TestMethod(),
1160  // Description("Asiento de factura de venta a cliente con retención, sin pronto pago, sin recargo equiv, sin recargo financiero, cliente nacional, IVA 21%, RET.TOTFAC 15%, Base 1000, IVA 210, Ret. 181.5, Total 1028.50"),
1161  // DeploymentItem("sage.50.exe")]
1162  // [Priority(1)]
1163  // public void AsientosFacturasVentasGeneradorTest5()
1164  // {
1165  // bool llOk = false;
1166 
1167  // this._Cliente = "43070000";
1168  // this._Contrapartida = "70000001";
1169  // this._Factura = "XX".PadLeft(10);
1170  // this._BaseIva = 1000;
1171  // this._ImpContrapartida = 1000;
1172  // this._TipoIva = "XX";
1173  // this._TipoRet = "XX";
1174  // this._TipoIvaEx = "XE";
1175 
1176  // // Crea si no existen en la bd los tipos de IVA y retención para la prueba.
1177  // PrepararDatosPrueba();
1178 
1179 
1180  // // Configura la ficha del cl iente para la prueba: con retención sobre total factura, sin recargo equivalencia, sin pronto, cliente nacional, sin recargo financiero
1181  // ConfigurarCliente(true, sage.ew.cliente.Cliente.TipoRetencion.SobreFactura, false, 0, "034", "", sage.ew.cliente.Cliente.TipoCliente.Nacional,0);
1182 
1183 
1184  // // Comprobar que los datos de prueba introducidos son correctos.
1185  // ComprobarDatosPrueba();
1186 
1187 
1188  // // Elimina asiento, iva y previsiones pruebas anteriores
1189  // EliminacionDatosPruebasAnteriores();
1190 
1191 
1192  // // Comienzo.
1193  // AsientosFacturasVentaGenerador loGenAsiFacVen = new AsientosFacturasVentaGenerador();
1194  // loGenAsiFacVen._LinkForm = false;
1195 
1196  // loGenAsiFacVen._Fecha_Asiento = DateTime.Today;
1197  // loGenAsiFacVen._Fecha_Factura = DateTime.Today;
1198 
1199  // // Al hacer esta asignacion los campos de retencion y pronto pago del objeto loGenAsiFacVen deben quedar
1200  // // asignados automaticamente
1201  // loGenAsiFacVen._CliPro = this._Cliente;
1202 
1203  // loGenAsiFacVen._Factura = this._Factura;
1204 
1205  // // Una linia de TIPOIVA
1206  // if (loGenAsiFacVen._TipoIvaLineas.Count == 0)
1207  // loGenAsiFacVen._TipoIvaLineas.Add(new AsientosFacturasGenerador.TipoIvaLinea(loGenAsiFacVen));
1208 
1209  // AsientosFacturasVentaGenerador.TipoIvaLinea loLiniaTipoIva = loGenAsiFacVen._TipoIvaLineas[0];
1210  // loLiniaTipoIva._Codigo = this._TipoIva;
1211  // loLiniaTipoIva._Base = this._BaseIva;
1212 
1213 
1214 
1215  // // Una linia de CONTRAPARTIDA
1216  // if (loGenAsiFacVen._ContrapartidasLineas.Count == 0)
1217  // loGenAsiFacVen._ContrapartidasLineas.Add(new AsientosFacturasGenerador.ContraPartidaLinea(loGenAsiFacVen));
1218 
1219  // AsientosFacturasVentaGenerador.ContraPartidaLinea loLiniaContrapartida = loGenAsiFacVen._ContrapartidasLineas[0];
1220  // loLiniaContrapartida._Cuenta = this._Contrapartida;
1221  // loLiniaContrapartida._Importe = this._ImpContrapartida;
1222 
1223 
1224 
1225  // // Warnings no lo paso, voy directo a los errores de configuracion previos a la generacion
1226  // loGenAsiFacVen._Error_Message = "";
1227  // llOk = loGenAsiFacVen._GenerarAsientoFactura_Before_Errors();
1228  // Assert.AreEqual(llOk, true, "Test 5 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba, " +
1229  // "no se superó el control previo de errores para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," +
1230  // this._Factura + ") Mensaje de error: " + loGenAsiFacVen._Error_Message);
1231 
1232 
1233  // // Genero el asientn
1234  // if (llOk)
1235  // {
1236  // loGenAsiFacVen._Error_Message = "";
1237  // llOk = loGenAsiFacVen._GenerarAsientoFactura();
1238  // Assert.AreEqual(llOk, true, "Test 5 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba para la factura " +
1239  // "(EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ") Mensaje de error: " +
1240  // loGenAsiFacVen._Error_Message);
1241 
1242  // if (llOk)
1243  // {
1244  // IAsientos loAsiento = loGenAsiFacVen._AsientoGenerado;
1245  // Assert.IsNotNull(loAsiento, "Test 5 GeneradorAsientosFacturasVenta. No se ha generador el asiento de factura de venta correctamente.");
1246 
1247  // if (loAsiento != null)
1248  // {
1249  // // Asiento descuadrado ?
1250  // Assert.AreEqual(0, loAsiento._TotalDebe - loAsiento._TotalHaber, "Test 5 GeneradorAsientosFacturasVenta. Asiento generado descuadrado. Descuadre = " + (loAsiento._TotalDebe - loAsiento._TotalHaber).ToString());
1251 
1252  // //Generar previsiones.
1253  // loGenAsiFacVen._GenerarPrevisiones(false);
1254 
1255 
1256  // // 4 lineas en asiento ?
1257  // Assert.AreEqual(4, loAsiento._Lineas.Count, "Test 5 GeneradorAsientosFacturasVenta. Asiento generado correctamente pero se esperaban 4 lineas y tiene " + loAsiento._Lineas.Count.ToString());
1258  // if (loAsiento._Lineas.Count == 4)
1259  // {
1260  // TipoIVA loTipoIva = new TipoIVA();
1261  // loTipoIva._Codigo = this._TipoIva;
1262 
1263  // TipoRetencion loTipoRet = new TipoRetencion();
1264  // loTipoRet._Codigo = this._TipoRet;
1265 
1266  // // Verificamos que en cada linea haya la cuenta que esperamos
1267  // Assert.AreEqual(this._Cliente, loAsiento._Lineas[0]._Cuenta, "Test 5 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener cuenta contable " + this._Cliente + " y es " + loAsiento._Lineas[0]._Cuenta);
1268  // Assert.AreEqual(this._Contrapartida, loAsiento._Lineas[1]._Cuenta, "Test 5 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener cuenta contable de gastos " + this._Contrapartida + " y es " + loAsiento._Lineas[1]._Cuenta);
1269  // Assert.AreEqual(loTipoIva._Cta_IVA_Rep, loAsiento._Lineas[2]._Cuenta, "Test 5 GeneradorAsientosFacturasVenta. La tercera linea del asiento debería tener cuenta contable de IVA " + loTipoIva._Cta_IVA_Rep + " y es " + loAsiento._Lineas[2]._Cuenta);
1270  // Assert.AreEqual(loTipoRet._CTA_RE_SOP, loAsiento._Lineas[3]._Cuenta, "Test 5 GeneradorAsientosFacturasVenta. La cuarta linea del asiento debería tener cuenta contable de retencion soportada " + loTipoRet._CTA_RE_SOP + " y es " + loAsiento._Lineas[3]._Cuenta);
1271 
1272  // // Verificamos que en cada linea haya el importe que esperamos
1273  // Assert.AreEqual<decimal>(1028.5M, loAsiento._Lineas[0]._Debe, "Test 5 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener importe 1028.5 en DEBE y tiene " + loAsiento._Lineas[0]._Debe);
1274  // Assert.AreEqual(1000, loAsiento._Lineas[1]._Haber, "Test 5 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener importe 1000 en el HABER y tiene " + loAsiento._Lineas[1]._Haber);
1275  // Assert.AreEqual(210, loAsiento._Lineas[2]._Haber, "Test 5 GeneradorAsientosFacturasVenta. La tercera linea del asiento debería tener importe 210 en el HABER y tiene " + loAsiento._Lineas[2]._Haber);
1276  // Assert.AreEqual<decimal>(181.5M, loAsiento._Lineas[3]._Debe, "Test 5 GeneradorAsientosFacturasVenta. La cuarta linea del asiento debería tener importe 181.5 en el DEBE y tiene " + loAsiento._Lineas[3]._Debe);
1277 
1278  // // Verificamos un registro en IVAREPER.
1279  // DataTable ldtRegIvareper = new DataTable();
1280  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "ivareper") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and numfra='" + this._Factura + "'", ref ldtRegIvareper);
1281  // Assert.AreEqual(1, ldtRegIvareper.Rows.Count, "Test 5 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registro de IVAREPER en el asientos para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1282 
1283  // // Verificamos un registro en RETSOPOR
1284  // DataTable ldtRegRetSopor = new DataTable();
1285  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "retsopor") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and numfra='" + this._Factura + "'", ref ldtRegRetSopor);
1286  // Assert.AreEqual(1, ldtRegRetSopor.Rows.Count, "Test 5 GeneradorAsientosFacturasCompra, asiento generado pero no se ha detectado registro de RETSOPOR en el asientos para la factura (EMPRESA, CLIENTE, FACTURA) (" + this._Empresa + "," + this._Cliente + "," + this._Factura + ")");
1287 
1288  // // Verificamos que el importe de retencion en RETSOPOR sea el correcto.
1289  // if (ldtRegRetSopor.Rows.Count == 1)
1290  // Assert.AreEqual<decimal>(181.5M, Convert.ToDecimal(ldtRegRetSopor.Rows[0]["retencio"]), "Test 5 GeneradorAsientosFacturasCompra, asiento generado y detectado registro de RETSOPOR pero con importe incorrecto para la factura (EMPRESA, CLIENTE, FACTURA) (" + this._Empresa + "," + this._Cliente + "," + this._Factura + "), debería ser 181.5 y es " + Convert.ToDecimal(ldtRegRetSopor.Rows[0]["retencio"]).ToString().Trim());
1291 
1292  // // Verificamos previsiones de pago generadas.
1293  // DataTable ldtRegPreviCl = new DataTable();
1294  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("comunes", "previ_cl") + " where empresa='" + this._Empresa + "' and cliente='" + this._Cliente + "' and factura='" + this._Factura + "'", ref ldtRegPreviCl);
1295  // Assert.IsTrue(ldtRegPreviCl.Rows.Count > 0, "Test 5 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en COMUNES.PREVI_CL para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1296 
1297  // // Verificamos registros EOS (contrapartida)
1298  // DataTable ldtRegEOS = new DataTable();
1299  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "eos") + " where empresa='" + this._Empresa + "' and factura='" + this._Factura + "'", ref ldtRegEOS);
1300  // Assert.IsTrue(ldtRegEOS.Rows.Count > 0, "Test 5 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en la tabla EOS para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1301  // }
1302  // }
1303  // }
1304  // }
1305 
1306  // EliminacionDatosPruebasAnteriores();
1307  // }
1308 
1309 
1310  // /// <summary>
1311  // /// Prueba de creación de asiento de factura de venta TEST6:
1312  // /// Retencion cliente: si, sobre total factura
1313  // /// Rec.Equiv cliente: si
1314  // /// Recargo financiero: si
1315  // /// Pronto pago: si
1316  // /// Asiento de factura de venta a cliente con retención, con pronto pago, con recargo equiv, con recargo financiero 10%, cliente nacional, IVA 21%, RECEQUIV 1%, P.P. 10%, RET.BASE 15%, % REC.FINAN 10%
1317  // /// Base 1000, IVA 210, RecEquiv 10, PP 111.11, Ret. 183, RFinan. 100, Total 1137
1318  // ///</summary>
1319  // [Owner(Owners.JoseMaria_Gay),
1320  // TestMethod(),
1321  // Description("Asiento de factura de venta a cliente con retención, con pronto pago, con recargo equiv, con recargo financiero 10%, cliente nacional, IVA 21%, RECEQUIV 1%, P.P. 10%, RET.BASE 15%, REC. FINAN 10%, Base 1000, IVA 210, RecEquiv 10, Ret. 183, RFinan 100, Total 1137"),
1322  // DeploymentItem("sage.50.exe")]
1323  // [Priority(1)]
1324  // public void AsientosFacturasVentasGeneradorTest6()
1325  // {
1326  // bool llOk = false;
1327 
1328  // this._Cliente = "43070000";
1329  // this._Contrapartida = "70000001";
1330  // this._Factura = "XX".PadLeft(10);
1331  // this._BaseIva = 1000;
1332  // this._ImpContrapartida = 1111.11M;
1333  // this._TipoIva = "XX";
1334  // this._TipoRet = "XX";
1335  // this._TipoIvaEx = "XE";
1336 
1337  // // Crea si no existen en la bd los tipos de IVA y retención para la prueba.
1338  // PrepararDatosPrueba();
1339 
1340 
1341  // // Configura la ficha del cliente para la prueba: con retencion sobre base, con recargo equiv, con pronto, cliente nacional, con recargo financiero
1342  // ConfigurarCliente(true, sage.ew.cliente.Cliente.TipoRetencion.SobreFactura, true, 10, "034", "", sage.ew.cliente.Cliente.TipoCliente.Nacional, 10);
1343 
1344 
1345  // // Comprobar que los datos de prueba introducidos son correctos.
1346  // ComprobarDatosPrueba();
1347 
1348 
1349  // // Elimina asiento, iva y previsiones pruebas anteriores
1350  // EliminacionDatosPruebasAnteriores();
1351 
1352 
1353  // // Comienzo.
1354  // AsientosFacturasVentaGenerador loGenAsiFacVen = new AsientosFacturasVentaGenerador();
1355  // loGenAsiFacVen._LinkForm = false;
1356 
1357  // loGenAsiFacVen._Fecha_Asiento = DateTime.Today;
1358  // loGenAsiFacVen._Fecha_Factura = DateTime.Today;
1359 
1360  // // Al hacer esta asignacion los campos de retencion y pronto pago del objeto loGenAsiFacVen deben quedar
1361  // // asignados automaticamente
1362  // loGenAsiFacVen._CliPro = this._Cliente;
1363 
1364  // loGenAsiFacVen._Factura = this._Factura;
1365 
1366  // // Una linia de TIPOIVA
1367  // if (loGenAsiFacVen._TipoIvaLineas.Count == 0)
1368  // loGenAsiFacVen._TipoIvaLineas.Add(new AsientosFacturasGenerador.TipoIvaLinea(loGenAsiFacVen));
1369 
1370  // AsientosFacturasVentaGenerador.TipoIvaLinea loLiniaTipoIva = loGenAsiFacVen._TipoIvaLineas[0];
1371  // loLiniaTipoIva._Codigo = this._TipoIva;
1372  // loLiniaTipoIva._Base = this._BaseIva;
1373 
1374 
1375 
1376  // // Una linia de CONTRAPARTIDA
1377  // if (loGenAsiFacVen._ContrapartidasLineas.Count == 0)
1378  // loGenAsiFacVen._ContrapartidasLineas.Add(new AsientosFacturasGenerador.ContraPartidaLinea(loGenAsiFacVen));
1379 
1380  // AsientosFacturasVentaGenerador.ContraPartidaLinea loLiniaContrapartida = loGenAsiFacVen._ContrapartidasLineas[0];
1381  // loLiniaContrapartida._Cuenta = this._Contrapartida;
1382  // loLiniaContrapartida._Importe = this._ImpContrapartida;
1383 
1384 
1385 
1386  // // Warnings no lo paso, voy directo a los errores de configuracion previos a la generacion
1387  // loGenAsiFacVen._Error_Message = "";
1388  // llOk = loGenAsiFacVen._GenerarAsientoFactura_Before_Errors();
1389  // Assert.AreEqual(llOk, true, "Test 6 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba, " +
1390  // "no se superó el control previo de errores para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," +
1391  // this._Factura + ") Mensaje de error: " + loGenAsiFacVen._Error_Message);
1392 
1393 
1394  // // Genero el asiento
1395  // if (llOk)
1396  // {
1397  // loGenAsiFacVen._Error_Message = "";
1398  // llOk = loGenAsiFacVen._GenerarAsientoFactura();
1399  // Assert.AreEqual(llOk, true, "Test 6 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba para la factura " +
1400  // "(EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ") Mensaje de error: " +
1401  // loGenAsiFacVen._Error_Message);
1402 
1403  // if (llOk)
1404  // {
1405  // IAsientos loAsiento = loGenAsiFacVen._AsientoGenerado;
1406  // Assert.IsNotNull(loAsiento, "Test 6 GeneradorAsientosFacturasVenta. No se ha generador el asiento de factura de venta correctamente.");
1407 
1408  // if (loAsiento != null)
1409  // {
1410  // // Asiento descuadrado ?
1411  // Assert.AreEqual(0, loAsiento._TotalDebe - loAsiento._TotalHaber, "Test 6 GeneradorAsientosFacturasVenta. Asiento generado descuadrado. Descuadre = " + (loAsiento._TotalDebe - loAsiento._TotalHaber).ToString());
1412 
1413  // //Generar previsiones.
1414  // loGenAsiFacVen._GenerarPrevisiones(false);
1415 
1416 
1417  // // 7 lineas en asiento ?
1418  // Assert.AreEqual(7, loAsiento._Lineas.Count, "Test 6 GeneradorAsientosFacturasVenta. Asiento generado correctamente pero se esperaban 6 lineas y tiene " + loAsiento._Lineas.Count.ToString());
1419  // if (loAsiento._Lineas.Count == 7)
1420  // {
1421  // TipoIVA loTipoIva = new TipoIVA();
1422  // loTipoIva._Codigo = this._TipoIva;
1423 
1424  // TipoRetencion loTipoRet = new TipoRetencion();
1425  // loTipoRet._Codigo = this._TipoRet;
1426 
1427  // // Verificamos que en cada linea haya la cuenta que esperamos
1428  // Assert.AreEqual(this._Cliente, loAsiento._Lineas[0]._Cuenta, "Test 6 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener cuenta contable " + this._Cliente + " y es " + loAsiento._Lineas[0]._Cuenta);
1429  // Assert.AreEqual(this._Contrapartida, loAsiento._Lineas[1]._Cuenta, "Test 6 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener cuenta contable de gastos " + this._Contrapartida + " y es " + loAsiento._Lineas[1]._Cuenta);
1430  // Assert.AreEqual(loTipoIva._Cta_IVA_Rep, loAsiento._Lineas[2]._Cuenta, "Test 6 GeneradorAsientosFacturasVenta. La tercera linea del asiento debería tener cuenta contable de IVA " + loTipoIva._Cta_IVA_Rep + " y es " + loAsiento._Lineas[2]._Cuenta);
1431  // Assert.AreEqual(loTipoIva._Cta_REC_Rep, loAsiento._Lineas[3]._Cuenta, "Test 6 GeneradorAsientosFacturasVenta. La cuarta linea del asiento debería tener cuenta contable de RECEQUIV " + loTipoIva._Cta_REC_Sop + " y es " + loAsiento._Lineas[3]._Cuenta);
1432 
1433  // string lcCuentaPPVentas = Convert.ToString(EW_GLOBAL._GetVariable("wc_vdtos"));
1434  // Assert.AreEqual(lcCuentaPPVentas, loAsiento._Lineas[4]._Cuenta, "Test 6 GeneradorAsientosFacturasVenta. La quinta linea del asiento debería tener cuenta contable de DTO.P.P. VENTAS " + lcCuentaPPVentas + " y es " + loAsiento._Lineas[4]._Cuenta);
1435 
1436  // string lcCuentaRecFinan = Convert.ToString(EW_GLOBAL._GetVariable("wc_recfinan"));
1437  // Assert.AreEqual(lcCuentaRecFinan, loAsiento._Lineas[5]._Cuenta, "Test 6 GeneradorAsientosFacturasVenta. La sexta linea del asiento debería tener cuenta contable de recargo financiero " + lcCuentaRecFinan + " y es " + loAsiento._Lineas[5]._Cuenta);
1438 
1439  // Assert.AreEqual(loTipoRet._CTA_RE_SOP, loAsiento._Lineas[6]._Cuenta, "Test 6 GeneradorAsientosFacturasVenta. La septima linea del asiento debería tener cuenta contable de retencion soportada " + loTipoRet._CTA_RE_SOP + " y es " + loAsiento._Lineas[6]._Cuenta);
1440 
1441  // // Verificamos que en cada linea haya el importe que esperamos
1442  // Assert.AreEqual(1137, loAsiento._Lineas[0]._Debe, "Test 6 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener importe 1137 en el DEBE y tiene " + loAsiento._Lineas[0]._Debe);
1443  // Assert.AreEqual<decimal>(1111.11M, loAsiento._Lineas[1]._Haber, "Test 6 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener importe 1111.11 en el HABER y tiene " + loAsiento._Lineas[1]._Haber);
1444  // Assert.AreEqual(210, loAsiento._Lineas[2]._Haber, "Test 6 GeneradorAsientosFacturasVenta. La tercera linea del asiento debería tener importe 210 en el HABER y tiene " + loAsiento._Lineas[2]._Haber);
1445  // Assert.AreEqual(10, loAsiento._Lineas[3]._Haber, "Test 6 GeneradorAsientosFacturasVenta. La cuarta linea del asiento debería tener importe 10 en el HABER y tiene " + loAsiento._Lineas[3]._Haber);
1446  // Assert.AreEqual<decimal>(111.11M, loAsiento._Lineas[4]._Debe, "Test 6 GeneradorAsientosFacturasVenta. La quinta linea del asiento debería tener importe 111.11 en el DEBE y tiene " + loAsiento._Lineas[4]._Debe);
1447  // Assert.AreEqual(100, loAsiento._Lineas[5]._Haber, "Test 6 GeneradorAsientosFacturasVenta. La sexta linea del asiento debería tener importe 100 en el HABER y tiene " + loAsiento._Lineas[5]._Haber);
1448  // Assert.AreEqual(183, loAsiento._Lineas[6]._Debe, "Test 6 GeneradorAsientosFacturasVenta. La séptima linea del asiento debería tener importe 183 en el DEBE y tiene " + loAsiento._Lineas[6]._Debe);
1449 
1450  // // Verificamos un registro en IVAREPER.
1451  // DataTable ldtRegIvareper = new DataTable();
1452  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "ivareper") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and numfra='" + this._Factura + "'", ref ldtRegIvareper);
1453  // Assert.AreEqual(1, ldtRegIvareper.Rows.Count, "Test 6 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registro de IVAREPER en el asientos para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1454 
1455  // // Verificamos un registro en RETSOPOR
1456  // DataTable ldtRegRetSopor = new DataTable();
1457  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "retsopor") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and numfra='" + this._Factura + "'", ref ldtRegRetSopor);
1458  // Assert.AreEqual(1, ldtRegRetSopor.Rows.Count, "Test 5 GeneradorAsientosFacturasCompra, asiento generado pero no se ha detectado registro de RETSOPOR en el asientos para la factura (EMPRESA, CLIENTE, FACTURA) (" + this._Empresa + "," + this._Cliente + "," + this._Factura + ")");
1459 
1460  // // Verificamos que el importe de retencion en RETSOPOR sea el correcto.
1461  // if (ldtRegRetSopor.Rows.Count == 1)
1462  // Assert.AreEqual(183, Convert.ToDecimal(ldtRegRetSopor.Rows[0]["retencio"]), "Test 5 GeneradorAsientosFacturasCompra, asiento generado y detectado registro de RETSOPOR pero con importe incorrecto para la factura (EMPRESA, CLIENTE, FACTURA) (" + this._Empresa + "," + this._Cliente + "," + this._Factura + "), debería ser 183 y es " + Convert.ToDecimal(ldtRegRetSopor.Rows[0]["retencio"]).ToString().Trim());
1463 
1464  // // Verificamos previsiones de pago generadas.
1465  // DataTable ldtRegPreviCl = new DataTable();
1466  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("comunes", "previ_cl") + " where empresa='" + this._Empresa + "' and cliente='" + this._Cliente + "' and factura='" + this._Factura + "'", ref ldtRegPreviCl);
1467  // Assert.IsTrue(ldtRegPreviCl.Rows.Count > 0, "Test 6 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en COMUNES.PREVI_CL para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1468 
1469  // // Verificamos registros EOS (contrapartida + recargo financiero)
1470  // DataTable ldtRegEOS = new DataTable();
1471  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "eos") + " where empresa='" + this._Empresa + "' and factura='" + this._Factura + "'", ref ldtRegEOS);
1472  // Assert.IsTrue(ldtRegEOS.Rows.Count > 1, "Test 6 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en la tabla EOS para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1473  // }
1474  // }
1475  // }
1476  // }
1477 
1478  // EliminacionDatosPruebasAnteriores();
1479  // }
1480 
1481  // /// <summary>
1482  // /// Prueba de creación de asiento de factura de venta TEST7:
1483  // /// Retencion cliente: no
1484  // /// Rec.Equiv cliente: no
1485  // /// Rec.Financiero cliente: no
1486  // /// Pronto pago: no
1487  // /// Asiento de venta a cliente IVA EXENTO, sin retención, sin pronto pago, sin recargo equiv., sin recargo financiero, cliente nacional, IVA EXENTO
1488  // /// Base 1000, IVA 210, Total 1210
1489  // ///</summary>
1490  // [Owner(Owners.JoseMaria_Gay),
1491  // TestMethod(),
1492  // Description("Asiento de factura de venta a cliente IVA EXENTO, sin retención, sin pronto pago, sin recargo equiv., sin recargo financiero, cliente nacional, IVA 21%, Base 1000, IVA 210, Total 1210"),
1493  // DeploymentItem("sage.50.exe")]
1494  // [Priority(1)]
1495  // public void AsientosFacturasVentasGeneradorTest7()
1496  // {
1497  // bool llOk = false;
1498 
1499  // this._Cliente = "43070000";
1500  // this._Contrapartida = "70000001";
1501  // this._Factura = "XX".PadLeft(10);
1502  // this._BaseIva = 1000;
1503  // this._ImpContrapartida = 1000;
1504  // this._TipoIva = "XX";
1505  // this._TipoRet = "XX";
1506  // this._TipoIvaEx = "XE";
1507 
1508  // // Crea si no existen en la bd los tipos de IVA y retención para la prueba.
1509  // PrepararDatosPrueba();
1510 
1511 
1512  // // Configura la ficha del cliente para la prueba: sin retencion, sin recargo, sin pronto, cliente nacional, sin recargo financiero
1513  // ConfigurarCliente(false, sage.ew.cliente.Cliente.TipoRetencion.SinRetencion, false, 0, "034", "", sage.ew.cliente.Cliente.TipoCliente.Nacional, 0);
1514 
1515 
1516  // // Comprobar que los datos de prueba introducidos son correctos.
1517  // ComprobarDatosPrueba();
1518 
1519 
1520  // // Elimina asiento, iva y previsiones pruebas anteriores
1521  // EliminacionDatosPruebasAnteriores();
1522 
1523 
1524  // // Comienzo.
1525  // AsientosFacturasVentaGenerador loGenAsiFacVen = new AsientosFacturasVentaGenerador();
1526  // loGenAsiFacVen._LinkForm = false;
1527 
1528  // loGenAsiFacVen._Fecha_Asiento = DateTime.Today;
1529  // loGenAsiFacVen._Fecha_Factura = DateTime.Today;
1530 
1531  // // Al hacer esta asignacion los campos de retencion y pronto pago del objeto loGenAsiFacVen deben quedar
1532  // // asignados automaticamente
1533  // loGenAsiFacVen._CliPro = this._Cliente;
1534 
1535  // loGenAsiFacVen._Factura = this._Factura;
1536 
1537  // // Una linia de TIPOIVA
1538  // if (loGenAsiFacVen._TipoIvaLineas.Count == 0)
1539  // loGenAsiFacVen._TipoIvaLineas.Add(new AsientosFacturasGenerador.TipoIvaLinea(loGenAsiFacVen));
1540 
1541  // AsientosFacturasVentaGenerador.TipoIvaLinea loLiniaTipoIva = loGenAsiFacVen._TipoIvaLineas[0];
1542  // loLiniaTipoIva._Codigo = this._TipoIvaEx;
1543  // loLiniaTipoIva._Base = this._BaseIva;
1544 
1545 
1546 
1547  // // Una linia de CONTRAPARTIDA
1548  // if (loGenAsiFacVen._ContrapartidasLineas.Count == 0)
1549  // loGenAsiFacVen._ContrapartidasLineas.Add(new AsientosFacturasGenerador.ContraPartidaLinea(loGenAsiFacVen));
1550 
1551  // AsientosFacturasVentaGenerador.ContraPartidaLinea loLiniaContrapartida = loGenAsiFacVen._ContrapartidasLineas[0];
1552  // loLiniaContrapartida._Cuenta = this._Contrapartida;
1553  // loLiniaContrapartida._Importe = this._ImpContrapartida;
1554 
1555 
1556 
1557  // // Warnings no lo paso, voy directo a los errores de configuracion previos a la generacion
1558  // loGenAsiFacVen._Error_Message = "";
1559  // llOk = loGenAsiFacVen._GenerarAsientoFactura_Before_Errors();
1560  // Assert.AreEqual(llOk, true, "Test 7 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba, " +
1561  // "no se superó el control previo de errores para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," +
1562  // this._Factura + ") Mensaje de error: " + loGenAsiFacVen._Error_Message);
1563 
1564 
1565  // // Genero el asientn
1566  // if (llOk)
1567  // {
1568  // loGenAsiFacVen._Error_Message = "";
1569  // llOk = loGenAsiFacVen._GenerarAsientoFactura();
1570  // Assert.AreEqual(llOk, true, "Test 7 GeneradorAsientosFacturasVenta. No se pudo generar el asiento de factura de venta de la prueba para la factura " +
1571  // "(EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ") Mensaje de error: " +
1572  // loGenAsiFacVen._Error_Message);
1573 
1574  // if (llOk)
1575  // {
1576  // IAsientos loAsiento = loGenAsiFacVen._AsientoGenerado;
1577  // Assert.IsNotNull(loAsiento, "Test 7 GeneradorAsientosFacturasVenta. No se ha generador el asiento de factura de venta correctamente.");
1578 
1579  // if (loAsiento != null)
1580  // {
1581  // // Asiento descuadrado ?
1582  // Assert.AreEqual(0, loAsiento._TotalDebe - loAsiento._TotalHaber, "Test 7 GeneradorAsientosFacturasVenta. Asiento generado descuadrado. Descuadre = " + (loAsiento._TotalDebe - loAsiento._TotalHaber).ToString());
1583 
1584  // //Generar previsiones.
1585  // loGenAsiFacVen._GenerarPrevisiones(false);
1586 
1587 
1588  // // 2 lineas en asiento ?
1589  // Assert.AreEqual(2, loAsiento._Lineas.Count, "Test 7 GeneradorAsientosFacturasVenta. Asiento generado correctamente pero se esperaban 2 lineas y tiene " + loAsiento._Lineas.Count.ToString());
1590  // if (loAsiento._Lineas.Count == 2)
1591  // {
1592  // TipoIVA loTipoIva = new TipoIVA();
1593 
1594  // loTipoIva._Codigo = this._TipoIva;
1595 
1596  // // Verificamos que en cada linea haya la cuenta que esperamos
1597  // Assert.AreEqual(this._Cliente, loAsiento._Lineas[0]._Cuenta, "Test 7 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener cuenta contable " + this._Cliente + " y es " + loAsiento._Lineas[0]._Cuenta);
1598  // Assert.AreEqual(this._Contrapartida, loAsiento._Lineas[1]._Cuenta, "Test 7 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener cuenta contable de gastos " + this._Contrapartida + " y es " + loAsiento._Lineas[1]._Cuenta);
1599 
1600 
1601 
1602  // // Verificamos que en cada linea haya el importe que esperamos
1603  // Assert.AreEqual(1000, loAsiento._Lineas[0]._Debe, "Test 7 GeneradorAsientosFacturasVenta. La primera linea del asiento debería tener importe 1000 en el DEBE y tiene " + loAsiento._Lineas[0]._Debe);
1604  // Assert.AreEqual(1000, loAsiento._Lineas[1]._Haber, "Test 7 GeneradorAsientosFacturasVenta. La segunda linea del asiento debería tener importe 1000 en el HABER y tiene " + loAsiento._Lineas[1]._Haber);
1605 
1606  // // Verificamos 0 registros en IVAREPER.
1607  // DataTable ldtRegIvareper = new DataTable();
1608  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "ivareper") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and numfra='" + this._Factura + "'", ref ldtRegIvareper);
1609  // Assert.AreEqual(0, ldtRegIvareper.Rows.Count, "Test 7 GeneradorAsientosFacturasVenta, asiento generado IVA EXENTO pero se ha detectado registro de IVAREPER en el asientos para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1610 
1611  // // Verificamos un registro en IVA_EXEN
1612  // DataTable ldtRegIvaExen = new DataTable();
1613  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "iva_exen") + " where empresa='" + this._Empresa + "' and cuenta='" + this._Cliente + "' and factura='" + this._Factura + "' and tipo=2", ref ldtRegIvaExen);
1614  // Assert.AreEqual(1, ldtRegIvaExen.Rows.Count, "Test 7 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registro de IVA_EXEN en el asientos para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1615 
1616  // // Verificamos previsiones de pago generadas.
1617  // DataTable ldtRegPreviCl = new DataTable();
1618  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("comunes", "previ_cl") + " where empresa='" + this._Empresa + "' and cliente='" + this._Cliente + "' and factura='" + this._Factura + "'", ref ldtRegPreviCl);
1619  // Assert.IsTrue(ldtRegPreviCl.Rows.Count > 0, "Test 7 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en COMUNES.PREVI_CL para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1620 
1621  // // Verificamos registros EOS (contrapartida)
1622  // DataTable ldtRegEOS = new DataTable();
1623  // llOk = DB.SQLExec("select * from " + DB.SQLDatabase("gestion", "eos") + " where empresa='" + this._Empresa + "' and factura='" + this._Factura + "'", ref ldtRegEOS);
1624  // Assert.IsTrue(ldtRegEOS.Rows.Count > 0, "Test 7 GeneradorAsientosFacturasVenta, asiento generado pero no se ha detectado registros en la tabla EOS para la factura (EMPRESA, FACTURA) (" + this._Empresa + "," + this._Factura + ")");
1625  // }
1626  // }
1627  // }
1628  // }
1629 
1630  // EliminacionDatosPruebasAnteriores();
1631  // }
1632  //}
1633 }