Beispiel #1
0
        public static void PrintReportCuentaCorriente(mz.erp.businessrules.comprobantes.CuentaCorriente _ctaCte, Form parent, string _process, bool soloPendientes, bool SoloFacturas, bool SoloNotasDeCreditos)
        {
            FrmPreviewReport frmpr = new FrmPreviewReport();
            string           ComprobantesCtaCte  = Variables.GetValueString("Momentos." + _process + ".Comprobantes");
            ArrayList        FacturasList        = new ArrayList();
            ArrayList        NotasDeCreditosList = new ArrayList();

            if (SoloFacturas)
            {
                string Facturas = Variables.GetValueString("Comprobantes.TiposDeComprobantes.Facturas");
                FacturasList = mz.erp.systemframework.Util.Parse(Facturas, ",");
                string FacturasDV = Variables.GetValueString("Comprobantes.TiposDeComprobantes.Facturas DV");
                FacturasList.AddRange(mz.erp.systemframework.Util.Parse(FacturasDV, ","));
            }

            if (SoloNotasDeCreditos)
            {
                string NotasDeCreditos = Variables.GetValueString("Comprobantes.TiposDeComprobantes.Notas de Crédito");
                NotasDeCreditosList = mz.erp.systemframework.Util.Parse(NotasDeCreditos, ",");
                string NotasDeCreditosDV = Variables.GetValueString("Comprobantes.TiposDeComprobantes.Notas de Crédito DV");
                FacturasList.AddRange(mz.erp.systemframework.Util.Parse(NotasDeCreditosDV, ","));
            }


            //string ComprobantesCtaCte =  Variables.GetValueString("Cuentas.CuentaCorriente.Comprobantes");

            /*
             * table  =  mz.erp.businessrules.reportes.StatementSQLFactory.GetSQLForCuentaCorrienteReport(_ctaCte.FechaDesde, _ctaCte.FechaHasta, _ctaCte.IdCuenta, ComprobantesCtaCte, _ctaCte.OrderBy);
             * frmpr.ShowReport(table, "ReportCuentaCorriente.RPX", parent, new object []{});
             */
            ArrayList aux = new ArrayList();

            foreach (DetalleCuentaCorriente dcc in _ctaCte.Detalle)
            {
                bool cond1 = !SoloNotasDeCreditos && !SoloFacturas;
                bool cond2 = SoloFacturas && FacturasList.Contains(dcc.IdTipoDeComprobante);
                bool cond3 = SoloNotasDeCreditos && NotasDeCreditosList.Contains(dcc.IdTipoDeComprobante);
                if (cond1 || cond2 || cond3)
                {
                    DetalleCuentaCorrienteView dccw = new DetalleCuentaCorrienteView(dcc, _ctaCte.SaldoAnterior, _ctaCte.SaldoPosterior, soloPendientes, _ctaCte.Cuenta, _ctaCte.FechaDesde, _ctaCte.FechaHasta);
                    aux.Add(dccw);
                }
            }
            DataTable        table  = (new mz.erp.commontypes.DataTableConverter()).GetDataTable(aux);
            FrmPreviewReport frmpr1 = new FrmPreviewReport();

            frmpr1.ShowReport(table, "ReportCuentaCorriente.RPX", parent, new object [] {});
        }
Beispiel #2
0
        public static ComprobanteDePago GetComprobanteDePago(string IdComprobante, decimal total, decimal Pago, CuentaCorriente ctaCte)
        {
            ComprobanteDePago cdp = new ComprobanteDePago();

            cdp.IdComprobante       = IdComprobante;
            cdp.FechaComprobante    = mz.erp.businessrules.Sistema.DateTime.Now;
            cdp.DatasetComprobante  = new tsa_ComprobantesExDataset();
            cdp.AplicacionesDePagos = Factory.getAplicacionesDePagos(cdp);
            cdp.CondicionDeVenta    = new CondicionDeVenta("NEW", cdp, Variables.GetValueString("Comprobantes.FormaDePago.Contado"));
            cdp.Total           = total;
            cdp.TotalPago       = Pago;
            cdp.CuentaCorriente = ctaCte;
            cdp.Valores         = Factory.GetValores(cdp.DatasetComprobante);

            return(cdp);
        }
Beispiel #3
0
        public static ComprobanteDePago GetComprobanteDePago(string IdComprobante, decimal total, decimal Pago, CuentaCorriente ctaCte, string IdCondicionDeVenta)
        {
            ComprobanteDePago cdp = new ComprobanteDePago();

            cdp.IdComprobante       = IdComprobante;
            cdp.CuentaCorriente     = ctaCte;
            cdp.FechaComprobante    = mz.erp.businessrules.Sistema.DateTime.Now;
            cdp.DatasetComprobante  = new tsa_ComprobantesExDataset();
            cdp.AplicacionesDePagos = Factory.getAplicacionesDePagos(cdp);
            cdp.CondicionDeVenta    = new CondicionDeVenta("NEW", cdp, IdCondicionDeVenta);
            cdp.Total     = total;
            cdp.TotalPago = Pago;


            cdp.CompDetalleDePagos = Factory.GetComprobantesDetalleDePagos(cdp);

            string IdMoneda = Variables.GetValueString("Contabilidad.MonedaReferencia");

            cdp.IdMonedaCierre = IdMoneda;

            cdp.Valores = Factory.GetValores(cdp, cdp.DatasetComprobante);

            return(cdp);
        }
Beispiel #4
0
        //Esta sobrecarga recibe como parametro el IdComprobante del comprobante
        //que esta imputado o no con un comprobante de pago
        //Esta sobrecarga debe recuperar primero el comprobante de pago

        public static ComprobanteDePago GetComprobanteDePago(string IdComprobanteDeVenta, string IdCondicionDeVenta)
        {
            ComprobanteDePago cdp;

            CuentaCorriente ctacte = Factory.GetCuentaCorriente();
            string          IdComprobanteDePago = "";

            tsa_ComprobanteValoresVarAuxDataset.tsa_ComprobanteValoresVarAuxRow rowVarAux = mz.erp.businessrules.tsa_ComprobanteValoresVarAux.GetByPk(IdComprobanteDeVenta, "11");
            if (rowVarAux != null)
            {
                IdComprobanteDePago = rowVarAux.Valor;
            }
            //mz.erp.businessrules.tsa_ComprobanteValoresVarAux.GetByPk(IdComprobanteDeVenta,"11").Valor;	}
            //se chequea que exista un comprobante de pago asociado, puesto que puede que no se haya generado comprobante de pago
            //No se generan comprobantes de pagos si no se han ingresado valores

            if (IdComprobanteDePago != null && !IdComprobanteDePago.Equals(string.Empty))
            {
                System.Data.DataRow rowComprobanteDePago = mz.erp.businessrules.tsa_Comprobantes.GetByPk(IdComprobanteDePago);


                System.Data.DataRow rowDetalleDeudaComprobanteDePago   = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(IdComprobanteDePago, 1);
                System.Data.DataSet dataDetalleDeudaComprobanteDeVenta = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetList(IdComprobanteDeVenta, null, null);

                if (ComprobantesRules.Comprobantes_CondicionDeVenta_Permite_Imputar(IdCondicionDeVenta))
                {
                    //DetalleCuentaCorriente dccComprobanteDePago = Factory.GetDetalleCuentaCorriente(rowDetalleDeudaComprobanteDePago);
                    //DetalleCuentaCorriente dccComprobanteDeVenta = Factory.GetDetalleCuentaCorriente(rowDetalleDeudaComprobanteDeVenta);
                    //ctacte.Detalle.Add(dccComprobanteDePago);
                    //ctacte.Detalle.Add(dccComprobanteDeVenta);

                    foreach (System.Data.DataRow rowDetalleDeudaComprobanteDeVenta in dataDetalleDeudaComprobanteDeVenta.Tables[0].Rows)
                    {
                        DetalleCuentaCorriente dccComprobanteDeVenta = Factory.GetDetalleCuentaCorriente(rowDetalleDeudaComprobanteDeVenta);
                        ctacte.Detalle.Add(dccComprobanteDeVenta);
                    }


                    decimal total = (decimal)rowComprobanteDePago["Total"];
                    decimal pago  = total - (decimal)rowDetalleDeudaComprobanteDePago["Saldo"];
                    cdp = Factory.GetComprobanteDePago(IdComprobanteDePago, total, pago, ctacte, IdCondicionDeVenta);
                }
                else
                {
                    //decimal total = (decimal) rowComprobanteDePago["Total"];
                    //decimal pago = total - (decimal) rowDetalleDeudaComprobanteDePago["Saldo"];
                    cdp           = Factory.GetComprobanteDePago(IdComprobanteDePago, 0, 0, ctacte, IdCondicionDeVenta);
                    cdp.Total     = (decimal)rowComprobanteDePago["Total"];
                    cdp.Saldo     = (decimal)rowDetalleDeudaComprobanteDePago["Saldo"];
                    cdp.TotalPago = cdp.Total - cdp.Saldo;
                }
                cdp.Anular = true;
                cdp.TipoComprobanteDestino = (string)rowComprobanteDePago["IdTipoDeComprobante"];
            }
            else
            {
                cdp = Factory.GetComprobanteDePago();
            }

            return(cdp);
        }
Beispiel #5
0
        public void Update(CuentaCorriente ctaCte)
        {
            ComprobanteDePago cdp          = (ComprobanteDePago)this.Comprobante;
            bool aplicacionDePago          = false;
            tsa_ComprobantesExDataset data = cdp.DatasetComprobante;

            foreach (DetalleCuentaCorriente dcc in ctaCte.Detalle)
            {
                if (dcc.Pago > 0)

                {
                    //Pues es un comprobante de Pago que tiene Pago > 0
                    //Esto implica que estamos ante una Aplicacion de Pago de un comprobante de pago
                    //en la Cuenta Corriente
                    if (dcc.Signo == 1)
                    {
                        aplicacionDePago = true;
                    }
                    //Si dcc.Signo == 1 significa que es un recibo que ya esta en la cuenta corriente y que a su
                    //vez tiene pago >0, osea que estamos ante una situacion de Aplicacion de Pago
                    string IdComprobate = dcc.IdComprobante;
                    short  Cuota        = (short)dcc.Cuota;

                    /*
                     * if(cdp.ComprobanteDeVenta != null)
                     * {
                     *      System.Data.DataRow row = cdp.ComprobanteDeVenta.DatasetComprobante.tsa_ComprobanteDetalleDeuda.FindByIdComprobanteCuota(IdComprobate, Cuota);
                     *      int signo =Convert.ToInt32( tsy_TiposDeComprobantes.GetByPk((string) row["IdTipoDeComprobante"]).signo);
                     *      row["saldo"] = (decimal )row["saldo"] * signo;
                     *      row["Saldo"] =(decimal) row["Saldo"] - dcc.Pago;
                     *      row["Saldo"] = (decimal) row["Saldo"] * signo;
                     *      //data.tsa_ComprobanteDetalleDeuda.ImportRow(row);
                     *      //data.tsa_ComprobanteDetalleDeuda.LoadDataRow(row.ItemArray,true);
                     *
                     *
                     * }
                     *
                     * else
                     * {
                     */
                    try
                    {
                        System.Data.DataRow row = data.tsa_ComprobanteDetalleDeuda.FindByIdComprobanteCuota(IdComprobate, Cuota);
                        int signo = Convert.ToInt32(tsy_TiposDeComprobantes.GetByPk((string)row["IdTipoDeComprobante"]).signo);
                        row["saldo"] = (decimal )row["saldo"] * signo;
                        row["Saldo"] = (decimal)row["Saldo"] - dcc.Pago;
                        row["Saldo"] = (decimal)row["Saldo"] * signo;
                    }
                    catch (Exception e)
                    {
                        tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow row = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(IdComprobate, Cuota);
                        if (row != null)
                        {
                            int signo = Convert.ToInt32(tsy_TiposDeComprobantes.GetByPk((string)row["IdTipoDeComprobante"]).signo);
                            row["saldo"] = (decimal )row["saldo"] * signo;
                            row["Saldo"] = (decimal)row["Saldo"] - dcc.Pago;
                            row["Saldo"] = (decimal)row["Saldo"] * signo;
                        }

                        //	pues si es un recibo ya fue agregado en la tabla de Comprobantes
                        // Para cualquier otro comprobante que tenga signo == -1 y que tenga Pago > 0 hay que agreagrlo a la tabla
                        // tsa_Comprobantes para que no de error de Foreing Key cuando intenetmos guardar los registros
                        // en tsa_ComprobanteDetalleDeuda

                        /*	if (signo == -1)
                         *      {
                         *              System.Data.DataRow rowComprobanteCabecera = mz.erp.businessrules.tsa_Comprobantes.GetByPk((string ) row["IdComprobante"]);
                         *              data.tsa_Comprobantes.ImportRow((System.Data.DataRow)rowComprobanteCabecera);
                         *      }*/
                        data.tsa_ComprobanteDetalleDeuda.ImportRow((System.Data.DataRow)row);
                    }
                    //}
                }
            }
            //En este caso el recibo, se esta creando, por ende no esta en la cuenta corriente, osea que
            //hay que actualizar el detalle de deuda de este recibo que ya fue creado
            if (!aplicacionDePago)
            {
                System.Data.DataRow row = data.tsa_ComprobanteDetalleDeuda.FindByIdComprobanteCuota(cdp.IdComprobante, 1);
                int signo = Convert.ToInt32(tsy_TiposDeComprobantes.GetByPk((string)row["IdTipoDeComprobante"]).signo);

                row["Saldo"] = cdp.Saldo * cdp.Signo;
            }
        }
        /// <summary>
        ///Fuerza la escritura de los datos en memoria al dataset del comprobante para poder ser enviados a almacenar en el RDBM
        /// </summary>
        ///

        public void CommitWF()
        {
            ComprobanteDePago         cdp    = this.Parent;
            tsa_ComprobantesExDataset data   = cdp.DatasetComprobante;
            CuentaCorriente           cc     = this._parent.CuentaCorriente;
            bool      masNegativos           = cc.CantPagosNegativos >= cc.CantPagosPositivos;
            ArrayList negativos              = cc.GetDetallePagos(-1);
            ArrayList positivos              = cc.GetDetallePagos(1);
            DetalleCuentaCorriente dccSingle = null;

            if (masNegativos)
            {
                #region Inserta Comporbantes con Signo Negativo
                dccSingle = (DetalleCuentaCorriente)positivos[0];
                DataRow rowComp = data.tsa_Comprobantes.FindByIdComprobante(dccSingle.IdComprobante);
                if (rowComp == null)
                {
                    rowComp = mz.erp.businessrules.tsa_Comprobantes.GetByPk(dccSingle.IdComprobante);
                }
                data.tsa_Comprobantes.ImportRow(rowComp);
                foreach (DetalleCuentaCorriente dcc in negativos)
                {
                    tsa_ComprobantesExDataset.tsa_AplicacionPagosRow row = data.tsa_AplicacionPagos.Newtsa_AplicacionPagosRow();

                    row.IdComprobanteOrigen     = dcc.IdComprobante;
                    row.CuotaOrigen             = (short)dcc.Cuota;
                    row.IdComprobanteDestino    = dccSingle.IdComprobante;
                    row.IdTipoComprobanteOrigen = dcc.IdTipoDeComprobante;
                    row.Importe = dcc.Pago;
                    row.IdTipoDeComprobanteDestino = dccSingle.IdTipoDeComprobante;
                    row.CuotaDestino                 = 1;
                    row.IdEmpresa                    = Security.IdEmpresa;
                    row.IdSucursal                   = Security.IdSucursal;
                    row.FechaCreacion                = mz.erp.businessrules.Sistema.DateTime.Now;
                    row.IdConexionCreacion           = Security.IdConexion;
                    row.IdConexionUltimaModificacion = Security.IdConexion;
                    row.IdReservado                  = 0;
                    row.RowId = Guid.Empty;
                    System.Data.DataRow rowComprobanteImputado = data.tsa_Comprobantes.FindByIdComprobante(dcc.IdComprobante);
                    if (rowComprobanteImputado == null)
                    {
                        rowComprobanteImputado = mz.erp.businessrules.tsa_Comprobantes.GetByPk(dcc.IdComprobante);
                    }
                    data.tsa_Comprobantes.ImportRow(rowComprobanteImputado);
                    data.tsa_AplicacionPagos.Addtsa_AplicacionPagosRow(row);
                    try
                    {
                        System.Data.DataRow row1 = data.tsa_ComprobanteDetalleDeuda.FindByIdComprobanteCuota(dcc.IdComprobante, Convert.ToInt16(dcc.Cuota));
                        int signo = Convert.ToInt32(tsy_TiposDeComprobantes.GetByPk((string)row1["IdTipoDeComprobante"]).signo);
                        row1["saldo"] = (decimal )row1["saldo"] * signo;
                        row1["Saldo"] = (decimal)row1["Saldo"] - dcc.Pago;
                        row1["Saldo"] = (decimal)row1["Saldo"] * signo;
                    }
                    catch (Exception e)
                    {
                        tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow row2 = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(dcc.IdComprobante, Convert.ToInt16(dcc.Cuota));
                        if (row2 != null)
                        {
                            int signo = Convert.ToInt32(tsy_TiposDeComprobantes.GetByPk((string)row2["IdTipoDeComprobante"]).signo);
                            row2["saldo"] = (decimal )row2["saldo"] * signo;
                            row2["Saldo"] = (decimal)row2["Saldo"] - dcc.Pago;
                            row2["Saldo"] = (decimal)row2["Saldo"] * signo;
                            data.tsa_ComprobanteDetalleDeuda.ImportRow((System.Data.DataRow)row2);
                        }
                    }
                }
                try
                {
                    System.Data.DataRow row3 = data.tsa_ComprobanteDetalleDeuda.FindByIdComprobanteCuota(dccSingle.IdComprobante, Convert.ToInt16(dccSingle.Cuota));
                    int signo = Convert.ToInt32(tsy_TiposDeComprobantes.GetByPk((string)row3["IdTipoDeComprobante"]).signo);
                    row3["saldo"] = (decimal )row3["saldo"] * signo;
                    row3["Saldo"] = (decimal)row3["Saldo"] - dccSingle.Pago;
                    row3["Saldo"] = (decimal)row3["Saldo"] * signo;
                }
                catch (Exception e)
                {
                    tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow row4 = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(dccSingle.IdComprobante, Convert.ToInt16(dccSingle.Cuota));
                    if (row4 != null)
                    {
                        int signo = Convert.ToInt32(tsy_TiposDeComprobantes.GetByPk((string)row4["IdTipoDeComprobante"]).signo);
                        row4["saldo"] = (decimal )row4["saldo"] * signo;
                        row4["Saldo"] = (decimal)row4["Saldo"] - dccSingle.Pago;
                        row4["Saldo"] = (decimal)row4["Saldo"] * signo;
                        data.tsa_ComprobanteDetalleDeuda.ImportRow((System.Data.DataRow)row4);
                    }
                }
                #endregion
            }


            else
            {
                #region Inserta Comporbantes con Signo Positivos
                dccSingle = (DetalleCuentaCorriente)negativos[0];
                DataRow rowComp = data.tsa_Comprobantes.FindByIdComprobante(dccSingle.IdComprobante);
                if (rowComp == null)
                {
                    rowComp = mz.erp.businessrules.tsa_Comprobantes.GetByPk(dccSingle.IdComprobante);
                }
                data.tsa_Comprobantes.ImportRow(rowComp);
                foreach (DetalleCuentaCorriente dcc in positivos)
                {
                    tsa_ComprobantesExDataset.tsa_AplicacionPagosRow row = data.tsa_AplicacionPagos.Newtsa_AplicacionPagosRow();

                    row.IdComprobanteOrigen     = dccSingle.IdComprobante;
                    row.CuotaOrigen             = 1;
                    row.IdComprobanteDestino    = dcc.IdComprobante;
                    row.IdTipoComprobanteOrigen = dccSingle.IdTipoDeComprobante;
                    row.Importe = dcc.Pago;
                    row.IdTipoDeComprobanteDestino = dcc.IdTipoDeComprobante;
                    row.CuotaDestino                 = (short)dcc.Cuota;
                    row.IdEmpresa                    = Security.IdEmpresa;
                    row.IdSucursal                   = Security.IdSucursal;
                    row.FechaCreacion                = mz.erp.businessrules.Sistema.DateTime.Now;
                    row.IdConexionCreacion           = Security.IdConexion;
                    row.IdConexionUltimaModificacion = Security.IdConexion;
                    row.IdReservado                  = 0;
                    row.RowId = Guid.Empty;
                    System.Data.DataRow rowComprobanteImputado = data.tsa_Comprobantes.FindByIdComprobante(dcc.IdComprobante);
                    if (rowComprobanteImputado == null)
                    {
                        rowComprobanteImputado = mz.erp.businessrules.tsa_Comprobantes.GetByPk(dcc.IdComprobante);
                    }
                    data.tsa_Comprobantes.ImportRow(rowComprobanteImputado);
                    data.tsa_AplicacionPagos.Addtsa_AplicacionPagosRow(row);
                    try
                    {
                        System.Data.DataRow row1 = data.tsa_ComprobanteDetalleDeuda.FindByIdComprobanteCuota(dcc.IdComprobante, Convert.ToInt16(dcc.Cuota));
                        int signo = Convert.ToInt32(tsy_TiposDeComprobantes.GetByPk((string)row1["IdTipoDeComprobante"]).signo);
                        row1["saldo"] = (decimal )row1["saldo"] * signo;
                        row1["Saldo"] = (decimal)row1["Saldo"] - dcc.Pago;
                        row1["Saldo"] = (decimal)row1["Saldo"] * signo;
                    }
                    catch (Exception e)
                    {
                        tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow row2 = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(dcc.IdComprobante, Convert.ToInt16(dcc.Cuota));
                        if (row2 != null)
                        {
                            int signo = Convert.ToInt32(tsy_TiposDeComprobantes.GetByPk((string)row2["IdTipoDeComprobante"]).signo);
                            row2["saldo"] = (decimal )row2["saldo"] * signo;
                            row2["Saldo"] = (decimal)row2["Saldo"] - dcc.Pago;
                            row2["Saldo"] = (decimal)row2["Saldo"] * signo;
                            data.tsa_ComprobanteDetalleDeuda.ImportRow((System.Data.DataRow)row2);
                        }
                    }
                }
                try
                {
                    System.Data.DataRow row3 = data.tsa_ComprobanteDetalleDeuda.FindByIdComprobanteCuota(dccSingle.IdComprobante, Convert.ToInt16(dccSingle.Cuota));
                    int signo = Convert.ToInt32(tsy_TiposDeComprobantes.GetByPk((string)row3["IdTipoDeComprobante"]).signo);
                    row3["saldo"] = (decimal )row3["saldo"] * signo;
                    row3["Saldo"] = (decimal)row3["Saldo"] - dccSingle.Pago;
                    row3["Saldo"] = (decimal)row3["Saldo"] * signo;
                }
                catch (Exception e)
                {
                    tsa_ComprobanteDetalleDeudaDataset.tsa_ComprobanteDetalleDeudaRow row4 = mz.erp.businessrules.tsa_ComprobanteDetalleDeuda.GetByPk(dccSingle.IdComprobante, Convert.ToInt16(dccSingle.Cuota));
                    if (row4 != null)
                    {
                        int signo = Convert.ToInt32(tsy_TiposDeComprobantes.GetByPk((string)row4["IdTipoDeComprobante"]).signo);
                        row4["saldo"] = (decimal )row4["saldo"] * signo;
                        row4["Saldo"] = (decimal)row4["Saldo"] - dccSingle.Pago;
                        row4["Saldo"] = (decimal)row4["Saldo"] * signo;
                        data.tsa_ComprobanteDetalleDeuda.ImportRow((System.Data.DataRow)row4);
                    }
                }

                #endregion
            }
        }
        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);
        }