Exemple #1
0
        public static tsa_AplicacionPagosDataset.tsa_AplicacionPagosRow GetByPk(string IdComprobanteOrigen, short CuotaOrigen, string IdComprobanteDestino)
        {
            tsa_AplicacionPagosDataset data = new tsa_AplicacionPagosDataset();

            SqlCommand cmd = new SqlCommand("Pr_tsa_AplicacionPagos_GetByPk", dbhelper.Connection.GetConnection());

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.Add(new SqlParameter("@IdComprobanteOrigen", SqlDbType.VarChar));
            cmd.Parameters["@IdComprobanteOrigen"].Value = IdComprobanteOrigen;

            cmd.Parameters.Add(new SqlParameter("@CuotaOrigen", SqlDbType.SmallInt));
            cmd.Parameters["@CuotaOrigen"].Value = CuotaOrigen;

            cmd.Parameters.Add(new SqlParameter("@IdComprobanteDestino", SqlDbType.VarChar));
            cmd.Parameters["@IdComprobanteDestino"].Value = IdComprobanteDestino;

            SqlDataAdapter adapter = new SqlDataAdapter(cmd);

            adapter.TableMappings.Add("Table", "tsa_AplicacionPagos");

            adapter.Fill(data);

            if (data.tsa_AplicacionPagos.Rows.Count == 1)
            {
                return((tsa_AplicacionPagosDataset.tsa_AplicacionPagosRow)data.tsa_AplicacionPagos.Rows[0]);
            }

            return(null);
        }
        public static void Update(tsa_AplicacionPagosDataset dataAplicacionPago, tsa_ComprobanteDetalleDeudaDataset dataDetalleDeuda)
        {
            SqlConnection cnx = dbhelper.Connection.GetConnection();;

            cnx.Open();

            SqlTransaction trx = cnx.BeginTransaction(IsolationLevel.Serializable);

            try
            {
                string IdSentenciaReplicacion = "-1";
                mz.erp.dataaccess.tsa_ComprobanteDetalleDeuda.Update(dataDetalleDeuda.tsa_ComprobanteDetalleDeuda, trx);
                mz.erp.dataaccess.tsa_AplicacionPagos.Update(dataAplicacionPago.tsa_AplicacionPagos, trx);

                trx.Commit();
            }
            catch
            {
                trx.Rollback();
            }
            finally
            {
                cnx.Close();
            }
        }
Exemple #3
0
        /// <summary>
        /// Envia los cambios del tsa_AplicacionPagosDataset a la base de datos.
        /// </summary>
        public static void Update(tsa_AplicacionPagosDataset dataSet)
        {
            ApplicationAssert.Check(dataSet != null, "El argumento dataSet no debe ser nulo.", ApplicationAssert.LineNumber);
            ApplicationAssert.Check(dataSet.tsa_AplicacionPagos.Rows.Count > 0, "La tabla dataSet.tsa_AplicacionPagosDataTable debe poseer alguna fila.", ApplicationAssert.LineNumber);

            mz.erp.dataaccess.tsa_AplicacionPagos.Update(dataSet);
        }
        public static DataSet GetList([SearchParameterInfo("IdComprobanteOrigen")] string IdComprobanteOrigen,
                                      [SearchParameterInfo("CuotaOrigen")] short CuotaOrigen,
                                      [SearchParameterInfo("Importe")] decimal Importe,
                                      [SearchParameterInfo("IdTipoDeComprobanteDestino")] string IdTipoDeComprobanteDestino,
                                      [SearchParameterInfo("IdComprobanteDestino")] string IdComprobanteDestino,
                                      [SearchParameterInfo("CuotaDestino")] short CuotaDestino
                                      )
        {
            tsa_AplicacionPagosDataset data = mz.erp.businessrules.tsa_AplicacionPagos.GetList(IdComprobanteOrigen, CuotaOrigen, Importe, IdTipoDeComprobanteDestino, IdComprobanteDestino, CuotaDestino);

            return(( DataSet )data);
        }
Exemple #5
0
        public static tsa_AplicacionPagosDataset GetList(string IdComprobanteOrigen, short CuotaOrigen, decimal Importe, string IdTipoDeComprobanteDestino, string IdComprobanteDestino, short CuotaDestino)
        {
            tsa_AplicacionPagosDataset data = new tsa_AplicacionPagosDataset();

            SqlDataAdapter adapter = new SqlDataAdapter();

            adapter.TableMappings.Add("Table", "tsa_AplicacionPagos");

            SqlCommand cmd = new SqlCommand("Pr_tsa_AplicacionPagos_Search", dbhelper.Connection.GetConnection());

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.Add(new SqlParameter("@IdComprobanteOrigen", SqlDbType.VarChar));
            cmd.Parameters["@IdComprobanteOrigen"].Value = IdComprobanteOrigen;
            cmd.Parameters.Add(new SqlParameter("@CuotaOrigen", SqlDbType.SmallInt));
            if (CuotaOrigen == short.MinValue)
            {
                cmd.Parameters["@CuotaOrigen"].Value = System.DBNull.Value;
            }
            else
            {
                cmd.Parameters["@CuotaOrigen"].Value = CuotaOrigen;
            }
            cmd.Parameters.Add(new SqlParameter("@Importe", SqlDbType.Decimal));
            if (Importe == decimal.MinValue)
            {
                cmd.Parameters["@Importe"].Value = System.DBNull.Value;
            }
            else
            {
                cmd.Parameters["@Importe"].Value = Importe;
            }
            cmd.Parameters.Add(new SqlParameter("@IdTipoDeComprobanteDestino", SqlDbType.VarChar));
            cmd.Parameters["@IdTipoDeComprobanteDestino"].Value = IdTipoDeComprobanteDestino;
            cmd.Parameters.Add(new SqlParameter("@IdComprobanteDestino", SqlDbType.VarChar));
            cmd.Parameters["@IdComprobanteDestino"].Value = IdComprobanteDestino;
            cmd.Parameters.Add(new SqlParameter("@CuotaDestino", SqlDbType.SmallInt));
            if (CuotaDestino == short.MinValue)
            {
                cmd.Parameters["@CuotaDestino"].Value = System.DBNull.Value;
            }
            else
            {
                cmd.Parameters["@CuotaDestino"].Value = CuotaDestino;
            }
            adapter.SelectCommand = cmd;

            adapter.Fill(data);

            return(data);
        }
        public bool EstaAnulado(string process)
        {
            tsa_AplicacionPagosDataset dataAplicacionDePagos = new tsa_AplicacionPagosDataset();
            //Es un recibo o una nota de credito, por ende hay que buscarlo por el campo IdComporbanteDestino
            // en la tabla tsa_AplicacionPagos
            string    VarCompDeAnulacion      = Variables.GetValueString(process, "Anular", "ComprobantesDeAnulacion");
            ArrayList comprobantesDeAnulacion = mz.erp.systemframework.Util.Parse(VarCompDeAnulacion, ",");

            //ArrayList comprobantesDeAnulacion = mz.erp.systemframework.Util.Parse(Constantes.ComprobantesDeAnulacion,",");

            if (this.Signo == 1)
            {
                dataAplicacionDePagos = mz.erp.businessrules.tsa_AplicacionPagos.GetList(null, short.MinValue, decimal.MinValue, this.IdTipoDeComprobante, this.IdComprobante, Convert.ToInt16(this.Cuota));
                if (dataAplicacionDePagos.tsa_AplicacionPagos.Rows.Count == 1)
                {
                    System.Data.DataRow row    = dataAplicacionDePagos.tsa_AplicacionPagos.Rows[0];
                    string IdTipoDeComprobante = (string)row["IdTipoComprobanteOrigen"];
                    return(comprobantesDeAnulacion.Contains(IdTipoDeComprobante));
                }
                else
                {
                    return(false);
                }
            }
            //Es una factura o una nota de debito, por ende hay que buscarlo por el campo IdComporbanteOrigen
            // en la tabla tsa_AplicacionPagos

            else
            {
                dataAplicacionDePagos = mz.erp.businessrules.tsa_AplicacionPagos.GetList(this.IdComprobante, Convert.ToInt16(this.Cuota), decimal.MinValue, null, null, short.MinValue);
                if (dataAplicacionDePagos.tsa_AplicacionPagos.Rows.Count == 1)
                {
                    System.Data.DataRow row    = dataAplicacionDePagos.tsa_AplicacionPagos.Rows[0];
                    string IdTipoDeComprobante = (string)row["IdTipoDeComprobanteDestino"];
                    return(comprobantesDeAnulacion.Contains(IdTipoDeComprobante));
                }
                else
                {
                    return(false);
                }
            }
        }
Exemple #7
0
        public static tsa_AplicacionPagosDataset GetList()
        {
            tsa_AplicacionPagosDataset data = new tsa_AplicacionPagosDataset();

            return(( tsa_AplicacionPagosDataset )GetList(data));
        }
Exemple #8
0
 public static void Update(tsa_AplicacionPagosDataset dataSet)
 {
     Update(dataSet.tsa_AplicacionPagos);
 }
Exemple #9
0
 public static void Update(tsa_AplicacionPagosDataset dataAplicacionPago, tsa_ComprobanteDetalleDeudaDataset dataDetalleDeuda)
 {
     mz.erp.dataaccess.tsa_CuentaCorriente.Update(dataAplicacionPago, dataDetalleDeuda);
 }
Exemple #10
0
        public static void Update(tsa_ComprobantesExDataset data, bool ActualizaNumeracion, ref string IdComprobante, tsa_AplicacionPagosDataset dataAplicacionDePagos, tsa_ComprobanteDetalleDeudaDataset dataDetalleDeuda, tsa_ComprobantesExDataset dataComprobanteCancelacion)
        {
            string IdVariable;

            if (ActualizaNumeracion)
            {
                IdVariable = UpdateNumero(data);
            }
            else
            {
                IdVariable = data.tsa_Comprobantes.Rows[0]["Numero"].ToString();
            }
            SentenciasReplicacion replicacion = GenerateReplicaction();

            mz.erp.dataaccess.tsa_ComprobantesEx.Update(data, IdVariable, ref IdComprobante, replicacion, dataAplicacionDePagos, dataDetalleDeuda, dataComprobanteCancelacion);
        }
Exemple #11
0
        public static void UpdateComprobanteDeVentaYComprobanteDePago(tsa_ComprobantesExDataset comprobanteDeVenta, tsa_ComprobantesExDataset comprobanteDePago, bool ActualizaNumeracionVenta, bool ActualizaNumeracionPago, ref string IdComprobanteDeVenta, ref string IdComprobanteDePago, tsa_AplicacionPagosDataset dataAplicacionDePagos, tsa_ComprobanteDetalleDeudaDataset dataDetalleDeuda, tsa_ComprobantesExDataset dataComprobanteCancelacion)
        {
            string IdVariableVenta;
            string IdVariablePago;

            if (ActualizaNumeracionVenta)
            {
                IdVariableVenta = UpdateNumero(comprobanteDeVenta);
            }
            else
            {
                IdVariableVenta = comprobanteDeVenta.tsa_Comprobantes.Rows[0]["Numero"].ToString();
            }

            if (ActualizaNumeracionPago)
            {
                IdVariablePago = UpdateNumero(comprobanteDePago);
            }
            else
            {
                IdVariablePago = comprobanteDePago.tsa_Comprobantes.Rows[0]["Numero"].ToString();
            }
            SentenciasReplicacion replicacion = GenerateReplicaction();
            string ComprobantesDeVentas       = Variables.GetValueString("Comprobantes.ComprobantesDeVenta");

            mz.erp.dataaccess.tsa_ComprobantesEx.UpdateComprobanteDeVentaYComprobanteDePago(comprobanteDeVenta, comprobanteDePago, IdVariableVenta, IdVariablePago, ref IdComprobanteDeVenta, ref IdComprobanteDePago, replicacion, ComprobantesDeVentas, dataAplicacionDePagos, dataDetalleDeuda, dataComprobanteCancelacion);
        }
Exemple #12
0
        public static void Update(tsa_ComprobantesExDataset data, string IdVariable, ref string IdComprobante, SentenciasReplicacion replicacion, tsa_AplicacionPagosDataset dataAplicacionDePagos, tsa_ComprobanteDetalleDeudaDataset dataDetalleDeuda, tsa_ComprobantesExDataset dataComprobanteCancelacion)
        {
            SqlConnection cnx = dbhelper.Connection.GetConnection();

            cnx.Open();
            SqlTransaction trx = cnx.BeginTransaction(IsolationLevel.Serializable);

            try
            {
                Update(data, IdVariable, ref IdComprobante, trx, replicacion);
                UpdateDesimputacion(dataDetalleDeuda, dataAplicacionDePagos, trx);
                UpdateCancelacion(dataComprobanteCancelacion, trx, replicacion);
                //mz.erp.dataaccess.tsa_ComprobanteValoresVarAux.Update(IdComprobanteDeVenta, "11", IdComprobanteDePago, trx);
                replicacion.Update();
                mz.erp.dataaccess.sy_SentenciasReplicacion.Update(replicacion.Data.sy_SentenciasReplicacion, trx);
                trx.Commit();
            }
            catch (Exception e)
            {
                trx.Rollback();
                data.tsa_Comprobantes.Rows[0].SetColumnError("IdComprobante", "No se ha podido realizar la grabación por un error en los datos");
            }
            finally
            {
                cnx.Close();
            }
        }
Exemple #13
0
        public static void UpdateComprobanteDeVentaYComprobanteDePago(tsa_ComprobantesExDataset comprobantedeVenta, tsa_ComprobantesExDataset comprobantedePago, string IdVariableVenta, string IdVariablePago, ref string IdComprobanteDeVenta, ref string IdComprobanteDePago, SentenciasReplicacion Replicacion, string ComprobantesDeVentas, tsa_AplicacionPagosDataset dataAplicacionDePagos, tsa_ComprobanteDetalleDeudaDataset dataDetalleDeuda, tsa_ComprobantesExDataset dataComprobanteCancelacion)
        {
            SqlConnection cnx = dbhelper.Connection.GetConnection();

            cnx.Open();
            SqlTransaction trx = cnx.BeginTransaction(IsolationLevel.Serializable);

            try
            {
                string IdComprobanteAnt = (string)comprobantedeVenta.tsa_Comprobantes.Rows[0]["IdComprobante"];
                Update(comprobantedeVenta, IdVariableVenta, ref IdComprobanteDeVenta, trx, Replicacion);
                Merge(comprobantedeVenta, comprobantedePago, IdComprobanteAnt, ComprobantesDeVentas);
                UpdateComprobanteDePago(comprobantedePago, ref IdComprobanteDePago, IdVariablePago, trx, Replicacion);
                UpdateDesimputacion(dataDetalleDeuda, dataAplicacionDePagos, trx);
                UpdateCancelacion(dataComprobanteCancelacion, trx, Replicacion);
                mz.erp.dataaccess.tsa_ComprobanteValoresVarAux.Update(IdComprobanteDeVenta, "11", IdComprobanteDePago, trx);
                Replicacion.Update();
                mz.erp.dataaccess.sy_SentenciasReplicacion.Update(Replicacion.Data.sy_SentenciasReplicacion, trx);
                trx.Commit();
            }
            catch (System.Exception e)
            {
                //Debug.WriteLine(e.Message);
                trx.Rollback();
            }
            finally
            {
                cnx.Close();
            }
        }
        public bool DesimputarCliente(ItemCuentaCorriente icc)
        {
            _data_tsa_AplicacionPagos.Clear();
            _data_tsa_ComprobanteDetalleDeuda.Clear();

            decimal pago = 0;

            if (icc.Signo == 1)
            {
                // Es un recibo o una nota de credito, por ende hay que buscarlo por el campo IdComporbanteDestino
                // en la tabla tsa_AplicacionPagos
                _data_tsa_AplicacionPagos = mz.erp.businessrules.tsa_AplicacionPagos.GetList(null, short.MinValue, decimal.MinValue, icc.IdTipoDeComprobante, icc.IdComprobante, Convert.ToInt16(icc.Cuota));
                foreach (tsa_AplicacionPagosDataset.tsa_AplicacionPagosRow row in _data_tsa_AplicacionPagos.tsa_AplicacionPagos.Rows)
                {
                    bool   getByPk       = false;
                    string IdComprobante = (string)row["IdComprobanteOrigen"];
                    short  cuota         = (short)row["CuotaOrigen"];
                    pago = pago + row.Importe;
                    tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow rowDet = _data_tsa_ComprobanteDetalleDeuda.tsa_ComprobanteDetalleDeuda.FindByIdComprobanteCuota(IdComprobante, cuota);
                    if (rowDet == null)
                    {
                        rowDet  = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(IdComprobante, cuota);
                        getByPk = true;
                    }
                    if (rowDet != null)
                    {
                        // tener emn cuenta el signo del saldo.
                        rowDet.Saldo = rowDet.Saldo + (-1) * row.Importe;
                        if (getByPk)
                        {
                            _data_tsa_ComprobanteDetalleDeuda.tsa_ComprobanteDetalleDeuda.ImportRow(rowDet);
                        }
                        row.Delete();
                    }
                }
                tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow rowDetalle1 = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(icc.IdComprobante, (short)icc.Cuota);
                //Se multiplica por 1 pues signo de saldo es positivo. Solo para consolidar los signos
                if (rowDetalle1 != null)
                {
                    rowDetalle1.Saldo = rowDetalle1.Saldo + 1 * pago;
                    _data_tsa_ComprobanteDetalleDeuda.tsa_ComprobanteDetalleDeuda.ImportRow(rowDetalle1);
                }
            }
            else
            {
                // Es una factura o una nota de debito, por ende hay que buscarlo por el campo IdComporbanteOrigen
                // en la tabla tsa_AplicacionPagos
                _data_tsa_AplicacionPagos = mz.erp.businessrules.tsa_AplicacionPagos.GetList(icc.IdComprobante, Convert.ToInt16(icc.Cuota), decimal.MinValue, null, null, short.MinValue);
                foreach (tsa_AplicacionPagosDataset.tsa_AplicacionPagosRow row in _data_tsa_AplicacionPagos.tsa_AplicacionPagos.Rows)
                {
                    bool   getByPk       = false;
                    string IdComprobante = (string)row["IdComprobanteDestino"];
                    short  cuota         = (short)row["CuotaDestino"];
                    pago = pago + row.Importe;
                    tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow rowDet = _data_tsa_ComprobanteDetalleDeuda.tsa_ComprobanteDetalleDeuda.FindByIdComprobanteCuota(IdComprobante, cuota);
                    if (rowDet == null)
                    {
                        rowDet  = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(IdComprobante, cuota);
                        getByPk = true;
                    }
                    if (rowDet != null)
                    {
                        // tener en cuenta el signo del saldo.
                        rowDet.Saldo = rowDet.Saldo + (+1) * row.Importe;
                        if (getByPk)
                        {
                            _data_tsa_ComprobanteDetalleDeuda.tsa_ComprobanteDetalleDeuda.ImportRow(rowDet);
                        }
                        row.Delete();
                    }
                }
                tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow rowDetalle2 = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(icc.IdComprobante, (short)icc.Cuota);
                // Tener en cuenta el signo. Se multiplica por -1 pues this.Signo = -1 y pues el signo de saldo
                // es negativo; Consolidacion de signos.
                if (rowDetalle2 != null)
                {
                    rowDetalle2.Saldo = rowDetalle2.Saldo + (-1) * pago;
                    _data_tsa_ComprobanteDetalleDeuda.tsa_ComprobanteDetalleDeuda.ImportRow(rowDetalle2);
                }
            }
            // Chequeo que se haya eliminado alguna imputación
            return(pago > 0);
        }
        //Elimina las asociaciones que hay con este comprobante en la tabla tsa_AplicacionPagos
        //Actualiza la el detalle de la Cuenta Corriente (tabla tsa_ComporbantesDetalleDeuda)
        public bool Desimputar()
        {
            _dataAplicacionDePagos = new tsa_AplicacionPagosDataset();
            _dataDetalleDeuda      = new tsa_ComprobanteDetalleDeudaDataset();
            decimal pago = 0;

            //Es un recibo o una nota de credito, por ende hay que buscarlo por el campo IdComporbanteDestino
            // en la tabla tsa_AplicacionPagos
            if (this.Signo == 1)
            {
                _dataAplicacionDePagos = mz.erp.businessrules.tsa_AplicacionPagos.GetList(null, short.MinValue, decimal.MinValue, this.IdTipoDeComprobante, this.IdComprobante, Convert.ToInt16(this.Cuota));
                foreach (tsa_AplicacionPagosDataset.tsa_AplicacionPagosRow row in _dataAplicacionDePagos.tsa_AplicacionPagos.Rows)
                {
                    string IdComprobante = (string)row["IdComprobanteOrigen"];
                    short  cuota         = (short)row["CuotaOrigen"];
                    pago = pago + row.Importe;
                    try
                    {
                        tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow rowDetalle = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(IdComprobante, cuota);
                        //tener emn cuenta el signo del saldo
                        rowDetalle.Saldo = rowDetalle.Saldo + (-1) * row.Importe;

                        _dataDetalleDeuda.tsa_ComprobanteDetalleDeuda.ImportRow(rowDetalle);
                    }
                    catch (Exception e) {
                        tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow rowDet;
                        rowDet = _dataDetalleDeuda.tsa_ComprobanteDetalleDeuda.FindByIdComprobanteCuota(IdComprobante, cuota);
                        if (rowDet != null)
                        {
                            rowDet.Saldo = rowDet.Saldo + (-1) * row.Importe;
                        }
                    }
                    row.Delete();
                }
                tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow rowDetalle1 = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(this.IdComprobante, (short)this.Cuota);
                //Semultiplica por 1 pues signo de saldo es positivo. Solo para consolidar los signos
                if (rowDetalle1 != null)
                {
                    rowDetalle1.Saldo = rowDetalle1.Saldo + 1 * pago;
                    _dataDetalleDeuda.tsa_ComprobanteDetalleDeuda.ImportRow(rowDetalle1);
                }
            }
            //Es una factura o una nota de debito, por ende hay que buscarlo por el campo IdComporbanteOrigen
            // en la tabla tsa_AplicacionPagos

            else
            {
                _dataAplicacionDePagos = mz.erp.businessrules.tsa_AplicacionPagos.GetList(this.IdComprobante, Convert.ToInt16(this.Cuota), decimal.MinValue, null, null, short.MinValue);
                foreach (tsa_AplicacionPagosDataset.tsa_AplicacionPagosRow row in _dataAplicacionDePagos.tsa_AplicacionPagos.Rows)
                {
                    string IdComprobante = (string)row["IdComprobanteDestino"];
                    short  cuota         = (short)row["CuotaDestino"];

                    pago = pago + row.Importe;
                    try
                    {
                        tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow rowDetalle = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(IdComprobante, cuota);
                        //tener en cuenta el signo del saldo
                        rowDetalle.Saldo = rowDetalle.Saldo + 1 * row.Importe;
                        _dataDetalleDeuda.tsa_ComprobanteDetalleDeuda.ImportRow(rowDetalle);
                    }
                    catch (Exception e) {
                        tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow rowDet;
                        rowDet       = _dataDetalleDeuda.tsa_ComprobanteDetalleDeuda.FindByIdComprobanteCuota(IdComprobante, cuota);
                        rowDet.Saldo = rowDet.Saldo + 1 * row.Importe;
                    }
                    row.Delete();
                }
                tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow rowDetalle2 = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(this.IdComprobante, (short)this.Cuota);
                //Tener en cuenta el signo. Se multiplica por -1 pues this.Signo = -1 y pues el signo de saldo es negativo
                //Consolidacion de signos
                if (rowDetalle2 != null)
                {
                    rowDetalle2.Saldo = rowDetalle2.Saldo + (-1) * pago;
                    _dataDetalleDeuda.tsa_ComprobanteDetalleDeuda.ImportRow(rowDetalle2);
                }
            }
            //Chequeo que se haya echo alguna desimputacion
            return(pago > 0);
        }
        public ArrayList GetAsociaciones(CuentaCorriente cc, string ProcessName)
        {
            ArrayList resul = new ArrayList();
            tsa_AplicacionPagosDataset data    = new tsa_AplicacionPagosDataset();
            CuentaCorriente            ccClone = Factory.GetCuentaCorriente(cc.IdCuenta, DateTime.MinValue, DateTime.MaxValue, null);
            ArrayList dccs = ccClone.GetDetalleCuentaCorriente(ProcessName);

            //Es un comprobante origen en la tabla tsa_AplicacionesDePago (Factura, Nota de Debito, etc...)
            if (this.Signo == -1)
            {
                data = mz.erp.businessrules.tsa_AplicacionPagos.GetList(this.IdComprobante, Convert.ToInt16(this.Cuota), decimal.MinValue, null, null, short.MinValue);
                //Busco lo s recibos asociados a la factura

                foreach (DetalleCuentaCorriente dcc in dccs)
                {
                    foreach (tsa_AplicacionPagosDataset.tsa_AplicacionPagosRow row in data.tsa_AplicacionPagos.Rows)
                    {
                        //Los recibos estan en la columna IdComprobanteDestino en la tabla tsa_AplicacionPagos
                        if (dcc.IdComprobante.Equals(Convert.ToString(row["IdComprobanteDestino"])) && (dcc.Cuota == ((short)row["CuotaDestino"])))
                        {
                            DetalleCuentaCorriente dccClone = (DetalleCuentaCorriente)dcc.MemberwiseClone();
                            //truco para engañar al setter de Pago
                            decimal saldo = dccClone.Saldo;
                            dccClone.Saldo     = row.Importe * dccClone.Signo;
                            dccClone.Pago      = row.Importe;
                            dccClone.Saldo     = saldo;
                            dccClone.FechaPago = row.FechaCreacion;
                            resul.Add(dccClone);
                        }
                    }
                }
            }



            //Es un comprobante destino en la tabla tsa_AplicacionesDePago (Recibos, Notas de Creditos, etc...)

            else
            {
                data = mz.erp.businessrules.tsa_AplicacionPagos.GetList(null, short.MinValue, decimal.MinValue, this.IdTipoDeComprobante, this.IdComprobante, Convert.ToInt16(this.Cuota));
                //Busco las facturas asociadas al recibo
                //Las facturas estan en la columna IdComprobanteOrigen en la tabla tsa_AplicacionPagos
                foreach (DetalleCuentaCorriente dcc in dccs)
                {
                    foreach (tsa_AplicacionPagosDataset.tsa_AplicacionPagosRow row in data.tsa_AplicacionPagos.Rows)
                    {
                        if (dcc.IdComprobante.Equals((string)row["IdComprobanteOrigen"]) && (dcc.Cuota == ((short)row["CuotaOrigen"])))
                        {
                            DetalleCuentaCorriente dccClone = (DetalleCuentaCorriente)dcc.MemberwiseClone();
                            //truco para engañar al setter de Pago
                            decimal saldo = dccClone.Saldo;
                            dccClone.Saldo     = row.Importe * dccClone.Signo;
                            dccClone.Pago      = row.Importe;
                            dccClone.Saldo     = saldo;
                            dccClone.FechaPago = row.FechaCreacion;

                            resul.Add(dccClone);
                        }
                    }
                }
            }
            return(resul);
        }