3 using System.Collections.Generic;
4 using System.ComponentModel;
17 namespace sage.ew.contabilidad
24 #region Propiedades privadas 25 protected string _cIva =
"IVA";
33 protected string _cTipoIva =
string.Empty;
34 private string _cCuentaOld =
string.Empty;
36 #endregion Propiedades privadas 44 InitializeComponent();
47 this.ConfigurarFormulario();
49 # endregion Constructor 51 # region Métodos privados 52 private void ConfigurarFormulario()
57 _cIva = Convert.ToString(EW_GLOBAL._GetVariable(
"wc_iva"));
61 this.Text =
"Importe no sujeto a " + _cIva;
62 this.ewlblTipo_Iva.Text =
"Tipo de " + _cIva;
64 if (!Convert.ToBoolean(EW_GLOBAL._GetVariable(
"Wl_SerFact")) || !Convert.ToBoolean(EW_GLOBAL._GetVariable(
"Wl_FactSer")))
67 this._ConfigurarNumericUpdown(ewnumericupdownImporte);
69 this.txtNumFacCompraAsiento._ValidarFacturaExistente =
false;
73 gridDesgloseIva._EntradaIva =
true;
74 gridDesgloseIva.BorderStyle = BorderStyle.None;
75 gridDesgloseIva._Grid.BorderStyle = BorderStyle.None;
81 private void BindingFactura()
84 if (this.txtNumfactVentaAsiento.DataBindings.Count > 0) this.txtNumfactVentaAsiento.DataBindings.RemoveAt(0);
85 if (this.txtNumFacCompraAsiento.DataBindings.Count > 0) this.txtNumFacCompraAsiento.DataBindings.RemoveAt(0);
87 if (_oAsientoLineaBind._DatosIvaExento._Tipo == 1)
88 this.txtNumFacCompraAsiento.DataBindings.Add(
"_Factura", _oAsientoLineaBind,
"_Factura",
true);
90 this.txtNumfactVentaAsiento.DataBindings.Add(
"_Factura", _oAsientoLineaBind,
"_Factura",
true);
94 if (
string.IsNullOrWhiteSpace(ewdateFechaRegistroContable.CustomFormat))
95 ewdateFechaRegistroContable.CustomFormat =
"dd/MM/yy";
96 if (ewdateFechaRegistroContable.DataBindings.Count > 0) ewdateFechaRegistroContable.DataBindings.RemoveAt(0);
97 ewdateFechaRegistroContable.DataBindings.Add(
"Text", _oAsientoLineaBind._DatosIvaExento,
"_FechaRegistro",
true);
100 ewdateFechaRegistroContable.CustomFormat =
" ";
106 private void SubscripcionEventos()
111 txtCuenta._Codigo_Cambiado += TxtCuenta__Codigo_Cambiado;
112 txtTipoExento._Codigo_Cambiado +=
new txtbox.UserControls.ewtxtcodlabel.Delegar_Codigo_Cambiado(txtTipoExento__Codigo_Cambiado);
113 txtTipoIva._Codigo_Cambiado +=
new txtbox.UserControls.ewtxtcodlabel.Delegar_Codigo_Cambiado(txtTipoIva__Codigo_Cambiado);
114 txtTipoIva._Codigo_Cambiado_Before +=
new txtbox.UserControls.ewtxtcodlabel.Delegar_Codigo_Cambiado_Before(txtTipoIva__Codigo_Cambiado_Before);
116 txtNumfactVentaAsiento.txtFacturaDocNum.Leave +=
new EventHandler(txtNumfactVentaAsiento_Leave);
117 txtNumfactVentaAsiento.txtFacturaDocNum.TextChanged += txtNumfactVentaAsiento_TextChanged;
118 txtNumfactVentaAsiento._SumaNumeroBefore += txtNumfactVentaAsiento__SumaNumeroBefore;
120 if (Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_factucom")))
121 txtNumFacCompraAsiento.txtFacturaCompra.Leave +=
new EventHandler(txtNumFacCompraAsiento_Leave);
123 txtNumFacCompraAsiento.txtFacturaCompra.TextChanged += txtNumFacCompraAsiento_TextChanged;
124 txtNumFacCompraAsiento._SumaNumeroBefore += txtNumFacCompraAsiento__SumaNumeroBefore;
126 if (_oAsiento._PropuestaAutomatica)
127 gridDesgloseIva._Grid.CellValueChanged += _Grid_CellValueChanged;
136 private void _Grid_CellValueChanged(
object sender, DataGridViewCellEventArgs e)
139 DataGridViewCell loCell = gridDesgloseIva._Grid.CurrentCell;
144 DialogResult loResult = DialogResult.Yes;
145 string lcColumna = loCell.OwningColumn.Name;
149 if (((AsientosDatosIvaExento)_oAsientoLineaBind._DatosIvaExento)._Importe != 0)
150 loResult = _MessageBox(
"¿Desea calcular la base del " + _cIva +
"?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, DialogResult.No);
152 if (loResult == DialogResult.Yes)
154 ((AsientosDatosIvaExento)_oAsientoLineaBind._DatosIvaExento)._nImporte = 0;
155 ((AsientosDatosIvaExento)_oAsientoLineaBind._DatosIvaExento)._RecalcularIva(((AsientosDatosIvaExento)_oAsientoLineaBind._DatosIvaExento)._TipoIva);
156 gridDesgloseIva.Refresh();
161 if (((AsientosDatosIvaExento)_oAsientoLineaBind._DatosIvaExento)._PorcenRec != 0)
163 if (((AsientosDatosIvaExento)_oAsientoLineaBind._DatosIvaExento)._Importe != 0)
164 loResult = _MessageBox(
"¿Desea calcular la base del " + _cIva +
"?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, DialogResult.No);
166 if (loResult == DialogResult.Yes)
168 int lnDecimales = Convert.ToInt32(EW_GLOBAL._GetVariable(
"wn_decimales"));
169 ((AsientosDatosIvaExento)_oAsientoLineaBind._DatosIvaExento)._Importe = FUNCTIONS._Round((((AsientosDatosIvaExento)_oAsientoLineaBind._DatosIvaExento)._Recargo * 100) / ((AsientosDatosIvaExento)_oAsientoLineaBind._DatosIvaExento)._PorcenRec, lnDecimales);
170 gridDesgloseIva.Refresh();
186 private void txtNumFacCompraAsiento__SumaNumeroBefore(
object sender, KeyPressEventArgs e)
188 if (!
string.IsNullOrWhiteSpace(_cFactura) && (txtNumFacCompraAsiento._Factura != _cFactura))
190 CONTABILIDAD._Resta_Numero_Factura_Compra(_oAsientoLineaBind._Empresa, _cFactura);
191 _cFactura =
string.Empty;
201 private void txtNumFacCompraAsiento_TextChanged(
object sender, EventArgs e)
203 if (_oAsientoLinea._Factura != txtNumFacCompraAsiento._Factura && !ModificarNumeroFactura())
205 txtNumFacCompraAsiento._Factura = _oAsientoLinea._Factura;
210 private bool ModificarNumeroFactura()
212 if (_oAsientoLinea._EsIvaExento && !((Asientos)_oAsiento)._ConsultarPrevisionesAlbaranes(_oAsientoLinea._Factura, _oAsientoLinea._DatosIvaExento._Cuenta,tlAsiento:
false))
214 string lcMensaje = _oAsiento._Mensaje_Error + Environment.NewLine +
"Si deseas modificar el número de factura debes borrar primero las previsiones relacionadas.";
215 _MessageBox(lcMensaje, MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2, DialogResult.No);
216 _oAsiento._Mensaje_Error =
string.Empty;
221 if (_oAsiento._EsTransitarioDUA)
223 _MessageBox(
"No es posible modificar el número de factura. Este se ha generado a partir del documento Transitario - DUA", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2, DialogResult.No);
224 _oAsiento._Mensaje_Error =
string.Empty;
236 private void txtNumFacCompraAsiento_Leave(
object sender, EventArgs e)
238 if (!
string.IsNullOrWhiteSpace(_cFactura) && (txtNumFacCompraAsiento._Factura != _cFactura))
240 CONTABILIDAD._Resta_Numero_Factura_Compra(_oAsientoLineaBind._Empresa, _cFactura);
241 _cFactura =
string.Empty;
244 if (txtNumFacCompraAsiento._ContadorAutomatico && !
string.IsNullOrWhiteSpace(txtNumFacCompraAsiento._Factura))
246 _cFactura = txtNumFacCompraAsiento._Factura;
249 if (
string.IsNullOrWhiteSpace(txtNumFacCompraAsiento._Factura) && txtNumFacCompraAsiento._ContadorAutomatico)
250 txtNumFacCompraAsiento._ContadorAutomatico =
false;
259 private void txtNumfactVentaAsiento__SumaNumeroBefore(
object sender, KeyPressEventArgs e)
261 if (!
string.IsNullOrWhiteSpace(_cFactura) && (txtNumfactVentaAsiento._Factura != _cFactura))
263 CONTABILIDAD._Resta_Numero_Factura_Venta(_oAsientoLineaBind._Empresa, _cFactura);
264 _cFactura =
string.Empty;
274 private void txtNumfactVentaAsiento_TextChanged(
object sender, EventArgs e)
276 if (_oAsientoLinea._Factura != txtNumfactVentaAsiento._Factura && !ModificarNumeroFactura())
278 txtNumfactVentaAsiento._Factura = _oAsientoLinea._Factura;
288 private void txtNumfactVentaAsiento_Leave(
object sender, EventArgs e)
290 if (!
string.IsNullOrWhiteSpace(_cFactura) && (txtNumfactVentaAsiento._Factura != _cFactura))
292 CONTABILIDAD._Resta_Numero_Factura_Venta(_oAsientoLineaBind._Empresa, _cFactura);
293 _cFactura =
string.Empty;
296 if (txtNumfactVentaAsiento._ContadorAutomatico && !
string.IsNullOrWhiteSpace(txtNumfactVentaAsiento._Factura) && !
string.IsNullOrWhiteSpace(txtNumfactVentaAsiento._Numero))
297 _cFactura = txtNumfactVentaAsiento._Factura;
299 if (
string.IsNullOrWhiteSpace(txtNumfactVentaAsiento._Factura) && txtNumfactVentaAsiento._ContadorAutomatico)
300 txtNumfactVentaAsiento._ContadorAutomatico =
false;
308 private bool TipoIVAExento(
string tcTipoIva)
313 if (!
string.IsNullOrWhiteSpace(tcTipoIva) && (!CONTABILIDAD._TipoIvaExento(tcTipoIva)))
315 DialogResult loResult = this._MessageBox(
"Únicamente puede asignar un tipo de " + _cIva +
" no sujeto.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2, DialogResult.No);
328 private bool TipoIVAMayorQueZero(
string tcTipoIva)
332 DataTable ldtTipos = CONTABILIDAD._TiposIVA();
333 if (ldtTipos != null && ldtTipos.Rows.Count > 0)
335 DataRow ldrow = ldtTipos.AsEnumerable().Where(i => Convert.ToString(i[
"codigo"]).Trim() == tcTipoIva).FirstOrDefault();
338 decimal lnTpc = Convert.ToDecimal(ldrow[
"iva"]);
342 FUNCTIONS._DisposeDatatable(ldtTipos);
350 private void TxtCuenta__Codigo_Cambiado()
352 BindingIva(this.txtCuenta._Codigo);
353 this.ModificarIVARecargo();
360 private void txtTipoIva__Codigo_Cambiado_Before(ref
bool tlOk)
362 string lcTipoIva = txtTipoIva._GetTextBox().Text;
365 if (!TipoIVAExento(lcTipoIva))
370 if (this.EsCompras() && TipoIVAMayorQueZero(lcTipoIva))
372 string lcMsg =
"El código de " + _cIva +
" introducido no es posible utilizarlo en asientos de facturas de compra, "+
373 "ya que se trata de un "+_cIva+
" no sujeto con porcentaje mayor que cero.";
375 this._MessageBox(lcMsg, MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2, DialogResult.No);
385 private void txtTipoIva__Codigo_Cambiado()
387 string lcTipo_Iva = this.txtTipoIva._Codigo;
390 if (lcTipo_Iva != null && this._oAsientoLineaBind._DatosIvaExento != null &&
this._oAsientoLineaBind._DatosIvaExento._TipoIva != lcTipo_Iva)
393 this.ModificarIVARecargo();
400 private void CalcularIva()
403 this._oAsientoLineaBind._DatosIvaExento._TipoIva = this.txtTipoIva._Codigo;
405 ((AsientosDatosIvaExento)(this._oAsientoLineaBind._DatosIvaExento))._RecalcularIva(this.txtTipoIva._Codigo);
407 this.gridDesgloseIva.Refresh();
413 private void ModificarIVARecargo()
415 this.gridDesgloseIva._ModificarRecargo = (this._oAsientoLineaBind._DatosIvaExento._PorcenRec > 0 && !this.
_ReadOnly);
416 this.gridDesgloseIva._ModificarIVA = (this._oAsientoLineaBind._DatosIvaExento._PorcenIVA > 0 && !this.
_ReadOnly);
422 private void txtTipoExento__Codigo_Cambiado()
426 this.txtTipoExento._Codigo_Cambiado -=
new txtbox.UserControls.ewtxtcodlabel.Delegar_Codigo_Cambiado(txtTipoExento__Codigo_Cambiado);
428 switch (loeTipoAsiento)
431 if (!this.EsCompras())
433 this._MessageBox(
"No se puede cambiar el tipo de un asiento de factura de compras.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, DialogResult.No);
434 this.txtTipoExento._Codigo =
"1";
440 if (this.EsCompras())
442 this._MessageBox(
"No se puede cambiar el tipo de un asiento de factura de ventas.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, DialogResult.No);
443 this.txtTipoExento._Codigo =
"2";
448 if (this.txtTipoExento._Codigo ==
"2" && !
string.IsNullOrWhiteSpace(
this.txtNumFacCompraAsiento._Factura))
450 this._RestarContadorFactura(
eTipoAsiento.AsientoFacturaCompra,
false);
451 this.txtNumFacCompraAsiento._Factura =
string.Empty;
454 if (this.txtTipoExento._Codigo ==
"1" && !
string.IsNullOrWhiteSpace(
this.txtNumfactVentaAsiento._Numero))
456 this._RestarContadorFactura(
eTipoAsiento.AsientoFacturaVenta,
false);
457 this.txtNumfactVentaAsiento._Factura =
string.Empty;
460 this.txtTipoExento._Codigo_Cambiado +=
new txtbox.UserControls.ewtxtcodlabel.Delegar_Codigo_Cambiado(txtTipoExento__Codigo_Cambiado);
470 bool llCompras = EsCompras();
472 txtNumfactVentaAsiento.Visible = !llCompras;
473 txtNumFacCompraAsiento.Visible = llCompras;
474 ewpanelFraExpedicion.Visible = !llCompras;
475 ewtabcontrolDetalle.Visible = !llCompras;
476 ewpanelImporte.Visible = llCompras;
478 ewdateFechaRegistroContable.Enabled = !
_ReadOnly && llCompras;
484 if (tlInicial && ewpanelFraExpedicion.Visible && !ewpanelImporte.Visible)
486 ewpanelFraExpedicion.Location = ewpanelImporte.Location;
487 ewtabcontrolDetalle.Top -= ewpanelFraExpedicion.Height;
490 if (tlInicial && llCompras)
498 private bool ExisteFacturaAsiento()
500 if (this.txtNumFacCompraAsiento.Visible)
503 string lcFactura = _oAsientoLineaBind._Factura.Trim().PadLeft(nLongFactCompra);
505 if (((Asientos)_oAsientoBind)._ExisteFacturaAsiento(
eTipoCuenta.IVASoportado, lcFactura, txtCuenta._Codigo))
507 this._MessageBox(this._oAsientoBind._Mensaje_Error, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, DialogResult.No);
508 this._oAsientoBind._Mensaje_Error =
string.Empty;
510 this.txtNumFacCompraAsiento.Focus();
517 if (((Asientos)_oAsientoBind)._ExisteFacturaAsiento(
eTipoCuenta.IVARepercutido, _oAsientoLineaBind._Factura, txtCuenta._Codigo))
519 this._MessageBox(this._oAsientoBind._Mensaje_Error, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, DialogResult.No);
520 this._oAsientoBind._Mensaje_Error =
string.Empty;
522 this.txtNumfactVentaAsiento.Focus();
535 private bool EsCompras()
537 return (this.txtTipoExento._Codigo ==
"1");
543 private bool ValidarFactura()
547 if (this.EsCompras())
548 lcFactura = txtNumFacCompraAsiento._Factura;
550 lcFactura = txtNumfactVentaAsiento._Numero;
552 if (
string.IsNullOrWhiteSpace(lcFactura))
554 this._MessageBox(
"Es necesario indicar la factura.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, DialogResult.No);
561 if (!this.EsCompras())
562 lcFactura = txtNumfactVentaAsiento._Factura;
564 if (!
string.IsNullOrWhiteSpace(_oAsientoLineaBind._Factura) && ((_oAsientoLinea._Factura.Trim() != lcFactura.Trim()) && ((Asientos)_oAsiento)._EsUltimoRegistroIva(_oAsientoLinea._Linea, _oAsientoLinea._Factura) && !((
Asientos)_oAsiento)._ConsultarPrevisionesAlbaranes(_oAsientoLineaBind._Factura, _oAsientoLineaBind._DatosIvaExento._Cuenta)))
566 this._MessageBox(this._oAsiento._Mensaje_Error, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, DialogResult.No);
567 this._oAsiento._Mensaje_Error =
string.Empty;
580 private void PasarFocoFactura()
582 if (this.txtNumfactVentaAsiento.Visible)
583 this.txtNumfactVentaAsiento.Focus();
584 else if (this.txtNumFacCompraAsiento.Visible)
585 this.txtNumFacCompraAsiento.Focus();
592 private void BindingIva(
string tcCuenta =
"")
594 if (!
string.IsNullOrWhiteSpace(tcCuenta))
595 _oAsientoLineaBind._DatosIvaExento._Cuenta = tcCuenta;
598 this.gridDesgloseIva._AsientoLinea = this._oAsientoLineaBind;
604 private void PasarFocoGrid()
606 if (gridDesgloseIva != null && gridDesgloseIva._Grid != null && gridDesgloseIva._Grid.Rows.Count > 0)
608 gridDesgloseIva.Focus();
609 gridDesgloseIva._Grid.CurrentCell = gridDesgloseIva._Grid.Rows[0].Cells[0];
610 gridDesgloseIva._Grid.Rows[0].Cells[0].Selected =
true;
619 private void txtNumFraExpedicion_Leave(
object sender, EventArgs e)
624 # endregion Métodos privados 626 # region Métodos override 627 protected override void _Binding()
636 if (_oAsientoLinea == null)
641 if (txtTipoExento.DataBindings.Count > 0) txtTipoExento.DataBindings.RemoveAt(0);
642 txtTipoExento.DataBindings.Add(
"_Codigo", _oAsientoLineaBind._DatosIvaExento,
"_Tipo",
true);
644 if (txtCuenta.DataBindings.Count > 0) txtCuenta.DataBindings.RemoveAt(0);
645 txtCuenta.DataBindings.Add(
"_Codigo", _oAsientoLineaBind._DatosIvaExento,
"_Cuenta",
true);
647 if (ewdateFechaFactura.DataBindings.Count > 0) ewdateFechaFactura.DataBindings.RemoveAt(0);
648 ewdateFechaFactura.DataBindings.Add(
"Text", _oAsientoLineaBind._DatosIvaExento,
"_Fecha",
true);
650 if (ewdateFechaOperacion.DataBindings.Count > 0) ewdateFechaOperacion.DataBindings.RemoveAt(0);
651 ewdateFechaOperacion.DataBindings.Add(
"Text", _oAsientoLineaBind._DatosIvaExento,
"_FechaOper",
true);
653 if (ewnumericupdownImporte.DataBindings.Count > 0) ewdateFechaFactura.DataBindings.RemoveAt(0);
654 ewnumericupdownImporte.DataBindings.Add(
"Text", _oAsientoLineaBind._DatosIvaExento,
"_Importe",
true);
656 if (txtTipoIva.DataBindings.Count > 0) txtTipoIva.DataBindings.RemoveAt(0);
657 txtTipoIva.DataBindings.Add(
"_Codigo", _oAsientoLineaBind._DatosIvaExento,
"_TipoIva",
true);
660 if (txtNumFraExpedicion.DataBindings.Count > 0) txtNumFraExpedicion.DataBindings.RemoveAt(0);
661 txtNumFraExpedicion.DataBindings.Add(
"Text", _oAsientoLineaBind._DatosIvaExento,
"_SIIFraMod",
true);
673 base._VisibleChanged();
675 this.TipoDocumento(
true);
676 this.ModificarIVARecargo();
678 if (_lAsientoMultidivisa)
680 this.ewlabelImporteDivisa.Visible =
true;
681 this.ewlabelImporteDivisa.Text = _cSimboloDivisaEmpresa;
684 this.ewlabelImporteDivisa.Visible =
false;
687 this.gridDesgloseIva._ReadOnly =
true;
689 this.SubscripcionEventos();
698 if (!this.ValidarFactura())
701 if (
string.IsNullOrWhiteSpace(this.txtCuenta._Codigo))
703 this._MessageBox(
"Es necesario indicar la cuenta contable.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, DialogResult.No);
704 this.txtCuenta.Focus();
708 if (
string.IsNullOrWhiteSpace(_oAsientoLineaBind._DatosIvaExento._TipoIva.Trim()))
710 this._MessageBox(
"Es necesario indicar el tipo de " + _cIva +
" no sujeto.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, DialogResult.No);
717 this._MessageBox(
"Únicamente se puede asignar un tipo de " + _cIva +
" no sujeto.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2, DialogResult.No);
722 if (_oAsientoBind._Facturas.Count > 0 && !
string.IsNullOrWhiteSpace(_oAsientoLineaBind._DatosIvaExento._Factura) && _oAsientoLinea._DatosIvaExento._Fecha != _oAsientoLineaBind._DatosIvaExento._Fecha && FUNCTIONS._Comprovar_Mes_Cerrado(_oAsientoLineaBind._DatosIvaExento._Fecha))
724 _MessageBox(
"La fecha de factura/expedición pertenece a un mes cerrado.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2, DialogResult.No);
725 ewdateFechaFactura.Focus();
730 if (!((
Asientos)_oAsientoBind)._ValidacionTipoOperacion(_oAsientoBind.
_Operacion, out
string lcMensaje, _oAsientoLineaBind))
732 _MessageBox(lcMensaje, MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2, DialogResult.No);
738 ((
AsientosLinea)_oAsientoLineaBind)._ControlAsientoMismoTipo(_oAsientoLineaBind._DatosIvaExento._Cuenta);
740 if (!
string.IsNullOrWhiteSpace(((
AsientosLinea)_oAsientoLineaBind)._cMensajeBloqueoMultifactura))
742 _MessageBox(((
AsientosLinea)_oAsientoLineaBind)._cMensajeBloqueoMultifactura, MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, DialogResult.OK);
748 _MessageBox(
"Existe una factura contabilizada con un tipo de operación." + Environment.NewLine + Environment.NewLine +
"Para contabilizar una nueva factura es necesario un nuevo asiento.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2, DialogResult.No);
753 DateTime? ldFecha = null;
755 if (llEsRectificativa && ldFecha != null)
757 _MessageBox(
"No es posible introducir más de una factura en el mismo asiento si una de ellas es rectificativa.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2, DialogResult.No);
764 _MessageBox(
"No es posible introducir más de una factura en el mismo asiento si se han entrado campos adicionales del SII.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2, DialogResult.No);
770 if (this.ExisteFacturaAsiento())
781 if (_oAsientoLinea._EsIvaExento)
782 _cCuentaOld = _oAsientoLinea._DatosIvaExento._Cuenta;
784 bool llModifIVA = _oAsientoLineaBind._DatosIvaExento._Importe != _oAsientoLinea._DatosIvaExento._Importe;
785 base._AceptarBindings();
788 _oAsientoLinea._DatosIvaExento._Clonar(_oAsientoLineaBind._DatosIvaExento);
791 if (_oAsientoLinea._Factura.Trim() != _oAsientoLineaBind._Factura.Trim())
793 bool llRestarNumero =
true;
796 if (!((
Asientos)_oAsiento)._ConsultarPrevisionesAlbaranes(_oAsientoLinea._Factura, _oAsientoLinea._DatosIvaExento._Cuenta, tlAsiento:
false))
798 llRestarNumero =
false;
803 if (!
string.IsNullOrWhiteSpace(_oAsientoLinea._Factura) && _MessageBox(
"¿Desea actualizar todos los registros de " + Convert.ToString(EW_GLOBAL._GetVariable(
"wc_iva")) +
804 " de la factura " + _oAsientoLinea._Factura.Trim() +
" con el número de factura " + _oAsientoLineaBind._Factura.Trim() +
"?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, DialogResult.No) == DialogResult.Yes)
805 llRestarNumero = ((
Asientos)_oAsiento)._ActualizarFacturaIVA(_oAsientoLinea._Factura, _oAsientoLineaBind._Factura, _oAsientoLineaBind._DatosIvaExento._Cuenta, 0, _oAsientoLinea._Linea);
808 string lcOldFactura = _oAsientoLinea._Factura;
810 _oAsientoLinea._Factura = _oAsientoLineaBind._Factura;
811 if (llRestarNumero && !
string.IsNullOrWhiteSpace(lcOldFactura))
813 if (lcOldFactura != _oAsientoLinea._Factura)
834 bool llSave = (this._oAsientoLinea._DatosIvaExento._Save());
836 if (llSave && _cCuentaOld != _oAsientoLineaBind._DatosIvaExento._Cuenta)
837 ((
Asientos)_oAsiento)._ActualizarContrapartidaLinea(_oAsientoLinea, _cCuentaOld, _oAsientoLineaBind._DatosIvaExento._Cuenta);
848 DialogResult loResult = this._MessageBox(
"¿Seguro que desea borrar el registro no sujeto a " + _cIva +
"?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, DialogResult.No);
850 if (loResult == DialogResult.Yes)
852 if (this._oAsientoLinea._DatosIvaExento._Delete())
855 this._lDelete =
true;
856 this.btDocAceptar1.PerformClick();
860 this.PresentarMensajeError();
863 #endregion Métodos override 865 #region Métodos public 866 public void _Set_oAsientoLineaBind_Letra_Factura(
string letra)
871 int longitud_letra = letra.Length;
873 if (!
string.IsNullOrWhiteSpace(letra))
876 if (_oAsientoLineaBind._Factura.Length <= longitud_letra ||
string.IsNullOrWhiteSpace(_oAsientoLineaBind._Factura.Substring(letra.Length)))
878 _oAsientoLineaBind._Factura = letra.ToString().PadRight(20) +
"0";
882 _oAsientoLineaBind._Factura = letra + _oAsientoLineaBind._Factura.Substring(letra.Length).ToString().PadLeft(10-longitud_letra);
896 #endregion Métodos public
IAsientosSII _DatosSII
Task 111325. Datos SII
override void _Delete()
Borramos el registro de IVA, Retención. IVA exento ... No es necesario realizar la ejecución del códi...
bool _EsIvaExento
es iva exento
override bool _Save()
En la mayoría de formularios vamos a realizar el _Save de la línea En el formulario de IVA exento vam...
eTipoAsiento
Enumeració per indicar quin tipo d'assentament
bool _EsFacturaRectificativa(ref DateTime? tdFecha)
Nos devuelve si se trata de una factura rectificativa, si lo es nos devuelve la fecha por referencia...
eAccionAsientos
Enumerado del tipo de acciones en formulario de asientos
Clase utilizada para realizar asientos contables.
KeyDiccionarioLenCampos
Clave del diccionario LenCampos
override bool _Validar()
Validamos que la información es coherente
bool _ValidarCambioSerie
Validamos si podemos cambiar de serie si tenemos número de factura
eTipoCuenta
Enumeració per indicar el tipo de cuenta
eTipoPatron
Enumerado los patrones asientos
static bool _Resta_Numero_Factura_Compra(string tcEmpresa, string tcNumero)
Restem número factura compra si hi ha activat opcflag wl_factucom
static bool _Resta_Numero_Factura_Venta(string tcEmpresa, string tcFactura)
Restar número al borrar una factura de venta
Clase que se utilizará para las lineas de los asientos contables.
bool _EsCompras()
Devuelve si es un IVA exento de compras
Control para entrar el número de factura en la pantallas relacionadas con asientos contables y genera...
override void _AceptarBindings()
Realizamos el volcado de la copia de la línea del asiento y los campos específicos bindeados sobre el...
bool _ValidarFacturaExistente
Validamos si existe la factura
List< IAsientosBaseDatosIva > _Facturas
Lista de facturas: Número de factura, {Cuenta,Orden,Nombre,ProveedorVarios,CifVarios} ...
string _Mensaje_Error
Mensaje de error
override void _VisibleChanged()
Nos subscribimos a los eventos
Formulario base de Iva repercutido, Retenciones ...
static bool _TipoIvaExento(string tcTipoIva)
Gestionamos