public DTO.Resultado Contable_Asiento_Apertura_Guardar(DTO.Contable.Asiento.Apertura.Insertar ficha)
 {
     if (ficha.IsPreview)
     {
         return(provider.Contable_Asiento_Apertura_Preview(ficha));
     }
     else
     {
         return(provider.Contable_Asiento_Apertura_Insertar(ficha));
     }
 }
Example #2
0
        public OOB.Resultado.Resultado Asiento_Apertura_Guardar(OOB.Contable.Asiento.Apertura.Insertar ficha)
        {
            var result = new OOB.Resultado.Resultado();

            var idAsiento = -1;

            if (ficha.Asiento != null)
            {
                idAsiento = ficha.Asiento.Id;
            }

            var fichaDTO = new DTO.Contable.Asiento.Apertura.Insertar()
            {
                Id                      = idAsiento,
                PeriodoMes              = ficha.Periodo.MesActual,
                PeriodoAno              = ficha.Periodo.AnoActual,
                Importe                 = ficha.Importe,
                FechaDocumentoRef       = ficha.Fecha,
                DescripcionDocumentoRef = ficha.Descripcion,
                IsPreview               = ficha.IsPreview,
                Ctas                    = ficha.Detalles.Select((d) =>
                {
                    return(new DTO.Contable.Asiento.Apertura.InsertarCta()
                    {
                        Id = d.Cta.Id,
                        codigo = d.Cta.Codigo,
                        Descripcion = d.Cta.Nombre,
                        MontoDebe = d.Debe,
                        MontoHaber = d.Haber,
                        Signo = d.Cta.Naturaleza == OOB.Contable.PlanCta.Enumerados.Naturaleza.Deudora ?1:-1,
                    });
                }).ToList()
            };

            var resultDTO = _servicio.Contable_Asiento_Apertura_Guardar(fichaDTO);

            if (resultDTO.Result == DTO.EnumResult.isError)
            {
                result.Mensaje = resultDTO.Mensaje;
                result.Result  = OOB.Resultado.EnumResult.isError;
                return(result);
            }

            return(result);
        }
Example #3
0
        public Resultado Contable_Asiento_Apertura_Preview(DTO.Contable.Asiento.Apertura.Insertar ficha)
        {
            var result = new Resultado();

            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.Id != -1)
                        {
                            var entA    = ctx.contabilidad_asiento.Find(ficha.Id);
                            var entADoc = ctx.contabilidad_asiento_documento.Where(d => d.idAsiento == ficha.Id).ToList();
                            var entADet = ctx.contabilidad_asiento_detalle.Where(d => d.idAsiento == ficha.Id).ToList();
                            cnt = entA.numeroComprobante;

                            foreach (var dt in entADet)
                            {
                                ctx.contabilidad_asiento_detalle.Remove(dt);
                            }
                            foreach (var doc in entADoc)
                            {
                                ctx.contabilidad_asiento_documento.Remove(doc);
                            }
                            ctx.contabilidad_asiento.Remove(entA);
                        }
                        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)DTO.Contable.Asiento.Enumerados.Tipo.Apertura,
                            autoGenerado         = "N",
                            estaAnulado          = "N",
                            estaProcesado        = "N",
                            numeroComprobante    = cnt,
                            renglones            = ficha.Ctas.Count(),
                            tipoDocumento        = "",
                            idTipoDocumento      = null,
                            reglaIntegracionCod  = "",
                            reglaIntegracionDesc = "",
                            importe = ficha.Importe
                        };
                        ctx.contabilidad_asiento.Add(ent);
                        ctx.SaveChanges();

                        var entDoc = new contabilidad_asiento_documento()
                        {
                            idAsiento   = ent.id,
                            documento   = "",
                            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,
                            };
                            ctx.contabilidad_asiento_detalle.Add(entDet);
                            ctx.SaveChanges();
                        }

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

            return(result);
        }
Example #4
0
        public Resultado Contable_Asiento_Apertura_Insertar(DTO.Contable.Asiento.Apertura.Insertar ficha)
        {
            var result = new Resultado();

            //try
            //{
            //    using (var ctx = new dBEntities(_cn.ConnectionString))
            //    {
            //        using (var ts = ctx.Database.BeginTransaction())
            //        {

            //            try
            //            {

            //                int cnt = 0;
            //                if (ficha.Id != -1)
            //                {
            //                    var entA = ctx.contabilidad_asiento.Find(ficha.Id);
            //                    var entADoc = ctx.contabilidad_asiento_documento.Where(d => d.idAsiento == ficha.Id).ToList();
            //                    var entADet = ctx.contabilidad_asiento_detalle.Where(d => d.idAsiento == ficha.Id).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();
            //                }

            //                var FechaSistema = ctx.Database.SqlQuery<DateTime>("select NOW()").FirstOrDefault();
            //                var cont = ctx.contabilidad_contadores.Find(1);
            //                cont.cnt_aisento += 1;
            //                cnt = cont.cnt_aisento;
            //                ctx.SaveChanges();

            //                var ent = new contabilidad_asiento()
            //                {
            //                    fechaEmision = FechaSistema.Date,
            //                    mesRelacion = ficha.PeriodoMes,
            //                    anoRelacion = ficha.PeriodoAno,
            //                    descripcion = ficha.DescripcionDocumentoRef,
            //                    tipoAsiento = (int)DTO.Contable.Asiento.Enumerados.Tipo.Apertura,
            //                    autoGenerado = "N",
            //                    estaAnulado = "N",
            //                    estaProcesado = "S",
            //                    numeroComprobante = cnt,
            //                    renglones = ficha.Ctas.Count(),
            //                    tipoDocumento = "",
            //                    idTipoDocumento = null,
            //                    reglaIntegracionCod = "",
            //                    reglaIntegracionDesc = "",
            //                    importe = ficha.Importe
            //                };
            //                ctx.contabilidad_asiento.Add(ent);
            //                ctx.SaveChanges();

            //                var entDoc = new contabilidad_asiento_documento()
            //                {
            //                    idAsiento = ent.id,
            //                    documento = "",
            //                    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,
            //                    };
            //                    ctx.contabilidad_asiento_detalle.Add(entDet);
            //                    ctx.SaveChanges();

            //                    var entResumen = 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(entResumen);
            //                    ctx.SaveChanges();

            //                    var entPlanCta = ctx.contabilidad_plancta.Find(it.Id);
            //                    entPlanCta.saldoApertura += it.SaldoInicial;
            //                    ctx.SaveChanges();
            //                    var nivel = entPlanCta.nivel;

            //                    if (nivel >= 1)
            //                    {
            //                        var entNiv = entPlanCta;
            //                        for (var nv = nivel; nv > 1; nv--)
            //                        {
            //                            entNiv = entNiv.contabilidad_plancta2;
            //                            entNiv.saldoApertura += it.SaldoInicial;
            //                            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);
        }