本文整理汇总了C#中LQCE.Modelo.LQCEEntities.ApplyPropertyChanges方法的典型用法代码示例。如果您正苦于以下问题:C# LQCEEntities.ApplyPropertyChanges方法的具体用法?C# LQCEEntities.ApplyPropertyChanges怎么用?C# LQCEEntities.ApplyPropertyChanges使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LQCE.Modelo.LQCEEntities
的用法示例。
在下文中一共展示了LQCEEntities.ApplyPropertyChanges方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AnularFacturas
public void AnularFacturas(List<int> LISTA_ID_FACTURA)
{
Init();
//ListaDetalleFactura = new List<DTO_REPORTE_DETALLEFACTURA_PRESTACION>();
try
{
using (LQCEEntities context = new LQCEEntities())
{
RepositorioFACTURA _RepositorioFACTURA = new RepositorioFACTURA(context);
foreach (int ID_FACTURA in LISTA_ID_FACTURA)
{
FACTURA _FACTURA = _RepositorioFACTURA.GetByIdWithReferences(ID_FACTURA);
if (_FACTURA == null)
throw new Exception("No se encuentra informacion de la factura");
if (_FACTURA.NUMERO_FACTURA.HasValue)
throw new Exception("La factura ya ha sido numerada");
if (_FACTURA.NOTA_CREDITO.Any(nc => nc.ACTIVO))
throw new Exception("La factura tiene notas de créditos asociadas");
_FACTURA.ACTIVO = false;
foreach (FACTURA_DETALLE _FACTURA_DETALLE in _FACTURA.FACTURA_DETALLE.Where(fd => fd.ACTIVO))
{
_FACTURA_DETALLE.ACTIVO = false;
context.ApplyPropertyChanges("FACTURA_DETALLE", _FACTURA_DETALLE);
}
context.ApplyPropertyChanges("FACTURA", _FACTURA);
context.SaveChanges();
}
}
}
catch (Exception ex)
{
ISException.RegisterExcepcion(ex);
Error = ex.Message;
throw ex;
}
}
示例2: CambiarEstadoCarga
//.........这里部分代码省略.........
CARGA_PRESTACIONES_ESTADO objEstado = _RepositorioCARGA_PRESTACIONES_ESTADO.GetById(IdCargaPrestacionesEstado);
if (objEstado == null)
throw new Exception("No se encuentra informacion del estado");
// Validaciones
if (objEncabezado.CARGA_PRESTACIONES_ESTADO.ID != (int)ENUM_CARGA_PRESTACIONES_ESTADO.Pendiente)
throw new Exception("La carga seleccionada no esta en revision pendiente");
int IdCargaDetalleEstadoPendiente = (int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Pendiente;
int IdCargaDetalleEstadoValidado = (int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Validado;
if (objEstado.ID == (int)ENUM_CARGA_PRESTACIONES_ESTADO.Completado)
{
if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Humanas)
{
if (objEncabezado.CARGA_PRESTACIONES_HUMANAS_DETALLE
.Any(d => d.CARGA_PRESTACIONES_DETALLE_ESTADO.ID != IdCargaDetalleEstadoValidado))
{
throw new Exception("La carga no se puede completar mientras tenga fichas pendientes o con errores");
}
}
else if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Veterinarias)
{
if (objEncabezado.CARGA_PRESTACIONES_VETERINARIAS_DETALLE
.Any(d => d.CARGA_PRESTACIONES_DETALLE_ESTADO.ID != IdCargaDetalleEstadoValidado))
{
throw new Exception("La carga no se puede completar mientras tenga fichas pendientes o con errores");
}
}
}
objEncabezado.CARGA_PRESTACIONES_ESTADO = objEstado;
context.ApplyPropertyChanges("CARGA_PRESTACIONES_ENCABEZADO", objEncabezado);
// Mover prestaciones y examenes a tablas definitivas
if (objEstado.ID == (int)ENUM_CARGA_PRESTACIONES_ESTADO.Completado)
{
if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Humanas)
{
TIPO_PRESTACION _TIPO_PRESTACION = _RepositorioTIPO_PRESTACION.GetById((int)ENUM_TIPO_PRESTACION.Humanas);
if (_TIPO_PRESTACION == null)
throw new Exception("No se encuentra informacion de tipo de prestación humana");
foreach (CARGA_PRESTACIONES_HUMANAS_DETALLE _CARGA_PRESTACIONES_HUMANAS_DETALLE in objEncabezado.CARGA_PRESTACIONES_HUMANAS_DETALLE
.Where(d => d.ACTIVO && d.CARGA_PRESTACIONES_DETALLE_ESTADO.ID == (int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Validado))
{
if (string.IsNullOrEmpty(_CARGA_PRESTACIONES_HUMANAS_DETALLE.NOMBRE))
throw new Exception("No se ha señalado nombre");
if (!_CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_FICHA.HasValue)
throw new Exception("No se ha señalado ficha");
if (!_CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_FECHA_RECEPCION.HasValue)
throw new Exception("Fecha de recepción debe tener valor");
if(_CARGA_PRESTACIONES_HUMANAS_DETALLE.CLIENTE == null)
throw new Exception("No se ha identificado al cliente");
if (!_CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_TOTAL.HasValue)
throw new Exception("No se ha señalado valor total de prestaciones");
PRESTACION _PRESTACION = new PRESTACION();
_PRESTACION.ID = _CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_FICHA.Value;
_PRESTACION.TIPO_PRESTACION = _TIPO_PRESTACION;
_PRESTACION.FECHA_RECEPCION = _CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_FECHA_RECEPCION.Value;
_PRESTACION.MEDICO = _CARGA_PRESTACIONES_HUMANAS_DETALLE.MEDICO;
_PRESTACION.CLIENTE = _CARGA_PRESTACIONES_HUMANAS_DETALLE.CLIENTE;
_PRESTACION.PREVISION = _CARGA_PRESTACIONES_HUMANAS_DETALLE.PREVISION1;
_PRESTACION.GARANTIA = _CARGA_PRESTACIONES_HUMANAS_DETALLE.GARANTIA1;
示例3: ActualizarCargaPrestacionHumana
public DTO_RESULTADO_ACTUALIZACION_FICHA ActualizarCargaPrestacionHumana(int IdCargaPrestacionHumanaDetalle,
string Ficha, string Nombre, string FechaRecepcion, string Telefono, string Medico,
string Procedencia, string Prevision, string Garantia, string Pendiente, string Pagado,
string Total, string Recepcion, string Edad, string Rut,
int IdCargaPrestacionesDetalleEstado, string MensajeError,
List<DTOExamen> Examenes)
{
Init();
try
{
//ISException.RegisterExcepcion("FechaRecepcion " + FechaRecepcion);
//ISException.RegisterExcepcion("FechaResultados " + FechaResultados);
using (LQCEEntities context = new LQCEEntities())
{
RepositorioCARGA_PRESTACIONES_HUMANAS_DETALLE _RepositorioCARGA_PRESTACIONES_HUMANAS_DETALLE = new RepositorioCARGA_PRESTACIONES_HUMANAS_DETALLE(context);
RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO _RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO = new RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO(context);
var objEstadoDetalle = _RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO.GetById(IdCargaPrestacionesDetalleEstado);
if (objEstadoDetalle == null)
throw new Exception("No se encuentra estado de detalle");
var objDetalle = _RepositorioCARGA_PRESTACIONES_HUMANAS_DETALLE.GetByIdWithReferencesFull(IdCargaPrestacionHumanaDetalle);
if (objDetalle.CARGA_PRESTACIONES_ENCABEZADO.CARGA_PRESTACIONES_ESTADO.ID != (int)ENUM_CARGA_PRESTACIONES_ESTADO.Pendiente)
throw new Exception("La carga seleccionada no se encuentra en proceso de Revisión Pendiente");
objDetalle.FICHA = Ficha;
objDetalle.NOMBRE = Nombre;
objDetalle.FECHA_RECEPCION = FechaRecepcion;
objDetalle.TELEFONO = Telefono;
objDetalle.MEDICO = Medico;
objDetalle.PROCEDENCIA = Procedencia;
objDetalle.PREVISION = Prevision;
objDetalle.GARANTIA = Garantia;
objDetalle.PENDIENTE = Pendiente;
objDetalle.PAGADO = Pagado;
objDetalle.TOTAL = Total;
objDetalle.RECEPCION = Recepcion;
objDetalle.EDAD = Edad;
objDetalle.RUT = Rut;
objDetalle.CARGA_PRESTACIONES_DETALLE_ESTADO = objEstadoDetalle;
objDetalle.MENSAJE_ERROR = MensajeError;
context.ApplyPropertyChanges("CARGA_PRESTACIONES_HUMANAS_DETALLE", objDetalle);
// Eliminar filas de examenes
foreach (var objExamen in objDetalle.CARGA_PRESTACIONES_HUMANAS_EXAMEN.Where(obj => obj.ACTIVO && !Examenes.Any(dtoExamen => dtoExamen.ID == obj.ID)).ToList())
{
objExamen.ACTIVO = false;
context.ApplyPropertyChanges("CARGA_PRESTACIONES_HUMANAS_EXAMEN", objExamen);
}
// Actualizar filas de examenes
foreach (var objExamen in objDetalle.CARGA_PRESTACIONES_HUMANAS_EXAMEN.Where(obj => obj.ACTIVO && Examenes.Any(dtoExamen => dtoExamen.ID == obj.ID)).ToList())
{
var dtoExamen = Examenes.First(d => d.ID == objExamen.ID);
objExamen.NOMBRE_EXAMEN = dtoExamen.NOMBRE_EXAMEN;
objExamen.VALOR_EXAMEN = dtoExamen.VALOR_EXAMEN;
objExamen.ACTIVO = true;
context.ApplyPropertyChanges("CARGA_PRESTACIONES_HUMANAS_EXAMEN", objExamen);
}
// Nuevas filas de examenes
foreach (var dtoExamen in Examenes.Where(dto => !objDetalle.CARGA_PRESTACIONES_HUMANAS_EXAMEN.Any(obj => obj.ID == dto.ID)).ToList())
{
CARGA_PRESTACIONES_HUMANAS_EXAMEN objExamen = new CARGA_PRESTACIONES_HUMANAS_EXAMEN();
objExamen.CARGA_PRESTACIONES_HUMANAS_DETALLE = objDetalle;
objExamen.NOMBRE_EXAMEN = dtoExamen.NOMBRE_EXAMEN;
objExamen.VALOR_EXAMEN = dtoExamen.VALOR_EXAMEN;
objExamen.ACTIVO = true;
objExamen.FECHA_ACTUALIZACION = DateTime.Now;
context.AddToCARGA_PRESTACIONES_HUMANAS_EXAMEN(objExamen);
}
DTO_RESULTADO_ACTUALIZACION_FICHA dtoResultado = new DTO_RESULTADO_ACTUALIZACION_FICHA();
dtoResultado.ERRORES_VALIDACION = ValidarPrestacionHumana(context, objDetalle);
dtoResultado.RESULTADO = !dtoResultado.ERRORES_VALIDACION.Any();
context.SaveChanges();
return dtoResultado;
}
}
catch (Exception ex)
{
ISException.RegisterExcepcion(ex);
Error = ex.Message;
throw ex;
}
}
示例4: NumerarFacturas
public void NumerarFacturas(int ID_FACTURACION, int ID_TIPO_FACTURA, bool NUMERAR_TODAS,
int? CORRELATIVO_DESDE, int? CORRELATIVO_HASTA, int NUMERO_FACTURA_INICIAL)
{
Init();
ListaDetalleFactura = new List<DTO_REPORTE_DETALLEFACTURA_PRESTACION>();
try
{
using (LQCEEntities context = new LQCEEntities())
{
RepositorioFACTURA _RepositorioFACTURA = new RepositorioFACTURA(context);
var q = _RepositorioFACTURA.GetByFilterWithReferences(null, ID_FACTURACION, ID_TIPO_FACTURA,
null, "", null, null, null, "", "", "", "", null, null, "", "", "", null);
if (!NUMERAR_TODAS)
{
if (!CORRELATIVO_DESDE.HasValue)
throw new Exception("Debe señalar factura inicial a facturar");
if (!CORRELATIVO_HASTA.HasValue)
throw new Exception("Debe señalar factura final a facturar");
if (CORRELATIVO_DESDE.Value > CORRELATIVO_HASTA.Value)
throw new Exception("El rango de facturas está mal definido, el valor inicial es mayor al valor final");
q = q.Where(f => f.CORRELATIVO >= CORRELATIVO_DESDE.Value && f.CORRELATIVO <= CORRELATIVO_HASTA.Value);
}
if (q.Any(f => f.NUMERO_FACTURA.HasValue))
throw new Exception("Ya existen facturas numeradas en el rango seleccionado");
int NUMERO_FACTURA_FINAL = NUMERO_FACTURA_INICIAL + q.Count() - 1;
var q2 = _RepositorioFACTURA.GetByFilterWithReferences(null, null, ID_TIPO_FACTURA,
null, "", null, null, null, null, null, "", "", null, null, "", "", "", null);
if (q2.Any(f => f.NUMERO_FACTURA.HasValue
&& f.NUMERO_FACTURA >= NUMERO_FACTURA_INICIAL
&& f.NUMERO_FACTURA <= NUMERO_FACTURA_FINAL))
throw new Exception("Ya existen facturas numeradas con los numeros de facturas indicados");
int NUEVO_NUMERO_FACTURA = NUMERO_FACTURA_INICIAL;
foreach (var _FACTURA in q.OrderBy(f => f.CORRELATIVO).ToList())
{
if (_FACTURA.NUMERO_FACTURA.HasValue)
throw new Exception("Factura ya está numerada");
_FACTURA.NUMERO_FACTURA = NUEVO_NUMERO_FACTURA;
context.ApplyPropertyChanges("FACTURA", _FACTURA);
NUEVO_NUMERO_FACTURA++;
}
context.SaveChanges();
try
{
foreach (var _FACTURA in q.OrderBy(f => f.CORRELATIVO).ToList())
{
// PENDIENTE: Generar PDFs
var LISTA_DTO_REPORTE_FACTURA = GetReporteFacturaByID_FACTURA(_FACTURA.ID);
ListaDetalleFactura = GetReporteDetalleFacturaByID_FACTURACION(_FACTURA.ID);
string deviceInfo =
"<DeviceInfo>" +
" <OutputFormat>PDF</OutputFormat>" +
" <PageWidth>8.2in</PageWidth>" +
" <PageHeight>11.7in</PageHeight>" +
" <MarginTop>0in</MarginTop>" +
" <MarginLeft>0in</MarginLeft>" +
" <MarginRight>0in</MarginRight>" +
" <MarginBottom>0in</MarginBottom>" +
"</DeviceInfo>";
Warning[] warnings;
m_streams_matriz = new List<Stream>();
m_streams_DetalleFactura = new List<Stream>();
// m_streams_individual = new List<Stream>();
// Documento 1: Un archivo por factura con fondo
var tf = from f in LISTA_DTO_REPORTE_FACTURA
group f by f.NOMBRE_REPORTE_FACTURA_INDIVIDUAL into g
select g;
foreach (var facturas in tf)
{
Hashtable propiedades = new Hashtable();
propiedades.Add("Fecha de Documento", _FACTURA.FACTURACION.FECHA_FACTURACION);
propiedades.Add("Tipo de Documento", "Factura " + facturas.FirstOrDefault().NOMBRE_TIPO_FACTURA);
propiedades.Add("Formato", "Individual");
propiedades.Add("RUT Cliente", facturas.FirstOrDefault().RUT_CLIENTE);
propiedades.Add("Nombre Cliente", facturas.FirstOrDefault().NOMBRE_CLIENTE);
ReportViewer _ReportViewer = new ReportViewer();
_ReportViewer.ProcessingMode = ProcessingMode.Local;
_ReportViewer.LocalReport.ShowDetailedSubreportMessages = true;
_ReportViewer.LocalReport.DataSources.Clear();
_ReportViewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", facturas));
_ReportViewer.LocalReport.ReportEmbeddedResource = "LQCE.Transaccion.Reporte." + facturas.Key;
_ReportViewer.LocalReport.Render("PDF", deviceInfo, CreateStream, out warnings);
foreach (Stream stream in m_streams_matriz)
//.........这里部分代码省略.........
示例5: EmitirNotasCobros
//.........这里部分代码省略.........
{
ID_COBRO = g.FirstOrDefault().ID_COBRO,
ID_CLIENTE = g.FirstOrDefault().ID_CLIENTE,
CORRELATIVO = g.Key,
NOMBRE_CLIENTE = g.FirstOrDefault().NOMBRE_CLIENTE,
RUT_CLIENTE = g.FirstOrDefault().RUT_CLIENTE,
NOMBRE_REPORTE = g.FirstOrDefault().NOMBRE_REPORTE,
}).ToList();
// Documento 1: Un archivo con todas las notas de cobro emitidas
Hashtable propiedades = new Hashtable();
propiedades.Add("Fecha de Documento", _COBRO.FECHA_COBRO);
propiedades.Add("Tipo de Documento", "Nota de Cobro " + ListaNotaCobroEncabezado.FirstOrDefault().NOMBRE_REPORTE);
propiedades.Add("Formato", "Consolidado");
ReportViewer _ReportViewer = new ReportViewer();
_ReportViewer.ProcessingMode = ProcessingMode.Local;
_ReportViewer.LocalReport.ShowDetailedSubreportMessages = true;
_ReportViewer.LocalReport.DataSources.Clear();
_ReportViewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", ListaNotaCobroEncabezado));
_ReportViewer.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(ReporteNotaCobro_SubreportProcessingEventHandler);
_ReportViewer.LocalReport.ReportEmbeddedResource = "LQCE.Transaccion.Reporte." + ListaNotaCobroEncabezado.FirstOrDefault().NOMBRE_REPORTE;
_ReportViewer.LocalReport.Render("PDF", deviceInfo, CreateStreamNotaCobro, out warnings);
foreach (Stream stream in m_streams_NotaCobro)
stream.Position = 0;
using (SPWeb spWeb = new SPSite(Settings.Default.SP_WEB).OpenWeb())
{
SPList spList = spWeb.GetList(Settings.Default.SP_LIBRERIA_FACTURAS);
string strNombreFactura = DateTime.Now.ToString("yyyyMMddhhmmss") + "_NotaCobro_" + _COBRO.TIPO_COBRO.NOMBRE + ".pdf";
spList.RootFolder.Files.Add(spList.RootFolder.Url + "/" + strNombreFactura, m_streams_NotaCobro[0], propiedades, true);
spList.Update();
}
foreach (var item in ListaNotaCobroEncabezado)
{
m_streams_NotaCobroIndividual = new List<Stream>();
// Documento 2: Un archivo por cada detalles de facturas
List<DTO_REPORTE_NOTA_COBRO> LISTA_DTO_REPORTE_NOTA_COBRO2 = new List<DTO_REPORTE_NOTA_COBRO>();
LISTA_DTO_REPORTE_NOTA_COBRO2.Add(item);
Hashtable propiedadesDetalle = new Hashtable();
propiedadesDetalle.Add("Fecha de Documento", _COBRO.FECHA_COBRO);
propiedadesDetalle.Add("Tipo de Documento", "Nota de Cobro " + item.NOMBRE_REPORTE);
propiedadesDetalle.Add("Formato", "Individual");
propiedadesDetalle.Add("RUT Cliente", item.RUT_CLIENTE);
propiedadesDetalle.Add("Nombre Cliente", item.NOMBRE_CLIENTE);
ReportViewer _ReportViewerDetalle = new ReportViewer();
_ReportViewerDetalle.ProcessingMode = ProcessingMode.Local;
_ReportViewerDetalle.LocalReport.ShowDetailedSubreportMessages = true;
_ReportViewerDetalle.LocalReport.DataSources.Clear();
_ReportViewerDetalle.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", LISTA_DTO_REPORTE_NOTA_COBRO2));
_ReportViewerDetalle.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(ReporteNotaCobro_SubreportProcessingEventHandler);
_ReportViewerDetalle.LocalReport.ReportEmbeddedResource = "LQCE.Transaccion.Reporte." + item.NOMBRE_REPORTE;
_ReportViewerDetalle.LocalReport.Render("PDF", deviceInfo, CreateStreamNotaCobroIndividual, out warnings);
foreach (Stream stream in m_streams_NotaCobroIndividual)
stream.Position = 0;
using (SPWeb spWeb = new SPSite(Settings.Default.SP_WEB).OpenWeb())
{
SPList spList = spWeb.GetList(Settings.Default.SP_LIBRERIA_FACTURAS);
string strNombreFactura = DateTime.Now.ToString("yyyyMMddhhmmss") + "_NotaCobroIndividual_" + _COBRO.TIPO_COBRO.NOMBRE + "_" + item.NOMBRE_CLIENTE + ".pdf";
spList.RootFolder.Files.Add(spList.RootFolder.Url + "/" + strNombreFactura, m_streams_NotaCobroIndividual[0], propiedadesDetalle, true);
spList.Update();
}
}
}
catch (Exception ex)
{
RepositorioCOBRO _RepositorioCOBRO = new RepositorioCOBRO(context);
COBRO _NUEVO_COBRO = _RepositorioCOBRO.GetByIdWithReferences(_COBRO.ID);
_NUEVO_COBRO.ACTIVO = false;
foreach (var _NOTA_COBRO in _NUEVO_COBRO.NOTA_COBRO)
{
_NOTA_COBRO.ACTIVO = false;
foreach (var _NOTA_COBRO_DETALLE in _NOTA_COBRO.NOTA_COBRO_DETALLE)
{
_NOTA_COBRO_DETALLE.ACTIVO = false;
context.ApplyPropertyChanges("NOTA_COBRO_DETALLE", _NOTA_COBRO_DETALLE);
}
context.ApplyPropertyChanges("NOTA_COBRO", _NOTA_COBRO);
}
context.ApplyPropertyChanges("COBRO", _NUEVO_COBRO);
context.SaveChanges();
throw ex;
}
}
}
catch (Exception ex)
{
ISException.RegisterExcepcion(ex);
Error = ex.Message;
throw ex;
}
}
示例6: EmitirFacturas
//.........这里部分代码省略.........
ReportViewer _ReportViewer = new ReportViewer();
_ReportViewer.ProcessingMode = ProcessingMode.Local;
_ReportViewer.LocalReport.ShowDetailedSubreportMessages = true;
_ReportViewer.LocalReport.DataSources.Clear();
_ReportViewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", facturas));
_ReportViewer.LocalReport.ReportEmbeddedResource = "LQCE.Transaccion.Reporte." + facturas.Key;
_ReportViewer.LocalReport.Render("PDF", deviceInfo, CreateStream, out warnings);
foreach (Stream stream in m_streams_matriz)
stream.Position = 0;
ReportViewer _ReportViewerDireccion = new ReportViewer();
_ReportViewerDireccion.ProcessingMode = ProcessingMode.Local;
_ReportViewerDireccion.LocalReport.DataSources.Clear();
_ReportViewerDireccion.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", facturas));
_ReportViewerDireccion.LocalReport.ReportEmbeddedResource = "LQCE.Transaccion.Reporte.DireccionFactura.rdlc";
_ReportViewerDireccion.LocalReport.Render("PDF", deviceInfoDireccion, CreateStreamDireccion, out warningsDireccion);
foreach (Stream stream in m_streams_Direccion)
stream.Position = 0;
using (SPWeb spWeb = new SPSite(Settings.Default.SP_WEB).OpenWeb())
{
SPList spList = spWeb.GetList(Settings.Default.SP_LIBRERIA_FACTURAS);
string strNombreFactura = DateTime.Now.ToString("yyyyMMddhhmmss") + "_" + facturas.Key + ".pdf";
spList.RootFolder.Files.Add(spList.RootFolder.Url + "/" + strNombreFactura, m_streams_matriz[0], propiedades, true);
spList.Update();
string strNombreDirecciones = DateTime.Now.ToString("yyyyMMddhhmmss") + "_" + facturas.Key + " - Direcciones.pdf";
spList.RootFolder.Files.Add(spList.RootFolder.Url + "/" + strNombreDirecciones, m_streams_Direccion[0], propiedadesDireccion, true);
spList.Update();
}
}
// Documento 2: Un archivo con todos los detalles de facturas
List<DTO_REPORTE_DETALLEFACTURA_FACTURA> LISTA_DTO_REPORTE_DETALLEFACTURA_FACTURA =
(from df in ListaDetalleFactura
group df by df.ID_FACTURA into g
select new DTO_REPORTE_DETALLEFACTURA_FACTURA
{
ID_FACTURA = g.Key,
ID_CLIENTE = g.FirstOrDefault().ID_CLIENTE,
NOMBRE_CLIENTE = g.FirstOrDefault().NOMBRE_CLIENTE,
RUT_CLIENTE = g.FirstOrDefault().RUT_CLIENTE,
DETALLE = g.FirstOrDefault().DETALLE,
SUMA_PENDIENTE = g.Where(p => p.ESTADO_PENDIENTE == "INPAGO" || p.ESTADO_PREVISION == "INPAGO").Sum(p => p.MONTO_TOTAL)
}).ToList();
Hashtable propiedadesDetalle = new Hashtable();
propiedadesDetalle.Add("Fecha de Documento", _FACTURACION.FECHA_FACTURACION);
propiedadesDetalle.Add("Tipo de Documento", "Detalle de Factura");
propiedadesDetalle.Add("Formato", "Consolidado");
ReportViewer _ReportViewerDetalle = new ReportViewer();
_ReportViewerDetalle.ProcessingMode = ProcessingMode.Local;
_ReportViewerDetalle.LocalReport.ShowDetailedSubreportMessages = true;
_ReportViewerDetalle.LocalReport.DataSources.Clear();
_ReportViewerDetalle.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", LISTA_DTO_REPORTE_DETALLEFACTURA_FACTURA));
_ReportViewerDetalle.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(ReporteDetalleFactura_SubreportProcessingEventHandler);
_ReportViewerDetalle.LocalReport.ReportEmbeddedResource = "LQCE.Transaccion.Reporte.DetalleFactura.rdlc";
_ReportViewerDetalle.LocalReport.Render("PDF", deviceInfo, CreateStreamDetalleFactura, out warnings);
foreach (Stream stream in m_streams_DetalleFactura)
stream.Position = 0;
using (SPWeb spWeb = new SPSite(Settings.Default.SP_WEB).OpenWeb())
{
SPList spList = spWeb.GetList(Settings.Default.SP_LIBRERIA_FACTURAS);
string strNombreFactura = DateTime.Now.ToString("yyyyMMddhhmmss") + "_DetalleFactura.pdf";
spList.RootFolder.Files.Add(spList.RootFolder.Url + "/" + strNombreFactura, m_streams_DetalleFactura[0], propiedadesDetalle, true);
spList.Update();
}
}
catch (Exception ex)
{
// En caso de error, al generar los PDF se eliminan los registros de las facturas
_FACTURACION.ACTIVO = false;
foreach (var _FACTURA in _FACTURACION.FACTURA)
{
_FACTURA.ACTIVO = false;
foreach (var _FACTURA_DETALLE in _FACTURA.FACTURA_DETALLE)
{
_FACTURA_DETALLE.ACTIVO = false;
context.ApplyPropertyChanges("FACTURA_DETALLE", _FACTURA_DETALLE);
}
context.ApplyPropertyChanges("FACTURA", _FACTURA);
}
context.ApplyPropertyChanges("FACTURACION", _FACTURACION);
context.SaveChanges();
throw ex;
}
}
}
catch (Exception ex)
{
ISException.RegisterExcepcion(ex);
Error = ex.Message;
throw ex;
}
}
示例7: BorrarNumeracionFacturas
public void BorrarNumeracionFacturas(int ID_FACTURACION, int ID_TIPO_FACTURA, int CORRELATIVO_DESDE, int CORRELATIVO_HASTA)
{
Init();
//ListaDetalleFactura = new List<DTO_REPORTE_DETALLEFACTURA_PRESTACION>();
try
{
using (LQCEEntities context = new LQCEEntities())
{
if (CORRELATIVO_DESDE > CORRELATIVO_HASTA)
throw new Exception("El rango de facturas está mal definido, el valor inicial es mayor al valor final");
RepositorioFACTURA _RepositorioFACTURA = new RepositorioFACTURA(context);
var q = _RepositorioFACTURA.GetByFilterWithReferences(null, ID_FACTURACION, ID_TIPO_FACTURA,
null, "", null, null, null, "", "", "", "", null, null, "", "", "", null);
q = q.Where(f => f.CORRELATIVO >= CORRELATIVO_DESDE && f.CORRELATIVO <= CORRELATIVO_HASTA);
if (q.Any(f => f.NOTA_COBRO_DETALLE.Any(n => n.ACTIVO)))
throw new Exception("Ya existen facturas cobradas al cliente en el rango señalado");
if (q.Any(f => f.PAGADA.HasValue && f.PAGADA.Value == true))
throw new Exception("Ya existen facturas pagadas en el rango señalado");
if (q.Any(f => f.NOTA_CREDITO.Any(nc => nc.ACTIVO)))
throw new Exception("Existen facturas con notas de crédito en el rango señalado");
foreach (var _FACTURA in q.OrderBy(f => f.CORRELATIVO).ToList())
{
if (_FACTURA.NUMERO_FACTURA.HasValue)
{
_FACTURA.NUMERO_FACTURA = null;
context.ApplyPropertyChanges("FACTURA", _FACTURA);
}
}
context.SaveChanges();
}
}
catch (Exception ex)
{
ISException.RegisterExcepcion(ex);
Error = ex.Message;
throw ex;
}
}