private void btn_Guardar_Click(object sender, EventArgs e) { try { if (objoperacion == null) { Ctrl_conceptos admconceptos = Ctrl_conceptos.ClaseActiva(); if (rb_credito.Checked) { Cpago_credito objcredi = new Cpago_credito(txt_concepto.Text, Convert.ToDecimal(txt_importe.Text), DateTime.Today, true); adm.AgregarOperacion(objcredi, objcuenta); if (proveedor) { if (LRecibos.Count > 0) { bool darbaja = false; if (LRecibos.Count > 1 || ApagarDelprimero == objcredi.Importe) { adm.DarBajaoAlta(objcredi, objcuenta, false); darbaja = true; } objcredi.InstanciaRecibos(); int seguidor; int tope; Cpago_credito auxCredito; foreach (Crecibo_debito auxDebito in LRecibos) { adm.AgregarReferiaEntreOperacion(objcredi, auxDebito); objcredi.AgregarRecibo(auxDebito); if (darbaja) { adm.DarBajaoAlta(auxDebito, objcuenta, false); seguidor = 0; tope = objcuenta.Creditos.Count; while (seguidor < tope) { auxCredito = objcuenta.Creditos[seguidor]; if (auxCredito.Recibos() != null) { if (auxCredito.Recibos().Contains(auxDebito)) { adm.DarBajaoAlta(auxCredito, objcuenta, false); tope--; seguidor--; } } seguidor++; } } } } } if (cb_afecta_caja.Checked) { Cgasto objgasto = new Cgasto(admconceptos.BuscarPorID(1), objcredi.Importe, forma); admcaja.AgregarOperacion(objgasto, ObjCajaDiaria); adm.AgregarReferiaEntreOperacion(objcredi, objgasto); } } else { Crecibo_debito objdebito = new Crecibo_debito(txt_concepto.Text, Convert.ToDecimal(txt_importe.Text), DateTime.Today, true); adm.AgregarOperacion(objdebito, objcuenta); if (!proveedor) { if (LCreditos.Count > 0) { bool darbaja = false; if (LCreditos.Count > 1 || ApagarDelprimero == objdebito.Importe) { adm.DarBajaoAlta(objdebito, objcuenta, false); darbaja = true; } objdebito.InstanciaCreditos(); int seguidor; int tope; Crecibo_debito auxDebito; foreach (Cpago_credito auxCredito in LCreditos) { adm.AgregarReferiaEntreOperacion(auxCredito, objdebito); objdebito.AgregarCreditos(auxCredito); if (darbaja) { adm.DarBajaoAlta(auxCredito, objcuenta, false); seguidor = 0; tope = objcuenta.Debitos.Count; while (seguidor < tope) { auxDebito = objcuenta.Debitos[seguidor]; if (auxDebito.Creditos() != null) { if (auxDebito.Creditos().Contains(auxCredito)) { adm.DarBajaoAlta(auxDebito, objcuenta, false); tope--; seguidor--; } } seguidor++; } } } } } if (cb_afecta_caja.Checked) { Ccobro objcobro = new Ccobro(admconceptos.BuscarPorID(2), objdebito.Importe, forma); admcaja.AgregarOperacion(objcobro, ObjCajaDiaria); adm.AgregarReferiaEntreOperacion(objdebito, objcobro); } } } else { if (rb_credito.Checked) { Cpago_credito objcredito = (Cpago_credito)objoperacion; objcredito.Concepto = txt_concepto.Text; adm.ModificarOperacion(new Cpago_credito(objoperacion.Numero, txt_concepto.Text, Convert.ToDecimal(txt_importe.Text), Convert.ToDateTime(txt_dia.Text), objcredito.AltaOp())); objcuenta.ModificarCredito(objcredito, Convert.ToDecimal(txt_importe.Text)); } else { Crecibo_debito objdebito = (Crecibo_debito)objoperacion; objdebito.Concepto = txt_concepto.Text; adm.ModificarOperacion(new Crecibo_debito(objoperacion.Numero, txt_concepto.Text, Convert.ToDecimal(txt_importe.Text), Convert.ToDateTime(txt_dia.Text), objdebito.AltaOp())); objcuenta.ModificarDebito(objdebito, Convert.ToDecimal(txt_importe.Text)); } } ActualizarGrillaCreditos(); ActualizarGrillaDebitos(); lbl_saldo.Text = objcuenta.Saldo.ToString(); btn_Cancelar_Click(sender, e); adm.Modificar(objcuenta); } catch (Exception ex) { Frm_confirmacion frm = new Frm_confirmacion(ex.Message, "Bueno, esto es embarazoso. Pero lo solucionaremos :)", "Aceptar"); frm.ShowDialog(); } }
private void btn_Guardar_Click(object sender, EventArgs e) { try{ Oconcepto = (Cconcepto)cb_concepto.SelectedItem; if (Gasto) { Cgasto obj = new Cgasto(Oconcepto, Convert.ToDecimal(txt_importe.Text), (Cforma_pago)cb_FormasPagos.SelectedValue); if (Ooperacion == null) { if (obj.FORMAPAGO().Altera_caja) { if (ObjCajaDiaria.Efec_final >= obj.Importe) { adm.AgregarOperacion(obj, ObjCajaDiaria); } else { throw new Exception("No tiene suficiente plata en caja como para pagar ese gasto"); } } else { adm.AgregarOperacion(obj, ObjCajaDiaria); } } else { if (obj.FORMAPAGO().Altera_caja) { if (ObjCajaDiaria.Efec_final < (obj.Importe - Ooperacion.Importe)) { throw new Exception("No tiene suficiente plata en caja como para pagar ese gasto"); } } adm.ModificarOperacion((Cgasto)Ooperacion, obj, ObjCajaDiaria); } if (cb_registrar.Checked) { Ctrl_cuentas_corrientes admCuentas = Ctrl_cuentas_corrientes.ClaseActiva(); Cpago_credito objcu = new Cpago_credito(obj.Concepto, obj.Importe, DateTime.Today, true); Cproveedor objproveedor = ((Cproveedor)Opersona); admCuentas.CargarAltasDebitosyCreditos(objproveedor.DevolverCuentaCorriente()); admCuentas.AgregarOperacion(objcu, objproveedor.DevolverCuentaCorriente()); admCuentas.AgregarReferiaEntreOperacion(objcu, obj); } else { if (Opersona != null) { Cgasto ogasto = (Cgasto)Ooperacion; if (obj.Importe != ogasto.Credito().Importe) { Ccuenta_corriente cuenta = Opersona.DevolverCuentaCorriente(); ogasto.Credito().Importe = obj.Importe; cuenta.ModificarCredito(cuenta.BuscarCredito(ogasto.Credito().Numero), obj.Importe); Ctrl_cuentas_corrientes admCuentas = Ctrl_cuentas_corrientes.ClaseActiva(); admCuentas.ModificarOperacion(ogasto.Credito()); } } } } else { Ccobro obj = new Ccobro(Oconcepto, Convert.ToDecimal(txt_importe.Text), (Cforma_pago)cb_FormasPagos.SelectedValue); if (Ooperacion == null) { adm.AgregarOperacion(obj, ObjCajaDiaria); } else { adm.ModificarOperacion((Ccobro)Ooperacion, obj, ObjCajaDiaria); } if (cb_registrar.Checked) { Ctrl_cuentas_corrientes admCuentas = Ctrl_cuentas_corrientes.ClaseActiva(); Crecibo_debito objc = new Crecibo_debito(obj.Concepto, obj.Importe, DateTime.Today, true); Ccliente objcliente = ((Ccliente)Opersona); admCuentas.CargarAltasDebitosyCreditos(objcliente.DevolverCuentaCorriente()); admCuentas.AgregarOperacion(objc, objcliente.DevolverCuentaCorriente()); admCuentas.AgregarReferiaEntreOperacion(objc, obj); } else { if (Opersona != null) { Ccobro ocobro = (Ccobro)Ooperacion; if (obj.Importe != ocobro.Debito().Importe) { Ccuenta_corriente cuenta = Opersona.DevolverCuentaCorriente(); ocobro.Debito().Importe = obj.Importe; cuenta.ModificarDebito(cuenta.BuscarDebito(ocobro.Debito().Numero), obj.Importe); Ctrl_cuentas_corrientes admCuentas = Ctrl_cuentas_corrientes.ClaseActiva(); admCuentas.ModificarOperacion(ocobro.Debito()); } } } } Close(); } catch (Exception ex) { Frm_confirmacion frm = new Frm_confirmacion(ex.Message, "Error", "Aceptar"); frm.ShowDialog(); } }