clsVentas.cs
1 //using System;
2 //using System.Collections.Generic;
3 //using System.Linq;
4 //using System.Text;
5 //using System.Data;
6 //using System.Data.Sql;
7 //using System.Data.SqlClient;
8 //using sage.ew.db;
9 //using sage.ew.global;
10 //using sage.ew.listados.Clases;
11 
12 //namespace sage.ew.listados.Listados
13 //{
14 // /// <summary>
15 // /// Clase para los listados
16 // /// </summary>
17 // public class Ventas : sage.ew.listados.Clases.Listados
18 // {
19 // /// <summary>
20 // /// PE-81810 : Listado de ventas
21 // /// Este listado sera utilizado por los listados: Ventas por caja, Ventas diarias por caja y Ventas por operario (clsVentasOperarios.cs)
22 // ///
23 // /// </summary>
24 // /// <param name="toFiltros">Filtros del listado: Fecha, Vendedor, Familia, Subfamilia, Marca, Articulo, Operario, Caja</param>
25 // /// <param name="toOpciones">Opciones del listado: TipoDoc</param>
26 // /// <param name="toEjercicios">Ejercicios sobre los que realizar el listado</param>
27 // /// <returns></returns>
28 // public virtual DataTable _Ventas(Dictionary<string, object> toFiltros, Dictionary<string, object> toOpciones = null, string[] toEjercicios = null)
29 // {
30 // DataTable ldtResult = new DataTable(); //Contendra el DataTable resultante
31 // object loParametro = null; //Para uso interno
32 // string lcSql = string.Empty, //Consulta SQL
33 // lcFiltros = string.Empty, //Filtros de la consulta
34 // lcFiltroTipoDoc = string.Empty, //Filtro según tipo de documento
35 // lcFiltroTipoTicket = string.Empty; //Filtro según tipo de ticket
36 // List<int> lnOpcionTipoDoc = new List<int>() { }; //Por defecto tickets (1)
37 // int lnOpcionTipoTicket = 0; //Por defecto sin filtro
38 // bool llOk = false;
39 
40 // //Exercici
41 // string lcAny = DB.SQLString(EW_GLOBAL._GetVariable("wc_any"));
42 
43 // //Iva incluido
44 // bool llIvaIncluido = Convert.ToBoolean(EW_GLOBAL._GetVariable("wl_ListIVAInc"));
45 // string lcImporte = llIvaIncluido ? "Gd.importeiva" : "Gd.importe";
46 
47 // //FILTROS
48 // //fecha
49 // lcFiltros += _Filtro_Fecha(toFiltros, _Tipo_Filtro_Fecha.Fecha, "Gc", "fecha");
50 // //vendedor
51 // lcFiltros += _Filtro_String(toFiltros, _Tipo_Filtro_String.Vendedor, "Gc", "vendedor");
52 // //familia
53 // lcFiltros += _Filtro_String(toFiltros, _Tipo_Filtro_String.Familia, "Ar", "familia", tlAddCoalesce: true);
54 // //subfamilia
55 // lcFiltros += _Filtro_String(toFiltros, _Tipo_Filtro_String.Subfamilia, "Ar", "subfamilia", tlAddCoalesce: true);
56 // //marca
57 // lcFiltros += _Filtro_String(toFiltros, _Tipo_Filtro_String.Marca, "Ar", "marca", tlAddCoalesce: true);
58 // //articulo
59 // lcFiltros += _Filtro_String(toFiltros, _Tipo_Filtro_String.Articulo, "Gd", "articulo");
60 // //operario
61 // lcFiltros += _Filtro_String(toFiltros, _Tipo_Filtro_String.Operario, "Gc", "operario");
62 // //caja
63 // lcFiltros += _Filtro_String(toFiltros, _Tipo_Filtro_String.Caja, "Tc", "caja");
64 
65 // //OPCIONES
66 // if (toOpciones != null)
67 // {
68 // if (_Opcion_Logico("lTicket"))
69 // lnOpcionTipoDoc.Add(1);
70 // if (_Opcion_Logico("lAlbaran"))
71 // lnOpcionTipoDoc.Add(2);
72 // if (_Opcion_Logico("lFactura"))
73 // lnOpcionTipoDoc.Add(3);
74 
75 // //Filtro segun opción TipoDoc
76 // foreach (int ln in lnOpcionTipoDoc)
77 // {
78 // lcFiltroTipoDoc += "Tc.tipo_doc = " + DB.SQLString(ln) + " OR ";
79 // }
80 // if (!string.IsNullOrWhiteSpace(lcFiltroTipoDoc))
81 // {
82 // lcFiltroTipoDoc = " AND (" + lcFiltroTipoDoc.Substring(0, lcFiltroTipoDoc.Length - 4) + ") ";
83 // }
84 
85 // //Tipo Ticket a filtrar
86 // toOpciones.TryGetValue("TipoTicket", out loParametro);
87 // if (loParametro != null)
88 // {
89 // lnOpcionTipoTicket = Convert.ToInt32(loParametro);
90 // loParametro = null;
91 // }
92 // //PE-82254 Filtro segun opción TipoTicket
93 // if (lnOpcionTipoTicket == 1) //aparcados
94 // {
95 // lcFiltros += " AND Tc.aparcado = 1 ";
96 // }
97 // else if (lnOpcionTipoTicket == 2) //credito
98 // {
99 // lcFiltroTipoTicket += " HAVING sum(COALESCE(Tk.ENTREGA,0) - COALESCE(Tk.CAMBIO,0)) - sum(COALESCE(Gd.importe,0)) != 0 AND max(Tc.TIPO_DOC) = 1 ";
100 // }
101 // }
102 
103 
104 // lcSql = "SELECT max(coalesce(NULLIF(Tc.caja,''),'SIN CAJA')) as caja, max(coalesce(NULLIF(Cj.Nombre,''),'SIN CAJA')) as nombrecaja"
105 // + ", max(coalesce(NULLIF(Gc.operario,''),'SIN OPERARIO')) as operario, max(coalesce(NULLIF(Toperario.nombre,''),'SIN OPERARIO')) as nombreoperario"
106 // + ", max(Gc.vendedor) as vendedor, max(Vd.nombre) as nombrevendedor "
107 // + ", max(Tc.letra) as serie, max(Tc.numero) as documento, max(Gc.fecha) as fecha, Sum(" + lcImporte + ") as importe, Sum(Gd.importediv) as importediv"
108 // + ", sum(Tk.ENTREGA - Tk.CAMBIO) as entrega, MAX(Tk.IMPORTE) AS credito, max(Gc.CLIENTE) as cliente, max(coalesce(NULLIF(Tc.nomcli,''),Cl.Nombre)) as nombrecliente"
109 // + " FROM " + DB.SQLDatabase("TPV", "c_albven") + " Tc "
110 // + " INNER JOIN " + DB.SQLDatabase("GESTION", "c_albven") + " Gc ON (Tc.empresa=Gc.empresa AND Tc.numero=Gc.numero AND Tc.letra=Gc.letra) "
111 // + " INNER JOIN " + DB.SQLDatabase("GESTION", "d_albven") + " Gd ON (Tc.empresa=Gd.empresa AND Tc.numero=Gd.numero AND Tc.letra=Gd.letra) "
112 // + " LEFT JOIN " + DB.SQLDatabase("COMUNES", "operario") + " Toperario ON Gc.operario = Toperario.codigo "
113 // + " LEFT JOIN " + DB.SQLDatabase("TPV", "cajas") + " Cj ON Tc.caja = Cj.codigo "
114 // + " LEFT JOIN " + DB.SQLDatabase("GESTION", "vendedor") + " Vd ON Gc.vendedor = Vd.codigo "
115 // + " LEFT JOIN " + DB.SQLDatabase("GESTION", "articulo") + " Ar ON Gd.ARTICULO=Ar.CODIGO"
116 // + " LEFT JOIN " + DB.SQLDatabase("GESTION", "clientes") + " Cl ON Gc.CLIENTE=Cl.CODIGO"
117 // + " LEFT JOIN " + DB.SQLDatabase("TPV", "tikets") + " Tk ON (Tc.ejercicio=Tk.EJERCICIO AND Tc.empresa=Tk.EMPRESA AND Tc.LETRA=Tk.LETRA AND Tc.numero=Tk.numero) "
118 // + " AND (Tk.TIPO = 1 OR Tk.TIPO = 2 OR Tk.TIPO = 10)" //Filtrem els tiquets de cobro i de factures
119 // + " WHERE " + EW_GLOBAL._Consolida("Tc.Empresa") + " AND coalesce(Tc.ejercicio," + lcAny + ") = " + lcAny
120 // + lcFiltros + lcFiltroTipoDoc
121 // + " GROUP BY GC.fecha, Tc.EMPRESA, Tc.NUMERO, Tc.LETRA"
122 // + lcFiltroTipoTicket
123 // + " ORDER BY GC.fecha, Tc.EMPRESA, Tc.NUMERO, Tc.LETRA";
124 
125 
126 // // Verifico si hay que ejecutar la consulta en varios ejercicios o en el actual
127 // if (toEjercicios != null && toEjercicios.Length > 0)
128 // llOk = DB.SQLExecEjer(lcSql, ref ldtResult, toEjercicios);
129 // else
130 // llOk = DB.SQLExec(lcSql, ref ldtResult);
131 
132 
133 // return ldtResult;
134 // }
135 // }
136 //}