Exemplo n.º 1
0
        public ActionResult Modificar(ct_cbtecble_Info model)
        {
            model.lst_ct_cbtecble_det = list_ct_cbtecble_det.get_list(model.IdTransaccionSession);
            if (!validar(model, ref mensaje))
            {
                ViewBag.MostrarBoton = true;
                cargar_combos(model.IdEmpresa);
                ViewBag.mensaje = mensaje;
                return(View(model));
            }
            model.IdUsuarioUltModi = SessionFixed.IdUsuario;
            if (!bus_comprobante.modificarDB(model))
            {
                ViewBag.MostrarBoton = true;
                cargar_combos(model.IdEmpresa);
                return(View(model));
            }

            return(RedirectToAction("Consultar", new { IdEmpresa = model.IdEmpresa, IdTipoCbte = model.IdTipoCbte, IdCbteCble = model.IdCbteCble, Exito = true }));
        }
Exemplo n.º 2
0
        private ct_cbtecble_Info get_armar_diario_provisiones(ro_rol_Info info, int TipoComprobante, int IdSucursal)
        {
            try
            {
                ct_cbtecble_Info info_diario = new ct_cbtecble_Info();
                info_diario.lst_ct_cbtecble_det = (from q in info.lst_provisiones
                                                   where q.IdSucursal == IdSucursal
                                                   group q by new
                {
                    q.IdCtaCble
                } into g
                                                   select new ct_cbtecble_det_Info
                {
                    IdCtaCble = g.Key.IdCtaCble,
                    dc_Valor = g.Sum(q => q.dc_Valor)
                }).ToList();

                info_diario.lst_ct_cbtecble_det = info_diario.lst_ct_cbtecble_det.Where(q => q.dc_Valor != 0).ToList();
                //info_diario.lst_ct_cbtecble_det = info.lst_provisiones;
                info_diario.IdEmpresa  = info.IdEmpresa;
                info_diario.IdTipoCbte = TipoComprobante;
                info_diario.cb_Fecha   = info.Fechacontabilizacion;
                info_diario.IdPeriodo  = Convert.ToInt32(info.Fechacontabilizacion.Year.ToString() + info.Fechacontabilizacion.Month.ToString().PadLeft(2, '0'));

                //REVISA CARLOS FALTA IDSUCURSAL

                info_diario.cb_Observacion  = "Contabilización rol general del periodo " + info.IdPeriodo.ToString();
                info_diario.cb_Valor        = info.lst_provisiones.Where(q => q.IdSucursal == IdSucursal).Sum(v => v.dc_Valor);
                info_diario.IdUsuario       = info.UsuarioIngresa;
                info_diario.cb_FechaTransac = DateTime.Now;
                info_diario.cb_Estado       = "A";
                info_diario.IdUsuario       = info.UsuarioIngresa;

                return(info_diario);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public ActionResult Index(ImportacionDiarios_Info model)
        {
            model.ListaTipoDocumento = ImportacionDiarios_Lista.get_list(model.IdTransaccionSession);
            ct_cbtecble_Info model_comprobante = new ct_cbtecble_Info();

            model_comprobante.IdEmpresa           = model.IdEmpresa;
            model_comprobante.IdTipoCbte          = model.IdTipoCbte;
            model_comprobante.IdSucursal          = model.IdSucursal;
            model_comprobante.CodCbteCble         = model.Codigo;
            model_comprobante.cb_Fecha            = model.cb_Fecha;
            model_comprobante.cb_Valor            = Convert.ToDouble(model.ListaTipoDocumento.Sum(q => q.dc_ValorDebe));
            model_comprobante.cb_Observacion      = model.cb_Observacion;
            model_comprobante.lst_ct_cbtecble_det = new List <ct_cbtecble_det_Info>();
            model_comprobante.IdUsuario           = SessionFixed.IdUsuario;

            foreach (var item in model.ListaTipoDocumento)
            {
                ct_cbtecble_det_Info lista_det = new ct_cbtecble_det_Info();
                lista_det.dc_Valor          = Convert.ToDouble(item.dc_Valor);
                lista_det.dc_Observacion    = item.Detalle;
                lista_det.IdCtaCble         = item.IdCtaCble;
                lista_det.dc_para_conciliar = false;

                model_comprobante.lst_ct_cbtecble_det.Add(lista_det);
            }

            if (!validar(model_comprobante, ref mensaje))
            {
                cargar_filtros(model.IdEmpresa);
                ViewBag.mensaje = mensaje;
                return(View(model));
            }

            if (!bus_comprobante.guardarDB(model_comprobante))
            {
                cargar_filtros(model.IdEmpresa);
                return(View(model));
            }
            return(RedirectToAction("Index"));
        }
Exemplo n.º 4
0
        public ActionResult Anular(int IdEmpresa = 0, int IdTipoCbte = 0, decimal IdCbteCble = 0)
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion
            #region Permisos
            seg_Menu_x_Empresa_x_Usuario_Info info = bus_permisos.get_list_menu_accion(Convert.ToInt32(SessionFixed.IdEmpresa), SessionFixed.IdUsuario, "Contabilidad", "ComprobanteContable", "Index");
            if (!info.Anular)
            {
                return(RedirectToAction("Index"));
            }
            #endregion

            ct_cbtecble_Info model = bus_comprobante.get_info(IdEmpresa, IdTipoCbte, IdCbteCble);
            if (model == null)
            {
                return(RedirectToAction("Index"));
            }
            model.IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual);
            model.lst_ct_cbtecble_det  = bus_comprobante_detalle.get_list(IdEmpresa, IdTipoCbte, IdCbteCble);
            list_ct_cbtecble_det.set_list(model.lst_ct_cbtecble_det, model.IdTransaccionSession);

            #region Validacion Periodo
            ViewBag.MostrarBoton = true;
            if (!bus_periodo.ValidarFechaTransaccion(IdEmpresa, model.cb_Fecha, cl_enumeradores.eModulo.CONTA, model.IdSucursal, ref mensaje))
            {
                ViewBag.mensaje      = mensaje;
                ViewBag.MostrarBoton = false;
            }
            #endregion

            cargar_combos(model.IdEmpresa);
            return(View(model));
        }
        public ActionResult Anular(int IdEmpresa = 0, int IdTipoCbte = 0, decimal IdCbteCble = 0)
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion

            ct_cbtecble_Info model = bus_comprobante.get_info(IdEmpresa, IdTipoCbte, IdCbteCble);
            if (model == null)
            {
                return(RedirectToAction("Index"));
            }
            model.IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual);
            model.lst_ct_cbtecble_det  = bus_comprobante_detalle.get_list(IdEmpresa, IdTipoCbte, IdCbteCble);
            list_ct_cbtecble_det.set_list(model.lst_ct_cbtecble_det, model.IdTransaccionSession);
            cargar_combos(model.IdEmpresa);
            return(View(model));
        }
Exemplo n.º 6
0
 public ct_cbtecble_Info armar_info(List <ct_cbtecble_det_Info> lista, int IdEmpresa, int IdTipoCbte, decimal IdCbteCble, string Observacion, DateTime Fecha)
 {
     try
     {
         ct_cbtecble_Info info = new ct_cbtecble_Info
         {
             IdEmpresa      = IdEmpresa,
             IdTipoCbte     = IdTipoCbte,
             IdCbteCble     = IdCbteCble,
             cb_Observacion = Observacion,
             cb_Fecha       = Fecha,
             cb_Valor       = lista.Sum(q => q.dc_Valor_debe)
         };
         info.lst_ct_cbtecble_det = lista;
         info.lst_ct_cbtecble_det.ForEach(q => { q.IdEmpresa = IdEmpresa; q.IdTipoCbte = IdTipoCbte; q.IdCbteCble = IdCbteCble; });
         return(info);
     }
     catch (Exception)
     {
         throw;
     }
 }
 public ActionResult Nuevo(int IdEmpresa = 0)
 {
     #region Validar Session
     if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
     {
         return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
     }
     SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
     SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
     #endregion
     ct_cbtecble_Info model = new ct_cbtecble_Info
     {
         IdEmpresa            = IdEmpresa,
         cb_Fecha             = DateTime.Now,
         IdTipoCbte           = 1,
         IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual)
     };
     model.lst_ct_cbtecble_det = new List <ct_cbtecble_det_Info>();
     list_ct_cbtecble_det.set_list(model.lst_ct_cbtecble_det, model.IdTransaccionSession);
     cargar_combos();
     cargar_combos_detalle();
     return(View(model));
 }
Exemplo n.º 8
0
        public ActionResult Modificar(int IdEmpresa = 0, int IdTipoCbte = 0, decimal IdCbteCble = 0, bool Exito = false)
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion

            ct_cbtecble_Info model = bus_comprobante.get_info(IdEmpresa, IdTipoCbte, IdCbteCble);
            if (model == null)
            {
                return(RedirectToAction("Index"));
            }
            model.IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual);
            model.lst_ct_cbtecble_det  = bus_comprobante_detalle.get_list(IdEmpresa, IdTipoCbte, IdCbteCble);
            list_ct_cbtecble_det.set_list(model.lst_ct_cbtecble_det, model.IdTransaccionSession);
            cargar_combos(model.IdEmpresa);

            if (Exito)
            {
                ViewBag.MensajeSuccess = MensajeSuccess;
            }

            #region Validacion Periodo
            ViewBag.MostrarBoton = true;
            if (!bus_periodo.ValidarFechaTransaccion(IdEmpresa, model.cb_Fecha, cl_enumeradores.eModulo.CONTA, model.IdSucursal, ref mensaje))
            {
                ViewBag.mensaje      = mensaje;
                ViewBag.MostrarBoton = false;
            }
            #endregion

            return(View(model));
        }
Exemplo n.º 9
0
        public bool modificarDB(ct_anio_fiscal_x_tb_sucursal_Info info)
        {
            try
            {
                using (Entities_contabilidad Context = new Entities_contabilidad())
                {
                    var Fecha = info.IdanioFiscal + "-12-" + "31";
                    ct_anio_fiscal_x_tb_sucursal Entity = Context.ct_anio_fiscal_x_tb_sucursal.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdSucursal == info.IdSucursal && q.IdanioFiscal == info.IdanioFiscal);
                    if (Entity == null)
                    {
                        return(false);
                    }

                    ct_cbtecble_Info info_diario = armar_info(info.info_cbtecble_det, info.IdEmpresa, info.IdSucursal, Convert.ToInt32(info.IdTipoCbte), 0, info.Observacion, Convert.ToDateTime(Fecha));
                    //ct_cbtecble Entity_cbte = Context.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.IdUsuario;
                        info_diario.cb_Observacion   = info.Observacion;
                        if (data_cbtecble.modificarDB(info_diario))
                        {
                            info.IdTipoCbte = info_diario.IdTipoCbte;
                            info.IdCbteCble = info_diario.IdCbteCble;
                        }
                    }

                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 10
0
 public cp_nota_DebCre_Info()
 {
     info_proveedor  = new cp_proveedor_Info();
     info_comrobante = new ct_cbtecble_Info();
 }
Exemplo n.º 11
0
        public cp_orden_giro_Info()

        {
            info_retencion  = new cp_retencion_Info();
            info_comrobante = new ct_cbtecble_Info();
        }
Exemplo n.º 12
0
        public bool modificarDB(fa_notaCreDeb_Info info)
        {
            try
            {
                #region Variables
                int Secuencia               = 1;
                ct_cbtecble_Data odata_ct   = new ct_cbtecble_Data();
                cxc_cobro_Data   odata_cobr = new cxc_cobro_Data();
                #endregion

                using (Entities_facturacion db_f = new Entities_facturacion())
                {
                    #region Nota de debito credito

                    #region Cabecera
                    var entity = db_f.fa_notaCreDeb.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdSucursal == info.IdSucursal && q.IdBodega == info.IdBodega && q.IdNota == info.IdNota).FirstOrDefault();
                    if (entity == null)
                    {
                        return(false);
                    }

                    entity.IdPuntoVta = info.IdPuntoVta;
                    //entity.CodNota = info.CodNota;
                    entity.CreDeb             = info.CreDeb.Trim();
                    entity.CodDocumentoTipo   = info.CodDocumentoTipo;
                    entity.Serie1             = info.Serie1;
                    entity.Serie2             = info.Serie2;
                    entity.NumNota_Impresa    = info.NumNota_Impresa;
                    entity.NumAutorizacion    = info.NumAutorizacion;
                    entity.Fecha_Autorizacion = info.Fecha_Autorizacion;
                    entity.IdCliente          = info.IdCliente;
                    entity.IdContacto         = info.IdContacto;
                    entity.no_fecha           = info.no_fecha.Date;
                    entity.no_fecha_venc      = info.no_fecha_venc.Date;
                    entity.IdTipoNota         = info.IdTipoNota;
                    entity.sc_observacion     = info.sc_observacion;
                    entity.NaturalezaNota     = info.NaturalezaNota;
                    entity.IdCtaCble_TipoNota = info.IdCtaCble_TipoNota;
                    entity.IdUsuarioUltMod    = info.IdUsuarioUltMod;
                    entity.Fecha_UltMod       = DateTime.Now;

                    #endregion

                    #region Detalle
                    var lst = db_f.fa_notaCreDeb_det.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdSucursal == info.IdSucursal && q.IdBodega == info.IdBodega && q.IdNota == info.IdNota).ToList();
                    db_f.fa_notaCreDeb_det.RemoveRange(lst);

                    foreach (var item in info.lst_det)
                    {
                        db_f.fa_notaCreDeb_det.Add(new fa_notaCreDeb_det
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdSucursal          = info.IdSucursal,
                            IdBodega            = info.IdBodega,
                            IdNota              = info.IdNota,
                            Secuencia           = Secuencia++,
                            IdProducto          = item.IdProducto,
                            sc_cantidad         = item.sc_cantidad,
                            sc_cantidad_factura = item.sc_cantidad_factura,
                            sc_Precio           = item.sc_Precio,
                            sc_descUni          = item.sc_descUni,
                            sc_PordescUni       = item.sc_PordescUni,
                            sc_precioFinal      = item.sc_precioFinal,
                            vt_por_iva          = item.vt_por_iva,
                            sc_iva              = item.sc_iva,
                            IdCod_Impuesto_Iva  = item.IdCod_Impuesto_Iva,
                            sc_estado           = "A",
                            sc_subtotal         = item.sc_subtotal,
                            sc_total            = item.sc_total,

                            IdCentroCosto = item.IdCentroCosto,
                            IdCentroCosto_sub_centro_costo = item.IdCentroCosto_sub_centro_costo,
                            IdPunto_Cargo       = item.IdPunto_Cargo,
                            IdPunto_cargo_grupo = item.IdPunto_cargo_grupo
                        });
                    }
                    #endregion

                    #region Cruce
                    var lst_cruce = db_f.fa_notaCreDeb_x_fa_factura_NotaDeb.Where(q => q.IdEmpresa_nt == info.IdEmpresa && q.IdSucursal_nt == info.IdSucursal && q.IdBodega_nt == info.IdBodega && q.IdNota_nt == info.IdNota).ToList();
                    db_f.fa_notaCreDeb_x_fa_factura_NotaDeb.RemoveRange(lst_cruce);
                    Secuencia = 1;
                    foreach (var item in info.lst_cruce)
                    {
                        db_f.fa_notaCreDeb_x_fa_factura_NotaDeb.Add(new fa_notaCreDeb_x_fa_factura_NotaDeb
                        {
                            IdEmpresa_nt              = info.IdEmpresa,
                            IdSucursal_nt             = info.IdSucursal,
                            IdBodega_nt               = info.IdBodega,
                            IdNota_nt                 = info.IdNota,
                            secuencia                 = Secuencia++,
                            IdEmpresa_fac_nd_doc_mod  = item.IdEmpresa_fac_nd_doc_mod,
                            IdSucursal_fac_nd_doc_mod = item.IdSucursal_fac_nd_doc_mod,
                            IdBodega_fac_nd_doc_mod   = item.IdBodega_fac_nd_doc_mod,
                            IdCbteVta_fac_nd_doc_mod  = item.IdCbteVta_fac_nd_doc_mod,
                            vt_tipoDoc                = item.vt_tipoDoc,
                            Valor_Aplicado            = item.Valor_Aplicado,
                            fecha_cruce               = DateTime.Now,
                        });
                    }
                    #endregion

                    db_f.SaveChanges();

                    #endregion

                    #region Parametros
                    var parametros = db_f.fa_parametro.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                    var cliente    = db_f.fa_cliente.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdCliente == info.IdCliente).FirstOrDefault();
                    #endregion

                    #region Contabilidad
                    if (parametros != null && parametros.IdTipoCbteCble_NC != null && parametros.IdTipoCbteCble_ND != null)
                    {
                        var rel_conta           = db_f.fa_notaCreDeb_x_ct_cbtecble.Where(q => q.no_IdEmpresa == info.IdEmpresa && q.no_IdSucursal == info.IdSucursal && q.no_IdBodega == info.IdBodega && q.no_IdNota == info.IdNota).FirstOrDefault();
                        ct_cbtecble_Info diario = armar_diario(info, info.CreDeb.Trim() == "C" ? (int)parametros.IdTipoCbteCble_NC : (int)parametros.IdTipoCbteCble_ND, cliente.IdCtaCble_cxc_Credito, info.IdCtaCble_TipoNota);
                        if (diario != null)
                        {
                            if (rel_conta == null)
                            {
                                if (odata_ct.guardarDB(diario))
                                {
                                    db_f.fa_notaCreDeb_x_ct_cbtecble.Add(new fa_notaCreDeb_x_ct_cbtecble
                                    {
                                        no_IdEmpresa  = info.IdEmpresa,
                                        no_IdSucursal = info.IdSucursal,
                                        no_IdBodega   = info.IdBodega,
                                        no_IdNota     = info.IdNota,

                                        ct_IdEmpresa  = diario.IdEmpresa,
                                        ct_IdTipoCbte = diario.IdTipoCbte,
                                        ct_IdCbteCble = diario.IdCbteCble,

                                        observacion = info.CodDocumentoTipo + (info.NaturalezaNota == "SRI" ? ("-" + info.Serie1 + "-" + info.Serie2 + "-" + info.NumNota_Impresa) : info.IdNota.ToString("000000000"))
                                    });
                                    db_f.SaveChanges();
                                }
                            }
                            else
                            {
                                diario.IdCbteCble = rel_conta.ct_IdCbteCble;
                                odata_ct.modificarDB(diario);
                            }
                        }
                    }
                    #endregion

                    #region Cobranza
                    if (info.CreDeb.Trim() == "C" && info.lst_cruce.Count != 0)
                    {
                        cxc_cobro_Info cobro = armar_cobro(info);
                        if (cobro != null)
                        {
                            var rel_cobr = db_f.fa_notaCreDeb_x_cxc_cobro.Where(q => q.IdEmpresa_nt == info.IdEmpresa && q.IdSucursal_nt == info.IdSucursal && q.IdBodega_nt == info.IdBodega && q.IdNota_nt == info.IdNota).FirstOrDefault();
                            if (rel_cobr == null)
                            {
                                if (odata_cobr.guardarDB(cobro))
                                {
                                    db_f.fa_notaCreDeb_x_cxc_cobro.Add(new fa_notaCreDeb_x_cxc_cobro
                                    {
                                        IdEmpresa_nt   = info.IdEmpresa,
                                        IdSucursal_nt  = info.IdSucursal,
                                        IdBodega_nt    = info.IdBodega,
                                        IdNota_nt      = info.IdNota,
                                        IdEmpresa_cbr  = cobro.IdEmpresa,
                                        IdSucursal_cbr = cobro.IdSucursal,
                                        IdCobro_cbr    = cobro.IdCobro,
                                        Valor_cobro    = Math.Round(info.lst_cruce.Sum(q => q.Valor_Aplicado), 2, MidpointRounding.AwayFromZero)
                                    });
                                    db_f.SaveChanges();
                                }
                            }
                            else
                            {
                                cobro.IdCobro = rel_cobr.IdCobro_cbr;
                                odata_cobr.modificarDB(cobro);
                            }
                        }
                    }

                    #endregion
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 13
0
        public bool GuardarBD(cp_conciliacionAnticipo_Info info)
        {
            try
            {
                cp_parametros_Info info_parametros = new cp_parametros_Info();
                info_parametros = data_cp_parametro.get_info(info.IdEmpresa);

                using (Entities_contabilidad db_cont = new Entities_contabilidad())
                {
                    if (info_parametros != null && info_parametros.pa_TipoCbte_para_conci_x_antcipo != null)
                    {
                        ct_cbtecble_Info info_diario = armar_info(info.Lista_det_Cbte, info.IdEmpresa, info.IdSucursal, Convert.ToInt32(info_parametros.pa_TipoCbte_para_conci_x_antcipo), 0, info.Observacion, info.Fecha);

                        if (info_diario != null)
                        {
                            info_diario.IdUsuario = info.IdUsuarioCreacion;
                            if (data_cbtecble.guardarDB(info_diario))
                            {
                                info.IdTipoCbte = info_diario.IdTipoCbte;
                                info.IdCbteCble = info_diario.IdCbteCble;
                            }
                        }
                    }
                }

                using (Entities_cuentas_por_pagar db = new Entities_cuentas_por_pagar())
                {
                    db.cp_ConciliacionAnticipo.Add(new cp_ConciliacionAnticipo
                    {
                        IdEmpresa         = info.IdEmpresa,
                        IdConciliacion    = info.IdConciliacion = get_id(info.IdEmpresa),
                        IdSucursal        = info.IdSucursal,
                        IdProveedor       = info.IdProveedor,
                        Fecha             = info.Fecha,
                        Observacion       = info.Observacion,
                        IdTipoCbte        = info.IdTipoCbte,
                        IdCbteCble        = info.IdCbteCble,
                        Estado            = true,
                        IdUsuarioCreacion = info.IdUsuarioCreacion,
                        FechaCreacion     = DateTime.Now
                    });



                    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_cxp,
                                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)
            {
                eliminar(info.IdEmpresa, Convert.ToInt32(info.IdTipoCbte), Convert.ToDecimal(info.IdCbteCble));

                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 = "GuardarDB", IdUsuario = info.IdUsuarioCreacion
                });
                return(false);
            }
        }
Exemplo n.º 14
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);
            }
        }
Exemplo n.º 15
0
        private ct_cbtecble_Info armar_diario(fa_notaCreDeb_Info info, int IdTipoCbte, string IdCtaCble_cliente, string IdCtaCble_tipoNota)
        {
            try
            {
                string IdCtaCble_IVA = string.Empty;
                using (Entities_general Context = new Entities_general())
                {
                    var porcentajes = (from q in info.lst_det
                                       group q by new { q.IdCod_Impuesto_Iva } into g
                                       select g.Key).ToList();

                    foreach (var item in porcentajes)
                    {
                        var impuesto = Context.tb_sis_Impuesto_x_ctacble.Include("tb_sis_Impuesto").Where(q => q.IdEmpresa_cta == info.IdEmpresa && q.IdCod_Impuesto == item.IdCod_Impuesto_Iva).FirstOrDefault();
                        if (impuesto != null)
                        {
                            if (impuesto.tb_sis_Impuesto.porcentaje > 0)
                            {
                                IdCtaCble_IVA = impuesto.IdCtaCble;
                            }
                        }
                    }
                }

                #region Cabecera
                ct_cbtecble_Info diario = new ct_cbtecble_Info
                {
                    IdEmpresa           = info.IdEmpresa,
                    IdTipoCbte          = IdTipoCbte,
                    IdCbteCble          = 0,
                    cb_Fecha            = info.no_fecha.Date,
                    cb_Anio             = info.no_fecha.Date.Year,
                    cb_mes              = info.no_fecha.Date.Month,
                    IdPeriodo           = Convert.ToInt32(info.no_fecha.ToString("yyyyMM")),
                    IdUsuario           = info.IdUsuario,
                    IdUsuarioUltModi    = info.IdUsuarioUltMod,
                    cb_Observacion      = info.CodDocumentoTipo + (info.NaturalezaNota == "SRI" ? ("-" + info.Serie1 + "-" + info.Serie2 + "-" + info.NumNota_Impresa) : info.IdNota.ToString("000000000")) + info.sc_observacion,
                    CodCbteCble         = info.CodDocumentoTipo + (info.NaturalezaNota == "SRI" ? info.NumNota_Impresa : info.IdNota.ToString("000000000")),
                    cb_Valor            = 0,
                    lst_ct_cbtecble_det = new List <ct_cbtecble_det_Info>()
                };
                #endregion
                int secuencia = 1;

                #region Cuenta cliente
                if (!string.IsNullOrEmpty(IdCtaCble_cliente))
                {
                    diario.lst_ct_cbtecble_det.Add(new ct_cbtecble_det_Info
                    {
                        IdEmpresa         = diario.IdEmpresa,
                        IdTipoCbte        = diario.IdTipoCbte,
                        IdCbteCble        = diario.IdCbteCble,
                        secuencia         = secuencia++,
                        IdCtaCble         = IdCtaCble_cliente,
                        dc_Valor          = Math.Round(info.lst_det.Sum(q => q.sc_total), 2, MidpointRounding.AwayFromZero) * (info.CreDeb.Trim() == "C" ? -1 : 1),
                        dc_para_conciliar = false
                    });
                }
                #endregion

                #region IVA
                if (!string.IsNullOrEmpty(IdCtaCble_IVA))
                {
                    diario.lst_ct_cbtecble_det.Add(new ct_cbtecble_det_Info
                    {
                        IdEmpresa  = diario.IdEmpresa,
                        IdTipoCbte = diario.IdTipoCbte,
                        IdCbteCble = diario.IdCbteCble,
                        secuencia  = secuencia++,
                        IdCtaCble  = IdCtaCble_IVA,
                        dc_Valor   = Math.Round(info.lst_det.Where(q => q.vt_por_iva > 0).Sum(q => q.sc_iva), 2, MidpointRounding.AwayFromZero) * (info.CreDeb.Trim() == "C" ? 1 : -1)
                    });
                }
                #endregion

                #region Cuenta tipo nota
                if (!string.IsNullOrEmpty(IdCtaCble_tipoNota))
                {
                    diario.lst_ct_cbtecble_det.Add(new ct_cbtecble_det_Info
                    {
                        IdEmpresa         = diario.IdEmpresa,
                        IdTipoCbte        = diario.IdTipoCbte,
                        IdCbteCble        = diario.IdCbteCble,
                        secuencia         = secuencia++,
                        IdCtaCble         = IdCtaCble_tipoNota,
                        dc_Valor          = Math.Round(info.lst_det.Sum(q => q.sc_subtotal), 2, MidpointRounding.AwayFromZero) * (info.CreDeb.Trim() == "C" ? 1 : -1),
                        dc_para_conciliar = false,
                    });
                }
                #endregion

                if (info.lst_det.Count == 0)
                {
                    return(null);
                }

                if (Math.Round(diario.lst_ct_cbtecble_det.Sum(q => q.dc_Valor), 2, MidpointRounding.AwayFromZero) != 0)
                {
                    return(null);
                }

                if (diario.lst_ct_cbtecble_det.Where(q => q.dc_Valor == 0).Count() > 0)
                {
                    return(null);
                }

                return(diario);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 16
0
        public bool guardarDB(fa_notaCreDeb_Info info)
        {
            try
            {
                #region Variables
                int Secuencia               = 1;
                ct_cbtecble_Data odata_ct   = new ct_cbtecble_Data();
                cxc_cobro_Data   odata_cobr = new cxc_cobro_Data();
                #endregion

                using (Entities_facturacion db_f = new Entities_facturacion())
                {
                    #region Nota de debito credito

                    #region Cabecera
                    fa_notaCreDeb Entity = new fa_notaCreDeb
                                           //db_f.fa_notaCreDeb.Add(new fa_notaCreDeb
                    {
                        IdEmpresa          = info.IdEmpresa,
                        IdSucursal         = info.IdSucursal,
                        IdBodega           = info.IdBodega,
                        IdNota             = info.IdNota = get_id(info.IdEmpresa, info.IdSucursal, info.IdBodega),
                        IdPuntoVta         = info.IdPuntoVta,
                        CodNota            = info.CodNota,
                        CreDeb             = info.CreDeb.Trim(),
                        CodDocumentoTipo   = info.CodDocumentoTipo,
                        Serie1             = info.Serie1,
                        Serie2             = info.Serie2,
                        NumNota_Impresa    = info.NumNota_Impresa,
                        NumAutorizacion    = info.NumAutorizacion,
                        Fecha_Autorizacion = info.Fecha_Autorizacion,
                        IdCliente          = info.IdCliente,
                        no_fecha           = info.no_fecha.Date,
                        no_fecha_venc      = info.no_fecha_venc.Date,
                        IdTipoNota         = info.IdTipoNota,
                        sc_observacion     = info.sc_observacion,
                        Estado             = info.Estado = "A",
                        NaturalezaNota     = info.NaturalezaNota,
                        IdCtaCble_TipoNota = info.IdCtaCble_TipoNota,

                        IdUsuario = info.IdUsuario
                    };
                    #endregion

                    #region Detalle
                    foreach (var item in info.lst_det)
                    {
                        db_f.fa_notaCreDeb_det.Add(new fa_notaCreDeb_det
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdSucursal          = info.IdSucursal,
                            IdBodega            = info.IdBodega,
                            IdNota              = info.IdNota,
                            Secuencia           = Secuencia++,
                            IdProducto          = item.IdProducto,
                            sc_cantidad         = item.sc_cantidad,
                            sc_cantidad_factura = item.sc_cantidad_factura,
                            sc_Precio           = item.sc_Precio,
                            sc_descUni          = item.sc_descUni,
                            sc_PordescUni       = item.sc_PordescUni,
                            sc_precioFinal      = item.sc_precioFinal,
                            vt_por_iva          = item.vt_por_iva,
                            sc_iva              = item.sc_iva,
                            IdCod_Impuesto_Iva  = item.IdCod_Impuesto_Iva,
                            sc_subtotal         = item.sc_subtotal,
                            sc_total            = item.sc_total,
                            IdCentroCosto       = item.IdCentroCosto,
                            IdPunto_Cargo       = item.IdPunto_Cargo,
                            IdPunto_cargo_grupo = item.IdPunto_cargo_grupo
                        });
                    }
                    #endregion

                    #region Cruce
                    Secuencia = 1;
                    foreach (var item in info.lst_cruce)
                    {
                        db_f.fa_notaCreDeb_x_fa_factura_NotaDeb.Add(new fa_notaCreDeb_x_fa_factura_NotaDeb
                        {
                            IdEmpresa_nt              = info.IdEmpresa,
                            IdSucursal_nt             = info.IdSucursal,
                            IdBodega_nt               = info.IdBodega,
                            IdNota_nt                 = info.IdNota,
                            secuencia                 = Secuencia++,
                            IdEmpresa_fac_nd_doc_mod  = item.IdEmpresa_fac_nd_doc_mod,
                            IdSucursal_fac_nd_doc_mod = item.IdSucursal_fac_nd_doc_mod,
                            IdBodega_fac_nd_doc_mod   = item.IdBodega_fac_nd_doc_mod,
                            IdCbteVta_fac_nd_doc_mod  = item.IdCbteVta_fac_nd_doc_mod,
                            vt_tipoDoc                = item.vt_tipoDoc,
                            Valor_Aplicado            = item.Valor_Aplicado,
                            fecha_cruce               = DateTime.Now,
                        });
                    }
                    #endregion

                    #region Talonario
                    fa_PuntoVta_Data data_puntovta = new fa_PuntoVta_Data();
                    tb_sis_Documento_Tipo_Talonario_Data data_talonario = new tb_sis_Documento_Tipo_Talonario_Data();
                    fa_PuntoVta_Info info_puntovta = new fa_PuntoVta_Info();
                    tb_sis_Documento_Tipo_Talonario_Info ultimo_talonario = new tb_sis_Documento_Tipo_Talonario_Info();
                    tb_sis_Documento_Tipo_Talonario_Info info_talonario   = new tb_sis_Documento_Tipo_Talonario_Info();
                    info_puntovta = data_puntovta.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta);

                    if (info_puntovta != null && info.NaturalezaNota == "SRI")
                    {
                        if (info_puntovta.EsElectronico == true)
                        {
                            ultimo_talonario = data_talonario.GetUltimoNoUsado(info.IdEmpresa, info_puntovta.codDocumentoTipo, info_puntovta.Su_CodigoEstablecimiento, info_puntovta.cod_PuntoVta, info_puntovta.EsElectronico, true);

                            if (ultimo_talonario != null)
                            {
                                Entity.Serie1          = info.Serie1 = ultimo_talonario.Establecimiento;
                                Entity.Serie2          = info.Serie2 = ultimo_talonario.PuntoEmision;
                                Entity.NumNota_Impresa = info.NumNota_Impresa = ultimo_talonario.NumDocumento;
                            }
                        }
                        else
                        {
                            info_talonario.IdEmpresa        = info.IdEmpresa;
                            info_talonario.CodDocumentoTipo = info.CodDocumentoTipo;
                            info_talonario.Establecimiento  = info.Serie1;
                            info_talonario.PuntoEmision     = info.Serie2;
                            info_talonario.NumDocumento     = info.NumNota_Impresa;
                            info_talonario.IdSucursal       = info.IdSucursal;
                            info_talonario.Usado            = true;

                            data_talonario.modificar_estado_usadoDB(info_talonario);
                        }
                    }
                    else
                    {
                        Entity.Serie1          = null;
                        Entity.Serie2          = null;
                        Entity.NumNota_Impresa = null;
                    }
                    #endregion

                    db_f.fa_notaCreDeb.Add(Entity);
                    db_f.SaveChanges();

                    #endregion

                    #region Parametros
                    var parametros = db_f.fa_parametro.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault();
                    var cliente    = db_f.fa_cliente.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdCliente == info.IdCliente).FirstOrDefault();
                    #endregion

                    #region Contabilidad
                    if (parametros != null)
                    {
                        ct_cbtecble_Info diario = armar_diario(info, info.CreDeb.Trim() == "C" ? (int)parametros.IdTipoCbteCble_NC : (int)parametros.IdTipoCbteCble_ND, cliente.IdCtaCble_cxc_Credito, info.IdCtaCble_TipoNota);
                        if (diario != null)
                        {
                            if (odata_ct.guardarDB(diario))
                            {
                                db_f.fa_notaCreDeb_x_ct_cbtecble.Add(new fa_notaCreDeb_x_ct_cbtecble
                                {
                                    no_IdEmpresa  = info.IdEmpresa,
                                    no_IdSucursal = info.IdSucursal,
                                    no_IdBodega   = info.IdBodega,
                                    no_IdNota     = info.IdNota,

                                    ct_IdEmpresa  = diario.IdEmpresa,
                                    ct_IdTipoCbte = diario.IdTipoCbte,
                                    ct_IdCbteCble = diario.IdCbteCble,

                                    observacion = info.CodDocumentoTipo + (info.NaturalezaNota == "SRI" ? ("-" + info.Serie1 + "-" + info.Serie2 + "-" + info.NumNota_Impresa) : info.IdNota.ToString("000000000"))
                                });
                                db_f.SaveChanges();
                            }
                        }
                    }
                    #endregion

                    #region Cobranza
                    if (info.CreDeb.Trim() == "C" && info.lst_cruce.Count != 0)
                    {
                        cxc_cobro_Info cobro = armar_cobro(info);
                        if (cobro != null)
                        {
                            if (odata_cobr.guardarDB(cobro))
                            {
                                db_f.fa_notaCreDeb_x_cxc_cobro.Add(new fa_notaCreDeb_x_cxc_cobro
                                {
                                    IdEmpresa_nt   = info.IdEmpresa,
                                    IdSucursal_nt  = info.IdSucursal,
                                    IdBodega_nt    = info.IdBodega,
                                    IdNota_nt      = info.IdNota,
                                    IdEmpresa_cbr  = cobro.IdEmpresa,
                                    IdSucursal_cbr = cobro.IdSucursal,
                                    IdCobro_cbr    = cobro.IdCobro,
                                    Valor_cobro    = Math.Round(info.lst_cruce.Sum(q => q.Valor_Aplicado), 2, MidpointRounding.AwayFromZero)
                                });
                                db_f.SaveChanges();
                            }
                        }
                    }

                    #endregion
                }

                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 = "fa_notaCreDeb_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuario
                });
                return(false);
            }
        }
Exemplo n.º 17
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),
                        IdSucursal     = Entity.IdSucursal,
                        cb_Estado      = Entity.cb_Estado = "A",
                        cb_Fecha       = DateTime.Now.Date,
                        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,
                            dc_para_conciliar   = false,
                            IdCentroCosto       = item.IdCentroCosto,
                            IdPunto_cargo       = item.IdPunto_cargo,
                            IdPunto_cargo_grupo = item.IdPunto_cargo_grupo
                        };
                        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   = info.cb_MotivoAnu;
                    Entity.cb_Estado      = info.cb_Estado = "I";
                    Entity.IdUsuarioAnu   = info.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)
            {
                throw;
            }
        }
Exemplo n.º 18
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       = 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);
            }
        }
Exemplo n.º 19
0
        public bool ContabilizarPeriodo(ro_rol_Info info)
        {
            try
            {
                ro_parametro = new ro_Parametros_Data();
                ro_Comprobantes_Contables_Info info_comprobanteID = new ro_Comprobantes_Contables_Info();
                ct_cbtecble_Info info_ctb = null;
                info_parametro = ro_parametro.get_info(info.IdEmpresa);

                var lstSucursal = info.lst_sueldo_x_pagar.GroupBy(q => new { q.IdSucursal, q.Su_Descripcion }).Select(q => new { IdSucursal = q.Key.IdSucursal, Su_Descripcion = q.Key.Su_Descripcion });
                foreach (var item in lstSucursal)
                {
                    info_ctb = get_armar_diario_sueldo(info, Convert.ToInt32(info_parametro.IdTipoCbte_AsientoSueldoXPagar), item.IdSucursal ?? 0);
                    if (info_ctb == null)
                    {
                        return(false);
                    }

                    info_ctb.IdSucursal = item.IdSucursal ?? 0;

                    if (info_ctb != null)
                    {
                        if (odata_comprobante.guardarDB(info_ctb))
                        {
                            // grabando los ID del asiento sueldo por pagar
                            info_comprobanteID.IdEmpresa     = info.IdEmpresa;
                            info_comprobanteID.IdNomina      = info.IdNomina_Tipo;
                            info_comprobanteID.IdNominaTipo  = info.IdNomina_TipoLiqui;
                            info_comprobanteID.IdPeriodo     = info.IdPeriodo;
                            info_comprobanteID.IdTipoCbte    = info_ctb.IdTipoCbte;
                            info_comprobanteID.IdCbteCble    = info_ctb.IdCbteCble;
                            info_comprobanteID.IdRol         = info.IdRol;
                            info_comprobanteID.IdEmpresa_rol = info.IdEmpresa;
                            ro_comprobante.grabarDB(info_comprobanteID);
                            info_ctb = null;
                            if (info.lst_provisiones.Count() > 0)
                            {
                                info_ctb = get_armar_diario_provisiones(info, Convert.ToInt32(info_parametro.IdTipoCbte_AsientoSueldoXPagar), item.IdSucursal ?? 0);
                                if (info_ctb == null)
                                {
                                    return(false);
                                }
                                info_ctb.IdSucursal = item.IdSucursal ?? 0;
                            }
                            if (info_ctb != null)
                            {
                                if (odata_comprobante.guardarDB(info_ctb))
                                {
                                    // grabando los ID del asiento sueldo por pagar
                                    info_comprobanteID               = new ro_Comprobantes_Contables_Info();
                                    info_comprobanteID.IdEmpresa     = info.IdEmpresa;
                                    info_comprobanteID.IdNomina      = info.IdNomina_Tipo;
                                    info_comprobanteID.IdNominaTipo  = info.IdNomina_TipoLiqui;
                                    info_comprobanteID.IdPeriodo     = info.IdPeriodo;
                                    info_comprobanteID.IdTipoCbte    = info_ctb.IdTipoCbte;
                                    info_comprobanteID.IdCbteCble    = info_ctb.IdCbteCble;
                                    info_comprobanteID.IdRol         = info.IdRol;
                                    info_comprobanteID.IdEmpresa_rol = info.IdEmpresa;
                                    ro_comprobante.grabarDB(info_comprobanteID);
                                }
                            }
                        }
                    }
                }
                odata.ContabilizarPeriodo(info);

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 20
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);
            }
        }
Exemplo n.º 21
0
        public bool guardar_importacionDB(cp_nota_DebCre_Info info)
        {
            try
            {
                cp_proveedor_Bus bus_proveedor = new cp_proveedor_Bus();
                var prov          = bus_proveedor.get_info(info.IdEmpresa, info.IdProveedor);
                var cp_parametros = bus_cp_parametro.get_info(info.IdEmpresa);
                info.info_comrobante = new ct_cbtecble_Info();

                ct_cbtecble_Info diario = new ct_cbtecble_Info
                {
                    IdEmpresa       = info.IdEmpresa,
                    IdTipoCbte      = info.IdTipoCbte_Nota,
                    IdCbteCble      = info.IdCbteCble_Nota,
                    cb_Fecha        = info.cn_fecha,
                    cb_Observacion  = info.cn_observacion,
                    IdPeriodo       = Convert.ToInt32(info.cn_fecha.Year.ToString() + info.cn_fecha.Month.ToString().PadLeft(2, '0')),
                    IdSucursal      = info.IdSucursal,
                    cb_FechaTransac = DateTime.Now,

                    cb_Estado = "A"
                };

                if (prov != null)
                {
                    if (info.cn_observacion == null)
                    {
                        info.cn_observacion = "";
                    }
                    diario.cb_Observacion = "Prov: " + prov.info_persona.pe_nombreCompleto + " " + info.cn_observacion;
                }
                else
                {
                    diario.cb_Observacion = info.cn_observacion;
                }

                info.info_comrobante = diario;
                info.info_comrobante.lst_ct_cbtecble_det = new List <ct_cbtecble_det_Info>();

                ct_cbtecble_det_Info diario_det = new ct_cbtecble_det_Info
                {
                    IdEmpresa  = info.IdEmpresa,
                    IdTipoCbte = diario.IdTipoCbte,
                    IdCbteCble = diario.IdCbteCble,
                    secuencia  = 1,
                    IdCtaCble  = prov.IdCtaCble_CXP,
                    dc_Valor   = Math.Round(Convert.ToDouble(info.cn_total), 2, MidpointRounding.AwayFromZero),
                };
                info.info_comrobante.lst_ct_cbtecble_det.Add(diario_det);

                ct_cbtecble_det_Info diario_det_ = new ct_cbtecble_det_Info
                {
                    IdEmpresa  = diario.IdEmpresa,
                    IdTipoCbte = diario.IdTipoCbte,
                    IdCbteCble = diario.IdCbteCble,
                    secuencia  = 2,
                    IdCtaCble  = prov.IdCtaCble_CXP,
                    dc_Valor   = Math.Round(Convert.ToDouble(info.cn_total), 2, MidpointRounding.AwayFromZero) * -1
                };
                info.info_comrobante.lst_ct_cbtecble_det.Add(diario_det_);


                if (bus_contabilidad.guardarDB(info.info_comrobante))
                {
                    info.IdTipoCbte_Nota = info.info_comrobante.IdTipoCbte;
                    info.IdCbteCble_Nota = info.info_comrobante.IdCbteCble;
                    info.Estado          = "A";
                    info.cn_vaCoa        = "N";
                    info.IdTipoNota      = info.IdTipoNota;
                    if (data.guardarDB(info))
                    {
                        return(true);
                    }
                }
                return(false);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 22
0
 public cp_orden_pago_Info()
 {
     detalle          = new List <cp_orden_pago_det_Info>();
     info_comprobante = new ct_cbtecble_Info();
 }
Exemplo n.º 23
0
 public cp_retencion_Info()
 {
     detalle          = new List <cp_retencion_det_Info>();
     info_comprobante = new ct_cbtecble_Info();
 }