Example #1
0
        public bool ModificarBD(cp_conciliacionAnticipo_Info info)
        {
            try
            {
                using (Entities_contabilidad db_cont = new Entities_contabilidad())
                {
                    ct_cbtecble_Info info_diario = armar_info(info.Lista_det_Cbte, info.IdEmpresa, info.IdSucursal, Convert.ToInt32(info.IdTipoCbte), 0, info.Observacion, info.Fecha);
                    ct_cbtecble      Entity_cbte = db_cont.ct_cbtecble.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdTipoCbte == info.IdTipoCbte && q.IdCbteCble == info.IdCbteCble).FirstOrDefault();

                    if (info_diario != null)
                    {
                        info_diario.IdCbteCble       = Convert.ToDecimal(info.IdCbteCble);
                        info_diario.IdUsuarioUltModi = info.IdUsuarioModificacion;
                        if (data_cbtecble.modificarDB(info_diario))
                        {
                            info.IdTipoCbte = info_diario.IdTipoCbte;
                            info.IdCbteCble = info_diario.IdCbteCble;
                        }
                    }
                }

                using (Entities_cuentas_por_pagar db = new Entities_cuentas_por_pagar())
                {
                    cp_ConciliacionAnticipo entity = db.cp_ConciliacionAnticipo.Where(q => q.IdConciliacion == info.IdConciliacion && q.IdEmpresa == info.IdEmpresa).FirstOrDefault();

                    if (entity == null)
                    {
                        return(false);
                    }

                    entity.IdProveedor           = info.IdProveedor;
                    entity.Fecha                 = info.Fecha;
                    entity.Observacion           = info.Observacion;
                    entity.IdSucursal            = info.IdSucursal;
                    entity.IdUsuarioModificacion = info.IdUsuarioModificacion;
                    entity.FechaModificacion     = DateTime.Now;

                    var lst_det_OP = db.cp_ConciliacionAnticipoDetAnt.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdConciliacion == info.IdConciliacion).ToList();
                    db.cp_ConciliacionAnticipoDetAnt.RemoveRange(lst_det_OP);

                    var lst_det_Fact = db.cp_ConciliacionAnticipoDetCXP.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdConciliacion == info.IdConciliacion).ToList();
                    db.cp_ConciliacionAnticipoDetCXP.RemoveRange(lst_det_Fact);

                    var lst_Cancelaciones = db.cp_orden_pago_cancelaciones.Where(q => q.IdEmpresa_op == info.IdEmpresa && q.IdTipoCbte_pago == info.IdTipoCbte && q.IdCbteCble_pago == info.IdCbteCble).ToList();
                    db.cp_orden_pago_cancelaciones.RemoveRange(lst_Cancelaciones);

                    if (info.Lista_det_OP != null)
                    {
                        int SecuenciaOP = 1;

                        foreach (var item in info.Lista_det_OP)
                        {
                            db.cp_ConciliacionAnticipoDetAnt.Add(new cp_ConciliacionAnticipoDetAnt
                            {
                                IdEmpresa      = info.IdEmpresa,
                                IdConciliacion = info.IdConciliacion,
                                Secuencia      = SecuenciaOP++,
                                IdOrdenPago    = item.IdOrdenPago,
                                MontoAplicado  = item.MontoAplicado
                            });
                        }
                    }

                    if (info.Lista_det_Fact != null)
                    {
                        int SecuenciaFact = 1;
                        int SecuenciaCanc = 1;

                        foreach (var item in info.Lista_det_Fact)
                        {
                            db.cp_ConciliacionAnticipoDetCXP.Add(new cp_ConciliacionAnticipoDetCXP
                            {
                                IdEmpresa       = info.IdEmpresa,
                                IdConciliacion  = info.IdConciliacion,
                                Secuencia       = SecuenciaFact++,
                                IdOrdenPago     = item.IdOrdenPago,
                                IdEmpresa_cxp   = item.IdEmpresa,
                                IdTipoCbte_cxp  = item.IdTipoCbte_cxp,
                                IdCbteCble_cxp  = item.IdCbteCble_cxp,
                                Fecha_cxp       = item.Fecha_cxp,
                                Observacion_cxp = item.Observacion_cxp,
                                MontoAplicado   = item.MontoAplicado
                            });

                            cp_orden_pago_cancelaciones_Info info_cancelacion = new cp_orden_pago_cancelaciones_Info();
                            info_cancelacion.IdEmpresa       = info.IdEmpresa;
                            info_cancelacion.Secuencia       = SecuenciaCanc++;
                            info_cancelacion.IdEmpresa_op    = item.IdEmpresa_cxp;
                            info_cancelacion.IdOrdenPago_op  = item.IdOrdenPago;
                            info_cancelacion.Secuencia_op    = 1;
                            info_cancelacion.IdEmpresa_cxp   = item.IdEmpresa_cxp;
                            info_cancelacion.IdTipoCbte_cxp  = item.IdTipoCbte_cxp;
                            info_cancelacion.IdCbteCble_cxp  = item.IdCbteCble_cxp;
                            info_cancelacion.IdEmpresa_pago  = info.IdEmpresa;
                            info_cancelacion.IdTipoCbte_pago = Convert.ToInt32(info.IdTipoCbte);
                            info_cancelacion.IdCbteCble_pago = Convert.ToInt32(info.IdCbteCble);
                            info_cancelacion.MontoAplicado   = item.MontoAplicado;
                            info_cancelacion.Observacion     = "CONCILIACION" + info.IdConciliacion;

                            data_op_cancelaciones.guardarDB(info_cancelacion);
                        }
                    }

                    db.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "cp_conciliacionAnticipo_Data", Metodo = "ModificarDB", IdUsuario = info.IdUsuarioCreacion
                });
                return(false);
            }
        }
        public bool aprobar_prestamo(int IdEmpresa, string[] Lista, string IdUsuarioAprueba)
        {
            Entities_rrhh Context = new Entities_rrhh();
            Entities_cuentas_por_pagar Context_cxp = new Entities_cuentas_por_pagar();
            Entities_contabilidad      Context_ct  = new Entities_contabilidad();

            try
            {
                ro_Parametros Entity_ro_parametros          = Context.ro_Parametros.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault();
                cp_orden_pago_tipo_x_empresa Entity_op_tipo = Context_cxp.cp_orden_pago_tipo_x_empresa.Where(q => q.IdEmpresa == IdEmpresa && q.IdTipo_op == Entity_ro_parametros.IdTipo_op_prestamos).FirstOrDefault();


                decimal IdOrdenPago   = 1;
                decimal IdCbteCble_OP = 1;

                foreach (var item in Lista)
                {
                    var         IdPrestamo      = Convert.ToDecimal(item);
                    ro_prestamo Entity_Prestamo = Context.ro_prestamo.FirstOrDefault(q => q.IdEmpresa == IdEmpresa && q.IdPrestamo == IdPrestamo);
                    if (Entity_Prestamo != null)
                    {
                        Entity_Prestamo.IdUsuarioAprueba = IdUsuarioAprueba;
                        Entity_Prestamo.EstadoAprob      = "APROB";
                    }

                    if (Entity_Prestamo.GeneraOP)
                    {
                        IdOrdenPago   = data_op.get_id(Entity_Prestamo.IdEmpresa);
                        IdCbteCble_OP = data_ct.get_id(Entity_Prestamo.IdEmpresa, Convert.ToInt32(Entity_op_tipo.IdTipoCbte_OP));
                        ro_empleado Entity_Empleado = Context.ro_empleado.Where(q => q.IdEmpresa == Entity_Prestamo.IdEmpresa && q.IdEmpleado == Entity_Prestamo.IdEmpleado).FirstOrDefault();
                        var         cuenta_x_rubro  = Context.ro_rubro_tipo.Where(q => q.IdEmpresa == Entity_Prestamo.IdEmpresa && q.IdRubro == Entity_Prestamo.IdRubro).FirstOrDefault();

                        if (
                            Entity_Empleado.IdCtaCble_x_pagar_empleado != null &&
                            Entity_Empleado.IdCtaCble_Emplea != null
                            )
                        {
                            cp_orden_pago op = new cp_orden_pago
                            {
                                IdEmpresa          = IdEmpresa,
                                IdSucursal         = Entity_Empleado.IdSucursal,
                                IdOrdenPago        = IdOrdenPago,
                                Observacion        = "Prestamo #" + Entity_Prestamo.IdPrestamo,
                                IdTipo_op          = Entity_ro_parametros.IdTipo_op_prestamos,
                                IdTipo_Persona     = cl_enumeradores.eTipoPersona.EMPLEA.ToString(),
                                IdPersona          = Entity_Empleado.IdPersona,
                                IdEntidad          = Entity_Prestamo.IdEmpleado,
                                Fecha              = DateTime.Now.Date,
                                IdEstadoAprobacion = Entity_op_tipo.IdEstadoAprobacion,
                                IdFormaPago        = cl_enumeradores.eFormaPagoOrdenPago.CHEQUE.ToString(),
                                Estado             = "A"
                            };

                            Entity_Prestamo.IdEmpresa_op = op.IdEmpresa;
                            Entity_Prestamo.IdOrdenPago  = op.IdOrdenPago;

                            Context_cxp.cp_orden_pago.Add(op);

                            ct_cbtecble diario = new ct_cbtecble
                            {
                                IdEmpresa       = IdEmpresa,
                                IdTipoCbte      = Convert.ToInt32(Entity_op_tipo.IdTipoCbte_OP),
                                IdCbteCble      = IdCbteCble_OP,
                                cb_Fecha        = DateTime.Now.Date,
                                cb_Observacion  = op.Observacion,
                                IdPeriodo       = Convert.ToInt32(DateTime.Now.Date.ToString("yyyyMM")),
                                IdSucursal      = Entity_Empleado.IdSucursal,
                                cb_FechaTransac = DateTime.Now,
                                cb_Estado       = "A"
                            };

                            Entity_Prestamo.IdEmpresa_dc = diario.IdEmpresa;
                            Entity_Prestamo.IdTipoCbte   = diario.IdTipoCbte;
                            Entity_Prestamo.IdCbteCble   = diario.IdCbteCble;

                            Context_ct.ct_cbtecble.Add(diario);

                            ct_cbtecble_det diario_det = new ct_cbtecble_det
                            {
                                IdEmpresa  = diario.IdEmpresa,
                                IdTipoCbte = diario.IdTipoCbte,
                                IdCbteCble = diario.IdCbteCble,
                                secuencia  = 1,
                                IdCtaCble  = Entity_Empleado.IdCtaCble_Emplea,
                                dc_Valor   = Math.Round(Convert.ToDouble(Entity_Prestamo.MontoSol), 2, MidpointRounding.AwayFromZero),
                            };

                            Context_ct.ct_cbtecble_det.Add(diario_det);

                            ct_cbtecble_det diario_det_ = new ct_cbtecble_det
                            {
                                IdEmpresa  = diario.IdEmpresa,
                                IdTipoCbte = diario.IdTipoCbte,
                                IdCbteCble = diario.IdCbteCble,
                                secuencia  = 2,
                                IdCtaCble  = Entity_Empleado.IdCtaCble_x_pagar_empleado,
                                dc_Valor   = Math.Round(Convert.ToDouble(Entity_Prestamo.MontoSol), 2, MidpointRounding.AwayFromZero) * -1
                            };

                            Context_ct.ct_cbtecble_det.Add(diario_det_);

                            cp_orden_pago_det op_det = new cp_orden_pago_det
                            {
                                IdEmpresa   = op.IdEmpresa,
                                IdOrdenPago = op.IdOrdenPago,
                                Secuencia   = 1,

                                IdEmpresa_cxp  = diario.IdEmpresa,
                                IdTipoCbte_cxp = diario.IdTipoCbte,
                                IdCbteCble_cxp = diario.IdCbteCble,

                                Valor_a_pagar      = Convert.ToDouble(Entity_Prestamo.MontoSol),
                                IdEstadoAprobacion = Entity_op_tipo.IdEstadoAprobacion,
                                IdFormaPago        = cl_enumeradores.eFormaPagoOrdenPago.CHEQUE.ToString(),
                                Fecha_Pago         = op.Fecha
                            };

                            Context_cxp.cp_orden_pago_det.Add(op_det);
                        }
                    }
                    Context_ct.SaveChanges();
                    Context_cxp.SaveChanges();
                    Context.SaveChanges();
                }

                Context_ct.Dispose();
                Context_cxp.Dispose();
                Context.Dispose();

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #3
0
        public bool modificarDB(ct_cbtecble_Info info)
        {
            try
            {
                ba_Conciliacion_det_IngEgr_Data odata = new ba_Conciliacion_det_IngEgr_Data();

                using (Entities_contabilidad Context = new Entities_contabilidad())
                {
                    ct_cbtecble Entity = Context.ct_cbtecble.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdTipoCbte == info.IdTipoCbte && q.IdCbteCble == info.IdCbteCble);
                    if (Entity == null)
                    {
                        return(false);
                    }

                    string mensaje = "";
                    if (!odata.ValidarComprobanteEnConciliacion(info.IdEmpresa, info.IdTipoCbte, info.IdCbteCble, ref mensaje))
                    {
                        Entity.cb_Observacion = info.cb_Observacion;
                        Context.SaveChanges();
                        return(true);
                    }

                    Entity.cb_Fecha       = info.cb_Fecha.Date;
                    Entity.IdSucursal     = info.IdSucursal;
                    Entity.cb_Observacion = info.cb_Observacion;
                    Entity.cb_Valor       = Math.Round(info.lst_ct_cbtecble_det.Where(q => q.dc_Valor > 0).Sum(q => q.dc_Valor), 2, MidpointRounding.AwayFromZero);
                    Entity.CodCbteCble    = info.CodCbteCble;
                    Entity.IdPeriodo      = info.IdPeriodo = Convert.ToInt32(info.cb_Fecha.ToString("yyyyMM"));

                    Entity.IdUsuarioUltModi = info.IdUsuarioUltModi;
                    Entity.cb_FechaUltModi  = DateTime.Now;

                    var lstDet = Context.ct_cbtecble_det.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdTipoCbte == info.IdTipoCbte && q.IdCbteCble == info.IdCbteCble).ToList();
                    Context.ct_cbtecble_det.RemoveRange(lstDet);

                    //Context.Database.ExecuteSqlCommand("DElETE ct_cbtecble_det WHERE IdEmpresa = " + info.IdEmpresa + " and IdTipoCbte = " + info.IdTipoCbte + " and IdCbteCble = " + info.IdCbteCble + "");

                    int secuencia = 1;
                    foreach (var item in info.lst_ct_cbtecble_det)
                    {
                        ct_cbtecble_det Entity_det = new ct_cbtecble_det
                        {
                            IdEmpresa           = Entity.IdEmpresa,
                            IdCbteCble          = Entity.IdCbteCble,
                            IdTipoCbte          = Entity.IdTipoCbte,
                            dc_Observacion      = item.dc_Observacion,
                            dc_Valor            = Math.Round(item.dc_Valor, 2, MidpointRounding.AwayFromZero),
                            IdCtaCble           = item.IdCtaCble,
                            secuencia           = secuencia++,
                            dc_para_conciliar   = item.dc_para_conciliar,
                            IdCentroCosto       = item.IdCentroCosto,
                            IdPunto_cargo       = item.IdPunto_cargo,
                            IdPunto_cargo_grupo = item.IdPunto_cargo_grupo
                        };
                        Context.ct_cbtecble_det.Add(Entity_det);
                    }
                    Context.SaveChanges();
                };
                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "ct_cbtecble_Data", Metodo = "modificarDB", IdUsuario = info.IdUsuario
                });
                return(false);
            }
        }
Example #4
0
        /// <param name="info">Debe ir llenos los PK y el IdUsuarioUltAnu</param>
        /// <returns></returns>
        public bool anularDB(ct_cbtecble_Info info)
        {
            try
            {
                using (Entities_contabilidad Context = new Entities_contabilidad())
                {
                    ct_cbtecble Entity = Context.ct_cbtecble.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdTipoCbte == info.IdTipoCbte && q.IdCbteCble == info.IdCbteCble);
                    if (Entity == null)
                    {
                        return(false);
                    }

                    //Si ya esta anulado no volverlo a anular
                    if (Entity.cb_Estado == "I")
                    {
                        return(true);
                    }

                    #region Comprobante reverso
                    ct_cbtecble_tipo e_tipo = Context.ct_cbtecble_tipo.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdTipoCbte == info.IdTipoCbte).FirstOrDefault();
                    if (e_tipo == null)
                    {
                        return(false);
                    }

                    #region Cabecera
                    ct_cbtecble Entity_reverso = new ct_cbtecble
                    {
                        IdEmpresa      = Entity.IdEmpresa,
                        IdTipoCbte     = e_tipo.IdTipoCbte_Anul,
                        IdCbteCble     = get_id(Entity.IdEmpresa, e_tipo.IdTipoCbte_Anul),
                        cb_Anio        = DateTime.Now.Year,
                        cb_Estado      = Entity.cb_Estado = "A",
                        cb_Fecha       = DateTime.Now.Date,
                        cb_mes         = DateTime.Now.Month,
                        cb_Observacion = "**REVERSO DE DIARIO tipo: " + Entity.IdTipoCbte.ToString() + " #cbte: " + Entity.IdCbteCble.ToString() + "** " + Entity.cb_Observacion,
                        cb_Valor       = Entity.cb_Valor,
                        CodCbteCble    = "ANU" + Entity.CodCbteCble,
                        IdPeriodo      = Entity.IdPeriodo = Convert.ToInt32(DateTime.Now.ToString("yyyyMM")),

                        IdUsuario       = info.IdUsuarioAnu,
                        cb_FechaTransac = DateTime.Now
                    };
                    Context.ct_cbtecble.Add(Entity_reverso);
                    #endregion

                    #region Detalle
                    var det = Context.ct_cbtecble_det.Where(q => q.IdEmpresa == Entity.IdEmpresa && q.IdTipoCbte == Entity.IdTipoCbte && q.IdCbteCble == Entity.IdCbteCble).ToList();
                    foreach (var item in det)
                    {
                        ct_cbtecble_det Entity_reverso_det = new ct_cbtecble_det
                        {
                            IdEmpresa      = item.IdEmpresa,
                            IdTipoCbte     = Entity_reverso.IdTipoCbte,
                            IdCbteCble     = Entity_reverso.IdCbteCble,
                            secuencia      = item.secuencia,
                            IdCtaCble      = item.IdCtaCble,
                            dc_Observacion = "**REVERSO DE DIARIO tipo: " + Entity.IdTipoCbte.ToString() + " #cbte: " + Entity.IdCbteCble.ToString() + "** " + item.dc_Observacion,
                            dc_Valor       = item.dc_Valor * -1,
                            IdCentroCosto  = item.IdCentroCosto,
                            IdCentroCosto_sub_centro_costo = item.IdCentroCosto_sub_centro_costo,
                            dc_para_conciliar = false
                        };
                        Context.ct_cbtecble_det.Add(Entity_reverso_det);
                    }
                    #endregion

                    #endregion

                    #region Tabla intermedia
                    ct_cbtecble_Reversado Entity_int = new ct_cbtecble_Reversado
                    {
                        IdEmpresa      = Entity.IdEmpresa,
                        IdTipoCbte     = Entity.IdTipoCbte,
                        IdCbteCble     = Entity.IdCbteCble,
                        IdEmpresa_Anu  = Entity_reverso.IdEmpresa,
                        IdTipoCbte_Anu = Entity_reverso.IdTipoCbte,
                        IdCbteCble_Anu = Entity_reverso.IdCbteCble,
                    };
                    Context.ct_cbtecble_Reversado.Add(Entity_int);
                    #endregion

                    Entity.cb_MotivoAnu   = Entity.cb_MotivoAnu;
                    Entity.cb_Estado      = Entity.cb_Estado = "I";
                    Entity.IdUsuarioAnu   = Entity.IdUsuarioAnu;
                    Entity.cb_FechaAnu    = DateTime.Now;
                    Entity.cb_Observacion = "REVERSADO CON EL DIARIO tipo: " + Entity_reverso.IdTipoCbte.ToString() + " #cbte: " + Entity_reverso.IdCbteCble.ToString() + "** " + Entity.cb_Observacion;

                    Context.SaveChanges();
                };
                return(true);
            }
            catch (Exception e)
            {
                throw;
            }
        }
Example #5
0
        public bool guardarDB(ct_cbtecble_Info info)
        {
            try
            {
                info.IdPeriodo = Convert.ToInt32(info.cb_Fecha.Year.ToString() + info.cb_Fecha.Month.ToString("00"));
                using (Entities_contabilidad Context = new Entities_contabilidad())
                {
                    var periodo = Context.ct_periodo.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdPeriodo == info.IdPeriodo).FirstOrDefault();
                    if (periodo == null)
                    {
                        return(false);
                    }

                    ct_cbtecble Entity = new ct_cbtecble
                    {
                        IdEmpresa      = info.IdEmpresa,
                        cb_Estado      = info.cb_Estado = "A",
                        cb_Fecha       = info.cb_Fecha.Date,
                        IdSucursal     = info.IdSucursal,
                        cb_Observacion = info.cb_Observacion,
                        cb_Valor       = Math.Round(info.lst_ct_cbtecble_det.Where(q => q.dc_Valor > 0).Sum(q => q.dc_Valor), 2, MidpointRounding.AwayFromZero),
                        CodCbteCble    = info.CodCbteCble,
                        IdCbteCble     = info.IdCbteCble = get_id(info.IdEmpresa, info.IdTipoCbte),
                        IdPeriodo      = info.IdPeriodo = Convert.ToInt32(info.cb_Fecha.Year.ToString() + info.cb_Fecha.Month.ToString("00")),
                        IdTipoCbte     = info.IdTipoCbte,

                        IdUsuario       = info.IdUsuario,
                        cb_FechaTransac = DateTime.Now
                    };
                    Context.ct_cbtecble.Add(Entity);
                    int secuencia = 1;
                    foreach (var item in info.lst_ct_cbtecble_det)
                    {
                        ct_cbtecble_det Entity_det = new ct_cbtecble_det
                        {
                            IdEmpresa           = Entity.IdEmpresa,
                            IdCbteCble          = Entity.IdCbteCble,
                            IdTipoCbte          = Entity.IdTipoCbte,
                            dc_Observacion      = item.dc_Observacion,
                            dc_Valor            = Math.Round(item.dc_Valor, 2, MidpointRounding.AwayFromZero),
                            IdCtaCble           = item.IdCtaCble,
                            secuencia           = secuencia++,
                            dc_para_conciliar   = item.dc_para_conciliar,
                            IdCentroCosto       = string.IsNullOrEmpty(item.IdCentroCosto) ? null : item.IdCentroCosto,
                            IdPunto_cargo       = item.IdPunto_cargo,
                            IdPunto_cargo_grupo = item.IdPunto_cargo_grupo
                        };
                        Context.ct_cbtecble_det.Add(Entity_det);
                    }
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "ct_cbtecble_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuario
                });
                return(false);
            }
        }