Пример #1
0
        public cxc_XML_Documento_Info GetInfoParaCruzar(int IdEmpresa, string dc_TipoDocumento, string NumDocSustento, double ValorRetenido, decimal IdCliente)
        {
            try
            {
                cxc_XML_Documento_Info   info  = new cxc_XML_Documento_Info();
                EntitiesFacturacion      dbFac = new EntitiesFacturacion();
                EntitiesCuentas_x_Cobrar dbCxc = new EntitiesCuentas_x_Cobrar();

                string Establecimiento = NumDocSustento.Substring(0, 3);
                string PuntoEmision    = NumDocSustento.Substring(3, 3);
                string NumeroDocumento = NumDocSustento.Substring(6, 9);

                if (dc_TipoDocumento == "FACT")
                {
                    var Factura = dbFac.vwfa_factura.Where(q => q.IdEmpresa == IdEmpresa && q.vt_serie1 == Establecimiento && q.vt_serie2 == PuntoEmision && q.vt_NumFactura == NumeroDocumento && q.Estado == "A" && q.IdCliente == IdCliente).FirstOrDefault();
                    if (Factura != null)
                    {
                        info.IdEmpresa       = Factura.IdEmpresa;
                        info.IdSucursal      = Factura.IdSucursal;
                        info.IdBodega_Cbte   = Factura.IdBodega;
                        info.IdCbte_vta_nota = Factura.IdCbteVta;

                        int CobroRetencion = dbCxc.cxc_cobro_det.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdSucursal == info.IdSucursal && q.IdBodega_Cbte == info.IdBodega_Cbte && q.IdCbte_vta_nota == info.IdCbte_vta_nota && q.cxc_cobro.cr_estado == "A" && q.cxc_cobro.IdCobro_tipo.Contains("RT")).Count();
                        if (CobroRetencion > 0)
                        {
                            info.AplicaRetencion = 2;
                            info.Motivo          = "Documento ya tiene una retención aplicada";
                            return(info);
                        }

                        if (Math.Round(Factura.vt_saldo, 2, MidpointRounding.AwayFromZero) >= Math.Round(ValorRetenido, 2, MidpointRounding.AwayFromZero))
                        {
                            info.AplicaRetencion = 1;
                        }
                        else
                        {
                            info.AplicaRetencion = 2;
                            info.Motivo          = "Documento no tiene saldo suficiente, \nTiene: " + Math.Round(Factura.vt_saldo, 2, MidpointRounding.AwayFromZero).ToString("c2") + "\nNecesita: " + Math.Round(ValorRetenido, 2, MidpointRounding.AwayFromZero).ToString("c2");
                        }
                    }
                    else
                    {
                        info.Motivo = "No existe documento " + NumDocSustento;
                    }
                }

                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #2
0
        public List <fa_notaCreDeb_graf_Info> Get_List_Notas(int IdEmpresa, int IdSucursal, int IdBodega, decimal IdNota, ref string msg)
        {
            try
            {
                List <fa_notaCreDeb_graf_Info> lst   = new List <fa_notaCreDeb_graf_Info>();
                EntitiesFacturacion            OEnti = new EntitiesFacturacion();

                EntitiesFacturacion_Grafinpren Base = new EntitiesFacturacion_Grafinpren();
                var query = from v in Base.vwfa_NotaCre_graf
                            where v.IdEmpresa == IdEmpresa &&
                            v.IdSucursal == IdSucursal &&
                            v.IdBodega == IdBodega &&
                            v.IdNota == IdNota
                            select v;
                foreach (var item in query)
                {
                    fa_notaCreDeb_graf_Info info = new fa_notaCreDeb_graf_Info();

                    info.num_cotizacion   = item.num_cotizacion;
                    info.num_op           = item.num_op;
                    info.fecha_cotizacion = Convert.ToDateTime(item.fecha_cotizacion);
                    info.IdEquipo         = item.IdEquipo;
                    info.nom_equipo       = item.nom_Equipo;
                    info.porc_comision    = item.porc_comision;
                    info.fecha_op         = item.fecha_op;

                    //datos adicionales
                    info.sc_observacion = item.sc_observacion;
                    info.pe_direccion   = item.pe_direccion;
                    info.pe_correo      = item.pe_correo;

                    lst.Add(info);
                }
                return(lst);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                msg = ex.ToString();
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref msg);
                throw new Exception(ex.ToString());
            }
        }
Пример #3
0
        private decimal ArmarCobro(int IdEmpresa,
                                   int IdSucursal,
                                   decimal IdCliente,
                                   DateTime Fecha,
                                   string NumRetencion,
                                   string IdUsuario,
                                   cxc_XML_DocumentoDet_Info InfoDet)
        {
            try
            {
                EntitiesFacturacion      dbFac = new EntitiesFacturacion();
                EntitiesCuentas_x_Cobrar dbCxc = new EntitiesCuentas_x_Cobrar();

                #region Cabecera
                cxc_cobro cobro = new cxc_cobro
                {
                    IdEmpresa         = IdEmpresa,
                    IdSucursal        = IdSucursal,
                    IdCobro           = odata.GetId(IdEmpresa, IdSucursal),
                    IdCobro_tipo      = InfoDet.IdCobro_tipo,
                    IdCliente         = IdCliente,
                    cr_TotalCobro     = Convert.ToDouble(InfoDet.ValorRetenido),
                    cr_fecha          = Fecha.Date,
                    cr_fechaCobro     = Fecha.Date,
                    cr_fechaDocu      = Fecha.Date,
                    cr_observacion    = "Canc/:FACT" + InfoDet.NumDocSustento,
                    cr_cuenta         = "",
                    cr_NumDocumento   = NumRetencion,
                    cr_Tarjeta        = "",
                    cr_propietarioCta = "",
                    cr_estado         = "A",
                    cr_es_anticipo    = "N",
                    IdUsuario         = IdUsuario,
                    Fecha_Transac     = DateTime.Now,
                    nom_pc            = "",
                    ip     = "",
                    IdCaja = 1
                };
                dbCxc.cxc_cobro.Add(cobro);
                #endregion

                #region Detalle
                dbCxc.cxc_cobro_det.Add(new cxc_cobro_det
                {
                    IdEmpresa        = cobro.IdEmpresa,
                    IdSucursal       = cobro.IdSucursal,
                    IdCobro          = cobro.IdCobro,
                    secuencial       = 1,
                    IdBodega_Cbte    = InfoDet.IdBodega_Cbte,
                    IdCbte_vta_nota  = InfoDet.IdCbte_vta_nota ?? 0,
                    dc_TipoDocumento = InfoDet.dc_TipoDocumento,
                    dc_ValorPago     = Convert.ToDouble(InfoDet.ValorRetenido),
                    IdUsuario        = IdUsuario,
                    Fecha_Transac    = DateTime.Now,
                    estado           = "A"
                });
                #endregion

                #region Cobros por estado
                dbCxc.cxc_cobro_x_EstadoCobro.Add(new cxc_cobro_x_EstadoCobro
                {
                    IdEmpresa       = cobro.IdEmpresa,
                    IdSucursal      = cobro.IdSucursal,
                    IdCobro         = cobro.IdCobro,
                    IdEstadoCobro   = "COBR",
                    Secuencia       = 1,
                    IdCobro_tipo    = cobro.IdCobro_tipo,
                    observacion     = cobro.cr_observacion,
                    Fecha           = cobro.cr_fecha,
                    IdBanco         = 0,
                    IdCbte_vta_nota = 0,
                    IdUsuario       = cobro.IdUsuario,
                    nom_pc          = cobro.nom_pc,
                    ip = cobro.ip
                });
                #endregion

                dbCxc.SaveChanges();

                return(cobro.IdCobro);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #4
0
        public List <Core.Erp.Info.Facturacion.fa_notaCreDeb_Info> Get_List_Notas(int idEmpresa, int idSucursalIni, int idSucursalFin, int idBodegaIni, int idBodegaFin, DateTime FechaIni, DateTime FechaFin, string CreDeb, ref string msg)
        {
            try
            {
                List <Core.Erp.Info.Facturacion.fa_notaCreDeb_Info> lst = new List <Core.Erp.Info.Facturacion.fa_notaCreDeb_Info>();
                EntitiesFacturacion OEnti = new EntitiesFacturacion();
                if (idSucursalFin == 0)
                {
                    idSucursalIni = 0;
                    idSucursalFin = 5000;
                }

                if (idBodegaFin == 0)
                {
                    idBodegaIni = 0;
                    idBodegaFin = 5000;
                }

                EntitiesFacturacion_Grafinpren Base = new EntitiesFacturacion_Grafinpren();
                var query = from v in Base.vwfa_NotaCre_graf
                            where v.IdEmpresa == idEmpresa &&
                            v.IdBodega >= idBodegaIni &&
                            v.IdBodega <= idBodegaFin &&
                            v.IdSucursal >= idSucursalIni &&
                            v.IdSucursal <= idSucursalFin &&
                            v.CreDeb == CreDeb
                            orderby v.IdNota descending
                            select v;
                foreach (var item in query)
                {
                    Core.Erp.Info.Facturacion.fa_notaCreDeb_Info info = new Core.Erp.Info.Facturacion.fa_notaCreDeb_Info();

                    info.NotaCreDeb_Graf_Info.IdNota           = item.IdNota;
                    info.NotaCreDeb_Graf_Info.num_cotizacion   = item.num_cotizacion;
                    info.NotaCreDeb_Graf_Info.num_op           = item.num_op;
                    info.NotaCreDeb_Graf_Info.fecha_cotizacion = item.fecha_cotizacion;
                    info.NotaCreDeb_Graf_Info.IdEquipo         = item.IdEquipo;
                    info.NotaCreDeb_Graf_Info.nom_equipo       = item.nom_Equipo;
                    info.NotaCreDeb_Graf_Info.porc_comision    = item.porc_comision;
                    info.NotaCreDeb_Graf_Info.fecha_op         = item.fecha_op;
                    info.IdEmpresa  = item.IdEmpresa;
                    info.IdSucursal = item.IdSucursal;
                    info.IdBodega   = item.IdBodega;
                    info.Vendedor   = item.Vendedor;
                    info.Cliente    = item.Cliente;

                    info.CodDocumentoTipo = item.CodDocumentoTipo;
                    info.Serie1           = item.Serie1;
                    info.Serie2           = item.Serie2;
                    info.NumNota_Impresa  = item.NumNota_Impresa;


                    info.NaturalezaNota         = item.NaturalezaNota;
                    info.IdCliente              = item.IdCliente;
                    info.IdVendedor             = item.IdVendedor;
                    info.IdNota                 = item.IdNota;
                    info.IdTipoNota             = item.IdTipoNota;
                    info.IdCtaCble_TipoNota     = item.IdCtaCble_TipoNota;
                    info.CodNota                = item.CodNota;
                    info.no_fecha               = item.no_fecha;
                    info.CreDeb                 = item.CreDeb;
                    info.no_fecha_venc          = item.no_fecha_venc;
                    info.fecha_Ctble            = item.fecha_Ctble == null ? item.no_fecha : item.fecha_Ctble;
                    info.sc_observacion         = item.sc_observacion;
                    info.IdCaja                 = item.IdCaja;
                    info.Estado                 = item.Estado;
                    info.IdEmpresa_fac_doc_mod  = item.IdEmpresa_fac_doc_mod;
                    info.IdSucursal_fac_doc_mod = item.IdSucursal_fac_doc_mod;
                    info.IdBodega_fac_doc_mod   = item.IdBodega_fac_doc_mod;
                    info.IdCbteVta_fac_doc_mod  = item.IdCbteVta_fac_doc_mod;
                    info.Total = item.sc_total == null ? 0 : (double)item.sc_total;
                    lst.Add(info);
                }

                return(lst);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                msg = ex.ToString();
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref msg);
                throw new Exception(ex.ToString());
            }
        }