ImpresionFactuven.cs
1 using System;
2 using System.Data;
3 using System.Collections.Generic;
4 using System.IO;
5 using System.Linq;
6 using Microsoft.VisualStudio.TestTools.UnitTesting;
7 using sage.ew.ewbase;
8 using sage.ew.global;
9 using sage.ew.docsven;
10 using Sage.ES.S50.UnitTest.Tools;
11 using sage.ew.reports;
12 
13 namespace Sage.ES.S50.UnitTest.Docsven
14 {
18  [TestClass()]
19  public class ImpresionFactuven
20  {
21  #region PROPIEDADES PÚBLICAS
22 
23 
24  public TestContext TestContext
25  {
26  get
27  {
28  return testContextInstance;
29  }
30  set
31  {
32  testContextInstance = value;
33  }
34  }
35  private TestContext testContextInstance;
36 
37 
38  #endregion PROPIEDADES PÚBLICAS
39 
40 
41  #region PROPIEDADES PRIVADAS
42 
43 
47  private static string _cEmpresa;
48 
49 
53  private static string _CodigoCliente = "";
54 
55 
59  private static string _CodigoFormaDePago = "";
60 
61 
65  private static ewDocVentaFRA _oFactura;
66 
67 
68  #endregion PROPIEDADES PRIVADAS
69 
70 
71  #region MÉTODOS PÚBLICOS
72 
73 
79  [ClassInitialize()]
80  [DoNotParallelize()]
81  public static void MyClassInitialize(TestContext testContext)
82  {
83  // Conexion a la base de datos
84  //
85  testContext.__Test_LoadRandomConfig();
86 
87  _cEmpresa = Convert.ToString(EW_GLOBAL._GetVariable("wc_empresa"));
88 
89  // Crear nuevo documento.
90  //
91 
92  // Utilizo este cliente que ya se que existe y que tiene datos de país y moneda correctos, fue creado por mí en
93  // la bd para otro test, y debe existir sí o sí.
94  //
95  _CodigoCliente = "43099441";
96 
97  _CodigoFormaDePago = testContext.__FieldAleatorio("GESTION", "FPAG");
98 
99  _oFactura = new ewDocVentaFRA();
100  string lcNumero = "SD5MGAYF"; // de 8 dígitos pues añade la serie delante.
101 
102  if(_oFactura._New(_cEmpresa, "SF", lcNumero))
103  {
104  _oFactura._Cabecera._Cliente = _CodigoCliente;
105  _oFactura._Cabecera._FormaPago = _CodigoFormaDePago;
106  _oFactura._Fecha = DateTime.Now;
107 
108  ewDocVentaLinFRA loLin = _oFactura._AddLinea();
109  loLin._Articulo = "";
110  loLin._Definicion = "ART TEST";
111  loLin._TipoIva = "03";
112  loLin._Unidades = 1;
113  loLin._PrecioDivisa = 100;
114 
115  loLin = _oFactura._AddLinea();
116  loLin._Articulo = "";
117  loLin._Definicion = "ART 2 TEST";
118  loLin._TipoIva = "03";
119  loLin._Unidades = 1;
120  loLin._PrecioDivisa = 100;
121  }
122  else
123  {
124  Assert.Fail("No se ha podido crear el documento factura de venta.");
125  }
126 
127  return;
128  }
129 
130 
134  [ClassCleanup()]
135  [DoNotParallelize()]
136  public static void Tasks_After_AllTests()
137  {
138  string lcNumero = "";
139 
140  if (_oFactura != null && !string.IsNullOrWhiteSpace(_oFactura._Numero))
141  {
142  lcNumero = _oFactura._Numero;
143  if (!_oFactura._Delete())
144  throw new Exception("Se ha producido un error al eliminar la factura de venta nº "+lcNumero);
145  }
146 
147  return;
148  }
149 
150 
151  [Owner(Owners.JosepM_Gay),
152  TestMethod(),
153  Description("Método de prueba para impresión de factura."),
154  Priority(1)]
155  [DoNotParallelize()]
156  public void ImprimirFacturaVenta()
157  {
158  //_oFactura._DocPrint._Valorado = true;
159 
160  Assert.IsTrue(!string.IsNullOrEmpty(_GetTotal()));
161 
162  return;
163  }
164 
165 
166  #endregion MÉTODOS PÚBLICOS
167 
168 
169  #region MÉTODOS PRIVADOS
170 
171 
176  private string _GetTotal()
177  {
178  Report loReport;
179  string lcValue = "";
180  FilterReportBase loFilter;
181  Dictionary<string, object> param = new Dictionary<string, object>();
182 
183  loReport = ((DocPrint)_oFactura._DocPrint)._CrearReport();
184 
185  loFilter = loReport._Filtros.Find(f => f._Key == "wc_TotalDocumento");
186 
187  if (loFilter is FilterReportBase)
188  {
189  lcValue = loFilter._Value;
190  }
191  else
192  {
193  Assert.Fail("No se ha podido encontrar el filtro wc_TotalDocumento en el report de factura de venta.");
194  }
195 
196  return lcValue;
197  }
198 
199 
200  #endregion MÉTODOS PRIVADOS
201  }
202 }
203 
abstract String _Value
Valor
static void MyClassInitialize(TestContext testContext)
Usar atributo ClassInitialize para ejecutar código antes de comenzar a ejecutar todas las pruebas...
override bool _New(string tcEmpresa, string tcSerieFra="", string tcNumeroFra="")
Número factura directa
Classe linia de la factura
Classe documento Factura de venta
Definition: DocsVentaFra.cs:61
override decimal _Unidades
sobreescribim unitats pel tema del display
decimal _PrecioDivisa
Precio divisa
Definition: DocsVen.cs:17146
_TipoDocCab _Cabecera
Cabecera
Definition: DocsVen.cs:2626
bool _Delete(bool tlMensaje=true)
Borra la factura de venta
Clase de prueba para comprobar correcto funcionamiento de la impresión de factura de venta...
DateTime _Fecha
Fecha del documento
Definition: DocsVen.cs:11760
Classe base dels documents.
Definition: DocsVen.cs:684
override string _Articulo
PE-69903. Capturem el canvi d&#39;article per tractar les unitats automátiques del TPV (wl_paracantidad) ...
override string _Numero
Número del document - Aquí ja controla si ha de ser de 8 o 10 depenent de si treballa amb series o no...
Clase base para traspasar información en el objeto serializado
override IDocPrint _DocPrint
Redefinición del objeto _DocPrint para las facturas
static void Tasks_After_AllTests()
Usar atributo ClassCleanup para ejecutar código después de finalizar la ejecución de todas las prueba...
override ewDocVentaLinFRA _AddLinea(ewDocVentaLinFRA toDocLinea, int tnInserLinea=-1)
si es factura directa asignar número albaran
Clase para la impresión de documentos (del tipo que sea)
Definition: DocPrint.cs:33