示例#1
0
        private void GenerarAsientoAnPrograma(Traspaso traspaso, CuentaTransitoria cuentaTransitoria)
        {
            var usuarioActual = HttpContext.User.Identity.Name;

            var cuentaTransferencia = new CuentaAsiento //Debito
            {
                ComprobanteId       = traspaso.ComprobanteId,
                CuentaContableId    = (int)cuentaTransitoria,
                Glosa               = traspaso.Glosa,
                Debe                = traspaso.Monto,
                Haber               = 0,
                TerritorioId        = 1,
                PlanProgramaticoId  = 6,
                ContraparteId       = 1,
                EsDebe              = true,
                EsAjuste            = false,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            cuentasAsientosManager.InsertCuentaAsiento(cuentaTransferencia);

            var cuentaPrograma = new CuentaAsiento
            {
                ComprobanteId       = traspaso.ComprobanteId,
                CuentaContableId    = traspaso.CuentaContableId,
                Glosa               = traspaso.Glosa,
                Debe                = 0,
                Haber               = traspaso.Monto,
                TerritorioId        = 1,
                PlanProgramaticoId  = 6,
                ContraparteId       = 1,
                EsDebe              = false,
                EsAjuste            = false,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            cuentasAsientosManager.InsertCuentaAsiento(cuentaPrograma);

            // Tabla de Cuentas Traspaso
            var traspasoPrograma = new TraspasosPrograma
            {
                ComprobanteProgramaId   = cuentaTransferencia.ComprobanteId,
                MontoTraspaso           = cuentaTransferencia.Debe,
                CuentaTransitoriaNumero = traspaso.CuentaTransitoriaNro.ToString(),
                UsuarioCreacion         = usuarioActual,
                UsuarioModificacion     = usuarioActual
            };

            traspasosProgramasManager.InsertTraspasosPrograma(traspasoPrograma);
        }
示例#2
0
 // POST: CuentasAsientos/Delete/5
 // [HttpPost]
 //[ValidateAntiForgeryToken]
 public ActionResult Delete(CuentaAsiento cuentaAsiento)
 {
     try
     {
         var resultado           = cuentasAsientosManager.DeleteCuentaAsiento(cuentaAsiento.Id);
         var cuentaAsientoEntity = cuentasAsientosManager.GetCuentasAsiento(cuentaAsiento.Id);
         return(RedirectToAction("Index", new { id = cuentaAsientoEntity.ComprobanteId }));
     }
     catch
     {
         return(RedirectToAction("Index", new { id = cuentaAsiento.ComprobanteId }));
     }
 }
示例#3
0
        public ActionResult Edit(CuentaAsiento cuentaAsiento)
        {
            var usuarioActual = HttpContext.User.Identity.Name;
            var resultado     = new Resultado("");

            try
            {
                if (cuentaAsiento != null)
                {
                    cuentaAsiento.UsuarioModificacion = usuarioActual;
                    resultado = cuentasAsientosManager.UpdateCuentaAsiento(cuentaAsiento);
                }

                return(Json(resultado));
            }
            catch (Exception ex)
            {
                return(View());
            }
        }
示例#4
0
        public ActionResult Create(CuentaAsiento cuentaAsiento)
        {
            var usuarioActual = HttpContext.User.Identity.Name;

            try
            {
                if (cuentaAsiento != null)
                {
                    cuentaAsiento.UsuarioCreacion     = usuarioActual;
                    cuentaAsiento.UsuarioModificacion = usuarioActual;
                    var resultado = cuentasAsientosManager.InsertCuentaAsiento(cuentaAsiento);
                }

                return(RedirectToAction("Index", new { id = cuentaAsiento.ComprobanteId }));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Index", new { id = cuentaAsiento.ComprobanteId }));
            }
        }
示例#5
0
        private void GenerarAsientoEstadoCuenta(EstadoCuenta estadoCuenta)
        {
            var usuarioActual = HttpContext.User.Identity.Name;

            var cuentaEstadoCuenta = new CuentaAsiento //Debito
            {
                ComprobanteId       = estadoCuenta.ComprobanteId,
                CuentaContableId    = estadoCuenta.CuentaContableEstadoId,
                Glosa               = estadoCuenta.Glosa,
                Debe                = estadoCuenta.Debe,
                Haber               = estadoCuenta.Haber,
                TerritorioId        = 1,
                PlanProgramaticoId  = 6,
                ContraparteId       = 1,
                EsDebe              = true,
                EsAjuste            = false,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            cuentasAsientosManager.InsertCuentaAsiento(cuentaEstadoCuenta);

            var cuentaPrograma = new CuentaAsiento
            {
                ComprobanteId       = estadoCuenta.ComprobanteId,
                CuentaContableId    = estadoCuenta.CuentaContableId,
                Glosa               = estadoCuenta.Glosa,
                Debe                = estadoCuenta.Haber,
                Haber               = estadoCuenta.Debe,
                TerritorioId        = 1,
                PlanProgramaticoId  = 6,
                ContraparteId       = 1,
                EsDebe              = false,
                EsAjuste            = false,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            cuentasAsientosManager.InsertCuentaAsiento(cuentaPrograma);

            var comprobanteActual = comprobantesManager.GetComprobante(estadoCuenta.ComprobanteId);

            // Insertar en la Tabla de Estados de Cuentas
            if (!estadoCuenta.EstadoCuentaRelacionado)
            {
                if (estadoCuenta.Debe > 0)
                {
                    var estadoCuentaDebe = new EstadoCuenta
                    {
                        TipoEstadoCuentaId  = estadoCuenta.TipoEstadoCuentaId,
                        DebeCiudadId        = comprobanteActual.CiudadId,
                        DebeFacilityId      = comprobanteActual.FacilityId,
                        DebeCuentaAsientoId = cuentaEstadoCuenta.Id,
                        UsuarioCreacion     = usuarioActual,
                        UsuarioModificacion = usuarioActual
                    };

                    estadosCuentasManager.InsertEstadoCuenta(estadoCuentaDebe);
                }

                if (estadoCuenta.Haber > 0)
                {
                    var estadoCuentaHaber = new EstadoCuenta
                    {
                        TipoEstadoCuentaId   = estadoCuenta.TipoEstadoCuentaId,
                        HaberCiudadId        = comprobanteActual.CiudadId,
                        HaberFacilityId      = comprobanteActual.FacilityId,
                        HaberCuentaAsientoId = cuentaEstadoCuenta.Id,
                        UsuarioCreacion      = usuarioActual,
                        UsuarioModificacion  = usuarioActual
                    };

                    estadosCuentasManager.InsertEstadoCuenta(estadoCuentaHaber);
                }
            }

            // Si es estado de Cuentas Relacionado Actualizar el Estado de Cuentas Correspondiente
            if (estadoCuenta.EstadoCuentaRelacionado)
            {
                var estadoCuentaRelacionado = estadosCuentasManager.GetEstadoCuenta(estadoCuenta.EstadoCuentaRelacionadoId);
                estadoCuentaRelacionado.UsuarioModificacion = usuarioActual;

                var completarDebe = (estadoCuentaRelacionado.DebeCuentaAsientoId == null);
                if (completarDebe)
                {
                    estadoCuentaRelacionado.DebeCiudadId        = comprobanteActual.CiudadId;
                    estadoCuentaRelacionado.DebeFacilityId      = comprobanteActual.FacilityId;
                    estadoCuentaRelacionado.DebeCuentaAsientoId = cuentaEstadoCuenta.Id;

                    estadosCuentasManager.UpdateEstadoCuentaDebe(estadoCuentaRelacionado);
                }
                else
                {
                    estadoCuentaRelacionado.HaberCiudadId        = comprobanteActual.CiudadId;
                    estadoCuentaRelacionado.HaberFacilityId      = comprobanteActual.FacilityId;
                    estadoCuentaRelacionado.HaberCuentaAsientoId = cuentaEstadoCuenta.Id;

                    estadosCuentasManager.UpdateEstadoCuentaHaber(estadoCuentaRelacionado);
                }
            }
        }
        /// <summary>
        /// Genera asiento con Grossing Up (Retención asumida por la institución)
        /// </summary>
        /// <param name="retencion"></param>
        private void GenerarGrossingUp(RetencionVista retencion)
        {
            var usuarioActual = HttpContext.User.Identity.Name;

            var importeGrossingUp = retencion.TipoRetencionId == 1
                ? retencion.Importe + (retencion.Importe * 15.5M) / 84.5M
                : retencion.Importe + (retencion.Importe * 8.5M) / 91.5M;

            var retencionIt  = (importeGrossingUp * 0.03M);
            var retencionIue = retencion.TipoRetencionId == 1
                ? (importeGrossingUp * 0.125M)
                : (importeGrossingUp * 0.05M);

            var cuentaAsientoPersonalizada = new CuentaAsiento
            {
                ComprobanteId       = retencion.ComprobanteId,
                CuentaContableId    = retencion.CuentaContableId,
                Glosa               = retencion.Glosa,
                Debe                = importeGrossingUp,
                Haber               = 0,
                TerritorioId        = 1,
                PlanProgramaticoId  = 6,
                ContraparteId       = 1,
                EsDebe              = true,
                EsAjuste            = false,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoPersonalizada);

            if (retencion.TipoRetencionId == 1 || retencion.TipoRetencionId == 2 || retencion.TipoRetencionId == 3)
            {
                var cuentaAsientoIt = new CuentaAsiento
                {
                    ComprobanteId       = retencion.ComprobanteId,
                    CuentaContableId    = 1280,
                    Glosa               = retencion.Glosa,
                    Debe                = 0,
                    Haber               = retencionIt,
                    TerritorioId        = 1,
                    PlanProgramaticoId  = 6,
                    ContraparteId       = 1,
                    EsDebe              = false,
                    EsAjuste            = false,
                    UsuarioCreacion     = usuarioActual,
                    UsuarioModificacion = usuarioActual
                };

                cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoIt);
            }

            if (retencion.TipoRetencionId == 1 || retencion.TipoRetencionId == 2)
            {
                var cuentaAsientoIue = new CuentaAsiento
                {
                    ComprobanteId       = retencion.ComprobanteId,
                    CuentaContableId    = 1281,
                    Glosa               = retencion.Glosa,
                    Debe                = 0,
                    Haber               = retencionIue,
                    TerritorioId        = 1,
                    PlanProgramaticoId  = 6,
                    ContraparteId       = 1,
                    EsDebe              = false,
                    EsAjuste            = false,
                    UsuarioCreacion     = usuarioActual,
                    UsuarioModificacion = usuarioActual
                };

                cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoIue);
            }

            if (retencion.TipoRetencionId == 3 || retencion.TipoRetencionId == 4)
            {
                var cuentaAsientoIue = new CuentaAsiento
                {
                    ComprobanteId       = retencion.ComprobanteId,
                    CuentaContableId    = 1283,
                    Glosa               = retencion.Glosa,
                    Debe                = 0,
                    Haber               = retencionIue,
                    TerritorioId        = 1,
                    PlanProgramaticoId  = 6,
                    ContraparteId       = 1,
                    EsDebe              = false,
                    EsAjuste            = false,
                    UsuarioCreacion     = usuarioActual,
                    UsuarioModificacion = usuarioActual
                };

                cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoIue);
            }

            var cuentaAsientoCaja = new CuentaAsiento
            {
                ComprobanteId       = retencion.ComprobanteId,
                CuentaContableId    = 775,
                Glosa               = retencion.Glosa,
                Debe                = 0,
                Haber               = retencion.Importe,
                TerritorioId        = 1,
                PlanProgramaticoId  = 6,
                ContraparteId       = 1,
                EsDebe              = false,
                EsAjuste            = false,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoCaja);
        }
        public ActionResult Create(Factura factura)
        {
            var usuarioActual     = HttpContext.User.Identity.Name;
            var importeDefinitivo = factura.Descuento != null && factura.Descuento.Value > 0
                ? factura.Importe - factura.Descuento.Value
                : factura.Importe;

            var cuentaAsientoGastos = new CuentaAsiento
            {
                ComprobanteId       = factura.ComprobanteId,
                CuentaContableId    = factura.CuentaContableId,
                Glosa               = factura.Glosa,
                Debe                = factura.NoGravada ? importeDefinitivo : (importeDefinitivo * 0.87M),
                Haber               = 0,
                TerritorioId        = 1,
                PlanProgramaticoId  = 6,
                ContraparteId       = 1,
                EsDebe              = true,
                EsAjuste            = false,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoGastos);

            if (!factura.NoGravada)
            {
                var cuentaAsientoIva = new CuentaAsiento
                {
                    ComprobanteId       = factura.ComprobanteId,
                    CuentaContableId    = 765,
                    Glosa               = factura.Glosa,
                    Debe                = (importeDefinitivo * 0.13M),
                    Haber               = 0,
                    TerritorioId        = 1,
                    PlanProgramaticoId  = 6,
                    ContraparteId       = 1,
                    EsDebe              = true,
                    EsAjuste            = false,
                    UsuarioCreacion     = usuarioActual,
                    UsuarioModificacion = usuarioActual
                };

                cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoIva);
            }

            var cuentaAsientoCaja = new CuentaAsiento
            {
                ComprobanteId       = factura.ComprobanteId,
                CuentaContableId    = 775,
                Glosa               = factura.Glosa,
                Debe                = 0,
                Haber               = importeDefinitivo,
                TerritorioId        = 1,
                PlanProgramaticoId  = 6,
                ContraparteId       = 1,
                EsDebe              = false,
                EsAjuste            = false,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoCaja);

            factura.CuentaAsientoId     = cuentaAsientoGastos.Id;
            factura.UsuarioCreacion     = usuarioActual;
            factura.UsuarioModificacion = usuarioActual;
            facturasManager.InsertFactura(factura);

            return(RedirectToAction("Index", "CuentasAsientos", new { id = factura.ComprobanteId }));
        }
        /// <summary>
        /// Genera asiento con retención IUE
        /// </summary>
        /// <param name="retencion"></param>
        private void GenerarRetenido(RetencionVista retencion)
        {
            var usuarioActual     = HttpContext.User.Identity.Name;
            var comprobanteActual = comprobantesManager.GetComprobante(retencion.ComprobanteId);

            var retencionIt    = (retencion.Importe * 0.03M);
            var retencionIue   = retencion.TipoRetencionId == 1 ? (retencion.Importe * 0.125M) : (retencion.Importe * 0.05M);
            var retencionRcIva = retencion.Importe * 0.13M;
            var retencionIueBe = retencion.Importe * 0.125M;

            var anexoTributarioId  = 0;
            var importeRetencion   = 0M;
            var importeRetencionIt = 0M;
            var importeCajaBancos  = 0M;

            switch (retencion.TipoRetencionId)
            {
            case 1:
            case 2:
                anexoTributarioId  = 10;
                importeRetencion   = retencionIue;
                importeRetencionIt = retencionIt;
                importeCajaBancos  = retencion.Importe - retencionIt - retencionIue;
                break;

            case 3:
                anexoTributarioId  = 8;
                importeRetencion   = retencionRcIva;
                importeRetencionIt = retencionIt;
                importeCajaBancos  = retencion.Importe - retencionIt - retencionRcIva;
                break;

            case 4:
                anexoTributarioId = 8;
                importeRetencion  = retencionRcIva;
                importeCajaBancos = retencion.Importe - retencionRcIva;
                break;

            case 5:
                anexoTributarioId = 11;
                importeRetencion  = retencionIueBe;
                importeCajaBancos = retencion.Importe - retencionIueBe;
                break;
            }

            var cuentaAsientoPersonalizada = new CuentaAsiento
            {
                ComprobanteId       = retencion.ComprobanteId,
                CuentaContableId    = retencion.CuentaContableId,
                Glosa               = retencion.Glosa,
                Debe                = retencion.Importe,
                Haber               = 0,
                TerritorioId        = 1,
                PlanProgramaticoId  = 6,
                ContraparteId       = 1,
                AnexoTributarioId   = anexoTributarioId,
                EsDebe              = true,
                EsAjuste            = false,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoPersonalizada);

            if (retencion.TipoRetencionId == 1 || retencion.TipoRetencionId == 2 || retencion.TipoRetencionId == 3)
            {
                var cuentaAsientoIt = new CuentaAsiento
                {
                    ComprobanteId       = retencion.ComprobanteId,
                    CuentaContableId    = 1280,
                    Glosa               = retencion.Glosa,
                    Debe                = 0,
                    Haber               = retencionIt,
                    TerritorioId        = 1,
                    PlanProgramaticoId  = 6,
                    ContraparteId       = 1,
                    AnexoTributarioId   = 9, //Retención IT
                    EsDebe              = false,
                    EsAjuste            = false,
                    UsuarioCreacion     = usuarioActual,
                    UsuarioModificacion = usuarioActual
                };

                cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoIt);
            }

            if (retencion.TipoRetencionId == 1 || retencion.TipoRetencionId == 2)
            {
                var cuentaAsientoIue = new CuentaAsiento
                {
                    ComprobanteId       = retencion.ComprobanteId,
                    CuentaContableId    = 1281,
                    Glosa               = retencion.Glosa,
                    Debe                = 0,
                    Haber               = retencionIue,
                    TerritorioId        = 1,
                    PlanProgramaticoId  = 6,
                    ContraparteId       = 1,
                    AnexoTributarioId   = anexoTributarioId,
                    EsDebe              = false,
                    EsAjuste            = false,
                    UsuarioCreacion     = usuarioActual,
                    UsuarioModificacion = usuarioActual
                };

                cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoIue);
            }


            if (retencion.TipoRetencionId == 3 || retencion.TipoRetencionId == 4)
            {
                var cuentaAsientoRcIva = new CuentaAsiento
                {
                    ComprobanteId       = retencion.ComprobanteId,
                    CuentaContableId    = 1283,
                    Glosa               = retencion.Glosa,
                    Debe                = 0,
                    Haber               = retencionRcIva,
                    TerritorioId        = 1,
                    PlanProgramaticoId  = 6,
                    ContraparteId       = 1,
                    AnexoTributarioId   = anexoTributarioId,
                    EsDebe              = false,
                    EsAjuste            = false,
                    UsuarioCreacion     = usuarioActual,
                    UsuarioModificacion = usuarioActual
                };

                cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoRcIva);
            }

            if (retencion.TipoRetencionId == 5)
            {
                var cuentaAsientoIueBe = new CuentaAsiento
                {
                    ComprobanteId       = retencion.ComprobanteId,
                    CuentaContableId    = 1282,
                    Glosa               = retencion.Glosa,
                    Debe                = 0,
                    Haber               = retencionIueBe,
                    TerritorioId        = 1,
                    PlanProgramaticoId  = 6,
                    ContraparteId       = 1,
                    AnexoTributarioId   = anexoTributarioId,
                    EsDebe              = false,
                    EsAjuste            = false,
                    UsuarioCreacion     = usuarioActual,
                    UsuarioModificacion = usuarioActual
                };

                cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoIueBe);
            }

            var cuentaAsientoCaja = new CuentaAsiento
            {
                ComprobanteId       = retencion.ComprobanteId,
                CuentaContableId    = 775,
                Glosa               = retencion.Glosa,
                Debe                = 0,
                Haber               = importeCajaBancos,
                TerritorioId        = 1,
                PlanProgramaticoId  = 6,
                ContraparteId       = 1,
                AnexoTributarioId   = anexoTributarioId,
                EsDebe              = false,
                EsAjuste            = false,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            cuentasAsientosManager.InsertCuentaAsiento(cuentaAsientoCaja);

            // Insertar Objeto Retencion
            var retencionEntidad = new Retencion
            {
                ComprobanteId       = retencion.ComprobanteId,
                FechaComprobante    = comprobanteActual.FechaComprobante,
                TipoRetencionId     = (short)retencion.TipoRetencionId,
                ImporteRetencion    = importeRetencion,
                ImporteRetencionIT  = importeRetencionIt,
                Retenido            = true,
                UsuarioCreacion     = usuarioActual,
                UsuarioModificacion = usuarioActual
            };

            retencionesManager.InsertRetencion(retencionEntidad);
        }