예제 #1
0
        private void btnReportePDF_Click(object sender, EventArgs e)
        {
            TicketList ticket;

            hospitalizacionserviceDto hospser          = new hospitalizacionserviceDto();
            List <TicketDetalleList>  ListaDetalleList = new List <TicketDetalleList>();

            List <TicketList> Tickett = new List <TicketList>();

            DialogResult Result = MessageBox.Show("Generado Para: ", "ADVERTENCIA!", MessageBoxButtons.YesNo, MessageBoxIcon.Information);

            if (Result == System.Windows.Forms.DialogResult.Yes)
            {
                saveFileDialog1.FileName = "Liquidacion";
                saveFileDialog1.Filter   = "Files (*.pdf;)|*.pdf;";

                var hospitId = grdData.Selected.Rows[0].Cells["v_HopitalizacionId"].Value.ToString();
                using (new LoadingClass.PleaseWait(this.Location, "Generando..."))
                {
                    this.Enabled = false;

                    var MedicalCenter = _serviceBL.GetInfoMedicalCenter();

                    var lista = _hospitBL.GetHospitalizcion(ref _objOperationResult, hospitId);

                    //var serviceId = lista.SelectMany(p => p.Servicios.Select(q=>q.v_ServiceId));
                    int doctor = 1;
                    hospser = _hospitBL.GetHospitServ(hospitId);

                    var _DataService = _serviceBL.GetServiceReport(hospser.v_ServiceId);
                    var datosP       = _pacientBL.DevolverDatosPaciente(hospser.v_ServiceId);

                    string ruta = Common.Utils.GetApplicationConfigValue("rutaLiquidacion").ToString();

                    Liquidacion_Hospitalizacion.CreateLiquidacion(ruta + "Hola" + ".pdf", MedicalCenter, lista, _DataService, datosP, doctor);
                    this.Enabled = true;
                }
            }
            else
            {
                saveFileDialog1.FileName = "Liquidacion";
                saveFileDialog1.Filter   = "Files (*.pdf;)|*.pdf;";

                var hospitId = grdData.Selected.Rows[0].Cells["v_HopitalizacionId"].Value.ToString();
                using (new LoadingClass.PleaseWait(this.Location, "Generando..."))
                {
                    this.Enabled = false;

                    var MedicalCenter = _serviceBL.GetInfoMedicalCenter();

                    var lista = _hospitBL.GetHospitalizcion(ref _objOperationResult, hospitId);

                    //var serviceId = lista.SelectMany(p => p.Servicios.Select(q=>q.v_ServiceId));
                    int paciente = 2;
                    hospser = _hospitBL.GetHospitServ(hospitId);

                    var _DataService = _serviceBL.GetServiceReport(hospser.v_ServiceId);
                    var datosP       = _pacientBL.DevolverDatosPaciente(hospser.v_ServiceId);

                    string ruta = Common.Utils.GetApplicationConfigValue("rutaLiquidacion").ToString();

                    Liquidacion_Hospitalizacion.CreateLiquidacion(ruta + "Hola" + ".pdf", MedicalCenter, lista, _DataService, datosP, paciente);
                    this.Enabled = true;
                }

                //string ruta = Common.Utils.GetApplicationConfigValue("rutaLiquidacion").ToString();
                //Liquidacion_Hospitalizacion.CreateLiquidacion(ruta + "Hola" + ".pdf", MedicalCenter, lista, _DataService, datosP);
                //this.Enabled = true;
            }
        }
        private void btnDoctor_Click(object sender, EventArgs e)
        {
            using (new LoadingClass.PleaseWait(this.Location, "Generando..."))
            {
                this.Enabled = false;

                var MedicalCenter = _serviceBL.GetInfoMedicalCenter();

                var lista = _hospitBL.GetHospitalizcion(ref _objOperationResult, hospiId);

                //var serviceId = lista.SelectMany(p => p.Servicios.Select(q=>q.v_ServiceId));
                int doctor = 1;
                hospser = _hospitBL.GetHospitServ(hospiId);

                var datosP = _pacientBL.DevolverDatosPaciente(hospser.v_ServiceId);

                string      ruta       = Common.Utils.GetApplicationConfigValue("rutaLiquidacion").ToString();
                ServiceList personData = _serviceBL.GetServicePersonData(ref objOperationResult, hospser.v_ServiceId);

                var    hospitalizacion           = _hospitBL.GetHospitalizacion(ref objOperationResult, hospiId);
                var    hospitalizacionhabitacion = _hospitBL.GetHospitalizacionHabitacion(ref objOperationResult, hospiId);
                var    medicoTratante            = new ServiceBL().GetMedicoTratante(hospser.v_ServiceId);
                string nombre = personData.v_DocNumber + "_" + personData.v_ProtocolName + "-LiquMédico";

                #region MANDAR PRECIO A BASE
                decimal totalFinal = 0;
                foreach (var hospitalizacion_precios in lista)
                {
                    var     ListaServicios       = hospitalizacion_precios.Servicios.FindAll(p => p.v_ServiceId != null);
                    decimal totalParcialMedicina = 0;
                    decimal sumaMedicina         = 0;
                    decimal sumaServicio         = 0;
                    foreach (var servicios in ListaServicios)
                    {
                        if (servicios.Tickets != null)
                        {
                            var ListaTickets = servicios.Tickets.FindAll(p => p.i_conCargoA == 1);
                            if (ListaTickets.Count() >= 1)
                            {
                                foreach (var tickets in ListaTickets)
                                {
                                    var detalletickets = tickets.Productos.FindAll(p => p.d_Cantidad != 0);
                                    foreach (var Detalle in detalletickets)
                                    {
                                        int cantidad = (int)Detalle.d_Cantidad;
                                        totalParcialMedicina = (decimal)(Detalle.d_PrecioVenta * cantidad);
                                        sumaMedicina        += (decimal)totalParcialMedicina;
                                    }
                                }
                            }
                            else
                            {
                                totalParcialMedicina = decimal.Round(totalParcialMedicina, 2);
                            }
                        }

                        var ListaComponentes = servicios.Componentes.FindAll(p => p.Precio != 0 && p.i_conCargoA == 1);
                        foreach (var compo in ListaComponentes)
                        {
                            decimal compoPrecio = (decimal)compo.Precio;
                            sumaServicio += compoPrecio;
                        }
                    }

                    decimal totalParcialHabitacion = 0;
                    decimal sumaHabitacion         = 0;
                    var     ListaHabitaciones      = hospitalizacion_precios.Habitaciones.FindAll(p => p.i_conCargoA == 1);

                    foreach (var habitacion in ListaHabitaciones)
                    {
                        DateTime inicio = habitacion.d_StartDate.Value.Date;
                        DateTime fin;

                        if (habitacion.d_EndDate != null || habitacion.d_EndDate.ToString() == "00/00/0000 0:0:0")
                        {
                            fin = habitacion.d_EndDate.Value.Date;
                        }
                        else
                        {
                            fin = DateTime.Now.Date;
                        }

                        TimeSpan nDias = fin - inicio;

                        int tSpan = nDias.Days;

                        //+ 1
                        int dias = 0;
                        if (tSpan == 0)
                        {
                            dias = tSpan + 1;
                        }
                        else
                        {
                            dias = tSpan;
                        }

                        decimal _habitacionPrecio = (decimal)habitacion.d_Precio;
                        _habitacionPrecio = decimal.Round(_habitacionPrecio, 2);

                        totalParcialHabitacion = (decimal)(habitacion.d_Precio * dias);
                        totalParcialHabitacion = decimal.Round(totalParcialHabitacion, 2);

                        sumaHabitacion += (decimal)totalParcialHabitacion;
                    }

                    totalFinal = sumaMedicina + sumaServicio + sumaHabitacion;

                    totalFinal = decimal.Round(totalFinal, 2);
                }


                var _Hospitalizacion = new HospitalizacionBL().GetHospitalizacion(ref objOperationResult, hospiId);

                _Hospitalizacion.d_PagoMedico = totalFinal;

                _hospitBL.UpdateHospitalizacion(ref objOperationResult, _Hospitalizacion, Globals.ClientSession.GetAsList());
                #endregion

                Liquidacion_Hospitalizacion.CreateLiquidacion(ruta + nombre + ".pdf", MedicalCenter, lista, datosP, doctor, hospitalizacion, hospitalizacionhabitacion, medicoTratante);

                this.Enabled = true;
            }
            this.Close();
        }