Пример #1
0
        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();
            }
        }
Пример #2
0
 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();
     }
 }