Example #1
0
        public Resultado Contable_TipoDocumento_Editar(DTO.Contable.TipoDocumento.Editar ficha)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var ent = ctx.contabilidad_tipo_documento.Find(ficha.Id);
                        if (ent == null)
                        {
                            result.Mensaje = "[ ID ] DOCUMENTO NO ENCONTRADO";
                            result.Result  = DTO.EnumResult.isError;
                            return(result);
                        }

                        ent.descripcion = ficha.Descripcion;
                        ctx.SaveChanges();
                        ts.Complete();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
Example #2
0
        public Resultado Compras_Compra_ActualizarData(DTO.Compras.Compra.ActualizarData ficha)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var ent = ctx.compras.Find(ficha.AutoDocumento);
                        if (ent == null)
                        {
                            result.Mensaje = "[ ID ] DOCUMENTO NO ENCONTRADO";
                            result.Result  = DTO.EnumResult.isError;
                            return(result);
                        }

                        ent.auto_concepto = ficha.AutoCalificativo;
                        ctx.SaveChanges();
                        ts.Complete();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
Example #3
0
        public ResultadoId Contable_TipoDocumento_Insertar(DTO.Contable.TipoDocumento.Insertar ficha)
        {
            var result = new ResultadoId();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var ent = new contabilidad_tipo_documento()
                        {
                            descripcion = ficha.Descripcion,
                        };
                        ctx.contabilidad_tipo_documento.Add(ent);

                        ctx.SaveChanges();
                        ts.Complete();
                        result.Id = ent.id;
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
                result.Id      = -1;
            }

            return(result);
        }
Example #4
0
        public DTO.Resultado Contable_Configuracion_CuentaCierre_Editar(DTO.Contable.Configuracion.EditarCtasCierre ficha)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        if (ficha.IdCtaCierreMes != -1)
                        {
                            var det = ctx.contabilidad_configuracion.Find(1);
                            if (det == null)
                            {
                                result.Mensaje = "[ CONFIGURACION ] NO ENCONTRADA";
                                result.Result  = EnumResult.isError;
                            }

                            det.idCtaResultadoMes = ficha.IdCtaCierreMes;
                            ctx.SaveChanges();
                        }

                        ts.Complete();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
Example #5
0
        public Resultado Contable_Asiento_Anular_Preview(int idAsiento)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var ent = ctx.contabilidad_asiento.Find(idAsiento);
                        ent.estaAnulado = "S";
                        ctx.SaveChanges();
                        ts.Complete();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
        public Resultado InsertarContableBancoConceptos()
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var entLista = ctx.bancos_movimientos_conceptos.ToList();
                        foreach (var cp in entLista)
                        {
                            var r   = 0;
                            var ent = new contabilidad_banco_conceptos
                            {
                                idCtaPasivo            = -1,
                                idCtaGasto             = -1,
                                idCtaBanco             = -1,
                                autoMovimientoConcepto = cp.auto
                            };

                            if (cp.idPlanCta.HasValue)
                            {
                                ent.idCtaGasto = cp.idPlanCta.Value; r = 1;
                            }
                            if (cp.idPlanCtaPago.HasValue)
                            {
                                ent.idCtaPasivo = cp.idPlanCtaPago.Value; r = 1;
                            }

                            if (r == 1)
                            {
                                ctx.contabilidad_banco_conceptos.Add(ent);
                                ctx.SaveChanges();
                            }
                        }

                        ts.Complete();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
        public Resultado AsignarProductoDeposito(string idDeposito)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = ctx.Database.BeginTransaction())
                    {
                        var list       = ctx.productos_deposito.Where(pd => pd.auto_deposito != idDeposito).Select(s => s.productos).Distinct().ToList();
                        var xit        = 0;
                        var listPrdDep = new List <productos_deposito>();

                        foreach (var it in list)
                        {
                            var prdDep = new productos_deposito()
                            {
                                auto_producto = it.auto,
                                auto_deposito = idDeposito,
                                fisica        = 0.0m,
                                reservada     = 0.0m,
                                disponible    = 0.0m,
                                ubicacion_1   = "",
                                ubicacion_2   = "",
                                ubicacion_3   = "",
                                ubicacion_4   = "",
                                nivel_minimo  = 0.0m,
                                nivel_optimo  = 0.0m,
                                pto_pedido    = 0.0m
                            };
                            xit += 1;
                            listPrdDep.Add(prdDep);
                        }

                        ctx.productos_deposito.AddRange(listPrdDep);
                        ctx.SaveChanges();
                        ts.Commit();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
        public ResultadoId Contable_PlanCta_Insertar(DTO.Contable.PlanCta.Insertar insertar)
        {
            var result = new ResultadoId();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var naturaleza = insertar.Naturaleza == DTO.Contable.PlanCta.Enumerados.Naturaleza.Deudora  ? "D" : "A";
                        var estado     = insertar.Estado == DTO.Contable.PlanCta.Enumerados.EstadoSituacion.Financiero ? "1" : "2";
                        var tipo       = insertar.Tipo == DTO.Contable.PlanCta.Enumerados.Tipo.Auxiliar ? "1" : "2";

                        var ent = new contabilidad_plancta()
                        {
                            codigo      = insertar.Codigo,
                            descripcion = insertar.Nombre,
                            naturaleza  = naturaleza,
                            tipo        = tipo,
                            estado      = estado,
                            nivel       = insertar.Nivel,
                        };
                        if (insertar.IdCtaPadre == -1)
                        {
                            ent.idPadre = null;
                        }
                        else
                        {
                            ent.idPadre = insertar.IdCtaPadre;
                        }
                        ctx.contabilidad_plancta.Add(ent);

                        ctx.SaveChanges();
                        ts.Complete();
                        result.Id = ent.id;
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
                result.Id      = -1;
            }

            return(result);
        }
        public Resultado Contable_PlanCta_AsignarCtaPadre(int idCta, int idPadre, int nivel)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var ent = ctx.contabilidad_plancta.Find(idCta);
                        if (ent == null)
                        {
                            result.Mensaje = "[ ID ] CUENTA NO ENCONTRADO";
                            result.Result  = DTO.EnumResult.isError;
                            return(result);
                        }

                        if (idPadre == -1)
                        {
                            ent.idPadre = null;
                            ent.nivel   = 1;
                        }
                        else
                        {
                            ent.idPadre = idPadre;
                            ent.nivel   = nivel;
                        }
                        ctx.SaveChanges();
                        ts.Complete();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
Example #10
0
        public Resultado Contable_TipoDocumento_Eliminar(DTO.Contable.TipoDocumento.Eliminar ficha)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    var ent = ctx.contabilidad_tipo_documento.Find(ficha.Id);
                    ctx.contabilidad_tipo_documento.Remove(ent);
                    ctx.SaveChanges();
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
        public Resultado Contable_PlanCta_Eliminar(int id)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    var ent = ctx.contabilidad_plancta.Find(id);
                    ctx.contabilidad_plancta.Remove(ent);
                    ctx.SaveChanges();
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
        public Resultado Contable_PlanCta_Editar(DTO.Contable.PlanCta.Editar editar)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var naturaleza = editar.Naturaleza == DTO.Contable.PlanCta.Enumerados.Naturaleza.Deudora  ? "D" : "A";
                        var estado     = editar.Estado == DTO.Contable.PlanCta.Enumerados.EstadoSituacion.Financiero ? "1" : "2";
                        var tipo       = editar.Tipo == DTO.Contable.PlanCta.Enumerados.Tipo.Auxiliar ? "1" : "2";

                        var ent = ctx.contabilidad_plancta.Find(editar.Id);
                        if (ent == null)
                        {
                            result.Mensaje = "[ ID ] CUENTA NO ENCONTRADO";
                            result.Result  = DTO.EnumResult.isError;
                            return(result);
                        }

                        ent.descripcion = editar.Nombre;
                        ent.naturaleza  = naturaleza;
                        ent.estado      = estado;
                        ent.tipo        = tipo;

                        ctx.SaveChanges();
                        ts.Complete();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
        public Resultado RestarInventario()
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var list = ctx.productos_kardex_resumen.Where(d => d.auto_producto == "0000000008").ToList();
                        foreach (var it in list)
                        {
                            var prdDep = ctx.productos_deposito.FirstOrDefault(d => d.auto_producto == it.auto_producto && d.auto_deposito == "0000000001");
                            if (prdDep != null)
                            {
                                var fisica = prdDep.fisica;
                                var dispon = prdDep.disponible;

                                prdDep.fisica     -= it.cnt;
                                prdDep.disponible -= it.cnt;
                            }
                            ctx.SaveChanges();
                        }

                        ts.Complete();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
Example #14
0
        public Resultado Contable_Perido_Reversar(int IdPeriodoActual)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = ctx.Database.BeginTransaction())
                    {
                        try
                        {
                            var entPeriodoActual = ctx.contabilidad_periodo.Find(IdPeriodoActual);
                            if (entPeriodoActual == null)
                            {
                                result.Mensaje = "[ ID ] PERIODO NO ENCONTRADO";
                                result.Result  = EnumResult.isError;
                                return(result);
                            }

                            var entPeriodos = ctx.contabilidad_periodo.OrderByDescending(d => d.id).ToList();
                            if (entPeriodos.Count == 1)
                            {
                                result.Mensaje = "NO HAY PERIODOS QUE REVERSAR";
                                result.Result  = EnumResult.isError;
                                return(result);
                            }

                            var entPeriodoAnt = entPeriodos.Where(d => d.estatusCierre == "S").FirstOrDefault();
                            if (entPeriodoAnt == null)
                            {
                                result.Mensaje = "NO HAY PERIODO ANTERIOR A REVERSAR";
                                result.Result  = EnumResult.isError;
                                return(result);
                            }

                            var entCtas = ctx.contabilidad_plancta.ToList();
                            foreach (var r in entCtas)
                            {
                                r.debe           = r.rdebe;
                                r.haber          = r.rhaber;
                                r.debeAcumulado  = r.rdebeAcumulado;
                                r.haberAcumulado = r.rhaberAcumulado;
                                r.saldoAnterior  = r.rsaldoAnterior;
                                r.saldoApertura  = r.rsaldoApertura;
                                ctx.SaveChanges();
                            }

                            ctx.contabilidad_periodo.Remove(entPeriodoActual);
                            entPeriodoAnt.estatusCierre      = "";
                            entPeriodoAnt.utilidad           = 0.0m;
                            entPeriodoAnt.utilidad_acumulada = 0.0m;
                            ctx.SaveChanges();

                            var entHistorico = ctx.contabilidad_historico.Where(d =>
                                                                                d.mesHistorico == entPeriodoAnt.mes &&
                                                                                d.anoHistorico == entPeriodoAnt.ano
                                                                                ).ToList();
                            ctx.Configuration.AutoDetectChangesEnabled = false;
                            foreach (var r in entHistorico)
                            {
                                ctx.contabilidad_historico.Remove(r);
                                ctx.SaveChanges();
                            }

                            ts.Commit();
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        finally
                        {
                            ctx.Configuration.AutoDetectChangesEnabled = true;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
Example #15
0
        public Resultado Contable_Integracion_Anular(int id)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = ctx.Database.BeginTransaction())
                    {
                        var ent = ctx.contabilidad_integraciones.Find(id);
                        ent.estaAnulado = "S";
                        ctx.SaveChanges();

                        var idAsiento  = ent.idAsiento;
                        var entAsiento = ctx.contabilidad_asiento.Find(idAsiento);
                        entAsiento.estaAnulado = "S";
                        ctx.SaveChanges();

                        var list = ctx.contabilidad_asiento_resumen.Where(d => d.idAsiento == idAsiento).ToList();
                        foreach (var cta in list)
                        {
                            var mdebe  = cta.montoDebe;
                            var mhaber = cta.montoHaber;
                            cta.contabilidad_plancta.debe  -= cta.montoDebe;
                            cta.contabilidad_plancta.haber -= cta.montoHaber;
                            ctx.SaveChanges();

                            var nivel = cta.contabilidad_plancta.nivel;
                            if (nivel >= 1)
                            {
                                var entNiv = cta.contabilidad_plancta;
                                for (var nv = nivel; nv > 1; nv--)
                                {
                                    entNiv        = entNiv.contabilidad_plancta2;
                                    entNiv.debe  -= mdebe;
                                    entNiv.haber -= mhaber;
                                    ctx.SaveChanges();
                                }
                            }
                        }

                        var doc = ctx.contabilidad_asiento_docadm.Where(d => d.idAsiento == idAsiento).ToList();
                        foreach (var it in doc)
                        {
                            var tipDoc = (DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento)it.tipoDoc;

                            if (tipDoc == DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.Venta)
                            {
                                var entVenta = ctx.ventas.Find(it.autoDoc);
                                entVenta.estatus_cierre_contable = "0";
                                ctx.SaveChanges();
                            }
                            if (tipDoc == DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.Compra)
                            {
                                var entCompra = ctx.compras.Find(it.autoDoc);
                                entCompra.estatus_cierre_contable = "0";
                                ctx.SaveChanges();
                            }
                            if (tipDoc == DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.MovBanco)
                            {
                                var entMovBanco = ctx.bancos_movimientos.Find(it.autoDoc);
                                entMovBanco.estatus_cierre_contable = "0";
                                ctx.SaveChanges();
                            }
                            if (tipDoc == DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.InvAjuste ||
                                tipDoc == DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.InvAjustePorCargo ||
                                tipDoc == DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.InvAjustePorDescargo ||
                                tipDoc == DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.InvAutoConsumo ||
                                tipDoc == DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.InvCargo)
                            {
                                var entMovInv = ctx.productos_movimientos.Find(it.autoDoc);
                                entMovInv.estatus_cierre_contable = "0";
                                ctx.SaveChanges();
                            }

                            if (tipDoc == DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.Pago)
                            {
                                var entRecPago = ctx.cxp_recibos.Find(it.autoDoc);
                                var autoPago   = entRecPago.auto_cxp;
                                var entPago    = ctx.cxp.Find(autoPago);
                                entPago.estatus_cierre_contable = "0";
                                ctx.SaveChanges();
                            }

                            if (tipDoc == DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.RetencionIva ||
                                tipDoc == DTO.Contable.Asiento.Generar.Enumerados.TipoDocumento.RetencionIslr)
                            {
                                var entRetencion = ctx.compras_retenciones.Find(it.autoDoc);
                                entRetencion.estatus_cierre_contable = "0";
                                ctx.SaveChanges();
                            }
                        }

                        ts.Commit();
                    }
                }
            }

            catch (DbEntityValidationException e)
            {
                var ms = "";
                foreach (var eve in e.EntityValidationErrors)
                {
                    foreach (var ve in eve.ValidationErrors)
                    {
                        ms += ve.ErrorMessage + Environment.NewLine;
                    }
                }
                result.Mensaje = ms;
                result.Result  = DTO.EnumResult.isError;
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
Example #16
0
        public Resultado Banco_Concepto_Actualizar(DTO.Bancos.Conceptos.Actualizar ficha)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var entBanConcepto = ctx.bancos_movimientos_conceptos.Find(ficha.AutoConcepto);
                        if (entBanConcepto == null)
                        {
                            result.Mensaje = "[ ID ] CONCEPTO NO ENCONTRADO";
                            result.Result  = EnumResult.isError;
                            return(result);
                        }

                        if (ficha.IdCtaGasto != -1)
                        {
                            var entCtaGasto = ctx.contabilidad_plancta.Find(ficha.IdCtaGasto);
                            if (entCtaGasto == null)
                            {
                                result.Mensaje = "[ ID CTA GASTO ] NO ENCONTRADO";
                                result.Result  = EnumResult.isError;
                                return(result);
                            }
                        }

                        if (ficha.IdCtaPasivo != -1)
                        {
                            var entCtaPasivo = ctx.contabilidad_plancta.Find(ficha.IdCtaPasivo);
                            if (entCtaPasivo == null)
                            {
                                result.Mensaje = "[ ID CTA PASIVO ] NO ENCONTRADO";
                                result.Result  = EnumResult.isError;
                                return(result);
                            }
                        }

                        if (ficha.IdCtaBanco != -1)
                        {
                            var entCtaBanco = ctx.contabilidad_plancta.Find(ficha.IdCtaBanco);
                            if (entCtaBanco == null)
                            {
                                result.Mensaje = "[ ID CTA BANCO ] NO ENCONTRADO";
                                result.Result  = EnumResult.isError;
                                return(result);
                            }
                        }

                        var entContBanConcepto = ctx.contabilidad_banco_conceptos.FirstOrDefault(ct => ct.autoMovimientoConcepto == ficha.AutoConcepto);
                        if (entContBanConcepto == null)
                        {
                            entContBanConcepto = new contabilidad_banco_conceptos()
                            {
                                autoMovimientoConcepto = ficha.AutoConcepto,
                                idCtaGasto             = ficha.IdCtaGasto,
                                idCtaPasivo            = ficha.IdCtaPasivo,
                                idCtaBanco             = ficha.IdCtaBanco,
                                idSucursal             = "",
                            };
                            ctx.contabilidad_banco_conceptos.Add(entContBanConcepto);
                        }
                        else
                        {
                            entContBanConcepto.idCtaGasto  = ficha.IdCtaGasto;
                            entContBanConcepto.idCtaPasivo = ficha.IdCtaPasivo;
                            entContBanConcepto.idCtaBanco  = ficha.IdCtaBanco;
                        }
                        ctx.SaveChanges();


                        if (ficha.IdCtaBanco != -1)
                        {
                            var modoRef  = entContBanConcepto.bancos_movimientos_conceptos.clase.Trim().ToUpper() == "EGRESO" ? "NDB" : "DEP";
                            var entRegla = ctx.contabilidad_reglas_integracion_detalle.FirstOrDefault(dt =>
                                                                                                      dt.idPlanCta == ficha.IdCtaBanco &&
                                                                                                      dt.referencia == modoRef &&
                                                                                                      dt.idReglaIntegracion == 6);
                            if (entRegla == null)
                            {
                                entRegla = new contabilidad_reglas_integracion_detalle()
                                {
                                    idReglaIntegracion = 6,
                                    idPlanCta          = ficha.IdCtaBanco,
                                    signo      = -1,
                                    referencia = modoRef,
                                    idSucursal = 0,
                                };
                                ctx.contabilidad_reglas_integracion_detalle.Add(entRegla);
                            }
                            else
                            {
                                entRegla.idPlanCta = ficha.IdCtaBanco;
                            }
                            ctx.SaveChanges();
                        }

                        if (ficha.IdCtaPasivo != -1)
                        {
                            var entRegla = ctx.contabilidad_reglas_integracion_detalle.FirstOrDefault(dt =>
                                                                                                      dt.idPlanCta == ficha.IdCtaPasivo &&
                                                                                                      dt.referencia == "MONTO POR PAGAR" &&
                                                                                                      dt.idReglaIntegracion == 2);
                            if (entRegla == null)
                            {
                                entRegla = new contabilidad_reglas_integracion_detalle()
                                {
                                    idReglaIntegracion = 2,
                                    idPlanCta          = ficha.IdCtaPasivo,
                                    signo      = -1,
                                    referencia = "MONTO POR PAGAR",
                                    idSucursal = 0,
                                };
                                ctx.contabilidad_reglas_integracion_detalle.Add(entRegla);
                            }
                            else
                            {
                                entRegla.idPlanCta = ficha.IdCtaPasivo;
                            }
                            ctx.SaveChanges();

                            entRegla = ctx.contabilidad_reglas_integracion_detalle.FirstOrDefault(dt =>
                                                                                                  dt.idPlanCta == ficha.IdCtaPasivo &&
                                                                                                  dt.referencia == "MONTO PAGADO" &&
                                                                                                  dt.idReglaIntegracion == 3);
                            if (entRegla == null)
                            {
                                entRegla = new contabilidad_reglas_integracion_detalle()
                                {
                                    idReglaIntegracion = 3,
                                    idPlanCta          = ficha.IdCtaPasivo,
                                    signo      = 1,
                                    referencia = "MONTO PAGADO",
                                    idSucursal = 0,
                                };
                                ctx.contabilidad_reglas_integracion_detalle.Add(entRegla);
                            }
                            else
                            {
                                entRegla.idPlanCta = ficha.IdCtaPasivo;
                            }
                            ctx.SaveChanges();
                        }

                        if (ficha.IdCtaGasto != -1)
                        {
                            var entRegla = ctx.contabilidad_reglas_integracion_detalle.FirstOrDefault(dt =>
                                                                                                      dt.idPlanCta == ficha.IdCtaGasto &&
                                                                                                      dt.referencia == "GASTO" &&
                                                                                                      dt.idReglaIntegracion == 2);
                            if (entRegla == null)
                            {
                                entRegla = new contabilidad_reglas_integracion_detalle()
                                {
                                    idReglaIntegracion = 2,
                                    idPlanCta          = ficha.IdCtaGasto,
                                    signo      = 1,
                                    referencia = "GASTO",
                                    idSucursal = 0,
                                };
                                ctx.contabilidad_reglas_integracion_detalle.Add(entRegla);
                            }
                            else
                            {
                                entRegla.idPlanCta = ficha.IdCtaGasto;
                            }
                            ctx.SaveChanges();
                        }

                        ctx.SaveChanges();
                        ts.Complete();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
Example #17
0
        public Resultado Bancos_Banco_Actualizar(DTO.Bancos.Banco.Actualizar ficha)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        //if (ficha.IdCtaContable.HasValue)
                        //{
                        //}
                        //else
                        //{
                        //    var entContBanco = ctx.contabilidad_banco.FirstOrDefault(b => b.auto_banco == ficha.AutoBanco);
                        //    ctx.contabilidad_banco.Remove(entContBanco);
                        //}

                        var entContBanco = ctx.contabilidad_banco.FirstOrDefault(b => b.auto_banco == ficha.AutoBanco);
                        if (entContBanco == null)
                        {
                            entContBanco = new contabilidad_banco()
                            {
                                idPlanCta      = ficha.IdCtaContable.Value,
                                idPlanCta_IGTF = ficha.IdCtaIGTF.Value,
                                auto_banco     = ficha.AutoBanco,
                            };
                            ctx.contabilidad_banco.Add(entContBanco);
                            ctx.SaveChanges();
                        }
                        else
                        {
                            var entReglaIntPago = ctx.contabilidad_reglas_integracion_detalle.FirstOrDefault(w =>
                                                                                                             w.idReglaIntegracion == 3 &&
                                                                                                             w.referencia.Trim().ToUpper() == "BANCO" &&
                                                                                                             w.idPlanCta == entContBanco.idPlanCta);
                            if (entReglaIntPago != null)
                            {
                                ctx.contabilidad_reglas_integracion_detalle.Remove(entReglaIntPago);
                                ctx.SaveChanges();
                            }

                            var entReglaIntBanco = ctx.contabilidad_reglas_integracion_detalle.FirstOrDefault(w =>
                                                                                                              w.idReglaIntegracion == 6 &&
                                                                                                              w.referencia.Trim().ToUpper() == "BANCO MOV" &&
                                                                                                              w.idPlanCta == entContBanco.idPlanCta);
                            if (entReglaIntBanco != null)
                            {
                                ctx.contabilidad_reglas_integracion_detalle.Remove(entReglaIntBanco);
                                ctx.SaveChanges();
                            }

                            entContBanco.idPlanCta = null;
                            if (ficha.IdCtaContable.HasValue)
                            {
                                entContBanco.idPlanCta = ficha.IdCtaContable.Value;
                            }
                            entContBanco.idPlanCta_IGTF = null;
                            if (ficha.IdCtaIGTF.HasValue)
                            {
                                entContBanco.idPlanCta_IGTF = ficha.IdCtaIGTF.Value;
                            }
                            ctx.SaveChanges();

                            if (ficha.IdCtaContable.HasValue)
                            {
                                entContBanco.idPlanCta = ficha.IdCtaContable.Value;
                            }
                            if (ficha.IdCtaIGTF.HasValue)
                            {
                                entContBanco.idPlanCta_IGTF = ficha.IdCtaIGTF.Value;
                            }
                            ctx.SaveChanges();
                        }

                        if (ficha.IdCtaContable.HasValue)
                        {
                            var reglaPago = new contabilidad_reglas_integracion_detalle()
                            {
                                idReglaIntegracion = 3,
                                idPlanCta          = ficha.IdCtaContable.Value,
                                signo      = -1,
                                referencia = "BANCO",
                                idSucursal = 0,
                            };
                            ctx.contabilidad_reglas_integracion_detalle.Add(reglaPago);
                            ctx.SaveChanges();

                            var reglaBanco = new contabilidad_reglas_integracion_detalle()
                            {
                                idReglaIntegracion = 6,
                                idPlanCta          = ficha.IdCtaContable.Value,
                                signo      = 1,
                                referencia = "BANCO MOV",
                                idSucursal = 0,
                            };
                            ctx.contabilidad_reglas_integracion_detalle.Add(reglaBanco);
                            ctx.SaveChanges();
                        }

                        ctx.SaveChanges();
                        ts.Complete();
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
Example #18
0
        public Resultado Contable_Asiento_Anular(int idAsiento)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = ctx.Database.BeginTransaction())
                    {
                        try
                        {
                            var ent = ctx.contabilidad_asiento.Find(idAsiento);
                            ent.estaAnulado = "S";
                            ctx.SaveChanges();

                            var list = ctx.contabilidad_asiento_detalle.Where(d => d.idAsiento == idAsiento).ToList();
                            foreach (var cta in list)
                            {
                                cta.contabilidad_plancta.debe  -= cta.montoDebe;
                                cta.contabilidad_plancta.haber -= cta.montoHaber;
                                ctx.SaveChanges();

                                var debe  = cta.montoDebe;
                                var haber = cta.montoHaber;
                                var entDt = cta.contabilidad_plancta;
                                var nivel = entDt.nivel;

                                if (nivel >= 1)
                                {
                                    var entNiv = entDt;
                                    for (var nv = nivel; nv > 1; nv--)
                                    {
                                        entNiv        = entNiv.contabilidad_plancta2;
                                        entNiv.debe  -= debe;
                                        entNiv.haber -= haber;
                                        ctx.SaveChanges();
                                    }
                                }
                            }

                            ts.Commit();
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        finally
                        {
                            ctx.Configuration.AutoDetectChangesEnabled = true;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }
Example #19
0
        public ResultadoId Contable_Asiento_Editar(DTO.Contable.Asiento.Insertar ficha)
        {
            ResultadoId result = new ResultadoId();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = ctx.Database.BeginTransaction())
                    {
                        try
                        {
                            var FechaSistema = ctx.Database.SqlQuery <DateTime>("select NOW()").FirstOrDefault();
                            var entA         = ctx.contabilidad_asiento.Find(ficha.IdAsientoEditado);
                            var entADoc      = ctx.contabilidad_asiento_documento.Where(d => d.idAsiento == ficha.IdAsientoEditado).ToList();
                            var entADet      = ctx.contabilidad_asiento_detalle.Where(d => d.idAsiento == ficha.IdAsientoEditado).ToList();
                            var entARes      = ctx.contabilidad_asiento_resumen.Where(d => d.idAsiento == ficha.IdAsientoEditado).ToList();
                            int cnt          = entA.numeroComprobante;

                            foreach (var rs in entARes)
                            {
                                ctx.contabilidad_asiento_resumen.Remove(rs);
                                ctx.SaveChanges();
                            }

                            foreach (var dt in entADet)
                            {
                                var debe  = dt.montoDebe;
                                var haber = dt.montoHaber;
                                var entDt = dt.contabilidad_plancta;
                                var nivel = entDt.nivel;
                                entDt.debe  -= debe;
                                entDt.haber -= haber;
                                ctx.SaveChanges();

                                if (nivel >= 1)
                                {
                                    var entNiv = entDt;
                                    for (var nv = nivel; nv > 1; nv--)
                                    {
                                        entNiv        = entNiv.contabilidad_plancta2;
                                        entNiv.debe  -= debe;
                                        entNiv.haber -= haber;
                                        ctx.SaveChanges();
                                    }
                                }
                                ctx.contabilidad_asiento_detalle.Remove(dt);
                            }

                            foreach (var doc in entADoc)
                            {
                                ctx.contabilidad_asiento_documento.Remove(doc);
                            }
                            ctx.contabilidad_asiento.Remove(entA);

                            //
                            var ent = new contabilidad_asiento()
                            {
                                fechaEmision         = FechaSistema.Date,
                                mesRelacion          = ficha.PeriodoMes,
                                anoRelacion          = ficha.PeriodoAno,
                                descripcion          = ficha.DescripcionDocumentoRef,
                                tipoAsiento          = (int)ficha.TipoAsiento,
                                autoGenerado         = "N",
                                estaAnulado          = "N",
                                estaProcesado        = "S",
                                numeroComprobante    = cnt,
                                renglones            = 1,
                                tipoDocumento        = ficha.DescTipoDocumento,
                                idTipoDocumento      = ficha.IdTipoDocumento,
                                reglaIntegracionCod  = "",
                                reglaIntegracionDesc = "",
                                importe = ficha.Importe
                            };
                            ctx.contabilidad_asiento.Add(ent);
                            ctx.SaveChanges();

                            var entDoc = new contabilidad_asiento_documento()
                            {
                                idAsiento   = ent.id,
                                documento   = ficha.DocumentoRef,
                                fecha       = ficha.FechaDocumentoRef,
                                descripcion = ficha.DescripcionDocumentoRef,
                                signo       = 1,
                                incluir     = "S",
                            };
                            ctx.contabilidad_asiento_documento.Add(entDoc);
                            ctx.SaveChanges();

                            var reng = 0;
                            foreach (var it in ficha.Ctas)
                            {
                                reng += 1;
                                var entDet = new contabilidad_asiento_detalle()
                                {
                                    idAsiento          = ent.id,
                                    idAsientoDocumento = entDoc.id,
                                    idPlanCta          = it.Id,
                                    numRenglon         = reng,
                                    codigoCta          = it.codigo,
                                    descripcionCta     = it.Descripcion,
                                    montoDebe          = it.MontoDebe,
                                    montoHaber         = it.MontoHaber,
                                    naturalezaCta      = (it.Naturaleza == DTO.Contable.PlanCta.Enumerados.Naturaleza.Deudora ? "D" : "A"),
                                };
                                ctx.contabilidad_asiento_detalle.Add(entDet);
                                ctx.SaveChanges();

                                var entAsientoResumen = new contabilidad_asiento_resumen()
                                {
                                    idAsiento      = ent.id,
                                    idPlanCta      = it.Id,
                                    codigoCta      = it.codigo,
                                    descripcionCta = it.Descripcion,
                                    montoDebe      = it.MontoDebe,
                                    montoHaber     = it.MontoHaber
                                };
                                ctx.contabilidad_asiento_resumen.Add(entAsientoResumen);
                                ctx.SaveChanges();

                                var entPlanCta = ctx.contabilidad_plancta.Find(it.Id);
                                entPlanCta.debe  += it.MontoDebe;
                                entPlanCta.haber += it.MontoHaber;
                                ctx.SaveChanges();

                                var nivel = entPlanCta.nivel;
                                if (nivel >= 1)
                                {
                                    var entNiv = entPlanCta;
                                    for (var nv = nivel; nv > 1; nv--)
                                    {
                                        entNiv        = entNiv.contabilidad_plancta2;
                                        entNiv.debe  += it.MontoDebe;
                                        entNiv.haber += it.MontoHaber;
                                        ctx.SaveChanges();
                                    }
                                }
                            }

                            ts.Commit();
                            result.Id = ent.id;
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        finally
                        {
                            ctx.Configuration.AutoDetectChangesEnabled = true;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
                result.Id      = -1;
            }

            return(result);
        }
Example #20
0
        public ResultadoId Contable_Asiento_Preview(DTO.Contable.Asiento.Insertar ficha)
        {
            ResultadoId result = new ResultadoId();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = new TransactionScope())
                    {
                        var FechaSistema = ctx.Database.SqlQuery <DateTime>("select NOW()").FirstOrDefault();
                        int cnt          = 0;

                        if (ficha.IdAsientoPreview != -1)
                        {
                            var entA    = ctx.contabilidad_asiento.Find(ficha.IdAsientoPreview);
                            var entADoc = ctx.contabilidad_asiento_documento.Where(d => d.idAsiento == ficha.IdAsientoPreview).ToList();
                            var entADet = ctx.contabilidad_asiento_detalle.Where(d => d.idAsiento == ficha.IdAsientoPreview).ToList();
                            cnt = entA.numeroComprobante;

                            foreach (var dt in entADet)
                            {
                                ctx.contabilidad_asiento_detalle.Remove(dt);
                                ctx.SaveChanges();
                            }
                            foreach (var doc in entADoc)
                            {
                                ctx.contabilidad_asiento_documento.Remove(doc);
                                ctx.SaveChanges();
                            }
                            ctx.contabilidad_asiento.Remove(entA);
                            ctx.SaveChanges();
                        }
                        else
                        {
                            var cont = ctx.contabilidad_contadores.Find(1);
                            cont.cnt_aisento_preview += 1;
                            cnt = cont.cnt_aisento_preview;
                            ctx.SaveChanges();
                        }

                        var ent = new contabilidad_asiento()
                        {
                            fechaEmision         = FechaSistema.Date,
                            mesRelacion          = ficha.PeriodoMes,
                            anoRelacion          = ficha.PeriodoAno,
                            descripcion          = ficha.DescripcionDocumentoRef,
                            tipoAsiento          = (int)ficha.TipoAsiento,
                            autoGenerado         = "N",
                            estaAnulado          = "N",
                            estaProcesado        = "N",
                            numeroComprobante    = cnt,
                            renglones            = 1,
                            tipoDocumento        = ficha.DescTipoDocumento,
                            idTipoDocumento      = ficha.IdTipoDocumento,
                            reglaIntegracionCod  = "",
                            reglaIntegracionDesc = "",
                            importe = ficha.Importe
                        };
                        ctx.contabilidad_asiento.Add(ent);
                        ctx.SaveChanges();

                        var entDoc = new contabilidad_asiento_documento()
                        {
                            idAsiento   = ent.id,
                            documento   = ficha.DocumentoRef,
                            fecha       = ficha.FechaDocumentoRef,
                            descripcion = ficha.DescripcionDocumentoRef,
                            signo       = 1,
                            incluir     = "S",
                        };
                        ctx.contabilidad_asiento_documento.Add(entDoc);
                        ctx.SaveChanges();

                        var reng = 0;
                        foreach (var it in ficha.Ctas)
                        {
                            reng += 1;
                            var entDet = new contabilidad_asiento_detalle()
                            {
                                idAsiento          = ent.id,
                                idAsientoDocumento = entDoc.id,
                                idPlanCta          = it.Id,
                                numRenglon         = reng,
                                codigoCta          = it.codigo,
                                descripcionCta     = it.Descripcion,
                                montoDebe          = it.MontoDebe,
                                montoHaber         = it.MontoHaber,
                                naturalezaCta      = (it.Naturaleza == DTO.Contable.PlanCta.Enumerados.Naturaleza.Deudora ? "D" : "A"),
                            };
                            ctx.contabilidad_asiento_detalle.Add(entDet);
                            ctx.SaveChanges();
                        }

                        ts.Complete();
                        result.Id = ent.id;
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
                result.Id      = -1;
            }

            return(result);
        }
Example #21
0
        public Resultado Contable_Perido_Cerrar(DTO.Contable.Periodo.Cerrar ficha)
        {
            var result = new Resultado();

            try
            {
                using (var ctx = new dBEntities(_cn.ConnectionString))
                {
                    using (var ts = ctx.Database.BeginTransaction())
                    {
                        try
                        {
                            var entListaHistorico = ctx.contabilidad_plancta.ToList();
                            ctx.Configuration.AutoDetectChangesEnabled = false;
                            foreach (var r in entListaHistorico)
                            {
                                var entHist = new contabilidad_historico()
                                {
                                    idCta          = r.id,
                                    codigo         = r.codigo,
                                    descripcion    = r.descripcion,
                                    tipo           = r.tipo,
                                    naturaleza     = r.naturaleza,
                                    saldoAperura   = r.saldoApertura,
                                    saldoAnterior  = r.saldoAnterior,
                                    debe           = r.debe,
                                    haber          = r.haber,
                                    estado         = r.estado,
                                    idPadre        = r.idPadre,
                                    nivel          = r.nivel,
                                    debeAcumulado  = r.debeAcumulado,
                                    haberAcumulado = r.haberAcumulado,
                                    mesHistorico   = ficha.MesActual,
                                    anoHistorico   = ficha.AnoActual,
                                };
                                ctx.contabilidad_historico.Add(entHist);
                                ctx.SaveChanges();
                            }
                            ctx.Configuration.AutoDetectChangesEnabled = true;

                            var entPeriodo = ctx.contabilidad_periodo.Find(ficha.IdPeriodoActual);
                            entPeriodo.estatusCierre      = "S";
                            entPeriodo.utilidad           = ficha.UtilidadPeriodo;
                            entPeriodo.utilidad_acumulada = ficha.UtilidadAcumulada;
                            ctx.SaveChanges();

                            var mes = ficha.MesActual;
                            var ano = ficha.AnoActual;
                            if (ficha.MesActual == 12)
                            {
                                mes = 1;
                                ano = ano + 1;
                            }
                            else
                            {
                                mes += 1;
                            }

                            var entPeriodoNuevo = new contabilidad_periodo()
                            {
                                mes           = mes,
                                ano           = ano,
                                estatusCierre = "",
                            };
                            ctx.contabilidad_periodo.Add(entPeriodoNuevo);
                            ctx.SaveChanges();

                            var ent = ctx.contabilidad_plancta.ToList();
                            foreach (var r in ent)
                            {
                                // PARA REVERSO DEL CIERRE, SE GUARDA
                                r.rdebe           = r.debe;
                                r.rhaber          = r.haber;
                                r.rdebeAcumulado  = r.debeAcumulado;
                                r.rhaberAcumulado = r.haberAcumulado;
                                r.rsaldoAnterior  = r.saldoAnterior;
                                r.rsaldoApertura  = r.saldoApertura;
                                //


                                ////LIMPIAR LAS CUENTAS REALES
                                //r.debeAcumulado += r.debe;
                                //r.haberAcumulado += r.haber;
                                //if (r.codigo.Substring(0, 1) == "1" || r.codigo.Substring(0, 1) == "2" || r.codigo.Substring(0, 1) == "3")
                                //{
                                //    var saldoFinal = r.saldoAnterior + r.debe + r.haber;
                                //    r.saldoAnterior = saldoFinal;
                                //}
                                //r.debe = 0.0m;
                                //r.haber = 0.0m;


                                ////LIMPIAR LAS CUENTAS REALES
                                //if (r.codigo.Substring(0, 1) == "1" || r.codigo.Substring(0, 1) == "2" || r.codigo.Substring(0, 1) == "3")
                                //{
                                //    //var saldoFinal = r.saldoAnterior + r.debe + r.haber;
                                //    //r.saldoAnterior = saldoFinal;
                                //}
                                //else
                                //{
                                //    r.debeAcumulado += r.debe;
                                //    r.haberAcumulado += r.haber;
                                //    r.debe = 0.0m;
                                //    r.haber = 0.0m;
                                //}


                                //LIMPIAR LAS CUENTAS REALES
                                r.debeAcumulado  += r.debe;
                                r.haberAcumulado += r.haber;
                                //var saldoFinal = r.saldoAnterior + r.debe + r.haber;
                                var saldoFinal = r.saldoAnterior + (r.debe - r.haber);
                                r.saldoAnterior = saldoFinal;
                                r.debe          = 0.0m;
                                r.haber         = 0.0m;
                                ctx.SaveChanges();
                            }

                            ////ASIGNAR UTILIDAD DEL PERIODO A LA CUENTA DE AJUSTE DEL PATRIMONIO
                            //var entCtaCierre = ctx.contabilidad_plancta.Find(ficha.IdCtaCierre);
                            //entCtaCierre.saldoAnterior += (ficha.UtilidadPeriodo * (-1));
                            //ctx.SaveChanges();

                            //var nivel = entCtaCierre.nivel;
                            //if (nivel >= 1)
                            //{
                            //    var entNiv = entCtaCierre;
                            //    for (var nv = nivel; nv > 1; nv--)
                            //    {
                            //        entNiv = entNiv.contabilidad_plancta2;
                            //        entNiv.saldoAnterior += (ficha.UtilidadPeriodo * (-1));
                            //        ctx.SaveChanges();
                            //    }
                            //}

                            ts.Commit();
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        finally
                        {
                            ctx.Configuration.AutoDetectChangesEnabled = true;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DTO.EnumResult.isError;
            }

            return(result);
        }