DROP VIEW IF EXISTS antiguedad;
CREATE VIEW antiguedad as
  select datosexa.numerex as orden, pacientes.tmpllave as paciente, pacientes.id as id, datosexa.fechares as fecha, datosexa.saldocli as saldo, 
  datediff(curdate(),datosexa.fechares) as dias, 
  if(datediff(curdate(),datosexa.fechares)>90, "Mas de 90",if(datediff(curdate(),datosexa.fechares)>60,"61-90",
  if(datediff(curdate(),datosexa.fechares)>30,"31 - 60","0 - 30"))) as periodo
  FROM datosexa, pacientes
  WHERE datosexa.numerocli=pacientes.numerocli and datosexa.saldocli <> 0 
  ORDER BY paciente, dias;

DROP VIEW IF EXISTS antiguedadcias;
CREATE VIEW antiguedadcias as
  select cias.nombre as compania, datosexa.numerex as orden, pacientes.tmpllave as paciente, pacientes.id as id, datosexa.fechares as fecha, 
  datosexa.saldocia as saldocia, datediff(curdate(),datosexa.fechares) as dias, 
  if(datediff(curdate(),datosexa.fechares)>90, "Mas de 90",if(datediff(curdate(),datosexa.fechares)>60,"61-90",
  if(datediff(curdate(),datosexa.fechares)>30,"31 - 60","0 - 30"))) as periodo
  FROM datosexa
  INNER JOIN cias on datosexa.cia = cias.codigo
  INNER JOIN pacientes on datosexa.numerocli = pacientes.numerocli
  WHERE datosexa.saldocia <> 0 and datosexa.cia <> 0
  ORDER BY paciente, dias;

DROP VIEW IF EXISTS antiguedadciasfacs;
CREATE VIEW antiguedadciasfacs as
select facturacion.sociedad AS sociedad,facturacion.laboratorio AS laboratorio,facturacion.cliente AS cliente,
  facturacion.Cia AS Cia,facturacion.facturanum AS facturanum,facturacion.fechafac AS fechafac,
  facturacion.totalpagar AS totalpagar,facturacion.pagado AS pagado,facturacion.saldo AS saldo,
  (to_days(curdate()) - to_days(facturacion.fechafac)) AS dias,
  if(((to_days(curdate()) - to_days(facturacion.fechafac)) > 90),'Mas de 90',
    if(((to_days(curdate()) - to_days(facturacion.fechafac)) > 60),'61-90',
      if(((to_days(curdate()) - to_days(facturacion.fechafac)) > 30),'31 - 60','0 - 30'))) AS periodo 
  from facturacion 
  where ((facturacion.codigocia <> 0)
    and (facturacion.status = 'A') 
    and (facturacion.tipo_factura = 'CIA') 
    and (facturacion.saldo <> 0.00));

DROP VIEW IF EXISTS antiguedadpacientesfacs;
CREATE VIEW antiguedadpacientesfacs as
select facturacion.sociedad AS sociedad,facturacion.laboratorio AS laboratorio,facturacion.cliente AS cliente,
  facturacion.Cia AS Cia,facturacion.facturanum AS facturanum,facturacion.fechafac AS fechafac,
  facturacion.totalpagar AS totalpagar,facturacion.pagado AS pagado,facturacion.saldo AS saldo,
  (to_days(curdate()) - to_days(facturacion.fechafac)) AS dias,
  if(((to_days(curdate()) - to_days(facturacion.fechafac)) > 90),'Mas de 90',
    if(((to_days(curdate()) - to_days(facturacion.fechafac)) > 60),'61-90',
      if(((to_days(curdate()) - to_days(facturacion.fechafac)) > 30),'31 - 60','0 - 30'))) AS periodo 
  from facturacion 
  where ((facturacion.status = 'A') 
    and (facturacion.tipo_factura = 'PACIENTE') 
    and (facturacion.saldo <> 0.00));

DROP VIEW IF EXISTS cajaview1;
CREATE VIEW cajaview1 AS 
  SELECT caja.USUARIO AS USUARIO, caja.PAGONUM AS PAGONUM, caja.NUMEREX AS NUMEREX, caja.FECHA AS FECHA,
  tipopago.descripcion AS tipodepago, tipotarjeta.tarjeta AS tarjeta, caja.TIPOMOV AS TIPOMOV, caja.NUMERO AS NUMERO,
  caja.MONTO AS MONTO, caja.EMISOR AS EMISOR
  FROM ((caja 
  LEFT JOIN tipopago on ((caja.TIPOPAGO = tipopago.tipo))) 
  LEFT JOIN tipotarjeta on ((caja.TIPOTARJETA = tipotarjeta.tipotarjeta)));

DROP VIEW IF EXISTS cajaview2;
CREATE VIEW cajaview2 AS 
  SELECT caja.USUARIO AS USUARIO, caja.PAGONUM AS PAGONUM, caja.NUMEREX AS NUMEREX, caja.FECHA AS FECHA,
  tipopago.descripcion AS tipodepago, tipotarjeta.tarjeta AS tarjeta, caja.TIPOMOV AS TIPOMOV, caja.NUMERO AS NUMERO,
  caja.MONTO AS MONTO, caja.EMISOR AS EMISOR
  FROM ((caja 
  LEFT JOIN tipopago on ((caja.TIPOPAGO = tipopago.tipo))) 
  LEFT JOIN tipotarjeta on ((caja.TIPOTARJETA = tipotarjeta.tipotarjeta)))
  ORDER BY caja.tipopago,caja.tipotarjeta;

DROP VIEW IF EXISTS ciasview;
CREATE VIEW ciasview AS
  SELECT sql_no_cache pacientes.TMPLLAVE AS tmpllave,datosexa.NUMEREX AS numerex,datosexa.FECHARES AS fechares,
  datosexa.TOTALPAGAR AS totalpagar,datosexa.PAGADO AS pagado,datosexa.SALDO AS saldo,
  datosexa.TOTALPAGARCLI AS totalpagarcli, datosexa.PAGADOCLI AS pagadocli, datosexa.SALDOCLI AS saldocli,
  datosexa.TOTALPAGARCIA AS totalpagarcia, datosexa.PAGADOCIA AS pagadocia, datosexa.SALDOCIA AS saldocia,
  datosexa.MODIUSERID AS modiuserid,datosexa.FECHAMOD AS fechamod,datosexa.CIA AS cia from (pacientes join datosexa) where (datosexa.NUMEROCLI = pacientes.NUMEROCLI);

DROP VIEW IF EXISTS comparables;
CREATE VIEW comparables AS 
  SELECT datosexa.NUMEROCLI AS NUMEROCLI,
  examenes.NUMEREX AS NUMEREX,
  datosexa.MEDICO AS MEDICO,
  datosexa.CIA AS CIA,
  datosexa.STATUS AS STATUS,
  examenes.FECHARES AS FECHARES,
  examenes.FECHAFIN AS FECHAFIN,
  resultados.FECHAMOD AS FECHAMOD,
  resultados.secuencia as SECUENCIA,
  resultados.BANDERA AS BANDERA,
  resultados.LEYENDA AS LEYENDA,
  cast(resultados.RESULTADO as DECIMAL(13,4)) AS RESULTADO,
  resultados.UNIDADES AS UNIDADES,
  resultados.NORMALES AS NORMALES,
  examenes.CODIEX AS CODIEX,
  examenes.NOMBREXA AS NOMBREXA,
  resultados.MINIMO AS MINIMO,
  resultados.MAXIMO AS MAXIMO,
  resultados.numdec AS NUMDEC,
  resultados.mnemonic AS MNEMONIC,
  resultados.varcomparable as VARCOMPARABLE
  FROM
  resultados
  Inner Join examenes ON resultados.EXAMENID = examenes.EXAMENID
  Inner Join datosexa ON examenes.NUMEREX = datosexa.NUMEREX
  WHERE
  resultados.comparable =  1
  and resultados.tiporesult in ('F','N','X')
  AND resultados.resultado <>  ''
  ORDER by examenes.fechares,resultados.secuencia;

DROP VIEW IF EXISTS datosexacia;
CREATE VIEW datosexacia as
SELECT 
    c.id as socid, c.sociedad as sociedad, l.tipo_impresora_fac as tipo_impresora_fac,
    d.NUMEREX as NUMEREX, d.NUMEROCLI AS NUMEROCLI, d.MEDICO AS MEDICO, d.CIA AS CIA, d.FACTURARA AS FACTURARA, d.ENVIARRESU AS ENVIARRESU,
    d.MUESTRALAB AS MUESTRALAB, d.IDIOMA AS IDIOMA, d.STATUS AS STATUS, d.CUARTO AS CUARTO, d.ORDENC AS ORDENC, d.BARCODE AS BARCODE,
    d.EMAILC AS EMAILC, d.EMAILO AS EMAILO, d.EMAILE AS EMAILE, d.FAXC AS FAXC, d.FAXO AS FAXO, d.FAXE AS FAXE, d.SFAXC AS SFAXC, d.SFAXO AS SFAXO,
    d.SFAXE AS SFAXE, d.SEMAC AS SEMAC, d.SEMAO AS SEMAO, d.SEMAE AS SEMAE, d.TOTALEXA AS TOTALEXA, d.DESCUENTO AS DESCUENTO, d.CARGOADI AS CARGOADI,
    d.TOTALPAGAR AS TOTALPAGAR, d.PAGADO AS PAGADO, d.SALDO AS SALDO, d.FECHARES AS FECHARES, d.FECHAFIN AS FECHAFIN, d.FECHAMOD AS FECHAMOD,
    d.CREAUI AS CREAUI, d.MODIUSERID AS MODIUSERID, d.PRIORIDAD AS PRIORIDAD, d.COPIA AS COPIA, d.OBSERVACIONES AS OBSERVACIONES, d.SEMAD AS SEMAD,
    d.DIRIP AS DIRIP, d.DEDUCIBLE AS DEDUCIBLE, d.TOTALEXACIA AS TOTALEXACIA, d.DESCUENTOCIA AS DESCUENTOCIA, d.CARGOADICIA AS CARGOADICIA,
    d.TOTALPAGARCLI AS TOTALPAGARCLI, d.TOTALPAGARCIA AS TOTALPAGARCIA, d.PAGADOCLI AS PAGADOCLI, d.PAGADOCIA AS PAGADOCIA, d.SALDOCLI AS SALDOCLI,
    d.SALDOCIA AS SALDOCIA,d.SEMACIA AS SEMACIA, d.LABID AS LABID, d.FACTURARAID AS FACTURARAID, d.VALIDADA AS VALIDADA, d.VALIDADAUSER AS VALIDADAUSER,
    d.FECHAVALIDADA AS FECHAVALIDADA, d.HORAVALIDADA AS HORAVALIDADA, d.CELULAR AS CELULAR, d.FERIA AS FERIA, d.NETIQUETAS AS NETIQUETAS,
    d.NEMAILS AS NEMAILS, d.NFAXES AS NFAXES, d.NSMS AS NSMS, d.NREPORTNL AS NREPORTNL, d.NREPORTL AS NREPORTL, d.NTARJETA AS NTARJETA, d.NFACTURA AS NFACTURA,
    d.FACTURARADIR1 AS FACTURARADIR1, d.FACTURARADIR2 AS FACTURARADIR2, d.facturapat AS facturapat, d.facturacia AS facturacia,d.NFACTURAC AS NFACTURAC,
    d.TITULARSEGURO AS TITULARSEGURO, d.REGLAPRECIO AS REGLAPRECIO, d.TIPOVENTAPAC AS TIPOVENTAPAC, d.TIPOVENTACIA AS TIPOVENTACIA
FROM 
    datosexa d
INNER JOIN laboratorios l on d.labid=l.labid
INNER JOIN counters c on l.counterid=c.id
where TOTALPAGARCIA <> 0.00;

DROP VIEW IF EXISTS opcionesdepartamentosorden;
CREATE VIEW opcionesdepartamentosorden as
  select 0 as dpto, 'TODOS' as departamento, 0 as numerex union
  SELECT departamentos.dpto,departamendo as departamento,examenes.numerex 
  FROM departamentos 
  Inner Join direxame on departamentos.dpto = direxame.dpto 
  Inner Join examenes on direxame.codiex=examenes.codiex;


DROP VIEW IF EXISTS direxameview;
CREATE VIEW direxameview as
  SELECT direxame.CODIEX AS CODIGO,direxame.NOMBREXA AS PRUEBA,direxame.U AS STATUS,cias.NOMBRE AS CIA,
     doctores.TMPLLAVE AS MEDICO,direxame.CONVENIO AS CONVENIO,direxame.PRECIO AS PRECIO,direxame.DEDUCIBLE AS DEDUCIBLE,
     departamentos.departamendo AS DEPARTAMENTO
  FROM direxame
     Inner Join cias ON direxame.CIA = cias.CODIGO
     Inner Join doctores ON direxame.MEDICO = doctores.CODIGO
     Inner Join departamentos ON direxame.DPTO = departamentos.dpto;
  

DROP VIEW IF EXISTS distpacientes;
CREATE VIEW distpacientes as
  select sexo, (datediff(curdate(),nacio)/365.242199) as edad, 
	if((datediff(curdate(),nacio)/365.242199)>90,"> 90",
	if((datediff(curdate(),nacio)/365.242199)>80,"81 - 90",
	if((datediff(curdate(),nacio)/365.242199)>70,"71 - 80",
	if((datediff(curdate(),nacio)/365.242199)>60,"61 - 70",
	if((datediff(curdate(),nacio)/365.242199)>50,"51 - 60",
	if((datediff(curdate(),nacio)/365.242199)>40,"41 - 50",
	if((datediff(curdate(),nacio)/365.242199)>30,"31 - 40",
	if((datediff(curdate(),nacio)/365.242199)>20,"21 - 30",
	if((datediff(curdate(),nacio)/365.242199)>11,"11 - 20",
	if((datediff(curdate(),nacio)/365.242199)>1,"1 - 10",
	"0 - 1")))))))))) AS rango 
	FROM pacientes
	ORDER BY rango;

DROP VIEW IF EXISTS entregamedico;
CREATE VIEW entregamedico AS 
  SELECT concat_ws(_latin1' ', doctores.PRIMERAPE, doctores.SEGUNDOAPE, doctores.NOMBRE) AS MEDICO,
  doctores.TELOFI AS TELOFI,doctores.FAXOFI AS FAXOFI,doctores.DIRECCION1 AS DIRECCION1,
  doctores.DIRECCION2 AS DIRECCION2,doctores.DIRECCION3 AS DIRECCION3,datosexa.NUMEREX AS NUMEREX,
  pacientes.TMPLLAVE AS PACIENTE,datosexa.FECHARES AS FECHARES,datosexa.FECHAFIN AS FECHAFIN 
  FROM ((doctores 
  JOIN datosexa on ((datosexa.MEDICO = doctores.CODIGO))) 
  JOIN pacientes on ((datosexa.NUMEROCLI = pacientes.NUMEROCLI))) 
  WHERE datosexa.CIA > 0 AND datosexa.enviarresu = 1
  order by datosexa.FECHAFIN DESC;

DROP VIEW IF EXISTS findmedico;
CREATE VIEW findmedico AS 
  SELECT doctores.codigo as codigo, concat(doctores.codigocolegio," ",tmpllave) AS medico
  from doctores 
  order by tmpllave;

DROP VIEW IF EXISTS estadocuenta;
CREATE VIEW estadocuenta AS 
  SELECT cias.NOMBRE as CIA, cias.CONTACTO as CONTACTO, cias.FAXOFI as FAXCIA, cias.EMAILOFI as CIAEMAIL,
  concat_ws(_latin1' ',pacientes.PRIMERAPE,pacientes.SEGUNDOAPE,pacientes.NOMBRE) AS PACIENTE,
  pacientes.id as ID, datosexa.NUMEREX as NUMEREX, datosexa.FECHARES as FECHA, datosexa.FECHAFIN AS TERMINADO,
  year(datosexa.FECHARES) as ANNO, month(datosexa.FECHARES) as MES, year(datosexa.FECHARES)*100+month(datosexa.FECHARES) as PERIODO,
  datosexa.TOTALPAGAR as TOTALPAGAR, datosexa.PAGADO as PAGADO, datosexa.SALDO as SALDO, 
  datosexa.TOTALPAGARCLI as TOTALPAGARCLI, datosexa.PAGADOCLI as PAGADOCLI, datosexa.SALDOCLI as SALDOCLI, 
  datosexa.TOTALPAGARCIA as TOTALPAGARCIA, datosexa.PAGADOCIA as PAGADOCIA, datosexa.SALDOCIA as SALDOCIA
  FROM
  datosexa
  Inner Join cias ON datosexa.CIA = cias.CODIGO
  Inner Join pacientes ON datosexa.NUMEROCLI = pacientes.NUMEROCLI
  WHERE
  datosexa.CIA >  '0'
  ORDER BY cias.NOMBRE, datosexa.FECHAFIN;

DROP VIEW IF EXISTS facturacion;
CREATE VIEW facturacion as
  SELECT counters.sociedad AS sociedad, counters.cedula AS cedula,
  laboratorios.laboratorio AS laboratorio,factura_orden_cia.tipo_documento AS tipo_documento,
  factura_orden_cia.tipo_factura AS tipo_factura,factura_orden_cia.tipo_impresora AS tipo_impresora,
  factura_orden_cia.fechafac AS fechafac, factura_orden_cia.facturanum AS facturanum,
  factura_orden_cia.docnum AS docnum, factura_orden_cia.numerex AS orden,
  factura_orden_cia.cliente AS cliente, factura_orden_cia.cedula_cliente AS cedula_cliente,
  factura_orden_cia.direccion1 AS direccion1, factura_orden_cia.direccion2 AS direccion2,
  factura_orden_cia.paciente AS paciente, factura_orden_cia.cedula_paciente AS cedula_paciente,
  factura_orden_cia.del AS del, factura_orden_cia.al AS al,
  factura_orden_cia.totalsindescuento AS totalsindescuento, factura_orden_cia.descuentospor AS descuentospor,
  factura_orden_cia.cargosadi AS cargosadi, factura_orden_cia.totalpagar AS totalpagar,
  factura_orden_cia.pagado AS pagado, factura_orden_cia.saldo AS saldo,
  factura_orden_cia.userid AS userid, factura_orden_cia.creada AS creada,
  factura_orden_cia.feriaid AS feriaid,factura_orden_cia.facfisnum AS facfisnum,
  factura_orden_cia.seriefacfis AS seriefacfis, 
  cias.NOMBRE AS Cia,factura_orden_cia.status AS status,
  cias.CODIGO as codigocia
  FROM (((factura_orden_cia 
  Join counters on((factura_orden_cia.counterid = counters.id))) 
  join cias on((factura_orden_cia.cia = cias.CODIGO))) 
  join laboratorios on((factura_orden_cia.labid = laboratorios.labid)));


DROP VIEW IF EXISTS fastedit;
CREATE VIEW fastedit as
  SELECT resultados.ID AS ID,resultados.TIPORESULT AS TIPORESULT,resultados.LEYENDA AS LEYENDA,
  resultados.RESULTADO AS RESULTADO,resultados.SECUENCIA AS SECUENCIA,examenes.NUMEREX AS NUMEREX,
  examenes.CODIEX AS CODIEX,examenes.NOMBREXA AS NOMBREXA,
  resultados.BANDERA AS BANDERA,resultados.NORMALES AS NORMALES,resultados.UNIDADES AS UNIDADES,
  resultados.validado AS VALIDADO,resultados.validadopor AS VALIDADOPOR,resultados.tipocontrol AS tipocontrol,
  resultados.opcionescontrol AS opcionescontrol,
  direxame.ORDENIMP AS ordenprueba,direxame.DPTO AS DPTO,
  departamentos.departamendo as departamento,departamentos.ordenimp AS ordendpto 
  FROM (((resultados 
    JOIN examenes on((resultados.EXAMENID = examenes.EXAMENID))) 
    JOIN direxame on((examenes.CODIEX = direxame.CODIEX))) 
    JOIN departamentos on((direxame.DPTO = departamentos.dpto))) 
  WHERE ((resultados.TIPORESULT = 'N') or (resultados.TIPORESULT = 'C') 
    or (resultados.TIPORESULT = 'O') or (resultados.TIPORESULT = 'X') 
    or (resultados.TIPORESULT = 'Y'));

DROP VIEW IF EXISTS financiero;
CREATE VIEW financiero AS 
  SELECT datosexa.NUMEREX AS NUMEREX, datosexa.FECHARES AS FECHA, datosexa.FECHAFIN AS TERMINADO,year(datosexa.FECHARES) AS ANNO,month(datosexa.FECHARES) AS MES,
  ((year(datosexa.FECHARES)*100)+month(datosexa.FECHARES)) AS PERIODO, 
  concat_ws(' ',pacientes.PRIMERAPE,pacientes.SEGUNDOAPE,pacientes.NOMBRE) AS PACIENTE,
  pacientes.ID AS ID, datosexa.TOTALPAGAR AS TOTALPAGAR,datosexa.PAGADO AS PAGADO,datosexa.SALDO AS SALDO,datosexa.TOTALPAGARCLI AS TOTALPAGARCLI,
  datosexa.PAGADOCLI AS PAGADOCLI,datosexa.creaui as CREAUI, datosexa.facturapat as FACTURAPAT, datosexa. facturacia as FACTURACIA,
  datosexa.SALDOCLI AS SALDOCLI, datosexa.TOTALPAGARCIA AS TOTALPAGARCIA, datosexa.PAGADOCIA AS PAGADOCIA,datosexa.SALDOCIA AS SALDOCIA,cias.NOMBRE AS CIA,doctores.TMPLLAVE AS MEDICO,
  counters.sociedad,laboratorios.laboratorio
  FROM
  (((datosexa Inner Join cias ON ((datosexa.CIA = cias.CODIGO))) 
  Inner Join pacientes ON ((datosexa.NUMEROCLI = pacientes.NUMEROCLI)))
  Inner Join doctores ON ((datosexa.MEDICO = doctores.CODIGO)))
  Inner Join laboratorios ON datosexa.LABID = laboratorios.labid
  Inner Join counters ON laboratorios.counterid = counters.id
  ORDER BY datosexa.NUMEREX;


DROP VIEW IF EXISTS interfaces;
CREATE VIEW interfaces as
  select resultados.id as resid, examenes.NUMEREX AS referencia, 
  resultados.MNEMONIC AS mnemonic,resultados.RESULTADO AS resultado, resultados.CODIEX as codiex, resultados.secuencia as secuencia,
	resultados.UNIDADES AS unidades, resultados.status as status, resultados.leyenda as leyenda  
  from (examenes join resultados) 
	WHERE (resultados.EXAMENID = examenes.EXAMENID) and resultados.MNEMONIC is not null
  order by referencia,codiex,secuencia;

DROP VIEW IF EXISTS listapagos;
CREATE VIEW listapagos as
  SELECT pagos.PAGONUM AS PAGONUM,pagos.NUMEREX AS NUMEREX,pagos.FECHA AS FECHA,
	pagos.EMISOR AS EMISOR,
	tipopago.descripcion AS DESCRIPCION,
	tipotarjeta.tarjeta AS TARJETA, 
 	substr(pagos.NUMERO,-6,6) AS NUMERO,
	pagos.MONTO AS MONTO,
	pagos.USUARIO AS USUARIO
 from ((pagos left join tipotarjeta on((pagos.TIPOTARJETA = tipotarjeta.tipotarjeta))) left join tipopago on((pagos.TIPOPAGO = tipopago.tipo)));

DROP VIEW IF EXISTS ordenes;
CREATE VIEW ordenes as
  select datosexa.NUMEREX AS NUMEREX,datosexa.STATUS AS STATUS,datosexa.FECHARES AS FECHARES,DATE_FORMAT(datosexa.FECHARES,"%Y%m") AS PERIODO,
    datosexa.FECHAFIN AS FECHAFIN,datosexa.FECHAMOD AS FECHAMOD,datosexa.ORDENC AS ORDENC,
    datosexa.facturapat AS FAC_CLIENTE,datosexa.facturacia AS FAC_CIA,datosexa.TOTALEXA AS TOTALEXA,
    datosexa.TOTALPAGAR AS TOTALPAGAR,datosexa.PAGADO AS PAGADO,datosexa.SALDO AS SALDO,datosexa.DEDUCIBLE AS TOTALEXACLI,
    ((datosexa.TOTALPAGARCLI - datosexa.CARGOADI) - datosexa.DEDUCIBLE) AS DESC_CLIENTE,datosexa.CARGOADI AS CARGOADICLI,
    datosexa.TOTALPAGARCLI AS TOTALPAGARCLI,datosexa.PAGADOCLI AS PAGADOCLI,datosexa.SALDOCLI AS SALDOCLI,
    datosexa.TOTALEXACIA AS TOTALEXACIA,((datosexa.TOTALPAGARCIA - datosexa.CARGOADICIA) - datosexa.TOTALEXACIA) AS DESC_CIA,
    datosexa.CARGOADICIA AS CARGOADICIA,datosexa.TOTALPAGARCIA AS TOTALPAGARCIA,datosexa.PAGADOCIA AS PAGADOCIA,datosexa.SALDOCIA AS SALDOCIA,
    datosexa.NUMEROCLI AS NUMEROCLI,datosexa.MEDICO AS CODIGODR,datosexa.CIA AS CODCIA,datosexa.FACTURARA AS FACTURARA,
    datosexa.ENVIARRESU AS ENVIARRESU,datosexa.MUESTRALAB AS MUESTRALAB,datosexa.IDIOMA AS IDIOMA,datosexa.CUARTO AS CUARTO,
    datosexa.DESCUENTO AS DESCUENTO,datosexa.CREAUI AS CREAUI,datosexa.MODIUSERID AS MODIUSERID,datosexa.PRIORIDAD AS PRIORIDAD,
    datosexa.DIRIP AS DIRIP,datosexa.DESCUENTOCIA AS DESCUENTOCIA,datosexa.FACTURARAID AS FACTURARAID,
    datosexa.FERIA AS FERIA,datosexa.TITULARSEGURO AS TITULARSEGURO,
    pacientes.TMPLLAVE AS PACIENTE,
    doctores.TITULO AS TITULODR,doctores.VENDEDOR AS VISITADOR,
    cias.NOMBRE AS NOMBRECIA,doctores.TMPLLAVE AS MEDICO,cias.VENDEDOR AS VENDEDOR,
    laboratorios.laboratorio AS LABORATORIO,
    counters.sociedad AS SOCIEDAD
    from (((((datosexa join pacientes on((pacientes.NUMEROCLI = datosexa.NUMEROCLI))) 
      join cias on((datosexa.CIA = cias.CODIGO))) 
      join doctores on((datosexa.MEDICO = doctores.CODIGO))) 
      join laboratorios on((datosexa.LABID = laboratorios.labid))) 
      join counters on((laboratorios.counterid = counters.id)));


DROP VIEW IF EXISTS ordenescia;
CREATE VIEW ordenescia as
  SELECT datosexa.CIA AS CIA,cias.NOMBRE AS NOMBRE,pacientes.ID AS Id,pacientes.TMPLLAVE AS Paciente,
  doctores.TMPLLAVE AS Medico,datosexa.MUESTRALAB AS Muestralab,datosexa.NUMEREX AS Orden,datosexa.STATUS AS Estatus,datosexa.FECHARES AS Fecha,
  datosexa.TOTALPAGAR AS Total,datosexa.PAGADO AS Pagado,datosexa.SALDO AS Saldo,datosexa.TOTALPAGARCLI AS Totalcli,datosexa.PAGADOCLI AS Pagadocli,
  datosexa.SALDOCLI AS Saldocli,datosexa.TOTALPAGARCIA AS Totalcia,datosexa.PAGADOCIA AS Pagadocia,datosexa.SALDOCIA AS Saldocia,
  reportes.reporte AS REPORTE,datosexa.VALIDADA AS VALIDADA, datosexa.OBSERVACIONES AS Observaciones,laboratorios.labid AS labid,
  laboratorios.laboratorio AS laboratorio,counters.id AS counterid,counters.sociedad AS sociedad 
  from ((((((datosexa 
    join cias on((datosexa.CIA = cias.CODIGO))) 
    join pacientes on((datosexa.NUMEROCLI = pacientes.NUMEROCLI))) 
    join doctores on((datosexa.MEDICO = doctores.CODIGO))) 
    left join reportes on((datosexa.NUMEREX = reportes.numerex))) 
    join laboratorios on((datosexa.LABID = laboratorios.labid))) 
    join counters on(((laboratorios.counterid = counters.id) and (laboratorios.counterid = counters.id))));


DROP VIEW IF EXISTS ordenesmed;
CREATE VIEW ordenesmed as
  select datosexa.NUMEREX AS NUMEREX,datosexa.STATUS AS STATUS,
  datosexa.ORDENC AS ORDENC,
  datosexa.TOTALPAGAR AS TOTALPAGAR,datosexa.PAGADO AS PAGADO,datosexa.SALDO AS SALDO,
  datosexa.TOTALPAGARCLI AS TOTALPAGARCLI,datosexa.PAGADOCLI AS PAGADOCLI,datosexa.SALDOCLI AS SALDOCLI,
  datosexa.TOTALPAGARCIA AS TOTALPAGARCIA,datosexa.PAGADOCIA AS PAGADOCIA,datosexa.SALDOCIA AS SALDOCIA,
  datosexa.FECHARES AS FECHARES,datosexa.FECHAFIN AS FECHAFIN,
  datosexa.FECHAMOD AS FECHAMOD,datosexa.MEDICO AS MEDICO, datosexa.VALIDADA as VALIDADA,
  reportes.REPORTE AS REPORTE,pacientes.TMPLLAVE AS TMPLLAVE,
  datosexa.CIA AS CIA
   FROM (datosexa 
   join pacientes ON((pacientes.NUMEROCLI = datosexa.NUMEROCLI))
   left join reportes on ((datosexa.numerex = reportes.numerex)))
   WHERE (datosexa.STATUS <> _latin1'E');

DROP VIEW IF EXISTS ordenespruebas;
CREATE VIEW ordenespruebas as
  select examenes.CODIEX as CODIEX, examenes.NUMEREX AS NUMEREX, 
    datosexa.STATUS AS STATUS, date(datosexa.FECHARES) AS FECHARES,
    direxame.NOMBREXA as NOMBREXA,
    laboratorios.laboratorio AS LABORATORIO, 
    departamentos.Departamendo as Departamento 
  from ((((datosexa
    join laboratorios on (datosexa.LABID = laboratorios.labid))  
    join examenes on (datosexa.NUMEREX = examenes.NUMEREX))
    join direxame on (examenes.CODIEX = direxame.CODIEX))
    join departamentos on (direxame.DPTO = departamentos.DPTO));


DROP VIEW IF EXISTS resumenciasxdia;
CREATE VIEW resumenciasxdia as
  SELECT cias.NOMBRE AS Cia,date(datosexa.FECHARES) AS Fecha,
	sum(datosexa.TOTALPAGAR) AS Total,sum(datosexa.PAGADO) AS Pagado,sum(datosexa.SALDO) AS Saldo,
	sum(datosexa.TOTALPAGARCLI) AS Totalcli,sum(datosexa.PAGADOCLI) AS Pagadocli,sum(datosexa.SALDOCLI) AS Saldocli,
	sum(datosexa.TOTALPAGARCIA) AS Totalcia,sum(datosexa.PAGADOCIA) AS Pagadocia,sum(datosexa.SALDOCIA) AS Saldocia
  from cias left join datosexa on cias.CODIGO = datosexa.CIA where datosexa.CIA <> 0 group by 1,2;

DROP VIEW IF EXISTS sendorden;
CREATE VIEW sendorden as
  SELECT datosexa.NUMEREX, pacientes.NUMEROCLI, pacientes.PRIMERAPE, pacientes.NOMBRE, pacientes.NACIO,pacientes.SEXO,
	datosexa.PRIORIDAD, datosexa.FECHARES, resultados.MNEMONIC,
	concat(if(translatemnemonic.mdf is null,'',translatemnemonic.mdf),
		if(translatemnemonic.sepsimbol is null,'',translatemnemonic.sepsimbol),
		if(translatemnemonic.varequipo is null,'',translatemnemonic.varequipo),
		if(translatemnemonic.sepsimbol is null,'',translatemnemonic.sepsimbol),
		if(translatemnemonic.tdf is null,'',translatemnemonic.tdf)) as VAREQUIPO,
	translatemnemonic.equipoid
	FROM datosexa
	Inner Join pacientes ON datosexa.NUMEROCLI = pacientes.NUMEROCLI
	Inner Join examenes ON datosexa.NUMEREX = examenes.NUMEREX
	Inner Join resultados ON examenes.EXAMENID = resultados.EXAMENID
	Inner Join translatemnemonic ON resultados.MNEMONIC = translatemnemonic.mnemonic
	WHERE resultados.mnemonic is not null;

DROP VIEW IF EXISTS userdecias;
CREATE VIEW userdecias AS
  select cias.CODIGO AS CODIGO,cias.USERID AS USERID,
  cias.CLAVE AS CLAVE 
  FROM cias;

DROP VIEW IF EXISTS userdedrs;
CREATE VIEW userdedrs as
  select doctores.CODIGO AS CODIGO,doctores.USERID AS USERID,
  doctores.CLAVEMED AS CLAVEMED 
  FROM doctores;

DROP VIEW IF EXISTS documentosfacturacion;
CREATE VIEW documentosfacturacion as
  select factura_orden_cia.id AS id, factura_orden_cia.docnum AS docnum, factura_orden_cia.tipo_documento AS tipo_documento,
  factura_orden_cia.tipo_factura AS tipo_factura, factura_orden_cia.tipo_impresora AS tipo_impresora, factura_orden_cia.facturanum AS facturanum,
  factura_orden_cia.numerocli AS numerocli, factura_orden_cia.paciente AS paciente, factura_orden_cia.cedula_paciente AS cedula_paciente,
  factura_orden_cia.cliente AS cliente, factura_orden_cia.cedula_cliente AS cedula_cliente, factura_orden_cia.numerex AS numerex,
  factura_orden_cia.fechafac AS fechafac, factura_orden_cia.status AS status, factura_orden_cia.del AS del, factura_orden_cia.al AS al,
  factura_orden_cia.totalsindescuento AS totalsindescuento, factura_orden_cia.descuentospor AS descuentospor, factura_orden_cia.cargosadi AS cargosadi,
  factura_orden_cia.totalpagar AS totalpagar, factura_orden_cia.pagado AS pagado, factura_orden_cia.saldo AS saldo, 
  factura_orden_cia.facturadigital AS facturadigital, factura_orden_cia.userid AS userid, factura_orden_cia.creada AS creada, 
  (year(factura_orden_cia.creada)*100 + month(factura_orden_cia.creada)) as periodo, 
  counters.sociedad AS sociedad, 
  laboratorios.laboratorio AS laboratorio,cias.NOMBRE AS NOMBRE 
  FROM (((factura_orden_cia join counters on((factura_orden_cia.counterid = counters.id))) join laboratorios on((laboratorios.labid = factura_orden_cia.labid))) 
  LEFT JOIN cias on((factura_orden_cia.cia = cias.CODIGO)));

DROP VIEW IF EXISTS resultadosorden;
CREATE VIEW resultadosorden as
  select resultados.id,datosexa.numerex, examenes.codiex,examenes.examenid, resultados.secuencia, resultados.sexo, resultados.edadmin, resultados.edadmax, resultados.tiporesult,
  resultados.bandera,resultados.leyenda, resultados.resultado, resultados.unidades, resultados.normales,resultados.variable, resultados.formula, resultados.status,resultados.numdec,resultados.fechamod,resultados.mnemonic, resultados.validado, resultados.validadopor, resultados.validadoel 
  FROM datosexa,examenes, resultados 
  WHERE datosexa.numerex=examenes.numerex and examenes.examenid=resultados.examenid 
  ORDER BY examenes.numerex, examenes.codiex,resultados.secuencia;

DROP VIEW IF EXISTS usuariosview;
CREATE VIEW usuariosview as
  select usuarioid, usuario, nombre, primerape, citas from usuarios; 

DROP VIEW IF EXISTS reglasaplican;
CREATE VIEW reglasaplican AS
SELECT reglasprecios.ID AS ID,reglasprecios.TIPOREGLA AS TIPOREGLA,reglasprecios.DESCRIPCION AS DESCRIPCION,
  concat_ws("-",reglasprecios.TIPOREGLA,reglasprecios.DESCRIPCION) as regladescripcion, 
  reglasprecios.RESPETAMINIMO AS RESPETAMINIMO,reglasprecios.FACTORPRECIO AS FACTORPRECIO,
  reglasprecios.FACTORDEDUCIBLE AS FACTORDEDUCIBLE,reglasprecios.REDONDEOA AS REDONDEOA,
  reglasprecios.TODASLASPRUEBAS AS TODASLASPRUEBAS,reglasprecios.GRUPOPRUEBAS AS GRUPOPRUEBAS,
  reglasprecios.MONTOPRECIO AS MONTOPRECIO,reglasprecios.MONTODEDUCIBLE AS MONTODEDUCIBLE,
  cia_reglas.ciaid AS ciaid,doctores_reglas.medicoid AS medicoid,paciente_reglas.pacienteid AS pacienteid
  FROM (((reglasprecios left join cia_reglas on((cia_reglas.reglaid = reglasprecios.ID))) 
  left join doctores_reglas on((doctores_reglas.reglaid = reglasprecios.ID))) 
  left join paciente_reglas on((paciente_reglas.reglaid = reglasprecios.ID)));
  
DROP VIEW IF EXISTS hojarutatubos;
CREATE VIEW hojarutatubos AS
select rutatubos.muestra AS muestra,rutatubos.marcatiempo AS marcatiempo,
    rutatubos.origen as origenid, rutatubos.destino as destinoid,
    sec_users.login as usuario,
    a.lugar AS Origen,b.lugar AS Destino 
    from (((rutatubos 
    left join sec_users on((rutatubos.idusuario = sec_users.usuarioid))) 
    join lugarestubos a on((rutatubos.origen = a.idlocalizacion))) 
    join lugarestubos b on((rutatubos.destino = b.idlocalizacion)))
    order by marcatiempo;

DROP VIEW IF EXISTS datosexa_fechares_dim;
CREATE VIEW datosexa_fechares_dim AS
select * from datosexa inner join fecha_dim on date(fechares) = fecha_dim.fecha;

DROP VIEW IF EXISTS datosexa_fechafin_dim;
CREATE VIEW datosexa_fechafin_dim AS
select * from datosexa inner join fecha_dim on date(fechafin) = fecha_dim.fecha;

DROP VIEW IF EXISTS resultadosxequipo;
CREATE VIEW resultadosxequipo AS
select translatemnemonic.equipoid AS equipoid,translatemnemonic.mdf AS mdf,translatemnemonic.tdf AS tdf,
  translatemnemonic.varequipo AS varequipo,translatemnemonic.sepsimbol AS sepsimbol,translatemnemonic.mnemonic AS mnemonic,
  defaults.CODIEX AS CODIEX,direxame.NOMBREXA AS NOMBREXA,direxame.U AS U, 
  defaults.LEYENDA AS LEYENDA,defaults.UNIDADES AS UNIDADES
  from ((translatemnemonic 
    join defaults on((translatemnemonic.mnemonic = defaults.MNEMONIC))) 
  join direxame on((defaults.CODIEX = direxame.CODIEX)));

