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; } }
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()); } }
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; } }
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()); } }