btSolicitudFacturaRectif.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Windows.Forms;
6 using System.Drawing;
7 using System.Data;
8 using sage.ew.db;
9 using sage.ew.objetos;
10 using sage.ew.images;
11 using sage.ew.netvfp;
12 using sage.ew.docsven;
14 using sage.ew.cliente;
15 using sage.ew.global;
16 using sage.ew.tpv;
17 using sage.ew.articulo;
18 using sage.ew.docventatpv;
19 using sage.ew.formul;
20 using sage.ew.tpv.Forms;
21 using sage.ew.interficies;
22 
23 namespace sage.ew.botones.Clases
24 {
29  {
30  // Propiedades
34  public dynamic _Documento
35  {
36  get { return _oDocumento; }
37  set { _oDocumento = value; }
38  }
39  private dynamic _oDocumento = null;
43  public string _Articulo = "";
47  public docsven.UserControls.gridArtDocVenta _GridArt;
48 
53  {
54  // Asociamos el texto del botón
55  this.Text = "Solicitud de factura rectificativa";
56  this.Click += new EventHandler(btSolicitudFacturaRectif_Click);
57  }
58 
64  public void btSolicitudFacturaRectif_Click(object sender, EventArgs e)
65  {
66  string lcSerie = string.Empty, lcEjercicio = string.Empty, lcNumero = string.Empty, lcEmpresa = string.Empty;
67 
68 
69  // PE-80876. Tickets no pueden generar rectificativas
70  if (this._Documento._TipoDocumento == eTipoDocumento.Ticket)
71  {
72  _Documento._MessageBox("Los documentos ticket no pueden generar facturas rectificativas.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, DialogResult.OK);
73  return;
74  }
75 
76  if (string.IsNullOrWhiteSpace(this._Documento._Numero))
77  {
78  _Documento._MessageBox("Es necesario entrar el número del documento.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, DialogResult.OK);
79  return;
80  }
81 
82  if (string.IsNullOrWhiteSpace(_Documento._Cabecera._oCliente._Codigo))
83  {
84  _Documento._MessageBox("Es necesario entrar el código del cliente.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, DialogResult.OK);
85  return;
86  }
87 
88  if (_Articulo.Trim() == "")
89  {
90  _Documento._MessageBox("El documento no tiene ninguna línea o la línea seleccionada no contiene ningún artículo.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, DialogResult.OK);
91  return;
92  }
93 
94  if (!string.IsNullOrWhiteSpace(this._Documento._Cabecera._Factura))
95  {
96  _Documento._MessageBox("El documento está facturado no se puede modificar/asignar una factura rectificativa.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, DialogResult.OK);
97  return;
98  }
99 
100  // PE-81191. Cambiamos el campo precio por el importe (seguramente el campo que se va a entrar en negativo será el de unidades)
101  string lcCol = docsven.UserControls.gridArtDocVenta.NomColsArtDocVenta.Importe.ToString();
102  if (Convert.ToDecimal(_GridArt._Grid.CurrentRow.Cells[lcCol].Value) >= 0)
103  {
104  _Documento._MessageBox("El importe de la línea seleccionada no es negativo.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, DialogResult.OK);
105  return;
106  }
107 
108  frmDocOrigen lfrmDocOrigen = new frmDocOrigen();
109  lfrmDocOrigen._Documento = this._Documento; // PE-80748. Pasar la referencia de DocVenta al formulario
110  lfrmDocOrigen._Serie = _Documento._Lineas[_GridArt._Grid.CurrentRow.Index]._LetAlbOri.Trim();
111  lfrmDocOrigen._Ejercicio = _Documento._Lineas[_GridArt._Grid.CurrentRow.Index]._EjeAlbOri.Trim();
112  lfrmDocOrigen._Numero = _Documento._Lineas[_GridArt._Grid.CurrentRow.Index]._NumAlbOri.Trim();
113 
114  lfrmDocOrigen._ShowDialog(); //Bug 114218 Cambiar .ShowDialog() por ._ShowDialog()
115  if (lfrmDocOrigen .DialogResult == DialogResult.OK)
116  {
117  lcSerie = lfrmDocOrigen._Serie;
118  lcEjercicio = lfrmDocOrigen._Ejercicio;
119  lcNumero = lfrmDocOrigen._Numero;
120  lcEmpresa = _Documento._Empresa;
121 
122  //Guardamos
123  _Documento._Lineas[_GridArt._Grid.CurrentRow.Index]._Asignar_Factura_Rectificativa(lcEjercicio, lcSerie, lcNumero);
124  }
125  }
126  }
127 }
docsven.UserControls.gridArtDocVenta _GridArt
Referencia al grid
string _Numero
numero de factura
Definition: frmDocOrigen.cs:72
Interfaz utilizada en los controles que se añaden en los perfiles
dynamic _Documento
Referencia al documento de venta
Definition: frmDocOrigen.cs:34
string _Serie
letra factura
Definition: frmDocOrigen.cs:40
string _Ejercicio
campos que forman la clave primária del browser separados por comas
Definition: frmDocOrigen.cs:97
eTipoDocumento
Detalle los tipos de documento posibles de ventas y compras
Definition: docsvenenum.cs:32
Base para los botones de Eurowin
void btSolicitudFacturaRectif_Click(object sender, EventArgs e)
Evento click
Clase formulario documento orígen
Definition: frmDocOrigen.cs:15
Clase del botón de factura rectificativa