btEstadoPedidos.cs
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Windows.Forms;
9 
10 using sage.ew.objetos;
11 using sage.ew.netvfp;
12 using sage.ew.interficies;
13 
14 namespace sage.ew.docsven
15 {
19  [System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.Button))]
20  public partial class btEstadoPedidos : ewbutton, IObjetoDocumento
21  {
22  // Propietats públiques
26  public dynamic _Documento
27  {
28  get { return _oDocumento; }
29  set { _oDocumento = value; }
30  }
31  private dynamic _oDocumento = null;
32 
33  //private dynamic _oDocLinea = null;
37  public dynamic _DocLinea;
38  //{
39  // get { return _oDocLinea; }
40  // set { _oDocLinea = value; }
41  //}
42 
46  public btEstadoPedidos()
47  {
48  // Si no es treballa amb estados de pedidos, ocultem el botó
49  if (global.EW_GLOBAL._EdicionPerfiles == false && !Convert.ToBoolean(global.EW_GLOBAL._GetVariable("wl_estadoped")))
50  {
51  this.Visible = false;
52  return;
53  }
54 
55  InitializeComponent();
56  }
57 
58  private void btEstadoPedidos_Click(object sender, EventArgs e)
59  {
60  string lcEmpresa = "", lcNumero = "", lcLetra = "", lcAccio = "", lcCliente = "";
61 
62  // Hi ha d'haver document
63  if (_Documento == null)
64  return;
65  // Comprobar que tengamos documento
66  if (string.IsNullOrWhiteSpace(this._Documento._Numero) || string.IsNullOrWhiteSpace(this._Documento._Cabecera._Cliente))
67  {
68  _Documento._MessageBox("Para acceder a esta opción es necesario tener un documento en pantalla.", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, DialogResult.OK);
69  return;
70  }
71 
72  if (this._Documento._Lineas.Count == 0)
73  {
74  _Documento._MessageBox("Para acceder a esta opción es necesario seleccionar una línea del documento.", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, DialogResult.OK);
75  return;
76  }
77 
78  // PE-79033. He de buscar la línia actual per passar-la a la funció de Eurowin
79  dynamic loLinia = ((docsven.UserControls.gridArtDocVenta)this.FindForm().Controls["gridArtDocVenta"])._Grid.CurrentRow.DataBoundItem;
80  if (loLinia == null)
81  return;
82 
83  // Guardem
84  _Documento._Save();
85 
86  lcEmpresa = _Documento._Empresa;
87  lcLetra = _Documento._Letra.PadRight(2);
88  lcNumero = _Documento._Numero.PadRight(10);
89  lcAccio = "Thisform.Estado_del_Pedido(.F.,.T.," + loLinia._Linea.ToString() + ")"; // PE-79033. Afegim la línia als paràmetres
90 
91  // Obrim la pantalla de pedidos de venta de l'Eurowin a la posició 2000, 2000
92  object[] loParametros = new object[4]
93  {
94  lcLetra+lcNumero,
95  lcCliente,
96  lcAccio,
97  "NOSHOW" // PE-78809. No ha de ser visible a Fox
98  };
99  NETVFP._Abrir_Formulario_VFP("PEDIVEN", loParametros);
100 
101  // PE-79344. Descarreguem el document actual
102  _Documento._DescargarDatos();
103 
104  // Refresquem
105  _Documento._Load(lcEmpresa, lcNumero, lcLetra);
106 
107  _Documento._MessageBox("Se han comprobado el estado de la línea.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
108 
109  }
110  }
111 }
Botón para comprobar el estado de los pedidos
Interfaz utilizada en los controles que se añaden en los perfiles
Base para los botones de Eurowin
dynamic _DocLinea
Linea sobre la que se asocia el botón