Beispiel #1
0
        /// <summary>
        /// grabar movimientos contables para reflejar la salida del dinero
        /// </summary>
        /// <param name="una_conciliacion"></param>
        /// <returns></returns>
        public void GrabarAsientoContable(Double pvlPesos, Decimal pnrCaja, String pdsUsuario, TB_Conciliacion pConciliacion,
                                          dbSG2000Entities pdbSG2000Entities, int cdConceptoOrigen, int cdConceptoDestino)
        {
            //  Setear conceptos y caja
            //  Obtener la entidad Usuario
            TB_MovimientosContables unMCConceptoOrigen  = new TB_MovimientosContables();
            TB_MovimientosContables unMCConceptoDestino = new TB_MovimientosContables();


            TB_Conceptos cdConceptoConceptoOrigen = (from c in pdbSG2000Entities.TB_Conceptos where c.cdConcepto == cdConceptoOrigen select c).First();

            var query = from p in pdbSG2000Entities.TB_MovimientosContables
                        select p.IdMovimiento;

            unMCConceptoOrigen.IdMovimiento     = query.Max() + 1;
            unMCConceptoOrigen.cdConcepto       = cdConceptoConceptoOrigen.cdConcepto;
            unMCConceptoOrigen.dsMovimiento     = "Conciliación Nro:  " + pConciliacion.IdConciliacion.ToString();
            unMCConceptoOrigen.dsUsuario        = pdsUsuario;
            unMCConceptoOrigen.nrCaja           = pnrCaja;
            unMCConceptoOrigen.vlPesos          = pvlPesos;
            unMCConceptoOrigen.vlDolares        = 0.0;
            unMCConceptoOrigen.vlEuros          = 0.0;
            unMCConceptoOrigen.dtMovimiento     = DateTime.Now; // Asignamos la fecha de la conciliacion
            unMCConceptoOrigen.nrAnio           = DateTime.Now.Year;
            unMCConceptoOrigen.nrRecibo         = pConciliacion.IdConciliacion.ToString();
            unMCConceptoOrigen.tpCajaImputacion = cdConceptoConceptoOrigen.tpCajaImputacion; // Completar desde el concepto
            unMCConceptoOrigen.dsConcepto       = cdConceptoConceptoOrigen.dsConcepto;       // Completar desde el concepto
            unMCConceptoOrigen.tpOperacion      = cdConceptoConceptoOrigen.tpOperacion;      // Completar desde el concepto
            //unMCConceptoOrigen.tpMovimiento = "";
            unMCConceptoOrigen.tpConcepto = cdConceptoConceptoOrigen.tpOperacion;            // Completar desde el concepto
            TB_Conceptos cdConceptoConceptoDestino = (from c in pdbSG2000Entities.TB_Conceptos where c.cdConcepto == cdConceptoDestino select c).First();;

            pdbSG2000Entities.SaveChanges();

            unMCConceptoDestino.IdMovimiento     = query.Max() + 2;
            unMCConceptoDestino.cdConcepto       = cdConceptoConceptoDestino.cdConcepto;
            unMCConceptoDestino.dsMovimiento     = "Conciliación Nro:  " + pConciliacion.IdConciliacion.ToString();
            unMCConceptoDestino.dsUsuario        = pdsUsuario;
            unMCConceptoDestino.nrCaja           = pnrCaja;
            unMCConceptoDestino.vlPesos          = pvlPesos;
            unMCConceptoDestino.vlDolares        = 0.0;
            unMCConceptoDestino.vlEuros          = 0.0;
            unMCConceptoDestino.dtMovimiento     = DateTime.Now; // Asignamos la fecha de la conciliacion
            unMCConceptoDestino.nrAnio           = DateTime.Now.Year;
            unMCConceptoDestino.nrRecibo         = pConciliacion.IdConciliacion.ToString();
            unMCConceptoDestino.tpCajaImputacion = cdConceptoConceptoDestino.tpCajaImputacion; // Completar desde el concepto
            unMCConceptoDestino.dsConcepto       = cdConceptoConceptoDestino.dsConcepto;       // Completar desde el concepto
            unMCConceptoDestino.tpOperacion      = cdConceptoConceptoDestino.tpOperacion;      // Completar desde el concepto
            //unMCConceptoOrigen.tpMovimiento = "";
            unMCConceptoDestino.tpConcepto = cdConceptoConceptoOrigen.tpOperacion;             // Completar desde el concepto

            pdbSG2000Entities.TB_MovimientosContables.Add(unMCConceptoOrigen);
            pdbSG2000Entities.TB_MovimientosContables.Add(unMCConceptoDestino);
            pdbSG2000Entities.SaveChanges();

            return;
        }
Beispiel #2
0
        public void procesarArchivo(ArchivoTarjeta miArchivo)
        {
            miArchivo.ProcesarArchivo(); // procesa el archivo , sin importar el formato
            Console.WriteLine(miArchivo.miArchivoTarjeta.formato + " " + miArchivo.miArchivoTarjeta.nombrearchivo);

            //ServiceConciliacionAutomatica un_ServiceConciliacionAutomatica = new ServiceConciliacionAutomatica();
            try
            {
                using (var context = new dbSG2000Entities())
                {
                    using (TransactionScope transaction = new TransactionScope())
                    {
                        var item = context.TB_ArchivoTarjeta.Add(miArchivo.miArchivoTarjeta);
                        context.SaveChanges();
                        transaction.Complete();
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
Beispiel #3
0
        public override void AgregarRegistro(object unRegistro)
        {
            TB_PresentacionesCAI objPresentacion = (TB_PresentacionesCAI)unRegistro;

            Trace.TraceInformation("ingresando a agregarPresentacionCAI");
            using (var context = new dbSG2000Entities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    //TB_PresentacionesCAIDetalle detalleConciliacion = new TB_PresentacionesCAIDetalle();
                    //foreach (var item in objPresentacion.TB_PresentacionesCAIDetalle)
                    //{

                    //    context.TB_PresentacionesCAIDetalle.Add(new TB_PresentacionesCAIDetalle
                    //    {
                    //        TB_PresentacionesCAI = objPresentacion,
                    //        nrCAI = item.nrCAI,
                    //        dtInsercion = DateTime.Now,
                    //        nrUltNroComprobante = item.nrUltNroComprobante
                    //    });

                    //}
                    context.TB_PresentacionesCAI.Add(objPresentacion);
                    context.SaveChanges();
                    transaction.Complete();
                    return;
                }
            }
        }
Beispiel #4
0
        public virtual void anularConciliacionAutomatica(TB_Conciliacion objConciliacion)
        {
            ServiceMovimientoContable unSMC = new ServiceMovimientoContable();

            using (var context = new dbSG2000Entities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    var objConciliacionBD = (from c in context.TB_Conciliacion
                                             where c.IdConciliacion == objConciliacion.IdConciliacion
                                             select c).First <TB_Conciliacion>();

                    objConciliacionBD.TB_ConciliacionDetalle.ToList();

                    TB_ArchivoTarjeta un_TB_ArchivoTarjeta = (from c in context.TB_ArchivoTarjeta
                                                              where c.id == objConciliacion.idArchivo
                                                              select c).First();

                    // Eliminamos el detalle de la conciliacion
                    foreach (TB_ConciliacionDetalle item in objConciliacionBD.TB_ConciliacionDetalle)
                    {   // eliminamos los detalle existentes
                        // liberamos al cupon
                        TB_Cupones objCupon = (from c in context.TB_Cupones where item.nrCupon == c.nrCupon select c).First();


                        var vlMontoAcreditacion = Convert.ToDouble(objCupon.vlMontoAcreditacion);
                        objCupon.dtCobradoalCliente  = null;   // limpiamos la fecha de cobrado
                        objCupon.flCobradoalCliente  = false;  // desconciliamos el cupon lo liberamos de la conciliacion
                        objCupon.IdConciliacion      = null;
                        objCupon.vlMontoAcreditacion = null;
                        objCupon.dtFechaAcreditacion = null;

                        var nrFactura = objCupon.tpComprobanteCliente + "-" + objCupon.tpLetraCliente + "-" +
                                        objCupon.nrTalonarioCliente + "-" + objCupon.nrComprabanteCliente.Trim() + "/ Cupon: " +
                                        ExtensionString.EmptyIfNull(objCupon.nrCuponPosnet).Trim() + "/ Tarjeta: "
                                        + ExtensionString.EmptyIfNull(objCupon.nrTarjeta).Trim();

                        unSMC.GrabarAsientoContablePosdatados(vlMontoAcreditacion, objConciliacion.nrCajaAdm.Value,
                                                              objConciliacion.dsUsuario, objConciliacion.IdConciliacion.ToString(), context,
                                                              Anula_Viajes_con_Tarjeta_a_Bancos, Anula_conciliacion_de_Viajes, objCupon.nrLicencia.ToString(),
                                                              nrFactura, item.fechaPago.Value, objCupon.nrCupon, un_TB_ArchivoTarjeta.formato);
                    }
                    // Eliminamos el detalle de la conciliacion
                    //context.Database.ExecuteSqlCommand("DELETE FROM TB_ConciliacionDetalle where IdConciliacion= {0}", objConciliacionBD.IdConciliacion);

                    objConciliacionBD.dtModificacion = DateTime.Now;
                    objConciliacion.dsUsuario        = this.Usuario;
                    objConciliacion.nrCajaAdm        = Decimal.Parse(this.CajaAdm);
                    objConciliacionBD.flestado       = "E"; // Conciliacion Eliminada
                    context.SaveChanges();


                    // Procesamos el Movimientos posdatados
                    unSMC.procesarMovimientosPosdatados(Decimal.Parse(this.CajaAdm), this.Usuario);


                    transaction.Complete();
                }
            }
        }
Beispiel #5
0
        public void agregarConciliacion(List <Decimal> ids_cupones, TB_Conciliacion objConciliacion)
        {
            using (var context = new dbSG2000Entities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    objConciliacion.dsUsuario      = this._usuarioActivo;
                    objConciliacion.nrCajaAdm      = Decimal.Parse(this._cajactiva);
                    objConciliacion.flestado       = "A";
                    objConciliacion.dtModificacion = DateTime.Now;


                    var listadeViajesaConciliar1 = (from c in context.TB_Cupones
                                                    where ids_cupones.Contains(c.nrCupon)
                                                    select c
                                                    );

                    Console.WriteLine(listadeViajesaConciliar1.ToString());
                    Trace.TraceInformation(listadeViajesaConciliar1.ToString());
                    TB_ConciliacionDetalle detalleConciliacion = new TB_ConciliacionDetalle();

                    double TotalConciliacion = 0.0;

                    foreach (var item in listadeViajesaConciliar1.ToList())
                    {
                        item.flCobradoalCliente = true;
                        item.dtCobradoalCliente = DateTime.Today;
                        context.TB_ConciliacionDetalle.Add(new TB_ConciliacionDetalle {
                            TB_Conciliacion = objConciliacion, nrCupon = item.nrCupon
                        });
                        TotalConciliacion = TotalConciliacion + item.vlMontoCupon.Value;
                    }
                    context.TB_Conciliacion.Add(objConciliacion);

                    context.SaveChanges();

                    GrabarAsientoContable(TotalConciliacion, Decimal.Parse(this._cajactiva), this._usuarioActivo, objConciliacion, context, Conciliacion_de_Viajes, Viajes_con_Tarjeta_a_Bancos);


                    context.SaveChanges();
                    transaction.Complete();
                    return;
                    //return listadeViajesaConciliar.ToList();
                }
            }
        }
Beispiel #6
0
        public virtual void anularPresentacion(TB_PresentacionesCAI objPresentacion)
        {
            using (var context = new dbSG2000Entities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    var objPresentacionBD = (from c in context.TB_PresentacionesCAI
                                             where c.IdPresentacion == objPresentacion.IdPresentacion
                                             select c).First <TB_PresentacionesCAI>();

                    objPresentacionBD.dtModificacion = DateTime.Now;
                    objPresentacionBD.flestado       = "E"; // Conciliacion Eliminada
                    context.SaveChanges();
                    transaction.Complete();
                }
            }
        }  // anularPresentacion
Beispiel #7
0
        public void ActualizarTarifas(List <TB_Productos> listaTarifas)
        {
            using (var context = new dbSG2000Entities())
            {
                foreach (TB_Productos p in listaTarifas)
                {
                    // realizar busqueda
                    var viajedestino = (from c in context.TB_Productos where c.cdProducto == p.cdProducto select c).First();
                    viajedestino.vlPrecioViaje         = p.vlPrecioViaje;
                    viajedestino.vlPrecioViajeSinPeaje = p.vlPrecioViajeSinPeaje;
                    viajedestino.vlPrecioPeaje         = p.vlPrecioPeaje;
                    Console.WriteLine(p.cdProducto + " - " + p.dsProducto + " -  " + p.vlPrecioViaje.ToString() + p.flMuestraenlaWEB);
                    //break;
                }

                context.SaveChanges();
            }
        }
Beispiel #8
0
        } // cierre agregarPresentacionCAI

        public override void AnularRegistro(object unRegistro)
        {
            TB_PresentacionesCAI objPresentacion = (TB_PresentacionesCAI)unRegistro;

            using (var context = new dbSG2000Entities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    var objPresentacionBD = (from c in context.TB_PresentacionesCAI
                                             where c.IdPresentacion == objPresentacion.IdPresentacion
                                             select c).First <TB_PresentacionesCAI>();

                    objPresentacionBD.dtModificacion = DateTime.Now;
                    objPresentacionBD.flestado       = "E"; // Conciliacion Eliminada
                    context.SaveChanges();
                    transaction.Complete();
                }
            }
        }
Beispiel #9
0
 public void ActualizarTarifas(List <TarifasXLS> listaTarifas)
 {
     using (var context = new dbSG2000Entities())
     {
         foreach (TarifasXLS p in listaTarifas)
         {
             // realizar busqueda
             var viajedestino = (from c in context.TB_Productos where c.cdProducto == p.Codigo select c).FirstOrDefault();
             if (viajedestino == null)
             {
                 continue;
             }
             viajedestino.vlPrecioViajeSinPeaje = p.Precio;
             viajedestino.vlPrecioPeaje         = p.Peaje;
             viajedestino.vlPrecioViaje         = p.Total;
             viajedestino.vlKilometros          = p.Kilometros;
             viajedestino.flMuestraenlaWEB      = p.Muestra_en_la_Web;
             Console.WriteLine(viajedestino.cdProducto + " - " + viajedestino.dsProducto + " -  " + viajedestino.vlPrecioViaje.ToString() + viajedestino.flMuestraenlaWEB);
             //break;
         }
         context.SaveChanges();
     }
 }
Beispiel #10
0
        public virtual void anularConciliacion(TB_Conciliacion objConciliacion)
        {
            using (var context = new dbSG2000Entities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    double TotalConciliacionAnulado = 0.0;

                    var objConciliacionBD = (from c in context.TB_Conciliacion
                                             where c.IdConciliacion == objConciliacion.IdConciliacion
                                             select c).First <TB_Conciliacion>();

                    objConciliacionBD.TB_ConciliacionDetalle.ToList();

                    // Eliminamos el detalle de la conciliacion
                    foreach (TB_ConciliacionDetalle item in objConciliacionBD.TB_ConciliacionDetalle)
                    { // eliminamos los detalle existentes
                      // liberamos al cupon
                        TB_Cupones objCupon = (from c in context.TB_Cupones where item.nrCupon == c.nrCupon select c).First();
                        objCupon.flCobradoalCliente = false;
                        objCupon.dtCobradoalCliente = null;
                        TotalConciliacionAnulado    = TotalConciliacionAnulado + objCupon.vlMontoCupon.Value;
                    }
                    // Eliminamos el detalle de la conciliacion
                    //context.Database.ExecuteSqlCommand("DELETE FROM TB_ConciliacionDetalle where IdConciliacion= {0}", objConciliacionBD.IdConciliacion);

                    objConciliacionBD.dtModificacion = DateTime.Now;
                    objConciliacionBD.dsUsuario      = this._usuarioActivo;
                    objConciliacionBD.nrCajaAdm      = Decimal.Parse(this._cajactiva);
                    objConciliacionBD.flestado       = "E"; // Conciliacion Eliminada
                    context.SaveChanges();
                    GrabarAsientoContable(TotalConciliacionAnulado, Decimal.Parse(this._cajactiva), this._usuarioActivo, objConciliacion, context, Anula_Viajes_con_Tarjeta_a_Bancos, Anula_conciliacion_de_Viajes);

                    transaction.Complete();
                }
            }
        }
Beispiel #11
0
 public void agregarPresentacionCAI(TB_PresentacionesCAI objPresentacion, IEnumerable <TB_PresentacionesCAIDetalle> objPresentacionDetalle)
 {
     Trace.TraceInformation("ingresando a agregarPresentacionCAI");
     using (var context = new dbSG2000Entities())
     {
         using (TransactionScope transaction = new TransactionScope())
         {
             TB_PresentacionesCAIDetalle detalleConciliacion = new TB_PresentacionesCAIDetalle();
             foreach (var item in objPresentacionDetalle)
             {
                 context.TB_PresentacionesCAIDetalle.Add(new TB_PresentacionesCAIDetalle {
                     TB_PresentacionesCAI = objPresentacion,
                     nrCAI               = item.nrCAI,
                     dtInsercion         = DateTime.Now,
                     nrUltNroComprobante = item.nrUltNroComprobante
                 });
             }
             context.TB_PresentacionesCAI.Add(objPresentacion);
             context.SaveChanges();
             transaction.Complete();
             return;
         }
     }
 } // cierre agregarPresentacionCAI
Beispiel #12
0
        /// <summary>
        /// grabar movimientos contables para reflejar la salida del dinero
        /// </summary>
        /// <param name="una_conciliacion"></param>
        /// <returns></returns>
        public void GrabarCupon(Double pvlPesos, decimal pnrCaja, String pdsUsuario, int pIdConciliacion,
                                dbSG2000Entities pdbSG2000Entities, int pnrLicencia,
                                String pnrFactura, DateTime pdtFecha,
                                Decimal pnrCupon, String pdsObservaccion,
                                int pcdCliente, String ptpComprobanteCliente,
                                String pnrComprabanteCliente, String pnrTalonarioCliente,
                                String ptpLetraCliente, double pvlMontoCupon,
                                double pvlComision)
        {
            Trace.TraceInformation("ingresando a GrabarCupon");

            try
            {
                //  Setear conceptos y caja
                //  Obtener la entidad Usuario
                TB_Cupones unCupon = new TB_Cupones();

                var max = (from p in pdbSG2000Entities.TB_Cupones
                           select p).OrderByDescending(p => p.nrCupon).FirstOrDefault();

                if (max == null)
                {
                    throw new DAOEntityException("no se pudo obtener el máximo nro de cupón");
                }
                else
                {
                    unCupon.nrCupon              = max.nrCupon + 1;
                    unCupon.dtCupon              = DateTime.UtcNow;
                    unCupon.cdCliente            = pcdCliente;
                    unCupon.nrLicencia           = 99; //  definir que licencia vamos a utilizar para el armado de estos recibos
                    unCupon.tpComprobanteCliente = ptpComprobanteCliente;
                    unCupon.nrComprabanteCliente = pnrComprabanteCliente;
                    unCupon.nrTalonarioCliente   = pnrTalonarioCliente;
                    unCupon.tpLetraCliente       = ptpLetraCliente;
                    unCupon.vlMontoCupon         = pvlMontoCupon;
                    unCupon.vlComision           = pvlComision;
                    unCupon.vlPagoPesos          = 0;
                    unCupon.vlPagoReales         = 0;
                    unCupon.vlPagoEuros          = 0;
                    unCupon.vlPagoDolares        = 0;
                    unCupon.IdConciliacion       = pIdConciliacion;
                    unCupon.flCobradoalCliente   = false;
                    unCupon.flCompensado         = false;
                    unCupon.flAnulado            = false;
                    unCupon.nrCajaCliente        = pnrCaja;
                    unCupon.vlIVA      = 0;
                    unCupon.vlSubtotal = 0;
                    pdbSG2000Entities.TB_Cupones.Add(unCupon);
                    pdbSG2000Entities.SaveChanges();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                //foreach (var eve in e.EntityValidationErrors)
                //{
                //    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                //        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                //    foreach (var ve in eve.ValidationErrors)
                //    {
                //        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                //            ve.PropertyName, ve.ErrorMessage);
                //    }
                //}
                throw;
            }
            return;
        } // CIERRA GrabarCupon
Beispiel #13
0
        } // fin de  modificarConciliacionAutomatica

        public override void anularConciliacion(TB_Conciliacion objConciliacion)
        {
            ServiceMovimientoContable unSMC = new ServiceMovimientoContable();

            try
            {
                using (var context = new dbSG2000Entities())
                {
                    using (TransactionScope transaction = new TransactionScope())
                    {
                        var objConciliacionBD = (from c in context.TB_Conciliacion
                                                 where c.IdConciliacion == objConciliacion.IdConciliacion
                                                 select c).First <TB_Conciliacion>();

                        objConciliacionBD.TB_ConciliacionDetalle.ToList();


                        // Eliminamos el detalle de la conciliacion
                        foreach (TB_ConciliacionDetalle item in objConciliacionBD.TB_ConciliacionDetalle)
                        { // eliminamos los detalle existentes
                          // liberamos al cupon
                            TB_Cupones objCupon = (from c in context.TB_Cupones where item.nrCupon == c.nrCupon select c).First();


                            var vlMontoAcreditacion = Convert.ToDouble(objCupon.vlMontoAcreditacion);
                            objCupon.dtCobradoalCliente  = null;  // limpiamos la fecha de cobrado
                            objCupon.flCobradoalCliente  = false; // desconciliamos el cupon lo liberamos de la conciliacion
                            objCupon.IdConciliacion      = null;
                            objCupon.vlMontoAcreditacion = null;
                            objCupon.dtFechaAcreditacion = null;

                            var nrFactura = objCupon.tpComprobanteCliente + "-" + objCupon.tpLetraCliente + "-" +
                                            objCupon.nrTalonarioCliente + "-" + objCupon.nrComprabanteCliente.Trim() + "/ Cupon: " +
                                            ExtensionString.EmptyIfNull(objCupon.nrCuponPosnet).Trim() + "/ Tarjeta: "
                                            + ExtensionString.EmptyIfNull(objCupon.nrTarjeta).Trim();

                            unSMC.GrabarAsientoContablePosdatados(vlMontoAcreditacion, objConciliacion.nrCajaAdm.Value,
                                                                  objConciliacion.dsUsuario, objConciliacion.IdConciliacion.ToString(), context,
                                                                  Anula_Viajes_con_Tarjeta_a_Bancos, Anula_conciliacion_de_Viajes, objCupon.nrLicencia.ToString(),
                                                                  nrFactura, item.fechaPago.Value, objCupon.nrCupon, "Manual");
                        }
                        // Eliminamos el detalle de la conciliacion
                        //context.Database.ExecuteSqlCommand("DELETE FROM TB_ConciliacionDetalle where IdConciliacion= {0}", objConciliacionBD.IdConciliacion);

                        objConciliacionBD.dtModificacion = DateTime.Now;
                        objConciliacion.dsUsuario        = this.Usuario;
                        objConciliacion.nrCajaAdm        = Decimal.Parse(this.CajaAdm);
                        objConciliacionBD.flestado       = "E"; // Conciliacion Eliminada
                        context.SaveChanges();


                        // Procesamos el Movimientos posdatados
                        unSMC.procesarMovimientosPosdatados(Decimal.Parse(this.CajaAdm), this.Usuario);


                        transaction.Complete();
                    }
                }
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    Trace.TraceError("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                     eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                        Trace.TraceError("- Property: \"{0}\", Error: \"{1}\"",
                                         ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }  // FIN anularConciliacionAutomatica
Beispiel #14
0
        public override void agregarConciliacion(List <TB_ConciliacionDetalleEx> plistaDetalleConciliacion, TB_Conciliacion objConciliacion)
        {
            ServiceMovimientoContable unSMC = new ServiceMovimientoContable();

            using (var context = new dbSG2000Entities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    objConciliacion.dsUsuario      = this.Usuario;
                    objConciliacion.nrCajaAdm      = Decimal.Parse(this.CajaAdm);
                    objConciliacion.flestado       = "A";
                    objConciliacion.dtModificacion = DateTime.Now;

                    context.TB_Conciliacion.Add(objConciliacion);
                    context.SaveChanges();

                    foreach (var detalleConciliacion in plistaDetalleConciliacion)
                    {
                        TB_Cupones un_Cupon = (from c in context.TB_Cupones
                                               where c.nrCupon == detalleConciliacion.nrCupon
                                               select c).First();

                        TB_ArchivoTarjetaDetalle un_TB_ArchivoTarjetaDetalle = (from c in context.TB_ArchivoTarjetaDetalle
                                                                                where c.Id == detalleConciliacion.IdArchivoTarjetaDetalle
                                                                                select c).First();

                        TB_ArchivoTarjeta un_TB_ArchivoTarjeta = (from c in context.TB_ArchivoTarjeta
                                                                  where c.id == objConciliacion.idArchivo
                                                                  select c).First();



                        detalleConciliacion.FechaPagoLicenciatario = detalleConciliacion.dtCupon.AddDays(10);

                        un_Cupon.dtCobradoalCliente  = detalleConciliacion.FechaPagoLicenciatario;                   // muy importante para habilitar el pago al licenciatario
                        un_Cupon.flCobradoalCliente  = true;                                                         // Marca de cociliacion
                        un_Cupon.dtFechaAcreditacion = detalleConciliacion.fechaPago;                                // Fecha en que visa o master pagan al banco

                        un_Cupon.vlMontoAcreditacion = System.Convert.ToDouble(un_TB_ArchivoTarjetaDetalle.importe); // importe enviado por la Tarjeta


                        detalleConciliacion.IdConciliacion = objConciliacion.IdConciliacion;
                        context.TB_ConciliacionDetalle.Add(detalleConciliacion.ToTB_ConciliacionDetalle());
                        context.SaveChanges();

                        un_Cupon.IdConciliacion = detalleConciliacion.IdConciliacion; // Asociamos la conciliacion al cupon

                        /*  NO GRABAMOS MOVIMIENTOS POSTADATOS - PORQUE EL PAGO ES EN EFECTIVO
                         * var nrFactura = un_Cupon.tpComprobanteCliente + "-" +  un_Cupon.tpLetraCliente +"-" + un_Cupon.nrTalonarioCliente + "-"  + un_Cupon.nrComprabanteCliente.Trim () + "/ Cupon: " + ExtensionString.EmptyIfNull( un_Cupon.nrCuponPosnet).Trim() + "/ Tarjeta: " + ExtensionString.EmptyIfNull(un_Cupon.nrTarjeta).Trim() ;
                         * unSMC.GrabarAsientoContablePosdatados(un_Cupon.vlMontoAcreditacion.Value, objConciliacion.nrCajaAdm.Value,
                         *  objConciliacion.dsUsuario, objConciliacion.IdConciliacion.ToString(), context, Conciliacion_de_Viajes, Viajes_con_Tarjeta_a_Bancos, un_Cupon.nrLicencia.ToString(), nrFactura, detalleConciliacion.fechaPago.Value, un_Cupon.nrCupon, un_TB_ArchivoTarjeta.formato);
                         *
                         */
                    }

                    context.SaveChanges();
                    transaction.Complete();


                    // Procesamos el Movimientos posdatados
                    // unSMC.procesarMovimientosPosdatados(Decimal.Parse(this.CajaAdm), this.Usuario);


                    return;

                    //return listadeViajesaConciliar.ToList();
                }
            }
        }
Beispiel #15
0
        /// <summary>
        /// grabar movimientos contables para reflejar la salida del dinero
        /// </summary>
        /// <param name="una_conciliacion"></param>
        /// <returns></returns>
        public void GrabarAsientoContablePosdatados(Double pvlPesos, decimal pnrCaja, String pdsUsuario, String pIdConciliacion,
                                                    dbSG2000Entities pdbSG2000Entities, int cdConceptoOrigen, int cdConceptoDestino,
                                                    string pnrLicencia, string pnrFactura, DateTime pdtFechaPosdata,
                                                    Decimal pnrCupon, String pdsMovimiento)
        {
            try
            {
                //  Setear conceptos y caja
                //  Obtener la entidad Usuario
                TB_MovimientosContablesPosdatados unMCConceptoOrigen  = new TB_MovimientosContablesPosdatados();
                TB_MovimientosContablesPosdatados unMCConceptoDestino = new TB_MovimientosContablesPosdatados();


                TB_Conceptos cdConceptoConceptoOrigen = (from c in pdbSG2000Entities.TB_Conceptos where c.cdConcepto == cdConceptoOrigen select c).First();

                var max = (from p in pdbSG2000Entities.TB_MovimientosContablesPosdatados
                           select p).OrderByDescending(p => p.IdMovimiento).FirstOrDefault();

                if (max == null)
                {
                    max = new TB_MovimientosContablesPosdatados();
                }

                unMCConceptoOrigen.IdMovimiento     = max.IdMovimiento + 1;
                unMCConceptoOrigen.cdConcepto       = cdConceptoConceptoOrigen.cdConcepto;
                unMCConceptoOrigen.dsMovimiento     = pdsMovimiento.ToUpper().Trim() + " Fecha: " + pdtFechaPosdata.Date.ToShortDateString();
                unMCConceptoOrigen.dsUsuario        = pdsUsuario;
                unMCConceptoOrigen.nrCaja           = pnrCaja;
                unMCConceptoOrigen.vlPesos          = pvlPesos;
                unMCConceptoOrigen.vlDolares        = 0.0;
                unMCConceptoOrigen.vlEuros          = 0.0;
                unMCConceptoOrigen.dtMovimiento     = DateTime.Now; // Asignamos la fecha de la conciliacion
                unMCConceptoOrigen.nrAnio           = DateTime.Now.Year;
                unMCConceptoOrigen.nrRecibo         = pIdConciliacion;
                unMCConceptoOrigen.tpCajaImputacion = cdConceptoConceptoOrigen.tpCajaImputacion; // Completar desde el concepto
                unMCConceptoOrigen.dsConcepto       = cdConceptoConceptoOrigen.dsConcepto;       // Completar desde el concepto
                unMCConceptoOrigen.tpOperacion      = cdConceptoConceptoOrigen.tpOperacion;      // Completar desde el concepto
                //unMCConceptoOrigen.tpMovimiento = "";
                unMCConceptoOrigen.tpConcepto = cdConceptoConceptoOrigen.tpConcepto;             // Completar desde el concepto

                unMCConceptoOrigen.dsProveedor    = "Licencia Nro. " + pnrLicencia;
                unMCConceptoOrigen.nrFactura      = pnrFactura;
                unMCConceptoOrigen.flProcesado    = false;
                unMCConceptoOrigen.dtFechaPosdata = pdtFechaPosdata;
                unMCConceptoOrigen.nrCupon        = pnrCupon;
                unMCConceptoOrigen.IdConciliacion = int.Parse(pIdConciliacion);

                TB_Conceptos cdConceptoConceptoDestino = (from c in pdbSG2000Entities.TB_Conceptos where c.cdConcepto == cdConceptoDestino select c).First();;

                pdbSG2000Entities.SaveChanges();

                unMCConceptoDestino.IdMovimiento     = max.IdMovimiento + 2;
                unMCConceptoDestino.cdConcepto       = cdConceptoConceptoDestino.cdConcepto;
                unMCConceptoDestino.dsMovimiento     = pdsMovimiento.ToUpper().Trim() + " Fecha: " + pdtFechaPosdata.Date.ToShortDateString();
                unMCConceptoDestino.dsUsuario        = pdsUsuario;
                unMCConceptoDestino.nrCaja           = pnrCaja;
                unMCConceptoDestino.vlPesos          = pvlPesos;
                unMCConceptoDestino.vlDolares        = 0.0;
                unMCConceptoDestino.vlEuros          = 0.0;
                unMCConceptoDestino.dtMovimiento     = DateTime.Now; // Asignamos la fecha de la conciliacion
                unMCConceptoDestino.nrAnio           = DateTime.Now.Year;
                unMCConceptoDestino.nrRecibo         = pIdConciliacion;
                unMCConceptoDestino.tpCajaImputacion = cdConceptoConceptoDestino.tpCajaImputacion; // Completar desde el concepto
                unMCConceptoDestino.dsConcepto       = cdConceptoConceptoDestino.dsConcepto;       // Completar desde el concepto
                unMCConceptoDestino.tpOperacion      = cdConceptoConceptoDestino.tpOperacion;      // Completar desde el concepto
                //unMCConceptoOrigen.tpMovimiento = "";
                unMCConceptoDestino.tpConcepto = cdConceptoConceptoDestino.tpConcepto;             // Completar desde el concepto

                unMCConceptoDestino.dsProveedor    = "Licencia Nro. " + pnrLicencia;
                unMCConceptoDestino.nrFactura      = pnrFactura;
                unMCConceptoDestino.flProcesado    = false;
                unMCConceptoDestino.dtFechaPosdata = pdtFechaPosdata;
                unMCConceptoDestino.nrCupon        = pnrCupon;
                unMCConceptoDestino.IdConciliacion = int.Parse(pIdConciliacion);


                pdbSG2000Entities.TB_MovimientosContablesPosdatados.Add(unMCConceptoOrigen);
                pdbSG2000Entities.TB_MovimientosContablesPosdatados.Add(unMCConceptoDestino);
                pdbSG2000Entities.SaveChanges();
            }
            catch (DbEntityValidationException e)
            {
                Console.WriteLine(e);
                Trace.TraceError(e.Message);
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
            return;
        }
Beispiel #16
0
        public virtual void agregarConciliacion(List <TB_ConciliacionDetalleEx> plistaDetalleConciliacion, TB_Conciliacion objConciliacion)
        {
            ServiceMovimientoContable unSMC = new ServiceMovimientoContable();


            try
            {
                using (var context = new dbSG2000Entities())
                {
                    using (TransactionScope transaction = new TransactionScope())
                    {
                        objConciliacion.dsUsuario      = this.Usuario;
                        objConciliacion.nrCajaAdm      = Decimal.Parse(this.CajaAdm);
                        objConciliacion.flestado       = "A";
                        objConciliacion.dtModificacion = DateTime.Now;

                        context.TB_Conciliacion.Add(objConciliacion);
                        context.SaveChanges();

                        foreach (var detalleConciliacion in plistaDetalleConciliacion)
                        {
                            TB_Cupones un_Cupon = (from c in context.TB_Cupones
                                                   where c.nrCupon == detalleConciliacion.nrCupon
                                                   select c).First();

                            TB_ArchivoTarjetaDetalle un_TB_ArchivoTarjetaDetalle = (from c in context.TB_ArchivoTarjetaDetalle
                                                                                    where c.Id == detalleConciliacion.IdArchivoTarjetaDetalle
                                                                                    select c).First();

                            TB_ArchivoTarjeta un_TB_ArchivoTarjeta = (from c in context.TB_ArchivoTarjeta
                                                                      where c.id == objConciliacion.idArchivo
                                                                      select c).First();

                            if (detalleConciliacion.fechaPago.Value.Subtract(detalleConciliacion.dtCupon).TotalDays >= this.CONCILIACION_DIF_DIAS_FECHA_PAGO_Y_CUPON)
                            {
                                detalleConciliacion.FechaPagoLicenciatario = detalleConciliacion.dtCupon.AddDays(this.CONCILIACION_CANT_DIAS_COBRO_TARJETA_CREDITO);
                            }
                            else
                            {
                                detalleConciliacion.FechaPagoLicenciatario = detalleConciliacion.dtCupon.AddDays(this.CONCILIACION_CANT_DIAS_COBRO_TARJETA_DEBITO);
                            }

                            un_Cupon.dtCobradoalCliente  = detalleConciliacion.FechaPagoLicenciatario;                   // muy importante para habilitar el pago al licenciatario
                            un_Cupon.flCobradoalCliente  = true;                                                         // Marca de cociliacion
                            un_Cupon.dtFechaAcreditacion = detalleConciliacion.fechaPago;                                // Fecha en que visa o master pagan al banco

                            un_Cupon.vlMontoAcreditacion = System.Convert.ToDouble(un_TB_ArchivoTarjetaDetalle.importe); // importe enviado por la Tarjeta


                            detalleConciliacion.IdConciliacion = objConciliacion.IdConciliacion;
                            context.TB_ConciliacionDetalle.Add(detalleConciliacion.ToTB_ConciliacionDetalle());

                            context.SaveChanges();

                            un_Cupon.IdConciliacion = detalleConciliacion.IdConciliacion; // Asociamos la conciliacion al cupon

                            var nrFactura = un_Cupon.tpComprobanteCliente + "-" + un_Cupon.tpLetraCliente + "-" + un_Cupon.nrTalonarioCliente + "-" + un_Cupon.nrComprabanteCliente.Trim() + "/ Cupon: " + ExtensionString.EmptyIfNull(un_Cupon.nrCuponPosnet).Trim() + "/ Tarjeta: " + ExtensionString.EmptyIfNull(un_Cupon.nrTarjeta).Trim();

                            unSMC.GrabarAsientoContablePosdatados(un_Cupon.vlMontoAcreditacion.Value, objConciliacion.nrCajaAdm.Value,
                                                                  objConciliacion.dsUsuario, objConciliacion.IdConciliacion.ToString(), context, Conciliacion_de_Viajes, Viajes_con_Tarjeta_a_Bancos, un_Cupon.nrLicencia.ToString(), nrFactura, detalleConciliacion.fechaPago.Value, un_Cupon.nrCupon, un_TB_ArchivoTarjeta.formato);
                        }

                        context.SaveChanges();


                        // Procesamos el Movimientos posdatados
                        unSMC.procesarMovimientosPosdatados(Decimal.Parse(this.CajaAdm), this.Usuario);

                        transaction.Complete();



                        return;

                        //return listadeViajesaConciliar.ToList();
                    }
                } // Cierre using
            }
            catch (DbEntityValidationException e)
            {
                Console.WriteLine(e);
                Trace.TraceError(e.Message);
                foreach (var eve in e.EntityValidationErrors)
                {
                    Trace.TraceError("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                     eve.Entry.Entity.GetType().Name, eve.Entry.State);

                    foreach (var ve in eve.ValidationErrors)
                    {
                        Trace.TraceError("- Property: \"{0}\", Error: \"{1}\"",
                                         ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
Beispiel #17
0
        public virtual void modificarConciliacionAutomatica(List <decimal> listaCuponesDesconciliados,
                                                            List <decimal> listaCuponesConciliados,
                                                            TB_Conciliacion objConciliacion)
        {
            ServiceMovimientoContable unSMC = new ServiceMovimientoContable();

            //una_conciliacion.TB_ConciliacionDetalle
            using (var context = new dbSG2000Entities())
            {
                // detalle conciliacion desconciliadas
                var listaDetalleDesconciliados = (from c in context.TB_ConciliacionDetalle
                                                  where listaCuponesDesconciliados.Contains(c.nrCupon) &&
                                                  c.IdConciliacion == objConciliacion.IdConciliacion
                                                  select c).ToList();;


                // cupones conciliacion desconciliadas
                var listaTB_CuponesDesconciliados = (from c in context.TB_Cupones   where listaCuponesDesconciliados.Contains(c.nrCupon) select c.flCobradoalCliente).ToList();;

                using (TransactionScope transaction = new TransactionScope())
                {
                    objConciliacion = (from c in context.TB_Conciliacion
                                       where c.IdConciliacion == objConciliacion.IdConciliacion
                                       select c).First <TB_Conciliacion>();

                    objConciliacion.dsUsuario      = this.Usuario;
                    objConciliacion.nrCajaAdm      = Decimal.Parse(this.CajaAdm);
                    objConciliacion.flestado       = "A";
                    objConciliacion.dtModificacion = DateTime.Now;

                    context.SaveChanges();

                    foreach (var detalleConciliacion in listaDetalleDesconciliados)
                    {
                        TB_Cupones un_Cupon = (from c in context.TB_Cupones
                                               where c.nrCupon == detalleConciliacion.nrCupon
                                               select c).First();

                        TB_ArchivoTarjeta un_TB_ArchivoTarjeta = (from c in context.TB_ArchivoTarjeta
                                                                  where c.id == objConciliacion.idArchivo
                                                                  select c).First();

                        var vlMontoAcreditacion = Convert.ToDouble(un_Cupon.vlMontoAcreditacion);
                        un_Cupon.dtCobradoalCliente  = null;    // limpiamos la fecha de cobrado
                        un_Cupon.flCobradoalCliente  = false;   // desconciliamos el cupon lo liberamos de la conciliacion
                        un_Cupon.IdConciliacion      = null;
                        un_Cupon.vlMontoAcreditacion = null;
                        un_Cupon.dtFechaAcreditacion = null;

                        context.SaveChanges();

                        var nrFactura = un_Cupon.tpComprobanteCliente + "-" + un_Cupon.tpLetraCliente + "-" + un_Cupon.nrTalonarioCliente + "-" + un_Cupon.nrComprabanteCliente.Trim() + "/ Cupon: " + ExtensionString.EmptyIfNull(un_Cupon.nrCuponPosnet).Trim() + "/ Tarjeta: " + ExtensionString.EmptyIfNull(un_Cupon.nrTarjeta).Trim();

                        // GrabarAsientoContable(TotalConciliacionAnulado, Decimal.Parse(this._cajactiva), this._usuarioActivo,
                        // objConciliacion, context, Anula_Viajes_con_Tarjeta_a_Bancos, Anula_conciliacion_de_Viajes);

                        unSMC.GrabarAsientoContablePosdatados(vlMontoAcreditacion, objConciliacion.nrCajaAdm.Value,
                                                              objConciliacion.dsUsuario, objConciliacion.IdConciliacion.ToString(), context, Anula_Viajes_con_Tarjeta_a_Bancos, Anula_conciliacion_de_Viajes, un_Cupon.nrLicencia.ToString(), nrFactura, detalleConciliacion.fechaPago.Value, un_Cupon.nrCupon, un_TB_ArchivoTarjeta.formato);

                        context.TB_ConciliacionDetalle.Remove(detalleConciliacion);
                    }

                    context.SaveChanges();

                    // Procesamos el Movimientos posdatados
                    unSMC.procesarMovimientosPosdatados(Decimal.Parse(this.CajaAdm), this.Usuario);

                    transaction.Complete();


                    return;
                    //return listadeViajesaConciliar.ToList();
                }

                // desafectar el cupon flCobradoalCliente = false
                // desafectar el cupon dtCobradoalCliente = null
                // grabar la tabla de Movimientos en forma de anulacion
            }
        }
Beispiel #18
0
        // se anade virtual ya que puede ser sobreescrito , palabra clacve override
        public virtual void modificarConciliacion(List <Decimal> ids_cupones,
                                                  List <Decimal> ids_cupones_conciliados,
                                                  TB_Conciliacion objConciliacion)
        {
            using (var context = new dbSG2000Entities())
            {
                try
                {
                    using (TransactionScope transaction = new TransactionScope())
                    {
                        double TotalConciliacion        = 0.0;
                        double TotalConciliacionAnulado = 0.0;

                        // obtenemos el objeto de la BD
                        objConciliacion = (from c in context.TB_Conciliacion
                                           where c.IdConciliacion == objConciliacion.IdConciliacion
                                           select c).First <TB_Conciliacion>();

                        var listadetalleConciliacion = (from c in context.TB_ConciliacionDetalle
                                                        where c.IdConciliacion == objConciliacion.IdConciliacion
                                                        select c
                                                        ).ToList <TB_ConciliacionDetalle>();

                        foreach (TB_ConciliacionDetalle item in listadetalleConciliacion)
                        {   // eliminamos los detalle existentes
                            context.TB_ConciliacionDetalle.Remove(item);
                        }

                        objConciliacion.dtModificacion = DateTime.Now;
                        objConciliacion.dsUsuario      = this._usuarioActivo;
                        objConciliacion.nrCajaAdm      = Decimal.Parse(this._cajactiva);
                        objConciliacion.flestado       = "A";


                        var listadeViajesaConciliar1 = (from c in context.TB_Cupones
                                                        where ids_cupones.Contains(c.nrCupon)
                                                        select c
                                                        );


                        Console.WriteLine(listadeViajesaConciliar1.ToString());

                        Decimal idCupon_conciliado = 0;

                        foreach (var item in listadeViajesaConciliar1.ToList())
                        {
                            idCupon_conciliado = 0;
                            idCupon_conciliado = (from c in ids_cupones_conciliados where item.nrCupon == c select c).FirstOrDefault();

                            if (idCupon_conciliado != 0)
                            {
                                item.flCobradoalCliente = true;
                                item.dtCobradoalCliente = DateTime.Today;
                                context.TB_ConciliacionDetalle.Add(new TB_ConciliacionDetalle {
                                    TB_Conciliacion = objConciliacion, nrCupon = item.nrCupon
                                });
                                TotalConciliacion = TotalConciliacion + item.vlMontoCupon.Value;
                            }
                            else
                            {
                                item.flCobradoalCliente  = false;
                                item.dtCobradoalCliente  = null;
                                TotalConciliacionAnulado = TotalConciliacionAnulado + item.vlMontoCupon.Value;
                            }
                        }

                        context.SaveChanges();

                        GrabarAsientoContable(TotalConciliacion, Decimal.Parse(this._cajactiva), this._usuarioActivo, objConciliacion, context, Conciliacion_de_Viajes, Viajes_con_Tarjeta_a_Bancos);

                        GrabarAsientoContable(TotalConciliacionAnulado, Decimal.Parse(this._cajactiva), this._usuarioActivo, objConciliacion, context, Anula_Viajes_con_Tarjeta_a_Bancos, Anula_conciliacion_de_Viajes);

                        context.SaveChanges();
                        transaction.Complete();

                        return;
                    }
                }
                catch (DbUpdateException next)
                {
                    DbUpdateException se = null;
                    _listado_Errores = new List <String>();
                    while (next.InnerException != null)
                    {
                        _listado_Errores.Add(next.Message);
                        se   = next.InnerException as DbUpdateException;
                        next = se;
                    }
                }
            }
        }
Beispiel #19
0
        public void agregarConciliacion(List <TB_ConciliacionDetalleEx> plistaDetalleConciliacion, TB_Conciliacion objConciliacion)
        {
            var paramLog = new SGLibrary.Utility.ParamLogUtility(() => plistaDetalleConciliacion, () => objConciliacion).GetLog();

            Trace.TraceInformation(paramLog);

            ServiceMovimientoContable unSMC = new ServiceMovimientoContable();

            using (var context = new dbSG2000Entities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    objConciliacion.dsUsuario      = this.Usuario;
                    objConciliacion.nrCajaAdm      = Decimal.Parse(this.CajaAdm);
                    objConciliacion.flestado       = "A";
                    objConciliacion.dtModificacion = DateTime.Now;

                    context.TB_Conciliacion.Add(objConciliacion);
                    context.SaveChanges();

                    foreach (var detalleConciliacion in plistaDetalleConciliacion)
                    {
                        TB_Cupones un_Cupon = (from c in context.TB_Cupones
                                               where c.nrCupon == detalleConciliacion.nrCupon
                                               select c).First();

                        if (detalleConciliacion.fechaPago.Value.Subtract(detalleConciliacion.dtCupon).TotalDays >= 20)
                        {
                            detalleConciliacion.FechaPagoLicenciatario = detalleConciliacion.dtCupon.AddDays(30);
                        }
                        else
                        {
                            detalleConciliacion.FechaPagoLicenciatario = detalleConciliacion.dtCupon.AddDays(5);
                        }

                        un_Cupon.dtCobradoalCliente  = detalleConciliacion.FechaPagoLicenciatario; // muy importante para habilitar el pago al licenciatario
                        un_Cupon.flCobradoalCliente  = true;                                       // Marca de cociliacion
                        un_Cupon.dtFechaAcreditacion = detalleConciliacion.fechaPago;              // Fecha en que visa o master pagan al banco

                        un_Cupon.vlMontoAcreditacion = un_Cupon.vlMontoCupon;                      // importe enviado por la Tarjeta


                        detalleConciliacion.IdConciliacion = objConciliacion.IdConciliacion;
                        context.TB_ConciliacionDetalle.Add(detalleConciliacion.ToTB_ConciliacionDetalle());
                        context.SaveChanges();

                        un_Cupon.IdConciliacion = detalleConciliacion.IdConciliacion; // Asociamos la conciliacion al cupon

                        var nrFactura = un_Cupon.tpComprobanteCliente + "-" + un_Cupon.tpLetraCliente + "-" + un_Cupon.nrTalonarioCliente + un_Cupon.nrComprabanteCliente.Trim();

                        unSMC.GrabarAsientoContablePosdatados(un_Cupon.vlMontoAcreditacion.Value, objConciliacion.nrCajaAdm.Value,
                                                              objConciliacion.dsUsuario, objConciliacion.IdConciliacion.ToString(), context, Conciliacion_de_Viajes, Viajes_con_Tarjeta_a_Bancos, un_Cupon.nrLicencia.ToString(), nrFactura, detalleConciliacion.fechaPago.Value, un_Cupon.nrCupon, "Manual");
                    }

                    context.SaveChanges();


                    // Procesamos el Movimientos posdatados
                    unSMC.procesarMovimientosPosdatados(Decimal.Parse(this.CajaAdm), this.Usuario);

                    transaction.Complete();


                    return;

                    //return listadeViajesaConciliar.ToList();
                }
            }
        }