ImpresionAlbaranesVenta.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Data;
6 using System.Windows.Forms;
7 
8 using sage.ew.global;
9 using sage.ew.docsven;
10 using sage.ew.db;
11 using sage.ew.functions;
12 using sage.ew.docventatpv;
13 
14 namespace sage.ew.listados.Procesos
15 {
19  public class ImpresionAlbaranesVenta : sage.ew.listados.Clases.Listados
20  {
26  public override void _SetDefaultValues(Dictionary<string, object> toControlsFiltros = null, Dictionary<string, object> toControlsOpciones = null)
27  {
28  string lcFecha = string.Empty;
29 
30  lcFecha = DateTime.Now.ToString(EW_GLOBAL._CustomFormatDate);
31 
33  fecha = (sage.ew.txtbox.UserControls.txtFechaDesdeHasta)toControlsFiltros["txtFechaDesdeHasta"];
34 
35  fecha._Desde = lcFecha;
36  fecha._Hasta = lcFecha;
37 
38  //PE-89930 : Tipos de documento, debería salir por defecto: 'Todos', como en la pantalla de FOX
39  ((sage.ew.objetos.ewcombobox)toControlsOpciones["cmbTodosAlbaranesnof"]).SelectedIndex = 0;
40 
41  //PE-90122: No mostrar el filtro por letra
42  ((sage.ew.txtbox.UserControls.txtNumeroALBDesdeHasta)toControlsFiltros["txtNumeroALBDesdeHasta"])._oFiltroDesde.FiltroSerie = false;
43  ((sage.ew.txtbox.UserControls.txtNumeroALBDesdeHasta)toControlsFiltros["txtNumeroALBDesdeHasta"])._oFiltroDesde._ConfigurarControles();
44  ((sage.ew.txtbox.UserControls.txtNumeroALBDesdeHasta)toControlsFiltros["txtNumeroALBDesdeHasta"])._oFiltroHasta.FiltroSerie = false;
45  ((sage.ew.txtbox.UserControls.txtNumeroALBDesdeHasta)toControlsFiltros["txtNumeroALBDesdeHasta"])._oFiltroHasta._ConfigurarControles();
46 
47 
48  }
49 
54  public override bool _Process()
55  {
56  _MostrarAviso = false; //PE88173 no volem q presenti cap avís al acabar
57 
58  DataTable ldtResult = new DataTable();
59  String lcSql = String.Empty;
60  String lcFiltro = String.Empty;
61  dynamic loDocventa;
62  Boolean llOk = true;
63  Boolean lbDesglosado = true;
64  Int32 lnValorarAlbaran;
65 
66  lcSql = String.Format("SELECT ALB.EMPRESA, ALB.NUMERO, ALB.LETRA, ISNULL(CLI.VALOR_ALB, 'False') as VALOR_ALB FROM {0} ALB ", DB.SQLDatabase("GESTION", "C_ALBVEN"));
67  lcSql += String.Format("INNER JOIN {0} CLI ON ALB.CLIENTE = CLI.CODIGO ", DB.SQLDatabase("GESTION", "CLIENTES"));
68  lcSql += " Left Join " + DB.SQLDatabase("TPV", "C_ALBVEN") + " tc On ALB.empresa = tc.empresa And ALB.numero = tc.numero And ALB.letra = tc.letra " + //PE89495
69  " And tc.ejercicio = " + DB.SQLString(Convert.ToString(EW_GLOBAL._GetVariable("wc_any"))) + " "; //PE89495
70 
71 
72 
73  lcFiltro += _Filtro_Fecha(_Filtros, _Tipo_Filtro_Fecha.Fecha, "ALB", "FECHA");
74  lcFiltro += _Filtro_String(_Filtros, _Tipo_Filtro_String.Albaran, "ALB", "NUMERO");
75  lcFiltro += _Filtro_String(_Filtros, _Tipo_Filtro_String.Ruta, "ALB", "RUTA");
76  lcFiltro += _Filtro_String(_Filtros, _Tipo_Filtro_String.Cliente, "ALB", "CLIENTE");
77  lcFiltro += _Filtro_String(_Filtros, _Tipo_Filtro_String.Vendedor, "ALB", "VENDEDOR");
78  lcFiltro += _Filtro_String(_Filtros, _Tipo_Filtro_String.Letra, "ALB", "LETRA");
79 
80  //PE-93352 Añadir el filtro de las delegaciones
81  lcFiltro += _Filtro_Cliente_Delegacion("CLI");
82 
83  lcFiltro += " And coalesce(tc.tipo_doc,2) >=2 "; //PE89495
84 
85  //Impresos --> nNoSiTodosCombo = { 0=No; 1=Sí; 2=Todos; }
86  if (_Opcion_Entero("nNoSiTodosCombo") != 2) // PARTE 88683
87  lcFiltro += String.Format(" AND ALB.IMPRESO = {0} ", _Opcion_Entero("nNoSiTodosCombo")); // PARTE 88683
88 
89  switch (_Opcion_Entero("nTodosAlbaranesnof"))
90  {
91  case 1: //albaranes no facturados
92  lcFiltro += " AND ALB.ASI = '' ";
93  break;
94 
95  case 2: //albaranes no facturables (per defecte)
96  lcFiltro += " AND ALB.FACTURABLE = 'false' ";
97  break;
98 
99  default:
100  break;
101  }
102 
103  lcSql += String.Format("WHERE {0} {1} ", EW_GLOBAL._Consolida("ALB.EMPRESA"), lcFiltro);
104  DB.SQLExec(lcSql, ref ldtResult);
105 
106  if (ldtResult.Rows.Count == 0)
107  {
108  FUNCTIONS._MessageBox("No hay albaranes para imprimir según los filtros seleccionados.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, DialogResult.OK, tcText: "Impresión de albaranes de venta");
109  return false;
110  }
111 
112  // Valorar albaranes --> nNoSiSegunclienteC = { 0 = No; 1 = Si; 2 = Según cliente }
113  lnValorarAlbaran = _Opcion_Entero("nNoSiSegunclienteC"); // PARTE 88683
114 
115  //Desglosar IVA --> lImprimirdesglosede { true / false }
116  lbDesglosado = _Opcion_Logico("lImprimirdesglosede");
117 
118  foreach (DataRow trRow in ldtResult.Rows)
119  {
120  loDocventa = new ewDocVentaTPV();
121  llOk = llOk && loDocventa._Load(Convert.ToString(trRow["EMPRESA"]), Convert.ToString(trRow["NUMERO"]), Convert.ToString(trRow["LETRA"]));
122 
123  // Establecemos las propiedades del objeto de impresión
124  loDocventa._DocPrint._IVA_Desglosado = lbDesglosado;
125  loDocventa._DocPrint._Valorado = lnValorarAlbaran == 0 ? false : lnValorarAlbaran == 1 ? true : Convert.ToBoolean(trRow["VALOR_ALB"]);
126 
127  // Impresión
128  llOk = loDocventa._DocPrint._Print();
129  }
130 
131  return llOk;
132  }
133  }
134 }
PE-82802 : Proceso de impresión de albaranes de venta
Clase sage.ew.objetos.ewcombobox
PE-82646 Control para número de albaranes
Clase documento de venta TPV
Definition: DocVentaTpv.cs:47
_Tipo_Filtro_Fecha
Enumeración de los posibles filtros fecha a realizar
override bool _Process()
Método que se invoca al ejecutar el proceso
new ewtxtcodlabel _oFiltroDesde
txtcodlabel de filtro para obtener el valor Mínimo
_Tipo_Filtro_String
Enumeración de los posibles filtros de tipo STRING a realizar xxxDesde => Valor mínimo del filtro xxx...
Procesos : tabla listados filtrando el tipo a 3
override void _SetDefaultValues(Dictionary< string, object > toControlsFiltros=null, Dictionary< string, object > toControlsOpciones=null)
Valores por defecto