private void btnPagar_Click(object sender, EventArgs e)
        {
            UltraGridBand     band = this.grdData.DisplayLayout.Bands[1];
            HospitalizacionBL o    = new HospitalizacionBL();
            var listapagos         = new List <LiquidacionMedicoList>();

            List <LiquidacionServicios> _data = new List <LiquidacionServicios>();

            foreach (UltraGridRow row in band.GetRowEnumerator(GridRowType.DataRow))
            {
                if ((bool)row.Cells["Select"].Value)
                {
                    var oLiquidacionMedicoList = new LiquidacionServicios();

                    string serviceId = row.Cells["v_ServiceId"].Value.ToString();
                    o.ActualizarPagoMedico(serviceId);

                    oLiquidacionMedicoList.d_ServiceDate = DateTime.Parse(row.Cells["d_ServiceDate"].Value.ToString());
                    oLiquidacionMedicoList.Paciente      = row.Cells["Paciente"].Value.ToString();

                    oLiquidacionMedicoList.Tipo        = row.Cells["Tipo"].Value.ToString();
                    oLiquidacionMedicoList.Aseguradora = row.Cells["Aseguradora"].Value == null ? "" : row.Cells["Aseguradora"].Value.ToString();
                    oLiquidacionMedicoList.v_ServiceId = row.Cells["v_ServiceId"].Value.ToString();
                    oLiquidacionMedicoList.r_Comision  = decimal.Parse(row.Cells["r_Comision"].Value.ToString());

                    _data.Add(oLiquidacionMedicoList);
                }
            }


            btnFilter_Click(sender, e);

            using (new LoadingClass.PleaseWait(this.Location, "Generando..."))
            {
                this.Enabled = false;

                var             MedicalCenter      = new ServiceBL().GetInfoMedicalCenter();
                OperationResult objOperationResult = new OperationResult();

                DateTime?fechaInicio = dtpDateTimeStar.Value.Date;
                DateTime?fechaFin    = dptDateTimeEnd.Value.Date.AddDays(1);

                string fechaInicio_1 = fechaInicio.ToString().Split(' ')[0];
                string fechaFin_1    = fechaFin.ToString().Split(' ')[0];

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

                string fecha  = DateTime.Now.ToString().Split('/')[0] + "-" + DateTime.Now.ToString().Split('/')[1] + "-" + DateTime.Now.ToString().Split('/')[2];
                string nombre = "Pago Medico - CSL";

                var medico_info = new ServiceBL().GetSystemUser(ref objOperationResult, int.Parse(ddlUsuario.SelectedValue.ToString()));

                PagoMedicoAsitencial.CreatePagoMedicoAsitencial(ruta + nombre + ".pdf", MedicalCenter, _data, fechaInicio_1, fechaFin_1, medico_info);
                this.Enabled = true;
            }
        }
        private void BindGrid()
        {
            OperationResult objOperationResult = new OperationResult();
            DateTime?       pdatBeginDate      = dtpDateTimeStar.Value.Date;
            DateTime?       pdatEndDate        = dptDateTimeEnd.Value.Date.AddDays(1);

            HospitalizacionBL o = new HospitalizacionBL();
            var data            = o.LiquidacionMedicos(strFilterExpression, pdatBeginDate, pdatEndDate, chkPagados.Checked == true ? 1 : 0);

            grdData.DataSource = data;
        }
 public frmTicket(List <TicketList> Lista, string IdControl, string id, string mode, string protocolId, string modo)
 {
     _tickId     = id;
     _mode       = mode;
     _serviceId  = IdControl;
     _protocolId = protocolId;
     //_ticketId = IdControl;
     InitializeComponent();
     _objHospitalizacionBl  = new HospitalizacionBL();
     _objRecetaBl           = new RecetaBl();
     _objTicketBl           = new TicketBL();
     _listTicketList        = Lista;
     _listTicketDetalleList = new List <TicketDetalleList>();
     _modo = modo;
 }
        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();
        }