Пример #1
0
 private void butReport_Click(object sender, System.EventArgs e)
 {
     //if(errorProvider1.GetError(textDateFrom) != ""
     //	|| errorProvider1.GetError(textDateTo) != "")
     //{
     //	MsgBox.Show(this,"Please fix data entry errors first.");
     //	return;
     //}
     //DateTime dateFrom=PIn.PDate(textDateFrom.Text);
     //DateTime dateTo=PIn.PDate(textDateTo.Text);
     //if(dateTo < dateFrom)
     //{
     //	MsgBox.Show(this,"To date cannot be before From date.");
     //	return;
     //}
     ReportLikeCrystal report=new ReportLikeCrystal();
     report.ReportName=Lan.g(this,"PaymentPlans");
     report.AddTitle(Lan.g(this,"Payment Plans"));
     report.AddSubTitle(PrefC.GetString(PrefName.PracticeTitle));
     report.AddSubTitle(DateTime.Today.ToShortDateString());
     DataTable table=new DataTable();
     //table.Columns.Add("date");
     table.Columns.Add("guarantor");
     table.Columns.Add("ins");
     table.Columns.Add("princ");
     table.Columns.Add("paid");
     table.Columns.Add("due");
     table.Columns.Add("dueTen");
     DataRow row;
     string datesql="CURDATE()";
     if(DataConnection.DBtype==DatabaseType.Oracle){
         datesql="(SELECT CURRENT_DATE FROM dual)";
     }
     string command=@"SELECT FName,LName,MiddleI,PlanNum,Preferred,
         (SELECT SUM(Principal+Interest) FROM payplancharge WHERE payplancharge.PayPlanNum=payplan.PayPlanNum
         AND ChargeDate <= "+datesql+@") ""_accumDue"",
         (SELECT SUM(Principal+Interest) FROM payplancharge WHERE payplancharge.PayPlanNum=payplan.PayPlanNum
         AND ChargeDate <= "+DbHelper.DateAddDay(datesql,POut.Long(PrefC.GetLong(PrefName.PayPlansBillInAdvanceDays)))+@") ""_dueTen"",
         (SELECT SUM(SplitAmt) FROM paysplit WHERE paysplit.PayPlanNum=payplan.PayPlanNum) ""_paid"",
         (SELECT SUM(Principal) FROM payplancharge WHERE payplancharge.PayPlanNum=payplan.PayPlanNum) ""_principal""
         FROM payplan
         LEFT JOIN patient ON patient.PatNum=payplan.Guarantor "
         //WHERE SUBSTRING(Birthdate,6,5) >= '"+dateFrom.ToString("MM-dd")+"' "
         //+"AND SUBSTRING(Birthdate,6,5) <= '"+dateTo.ToString("MM-dd")+"' "
         +"GROUP BY FName,LName,MiddleI,Preferred,payplan.PayPlanNum ORDER BY LName,FName";
     DataTable raw=Reports.GetTable(command);
     //DateTime payplanDate;
     Patient pat;
     double princ;
     double paid;
     double accumDue;
     double dueTen;
     for(int i=0;i<raw.Rows.Count;i++){
         princ=PIn.Double(raw.Rows[i]["_principal"].ToString());
         paid=PIn.Double(raw.Rows[i]["_paid"].ToString());
         accumDue=PIn.Double(raw.Rows[i]["_accumDue"].ToString());
         dueTen=PIn.Double(raw.Rows[i]["_dueTen"].ToString());
         row=table.NewRow();
         //payplanDate=PIn.PDate(raw.Rows[i]["PayPlanDate"].ToString());
         //row["date"]=raw.Rows[i]["PayPlanDate"].ToString();//payplanDate.ToShortDateString();
         pat=new Patient();
         pat.LName=raw.Rows[i]["LName"].ToString();
         pat.FName=raw.Rows[i]["FName"].ToString();
         pat.MiddleI=raw.Rows[i]["MiddleI"].ToString();
         pat.Preferred=raw.Rows[i]["Preferred"].ToString();
         row["guarantor"]=pat.GetNameLF();
         if(raw.Rows[i]["PlanNum"].ToString()=="0"){
             row["ins"]="";
         }
         else{
             row["ins"]="X";
         }
         row["princ"]=princ.ToString("f");
         row["paid"]=paid.ToString("f");
         row["due"]=(accumDue-paid).ToString("f");
         row["dueTen"]=(dueTen-paid).ToString("f");
         table.Rows.Add(row);
     }
     report.ReportTable=table;
     //report.AddColumn("Date",90,FieldValueType.Date);
     report.AddColumn("Guarantor",160,FieldValueType.String);
     report.AddColumn("Ins",40,FieldValueType.String);
     report.GetLastRO(ReportObjectKind.TextObject).TextAlign=ContentAlignment.MiddleCenter;
     report.GetLastRO(ReportObjectKind.FieldObject).TextAlign=ContentAlignment.MiddleCenter;
     report.AddColumn("Princ",100,FieldValueType.String);
     report.GetLastRO(ReportObjectKind.TextObject).TextAlign=ContentAlignment.MiddleRight;
     report.GetLastRO(ReportObjectKind.FieldObject).TextAlign=ContentAlignment.MiddleRight;
     report.AddColumn("Paid",100,FieldValueType.String);
     report.GetLastRO(ReportObjectKind.TextObject).TextAlign=ContentAlignment.MiddleRight;
     report.GetLastRO(ReportObjectKind.FieldObject).TextAlign=ContentAlignment.MiddleRight;
     report.AddColumn("Due Now",100,FieldValueType.String);
     report.GetLastRO(ReportObjectKind.TextObject).TextAlign=ContentAlignment.MiddleRight;
     report.GetLastRO(ReportObjectKind.FieldObject).TextAlign=ContentAlignment.MiddleRight;
     report.AddColumn("Due in "+PrefC.GetLong(PrefName.PayPlansBillInAdvanceDays).ToString()
         +" Days",100,FieldValueType.String);
     report.GetLastRO(ReportObjectKind.TextObject).TextAlign=ContentAlignment.MiddleRight;
     report.GetLastRO(ReportObjectKind.FieldObject).TextAlign=ContentAlignment.MiddleRight;
     //report.GetLastRO(ReportObjectKind.FieldObject).FormatString="d";
     report.AddPageNum();
     //report.SubmitQuery();
     //report.ReportTable=Patients.GetBirthdayList(dateFrom,dateTo);
     //if(!report.SubmitQuery()){
     //	return;
     //}
     FormReportLikeCrystal FormR=new FormReportLikeCrystal(report);
     FormR.ShowDialog();
     DialogResult=DialogResult.OK;
 }
Пример #2
0
		private void ExecuteReport(){
			ReportLikeCrystal report=new ReportLikeCrystal();
			report.IsLandscape=true;
			report.AddTitle("CAPITATION UTILIZATION");
			report.AddSubTitle(PrefC.GetString(PrefName.PracticeTitle));
//incomplete: Need more flexible default values, eg based on current date instead of fixed date:
			DateTime DateTimeFirst=new DateTime(DateTime.Today.Year,DateTime.Today.Month,1);
			report.AddParameter("carrier",FieldValueType.String,""
				,"Enter a few letters of the name of the insurance carrier"
				,"carrier.CarrierName LIKE '%?%'"); // SPK 8/04
			report.AddParameter("date1",FieldValueType.Date,DateTimeFirst
				,"From Date"
				,"procedurelog.ProcDate >= '?'");
			report.AddParameter("date2",FieldValueType.Date
				,DateTimeFirst.AddMonths(1).AddDays(-1)
				,"To Date"
				,"procedurelog.ProcDate <= '?'");		// added carrierNum, SPK
			report.Query=@"SELECT carrier.CarrierName,CONCAT(CONCAT(patSub.LName,', '),patSub.FName) 
				,patSub.SSN,CONCAT(CONCAT(patPat.LName,', '),patPat.FName)
				,patPat.Birthdate,procedurecode.ProcCode,procedurecode.Descript
				,procedurelog.ToothNum,procedurelog.Surf,procedurelog.ProcDate
				,procedurelog.ProcFee,procedurelog.ProcFee-claimproc.WriteOff
				FROM procedurelog,patient AS patSub,patient AS patPat
				,insplan,inssub,carrier,procedurecode,claimproc
				WHERE procedurelog.PatNum = patPat.PatNum
				AND claimproc.InsSubNum = inssub.InsSubNum
				AND procedurelog.ProcNum = claimproc.ProcNum
				AND claimproc.PlanNum = insplan.PlanNum
				AND claimproc.Status = 7
				AND claimproc.NoBillIns = 0 
				AND inssub.Subscriber = patSub.PatNum
				AND insplan.CarrierNum = carrier.CarrierNum	
				AND procedurelog.CodeNum = procedurecode.CodeNum
				AND ?carrier
				AND ?date1
				AND ?date2
				AND insplan.PlanType = 'c'
				AND procedurelog.ProcStatus = 2";
			report.AddColumn("Carrier",150,FieldValueType.String);
			report.GetLastRO(ReportObjectKind.FieldObject).SuppressIfDuplicate=true;
			report.AddColumn("Subscriber",120,FieldValueType.String);
			report.GetLastRO(ReportObjectKind.FieldObject).SuppressIfDuplicate=true;
			report.AddColumn("Subsc SSN",70,FieldValueType.String);
			report.GetLastRO(ReportObjectKind.FieldObject).SuppressIfDuplicate=true;
			report.AddColumn("Patient",120,FieldValueType.String);
			report.AddColumn("Pat DOB",80,FieldValueType.Date);
			report.AddColumn("Code",50,FieldValueType.String);
			report.AddColumn("Proc Description",120,FieldValueType.String);
			report.AddColumn("Tth",30,FieldValueType.String);
			report.AddColumn("Surf",40,FieldValueType.String);
			report.AddColumn("Date",80,FieldValueType.Date);
			report.AddColumn("UCR Fee",70,FieldValueType.Number);
			report.AddColumn("Co-Pay",70,FieldValueType.Number);
			report.AddPageNum();
      if(!report.SubmitQuery()){
				DialogResult=DialogResult.Cancel;
				return;
			}
//incomplete: Add functionality for using parameter values in textObjects, probably using inline XML:
			report.AddSubTitle(((DateTime)report.ParameterFields["date1"].CurrentValues[0]).ToShortDateString()+" - "+((DateTime)report.ParameterFields["date2"].CurrentValues[0]).ToShortDateString());
//incomplete: Implement formulas for situations like this:
			for(int i=0;i<report.ReportTable.Rows.Count;i++){
				if(PIn.Double(report.ReportTable.Rows[i][11].ToString())==-1){
					report.ReportTable.Rows[i][11]="0";
				}
			}
			FormReportLikeCrystal FormR=new FormReportLikeCrystal(report);
			//FormR.MyReport=report;
			FormR.ShowDialog();
			DialogResult=DialogResult.OK;
		}
Пример #3
0
        private void butOK_Click(object sender, System.EventArgs e)
        {
            //validate user input
            if(textDateFrom.errorProvider1.GetError(textDateFrom) != ""
                || textDateTo.errorProvider1.GetError(textDateTo) != "")
            {
                MessageBox.Show(Lan.g(this,"Please fix data entry errors first."));
                return;
            }
            if(textDateFrom.Text.Length == 0
                || textDateTo.Text.Length == 0)
            {
                MessageBox.Show(Lan.g(this,"From and To dates are required."));
                return;
            }
            DateTime dateFrom=PIn.Date(textDateFrom.Text);
            DateTime dateTo=PIn.Date(textDateTo.Text);
            if(dateTo < dateFrom)
            {
                MessageBox.Show(Lan.g(this,"To date cannot be before From date."));
                return;
            }
            if(listProv.SelectedIndices.Count==0)
            {
                MessageBox.Show(Lan.g(this,"You must select at least one provider."));
                return;
            }

            string whereProv;//used as the provider portion of the where clauses.
            //each whereProv needs to be set up separately for each query
            whereProv="(appointment.ProvNum IN (";
            for(int i=0;i<listProv.SelectedIndices.Count;i++){
                if(i>0){
                    whereProv+=",";
                }
                whereProv+="'"+POut.Long(ProviderC.ListShort[listProv.SelectedIndices[i]].ProvNum)+"'";
            }
            whereProv += ") ";
            whereProv+="OR appointment.ProvHyg IN (";
            for(int i=0;i<listProv.SelectedIndices.Count;i++) {
                if(i>0) {
                    whereProv+=",";
                }
                whereProv+="'"+POut.Long(ProviderC.ListShort[listProv.SelectedIndices[i]].ProvNum)+"'";
            }
            whereProv += ")) ";
            //create the report
            ReportLikeCrystal report=new ReportLikeCrystal();
            report.IsLandscape=true;
            report.ReportName="Appointments";
            report.AddTitle("Appointments");
            report.AddSubTitle(PrefC.GetString(PrefName.PracticeTitle));
            report.AddSubTitle(dateFrom.ToShortDateString()+" - "+dateTo.ToShortDateString());
            //setup query
            report.Query=@"SELECT appointment.AptDateTime,
                trim(CONCAT(CONCAT(CONCAT(CONCAT(concat(patient.LName,', '),case when length(patient.Preferred) > 0
                then CONCAT(CONCAT('(',patient.Preferred),') ') else '' end),patient.fname), ' '),patient.middlei))
                AS PatName,
                patient.Birthdate,
                appointment.AptDateTime,
                length(appointment.Pattern)*5,
                appointment.ProcDescript,
                patient.HmPhone, patient.WkPhone, patient.WirelessPhone
                FROM appointment INNER JOIN patient ON appointment.PatNum = patient.PatNum
                WHERE appointment.AptDateTime between " + POut.Date(dateFrom) + " AND "
                +POut.Date(dateTo.AddDays(1)) + " AND " +
                "AptStatus != '" + (int)ApptStatus.UnschedList + "' AND " +
                "AptStatus != '" + (int)ApptStatus.Planned + "' AND " +
                whereProv + " " +
                "ORDER BY appointment.AptDateTime, 2";
            // add columns to report
            report.AddColumn("Date", 75, FieldValueType.Date);
            report.GetLastRO(ReportObjectKind.FieldObject).SuppressIfDuplicate = true;
            report.GetLastRO(ReportObjectKind.FieldObject).FormatString="d";
            report.AddColumn("Patient", 175, FieldValueType.String);
            report.AddColumn("Age", 45, FieldValueType.Age);
            // remove the total column
            //if(report.ReportObjects[report.ReportObjects.Count-1].SummarizedField == "Age")
            //	report.ReportObjects.RemoveAt(report.ReportObjects.Count-1);
            //report.GetLastRO(ReportObjectKind.FieldObject).FormatString = "###0";
            //report.GetLastRO(ReportObjectKind.FieldObject).TextAlign = ContentAlignment.MiddleCenter;
            //report.GetLastRO(ReportObjectKind.TextObject).TextAlign = ContentAlignment.MiddleCenter;
            report.AddColumn("Time", 65, FieldValueType.Date);
            report.GetLastRO(ReportObjectKind.FieldObject).FormatString="t";
            report.GetLastRO(ReportObjectKind.TextObject).TextAlign = ContentAlignment.MiddleRight;
            report.GetLastRO(ReportObjectKind.FieldObject).TextAlign = ContentAlignment.MiddleRight;
            report.AddColumn("Length", 60, FieldValueType.Integer);
            report.GetLastRO(ReportObjectKind.TextObject).Location=new Point(
                report.GetLastRO(ReportObjectKind.TextObject).Location.X+6,
                report.GetLastRO(ReportObjectKind.TextObject).Location.Y);
            report.GetLastRO(ReportObjectKind.FieldObject).Location=new Point(
                report.GetLastRO(ReportObjectKind.FieldObject).Location.X+8,
                report.GetLastRO(ReportObjectKind.FieldObject).Location.Y);
            report.AddColumn("Description", 170, FieldValueType.String);
            report.AddColumn("Home Ph.", 120, FieldValueType.String);
            report.AddColumn("Work Ph.", 120, FieldValueType.String);
            report.AddColumn("Cell Ph.", 120, FieldValueType.String);
            report.AddPageNum();
            // execute query
            if(!report.SubmitQuery()){
                return;
            }
            // display report
            FormReportLikeCrystal FormR=new FormReportLikeCrystal(report);
            //FormR.MyReport=report;
            FormR.ShowDialog();
            DialogResult=DialogResult.OK;
        }
Пример #4
0
 private void butPrint_Click(object sender, System.EventArgs e)
 {
     if(!SaveData()){
         return;
     }
     ReportLikeCrystal report=new ReportLikeCrystal();
     report.AddTitle("Payment Plan Terms");
     report.AddSubTitle(PrefC.GetString(PrefName.PracticeTitle));
     report.AddSubTitle(DateTime.Today.ToShortDateString());
     string sectName="Report Header";
     Section section=report.Sections["Report Header"];
     //int sectIndex=report.Sections.GetIndexOfKind(AreaSectionKind.ReportHeader);
     Size size=new Size(300,20);//big enough for any text
     Font font=new Font("Tahoma",9);
     ContentAlignment alignL=ContentAlignment.MiddleLeft;
     ContentAlignment alignR=ContentAlignment.MiddleRight;
     int yPos=140;
     int space=30;
     int x1=175;
     int x2=275;
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x1,yPos),size,"Patient",font,alignL));
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x2,yPos),size,textPatient.Text,font,alignR));
     yPos+=space;
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x1,yPos),size,"Guarantor",font,alignL));
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x2,yPos),size,textGuarantor.Text,font,alignR));
     yPos+=space;
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x1,yPos),size,"Date of Agreement",font,alignL));
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x2,yPos),size,PayPlanCur.PayPlanDate.ToString("d"),font,alignR));
     yPos+=space;
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x1,yPos),size,"Principal",font,alignL));
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x2,yPos),size,TotPrinc.ToString("n"),font,alignR));
     yPos+=space;
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x1,yPos),size,"Annual Percentage Rate",font,alignL));
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x2,yPos),size,PayPlanCur.APR.ToString("f1"),font,alignR));
     yPos+=space;
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x1,yPos),size,"Total Finance Charges",font,alignL));
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x2,yPos),size,TotInt.ToString("n"),font,alignR));
     yPos+=space;
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x1,yPos),size,"Total Cost of Loan",font,alignL));
     report.ReportObjects.Add(new ReportObject
         (sectName,new Point(x2,yPos),size,TotPrincInt.ToString("n"),font,alignR));
     yPos+=space;
     section.Height=yPos+30;
     report.AddColumn("ChargeDate",80,FieldValueType.Date);
     //move the first column more to the middle
     report.GetLastRO(ReportObjectKind.TextObject).Location=new Point(150,0);
     report.GetLastRO(ReportObjectKind.TextObject).StaticText="Date";
     report.GetLastRO(ReportObjectKind.FieldObject).Location=new Point(150,0);
     report.AddColumn("Description",150,FieldValueType.String);
     report.AddColumn("Charges",70,FieldValueType.Number);
     report.AddColumn("Credits",70,FieldValueType.Number);
     report.AddColumn("Balance",70,FieldValueType.String);
     //report.AddColumn("Note",300,FieldValueType.String);
     //report.GetLastRO(ReportObjectKind.TextObject).Location=new Point(report.GetLastRO(ReportObjectKind.TextObject).Location.X+20,0);
     report.GetLastRO(ReportObjectKind.TextObject).TextAlign=ContentAlignment.MiddleRight;
     report.GetLastRO(ReportObjectKind.FieldObject).TextAlign=ContentAlignment.MiddleRight;
     //report.Query="SELECT ChargeDate,Principal,Interest,Principal+Interest,Note "
     //	+"FROM payplancharge WHERE PayPlanNum="+POut.PInt(PayPlanCur.PayPlanNum)
     //	+" ORDER BY ChargeDate";
     //if(!report.SubmitQuery()){
     //	return;
     //}
     //report.Sections[
     DataTable tbl=new DataTable();
     tbl.Columns.Add("date");
     tbl.Columns.Add("description");
     tbl.Columns.Add("charges");
     tbl.Columns.Add("credits");
     tbl.Columns.Add("balance");
     DataRow row;
     for(int i=0;i<table.Rows.Count;i++){
         row=tbl.NewRow();
         row["date"]=table.Rows[i]["date"].ToString();
         row["description"]=table.Rows[i]["description"].ToString();
         row["charges"]=table.Rows[i]["charges"].ToString();
         row["credits"]=table.Rows[i]["credits"].ToString();
         row["balance"]=table.Rows[i]["balance"].ToString();
         tbl.Rows.Add(row);
     }
     report.ReportTable=tbl;
     //yPos+=60;
     report.ReportObjects.Add(new ReportObject
         ("Report Footer",new Point(x1,70),size,"Signature of Guarantor:",font,alignL));
     FormReportLikeCrystal FormR=new FormReportLikeCrystal(report);
     FormR.ShowDialog();
 }
Пример #5
0
 private void butReport_Click(object sender, System.EventArgs e)
 {
     if(errorProvider1.GetError(textDateFrom) != ""
         || errorProvider1.GetError(textDateTo) != "")
     {
         MsgBox.Show(this,"Please fix data entry errors first.");
         return;
     }
     DateTime dateFrom=PIn.Date(textDateFrom.Text);
     DateTime dateTo=PIn.Date(textDateTo.Text);
     if(dateTo < dateFrom)
     {
         MsgBox.Show(this,"To date cannot be before From date.");
         return;
     }
     ReportLikeCrystal report=new ReportLikeCrystal();
     report.ReportName=Lan.g(this,"Birthdays");
     report.AddTitle(Lan.g(this,"Birthdays"));
     report.AddSubTitle(PrefC.GetString(PrefName.PracticeTitle));
     report.AddSubTitle(dateFrom.ToString("MM/dd")+" - "+dateTo.ToString("MM/dd"));
     /*report.Query=@"SELECT LName,FName,Address,Address2,City,State,Zip,Birthdate,Birthdate
         FROM patient
         WHERE SUBSTRING(Birthdate,6,5) >= '"+dateFrom.ToString("MM-dd")+"' "
         +"AND SUBSTRING(Birthdate,6,5) <= '"+dateTo.ToString("MM-dd")+"' "
         +"AND PatStatus=0	ORDER BY LName,FName";*/
     report.AddColumn("LName",90,FieldValueType.String);
     report.AddColumn("FName",90,FieldValueType.String);
     report.AddColumn("Preferred",90,FieldValueType.String);
     report.AddColumn("Address",90,FieldValueType.String);
     report.AddColumn("Address2",90,FieldValueType.String);
     report.AddColumn("City",75,FieldValueType.String);
     report.AddColumn("State",60,FieldValueType.String);
     report.AddColumn("Zip",75,FieldValueType.String);
     report.AddColumn("Birthdate", 75, FieldValueType.Date);
     report.GetLastRO(ReportObjectKind.FieldObject).FormatString="d";
     report.AddColumn("Age", 45, FieldValueType.Integer);
     report.AddPageNum();
     report.ReportTable=Patients.GetBirthdayList(dateFrom,dateTo);
     //if(!report.SubmitQuery()){
     //	return;
     //}
     FormReportLikeCrystal FormR=new FormReportLikeCrystal(report);
     FormR.ShowDialog();
     DialogResult=DialogResult.OK;
 }