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); }
// 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 })); } }
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()); } }
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 })); } }
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); }