2 using System.Collections.Generic;
3 using System.ComponentModel;
15 namespace sage.ew.tpv.Forms
22 private Boolean _hera = Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_hera"));
27 private bool _lIsBinding =
false;
35 InitializeComponent();
36 this._Pantalla =
"F_COBROS";
38 cmbDivisaVenta._Valor_Vacio =
false;
39 cmbDivisaVenta._Refresh();
40 cmbDivisaVenta._Codigo = EW_GLOBAL._Empresa._Moneda;
42 txtCuenta.Validated +=
new EventHandler(txtCuenta_Validated);
43 cmbDivisaVenta.Validated +=
new EventHandler(txtCuenta_Validated);
46 #endregion CONSTRUCTORES 48 #region METODOS OVERRIDE 49 protected override void _Binding()
58 txtComision.DataBindings.Clear();
59 txtComision.DataBindings.Add(
"Text", _ewMante,
"_Comision");
61 ckFormaCobroEfectivo.DataBindings.Clear();
62 ckFormaCobroEfectivo.DataBindings.Add(
"Checked", _ewMante,
"_Efectivo");
64 ckFormaCobroTarjeta.DataBindings.Clear();
65 ckFormaCobroTarjeta.DataBindings.Add(
"Checked", _ewMante,
"_Tarjeta");
67 txtCuenta.DataBindings.Clear();
68 txtCuenta.DataBindings.Add(
"_Codigo", _ewMante,
"_Cuenta");
70 ckFormaCobroCheque.DataBindings.Clear();
71 ckFormaCobroCheque.DataBindings.Add(
"Checked", _ewMante,
"_Cheque");
76 txtCuentaComision.DataBindings.Clear();
77 txtCuentaComision.DataBindings.Add(
"_Codigo", _ewMante,
"_CtaComision");
80 cmbDivisaVenta.DataBindings.Clear();
81 cmbDivisaVenta.DataBindings.Add(
"_Codigo", _ewMante,
"_Moneda",
true);
92 base._BloquearControles();
95 bool llEnabled =
false;
99 switch (_ewMante._Estado)
112 txtComision.Enabled = llEnabled;
113 ckFormaCobroEfectivo.Enabled = llEnabled;
114 ckFormaCobroTarjeta.Enabled = llEnabled;
115 txtCuenta._ReadOnly = !llEnabled;
116 txtCuentaComision._ReadOnly = !llEnabled;
117 cmbDivisaVenta._ReadOnly = !llEnabled || !loFormasCobro.
_NoEnUso();
119 ckFormaCobroCheque.Enabled =
false;
120 ckFormaCobroCheque.Visible =
false;
122 ckFormaCobroCheque.Enabled =
false;
123 ckFormaCobroCheque.Visible =
false;
125 _BloquearControles_Adicionales();
136 if (
string.IsNullOrWhiteSpace(txtCuenta._Codigo))
138 this._ControlError(txtCuenta,
"Debe introducir una cuenta contable");
143 if(ckFormaCobroEfectivo.Checked && (txtComision.Value!=0 || !
string.IsNullOrWhiteSpace(txtCuentaComision._Codigo)))
145 this._ControlError(ckFormaCobroEfectivo,
"Una forma de cobro en efectivo no puede tener comisión");
150 if (ckFormaCobroEfectivo.Checked ==
false && txtComision.Value != 0 &&
string.IsNullOrWhiteSpace(txtCuentaComision._Codigo))
152 this._ControlError(txtCuentaComision,
"Es necesario indicar la cuenta de comisión");
157 llOk = llOk && base._Guardar();
171 #endregion METODOS OVERRIDE 173 #region METODOS PRIVADOS 175 private void txtCuenta_Validated(
object sender, EventArgs e)
177 if (!
string.IsNullOrWhiteSpace(txtCuenta._Codigo))
180 if (cuenta.
_Divisa != cmbDivisaVenta._Codigo)
182 txtCuenta._Codigo =
"";
183 _MessageBox(
"La divisa de la cuenta contable no es la misma que la definida en la forma de cobro. Modifique la divisa de la forma de cobro o añada otra cuenta contable cuya divisa sea igual a la definida para la forma de cobro.", MessageBoxButtons.OK, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1, DialogResult.OK);
189 private void _ControlFormaCobroEfectivo()
191 if (ckFormaCobroEfectivo.Enabled && ckFormaCobroEfectivo.Checked)
193 txtCuentaComision._ReadOnly =
true;
194 txtCuentaComision._Codigo =
"";
195 txtComision.Enabled =
false;
196 txtComision.Value = 0;
200 txtCuentaComision._ReadOnly = (txtComision.Value == 0);
201 txtComision.Enabled =
true;
205 private void _BloquearControles_Adicionales()
207 if (_ewMante._Estado == ewbase.ewMante._EstadosMantenimiento.EditandoRegistro ||
208 _ewMante._Estado == ewbase.ewMante._EstadosMantenimiento.EntrandoNuevo)
212 if ( txtComision.Value == 0 &&
String.IsNullOrWhiteSpace(txtCuentaComision._Codigo.Trim()) ==
false)
214 txtCuentaComision._Codigo =
"";
218 if (
String.IsNullOrWhiteSpace(txtCuentaComision._Codigo.Trim()) && txtComision.Value == 0)
220 ckFormaCobroEfectivo.Enabled =
true;
224 ckFormaCobroEfectivo.Enabled =
false;
225 ckFormaCobroEfectivo.Checked =
false;
228 _ControlFormaCobroEfectivo();
232 private void txtcuentacomision__codigo_cambiado()
234 _BloquearControles_Adicionales();
237 private void ckFormaCobroEfectivo_CheckedChanged(
object sender, EventArgs e)
239 if(ckFormaCobroEfectivo.Checked && !_lIsBinding)
241 if (!((FormasCobro)_ewMante)._ValidaUnicaFormaCobroDivisa())
243 _MessageBox(
String.Format(
"Sólo puede haber una forma de cobro en efectivo {0}.", Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_sage50")) && Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_divisaventa")) ?
"por divisa" :
String.Empty), MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
244 ckFormaCobroEfectivo.Checked =
false;
248 if (ckFormaCobroEfectivo.Checked && ckFormaCobroCheque.Checked)
250 _MessageBox(
"No puede marcar forma de cobro en efectivo y forma de cobro tipo cheque al mismo tiempo.", MessageBoxButtons.OK, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1, DialogResult.OK);
251 if (((CheckBox)sender).Checked)
253 ckFormaCobroEfectivo.Checked =
false;
256 _ControlFormaCobroEfectivo();
259 private void ckFormaCobroCheque_CheckedChanged(
object sender, EventArgs e)
261 if (ckFormaCobroEfectivo.Checked && ckFormaCobroCheque.Checked)
263 _MessageBox(
"No puede marcar forma de cobro en efectivo y forma de cobro tipo cheque al mismo tiempo.", MessageBoxButtons.OK, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1, DialogResult.OK);
264 if (((CheckBox)sender).Checked)
266 ckFormaCobroCheque.Checked =
false;
271 private void txtcomision_valuechanged(
object sender, EventArgs e)
273 _BloquearControles_Adicionales();
276 private void frmFormasCobro_Load(
object sender, EventArgs e)
284 ckFormaCobroTarjeta.Visible =
true;
288 ewPanelPercentComision.Visible = ewPanelComision.Visible = !_hera;
290 cmbDivisaVenta.Visible = ewPanelDivisa.Visible = _Sage50 && Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_divisaventa"));
293 #endregion METODOS PRIVADOS 295 private void cmbDivisaVenta__Codigo_Cambiado()
300 if (_ewMante != null && EW_GLOBAL._Empresa._ConfigTPV._ValesCodigo == _ewMante._Codigo && EW_GLOBAL._Empresa._Moneda != cmbDivisaVenta._Codigo)
303 _MessageBox(
"No se puede cambiar la divisa de la forma de cobro . Esta forma de cobro esta definida en la configuración de empresa para el cobro con vales, la divisa de esta forma de cobro debe ser la misma que la de la empresa.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
304 cmbDivisaVenta._Codigo = ((FormasCobro)_ewMante)._Moneda;
307 if (ckFormaCobroEfectivo.Checked)
309 if (!((FormasCobro)_ewMante)._ValidaUnicaFormaCobroDivisa(cmbDivisaVenta._Codigo))
311 _MessageBox(
String.Format(
"Sólo puede haber una forma de cobro en efectivo {0}.", Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_sage50")) && Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_divisaventa")) ?
"por divisa" :
String.Empty), MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
312 cmbDivisaVenta._Codigo = ((FormasCobro)_ewMante)._Moneda;
Clase de negocio base para mantenimientos
Clase de negocio del mantenimiento de cuentas contables
_EstadosMantenimiento
Declaro un enum para los estados del mantenimiento.