コード例 #1
0
    protected void Page_Init(object sender, EventArgs e)
    {
        ctx = new AriClinicContext("AriClinicContext");
        // security control, it must be a user logged
        if (Session["User"] == null)
            Response.Redirect("Default.aspx");
        else
        {
            user = CntAriCli.GetUser((Session["User"] as User).UserId, ctx);
            Process proc = (from p in ctx.Processes
                            where p.Code == "ticket"
                            select p).FirstOrDefault<Process>();
            per = CntAriCli.GetPermission(user.UserGroup, proc, ctx);
            btnAccept.Visible = per.Modify;
        }

       
            if (Request.QueryString["CustomerId"] != null)
            {
                customerId = Int32.Parse(Request.QueryString["CustomerId"]);
                cus = CntAriCli.GetCustomer(customerId, ctx);
                //txtCustomerId.Text = cus.PersonId.ToString();

                rdcComercialName.Items.Clear();
                rdcComercialName.Items.Add(new RadComboBoxItem(cus.FullName, cus.PersonId.ToString()));
                rdcComercialName.SelectedValue = cus.PersonId.ToString();
                rdcComercialName.Enabled = false;

                btnCustomerId.Visible = false;
            }
            else
            {
                LoadClinicCombo(null);
            }
            if (Session["Clinic"] != null)
                cl = (Clinic)Session["Clinic"];
            // 
            if (Request.QueryString["AnestheticServiceNoteId"] != null)
            {
                anestheticServiceNoteId = Int32.Parse(Request.QueryString["AnestheticServiceNoteId"]);
                asn = CntAriCli.GetAnestheticServiceNote(anestheticServiceNoteId, ctx);
                cus = asn.Customer;
                customerId = cus.PersonId;
                if(!IsPostBack)
                    LoadData(asn);
                // Load internal frame
                HtmlControl frm = (HtmlControl)this.FindControl("ifTickets");
                frm.Attributes["src"] = String.Format("TicketGrid.aspx?AnestheticServiceNoteId={0}", anestheticServiceNoteId);
            }
            else
            {
                // If there isn't a ticket the default date must be today
                rddpServiceNoteDate.SelectedDate = DateTime.Now;
                LoadClinicCombo(null);
            }
        
    }
コード例 #2
0
        public static bool[] SaveTckChecks(AnestheticServiceNote asn)
        {
            bool[] ls = new bool[asn.AnestheticTickets.Count];
            int    i  = 0;

            foreach (AnestheticTicket atck in asn.AnestheticTickets)
            {
                ls[i++] = atck.Checked;
            }
            return(ls);
        }
コード例 #3
0
 public static void ApplyRisk(AnestheticServiceNote asn, AriClinicContext ctx)
 {
     if (asn.Chk3)
     {
         foreach (AnestheticTicket atck in asn.AnestheticTickets)
         {
             atck.Amount = atck.Amount * 1.5M;
         }
         ctx.SaveChanges();
     }
 }
コード例 #4
0
        public static void ApplyPCA(AnestheticServiceNote asn, AriClinicContext ctx)
        {
            // Read parameters
            AriCliModel.Parameter parameter = GetParameter(ctx);
            Service painPump = parameter.PainPump;

            // Do we need check pain pump?
            if (painPump != null && asn.Chk1)
            {
                // Is there a pain pump assigned?
                var rs = from t in asn.AnestheticTickets
                         where t.InsuranceService.Service.ServiceId == painPump.ServiceId
                         select t;
                if (rs.Count() == 0)
                {
                    // Does this customer have a primary policy with that service?
                    Policy pol = PrimaryPolicy(asn.Customer);
                    if (pol == null)
                    {
                        throw new AriCliException(1, "There isn't a primary policy for this customer");
                    }
                    // Does this policy (insurance) includes a pain pump service?
                    InsuranceService ins = PolicyIncludesService(pol, painPump);
                    if (ins == null)
                    {
                        throw new AriCliException(2, "The insurance company have not the pain pump service assigned");
                    }
                    // More expensive procedure
                    AnestheticTicket aatck = asn.AnestheticTickets.OrderByDescending(x => x.Amount).FirstOrDefault <AnestheticTicket>();
                    if (aatck != null)
                    {
                        Procedure proc = aatck.Procedure;
                        // Everything seems ok, we can add the ticket
                        AnestheticTicket atck = new AnestheticTicket()
                        {
                            TicketDate            = asn.ServiceNoteDate,
                            Description           = String.Format("{0} ({1})", proc.Name, ins.Service.Name),
                            Amount                = ins.Price,
                            Policy                = pol,
                            InsuranceService      = ins,
                            User                  = asn.User,
                            Clinic                = asn.Clinic,
                            Professional          = asn.Professional,
                            Surgeon               = asn.Surgeon,
                            Procedure             = proc,
                            AnestheticServiceNote = asn
                        };
                        ctx.Add(atck);
                        ctx.SaveChanges();
                    }
                }
            }
        }
コード例 #5
0
 public static void ApplyPCA(AnestheticServiceNote asn, AriClinicContext ctx)
 {
     // Read parameters
     AriCliModel.Parameter parameter = GetParameter(ctx);
     Service painPump = parameter.PainPump;
     // Do we need check pain pump?
     if (painPump != null && asn.Chk1)
     {
         // Is there a pain pump assigned?
         var rs = from t in asn.AnestheticTickets
                  where t.InsuranceService.Service.ServiceId == painPump.ServiceId
                  select t;
         if (rs.Count() == 0)
         {
             // Does this customer have a primary policy with that service?
             Policy pol = PrimaryPolicy(asn.Customer);
             if (pol == null)
             {
                 throw new AriCliException(1, "There isn't a primary policy for this customer");
             }
             // Does this policy (insurance) includes a pain pump service?
             InsuranceService ins = PolicyIncludesService(pol, painPump);
             if (ins == null)
             {
                 throw new AriCliException(2, "The insurance company have not the pain pump service assigned");
             }
             // More expensive procedure
             AnestheticTicket aatck = asn.AnestheticTickets.OrderByDescending(x => x.Amount).FirstOrDefault<AnestheticTicket>();
             if (aatck != null)
             {
                 Procedure proc = aatck.Procedure;
                 // Everything seems ok, we can add the ticket
                 AnestheticTicket atck = new AnestheticTicket()
                 {
                     TicketDate = asn.ServiceNoteDate,
                     Description = String.Format("{0} ({1})", proc.Name, ins.Service.Name),
                     Amount = ins.Price,
                     Policy = pol,
                     InsuranceService = ins,
                     User = asn.User,
                     Clinic = asn.Clinic,
                     Professional = asn.Professional,
                     Surgeon = asn.Surgeon,
                     Procedure = proc,
                     AnestheticServiceNote = asn
                 };
                 ctx.Add(atck);
                 ctx.SaveChanges();
             }
         }
     }
 }
コード例 #6
0
 public static void ApplyMultiTicket(AnestheticServiceNote asn, AriClinicContext ctx)
 {
     bool first = true;
     if (asn.AnestheticTickets.Count > 1)
     {
         foreach (AnestheticTicket atck in asn.AnestheticTickets.OrderByDescending(x => x.Amount))
         {
             if (!first)
             {
                 atck.Amount = atck.Amount / 2;
                 atck.Comments = "-50%";
                 ctx.SaveChanges();
             }
             first = false;
         }
     }
 }
コード例 #7
0
        public static void ApplyMultiTicket(AnestheticServiceNote asn, AriClinicContext ctx)
        {
            bool first = true;

            if (asn.AnestheticTickets.Count > 1)
            {
                foreach (AnestheticTicket atck in asn.AnestheticTickets.OrderByDescending(x => x.Amount))
                {
                    if (!first)
                    {
                        atck.Amount   = atck.Amount / 2;
                        atck.Comments = "-50%";
                        ctx.SaveChanges();
                    }
                    first = false;
                }
            }
        }
コード例 #8
0
        public static bool UpdateRelatedTckV2(AnestheticServiceNote asn, bool[] lschk, AriClinicContext ctx)
        {
            bool res = true;

            try
            {
                CreateAssociateTickets(asn, ctx);
                ApplyMultiTicket(asn, ctx);
                ApplyPCA(asn, ctx);
                ApplyRisk(asn, ctx);
                CheckTickets(asn, lschk, ctx);
            }
            catch (AriCliException ex)
            {
                res = false;
            }
            return(res);
        }
コード例 #9
0
        public static void CheckTickets(AnestheticServiceNote asn, bool[] lschk, AriClinicContext ctx)
        {
            int i      = 0;
            int lenght = lschk.Count();

            foreach (AnestheticTicket actk in asn.AnestheticTickets)
            {
                if (asn.Chk2)
                {
                    actk.Checked = true;
                }
                else
                {
                    if (i < lenght)
                    {
                        actk.Checked = lschk[i];
                    }
                }
                i++;
            }
            ctx.SaveChanges();
        }
コード例 #10
0
        public static void CreateAssociateTickets(AnestheticServiceNote asn, AriClinicContext ctx)
        {
            // Does this customer have a primary policy with that service?
            Policy pol = PrimaryPolicy(asn.Customer);

            if (pol == null)
            {
                throw new AriCliException(1, "There isn't a primary policy for this customer");
            }
            // Delete all tickets
            ctx.Delete(asn.AnestheticTickets);
            foreach (Procedure proc in asn.Procedures)
            {
                // Does this policy includes related (from procedure) services
                InsuranceService ins = PolicyIncludesService(pol, proc.Service);
                if (ins == null)
                {
                    throw new AriCliException(3, "The insurance company have not the nomenclator service assigned");
                }
                // Everything seems ok, we can add anesthetic ticket
                AnestheticTicket atck = new AnestheticTicket()
                {
                    TicketDate            = asn.ServiceNoteDate,
                    Description           = String.Format("{0} ({1})", proc.Name, ins.Service.Name),
                    Amount                = ins.Price,
                    Policy                = pol,
                    InsuranceService      = ins,
                    User                  = asn.User,
                    Clinic                = asn.Clinic,
                    Professional          = asn.Professional,
                    Surgeon               = asn.Surgeon,
                    Procedure             = proc,
                    AnestheticServiceNote = asn
                };
                ctx.Add(atck);
                ctx.SaveChanges();
            }
        }
コード例 #11
0
        public static void CreateAssociateTickets(AnestheticServiceNote asn, AriClinicContext ctx)
        {
            // Does this customer have a primary policy with that service?
            Policy pol = PrimaryPolicy(asn.Customer);
            if (pol == null)
            {
                throw new AriCliException(1, "There isn't a primary policy for this customer");
            }
            // Delete all tickets
            ctx.Delete(asn.AnestheticTickets);
            foreach (Procedure proc in asn.Procedures)
            {
                // Does this policy includes related (from procedure) services
                InsuranceService ins = PolicyIncludesService(pol, proc.Service);
                if (ins == null)
                {
                    throw new AriCliException(3, "The insurance company have not the nomenclator service assigned");
                }
                // Everything seems ok, we can add anesthetic ticket
                AnestheticTicket atck = new AnestheticTicket()
                {
                    TicketDate = asn.ServiceNoteDate,
                    Description = String.Format("{0} ({1})", proc.Name, ins.Service.Name),
                    Amount = ins.Price,
                    Policy = pol,
                    InsuranceService = ins,
                    User = asn.User,
                    Clinic = asn.Clinic,
                    Professional = asn.Professional,
                    Surgeon = asn.Surgeon,
                    Procedure = proc,
                    AnestheticServiceNote = asn
                };
                ctx.Add(atck);
                ctx.SaveChanges();
            }

        }
コード例 #12
0
 public static bool UpdateRelatedTckV2(AnestheticServiceNote asn, bool[] lschk, AriClinicContext ctx)
 {
     bool res = true;
     try
     {
         CreateAssociateTickets(asn, ctx);
         ApplyMultiTicket(asn, ctx);
         ApplyPCA(asn, ctx);
         ApplyRisk(asn, ctx);
         CheckTickets(asn, lschk, ctx);
     }
     catch (AriCliException ex)
     {
         res = false;
     }
     return res;
 }
コード例 #13
0
 public static bool[] SaveTckChecks(AnestheticServiceNote asn)
 {
     bool[] ls = new bool[asn.AnestheticTickets.Count];
     int i = 0;
     foreach (AnestheticTicket atck in asn.AnestheticTickets)
     {
         ls[i++] = atck.Checked;
     }
     return ls;
 }
コード例 #14
0
 public static void CheckTickets(AnestheticServiceNote asn, bool[] lschk,  AriClinicContext ctx)
 {
     int i = 0;
     int lenght = lschk.Count();
     foreach (AnestheticTicket actk in asn.AnestheticTickets)
     {
         if (asn.Chk2)
         {
             actk.Checked = true;
         }
         else
         {
             if (i < lenght) actk.Checked = lschk[i];
         }
         i++;
     }
     ctx.SaveChanges();
 }
コード例 #15
0
 public static void ApplyRisk(AnestheticServiceNote asn, AriClinicContext ctx)
 {
     if (asn.Chk3)
     {
         foreach (AnestheticTicket atck in asn.AnestheticTickets)
         {
             atck.Amount = atck.Amount * 1.5M;
         }
         ctx.SaveChanges();
     }
 }
コード例 #16
0
 protected bool AreThereTicketsChecked(AnestheticServiceNote asn)
 {
     bool res = false;
     var rs = from t in asn.AnestheticTickets
              where t.Checked == true
              select t;
     if (rs.Count() > 0) res = true;
     return res;
 }
コード例 #17
0
 protected void LoadClinicCombo(AnestheticServiceNote asn)
 {
     // clear previous items 
     rdcbClinic.Items.Clear();
     foreach (Clinic c in ctx.Clinics)
     {
         rdcbClinic.Items.Add(new RadComboBoxItem(c.Name, c.ClinicId.ToString()));
     }
     if (asn != null)
     {
         rdcbClinic.SelectedValue = asn.Clinic.ClinicId.ToString();
     }
     else
     {
         if (cl != null)
         {
             rdcbClinic.SelectedValue = cl.ClinicId.ToString();
         }
         else
         {
             rdcbClinic.Items.Add(new RadComboBoxItem(" ", ""));
             rdcbClinic.SelectedValue = "";
         }
     }
 }
コード例 #18
0
ファイル: CntAriCli.cs プロジェクト: ragare62/AriClinic
 public static int InvoiceAnesthesicServiceNote(AnestheticServiceNote asn, AriClinicContext ctx)
 {
     // it there's an invoice related to this service 
     // we do nothing and return 0
     if (asn.Invoice != null)
         return 0;
     
     // invoice
     Invoice i = new Invoice();
     Decimal total = 0;
     i.Customer = asn.Customer;
     asn.Invoice = i; // this make the relationship
     i.InvoiceDate = asn.ServiceNoteDate;
     i.Serial = CntAriCli.GetHealthCompany(ctx).InvoiceSerial;
     i.Year = i.InvoiceDate.Year;
     i.InvoiceNumber = CntAriCli.GetNextInvoiceNumber(i.Serial, i.Year, ctx);
     ctx.Add(i);
         
     // invoice lines
     foreach (Ticket t in asn.AnestheticTickets)
     {
         InvoiceLine il = new InvoiceLine();
         il.Invoice = i;
         il.Ticket = t;
         il.Description = t.Description;
         il.Amount = t.Amount;
         il.TaxType = t.InsuranceService.Service.TaxType;
         il.TaxPercentage = il.TaxType.Percentage;
         total += il.Amount;
         ctx.Add(il);
     }
     i.Total = total;
 
     // save the work and return id
     ctx.SaveChanges();
     return i.InvoiceId;
 }
コード例 #19
0
    protected void UnloadData(AnestheticServiceNote asn)
    {
        asn.ServiceNoteDate = (DateTime)rddpServiceNoteDate.SelectedDate;
        clinicId = Int32.Parse(rdcbClinic.SelectedValue);
        asn.Clinic = CntAriCli.GetClinic(clinicId, ctx);
        asn.User = CntAriCli.GetUser(user.UserId, ctx);
        //
        decimal tt = 0;
        decimal.TryParse(txtTotal.Text, out tt);
        asn.Total = tt;
        //
        asn.Chk1 = chkChecked.Checked;
        asn.Chk2 = chkCkecked2.Checked;
        asn.Chk3 = chkChecked3.Checked;
        //customerId = Int32.Parse(txtCustomerId.Text);
        asn.Customer = CntAriCli.GetCustomer(int.Parse(rdcComercialName.SelectedValue), ctx);
        if (rdcProfessionalName.SelectedValue != "")
        {
            professionalId = Int32.Parse(rdcProfessionalName.SelectedValue);
            asn.Professional = CntAriCli.GetProfessional(professionalId, ctx);
        }
        else
        {
            asn.Professional = null;
        }
        if (rdcSurgeonName.SelectedValue != "")
        {
            surgeonId = Int32.Parse(rdcSurgeonName.SelectedValue);
            asn.Surgeon = CntAriCli.GetProfessional(surgeonId, ctx);
        }
        else
        {
            asn.Surgeon = null;
        }

        asn.Procedures.Clear();
        ctx.SaveChanges();
        //ctx.Delete(asn.Procedures);

        if (rdcProcedureName1.SelectedValue != "")
        {
            procedureId = Int32.Parse(rdcProcedureName1.SelectedValue);
            asn.Procedures.Add(CntAriCli.GetProcedure(procedureId, ctx));
        }
        if (rdcProcedureName2.SelectedValue != "")
        {
            procedureId = Int32.Parse(rdcProcedureName2.SelectedValue);
            asn.Procedures.Add(CntAriCli.GetProcedure(procedureId, ctx));
        }
        if (rdcProcedureName3.SelectedValue != "")
        {
            procedureId = Int32.Parse(rdcProcedureName3.SelectedValue);
            asn.Procedures.Add(CntAriCli.GetProcedure(procedureId, ctx));
        }
        
        
    }
コード例 #20
0
 protected void LoadData(AnestheticServiceNote asn)
 {
     txtAnestheticServiceNoteId.Text = asn.AnestheticServiceNoteId.ToString();
     //txtCustomerId.Text = asn.Customer.PersonId.ToString();
     rdcComercialName.Items.Clear();
     rdcComercialName.Items.Add(new RadComboBoxItem(asn.Customer.FullName, asn.Customer.PersonId.ToString()));
     rdcComercialName.SelectedValue = asn.Customer.PersonId.ToString();
     rddpServiceNoteDate.SelectedDate = asn.ServiceNoteDate;
     LoadClinicCombo(asn);
     txtTotal.Text = asn.Total.ToString();
     //
     chkChecked.Checked = asn.Chk1;
     chkCkecked2.Checked = asn.Chk2;
     //chkCkecked2.Checked = AreThereTicketsChecked(asn);
     chkChecked3.Checked = asn.Chk3;
     if (asn.Professional != null)
     {
         //txtProfessionalId.Text = asn.Professional.PersonId.ToString();
         rdcProfessionalName.Items.Clear();
         rdcProfessionalName.Items.Add(new RadComboBoxItem(asn.Professional.FullName, asn.Professional.PersonId.ToString()));
         rdcProfessionalName.SelectedValue = asn.Professional.PersonId.ToString();
     }
     if (asn.Surgeon != null) 
     {
         //txtSurgeonId.Text = asn.Surgeon.PersonId.ToString();
         rdcSurgeonName.Items.Clear();
         rdcSurgeonName.Items.Add(new RadComboBoxItem(asn.Surgeon.FullName, asn.Surgeon.PersonId.ToString()));
         rdcSurgeonName.SelectedValue = asn.Surgeon.PersonId.ToString();
         //txtSurgeonName.Text = asn.Surgeon.FullName;
     }
     if (asn.Procedures.Count>0 && asn.Procedures[0] != null)
     {
         //txtProcedureId1.Text = asn.Procedures[0].ProcedureId.ToString();
         rdcProcedureName1.Items.Clear();
         rdcProcedureName1.Items.Add(new RadComboBoxItem(asn.Procedures[0].Name, asn.Procedures[0].ProcedureId.ToString()));
         rdcProcedureName1.SelectedValue = asn.Procedures[0].ProcedureId.ToString();
         //txtProcedureName1.Text = asn.Procedures[0].Name;
     }
     if (asn.Procedures.Count > 1)
     {
         if (asn.Procedures[1] != null)
         {
             //txtProcedureId2.Text = asn.Procedures[1].ProcedureId.ToString();
             //txtProcedureName2.Text = asn.Procedures[1].Name;
             rdcProcedureName2.Items.Clear();
             rdcProcedureName2.Items.Add(new RadComboBoxItem(asn.Procedures[1].Name, asn.Procedures[1].ProcedureId.ToString()));
             rdcProcedureName2.SelectedValue = asn.Procedures[1].ProcedureId.ToString();
         }
     }
     if (asn.Procedures.Count > 2)
     {
         if (asn.Procedures[2] != null)
         {
             //txtProcedureId3.Text = asn.Procedures[2].ProcedureId.ToString();
             //txtProcedureName3.Text = asn.Procedures[2].Name;
             rdcProcedureName3.Items.Clear();
             rdcProcedureName3.Items.Add(new RadComboBoxItem(asn.Procedures[2].Name, asn.Procedures[2].ProcedureId.ToString()));
             rdcProcedureName3.SelectedValue = asn.Procedures[2].ProcedureId.ToString();
         }
     }
 }
コード例 #21
0
ファイル: CntAriCli.cs プロジェクト: ragare62/AriClinic
        public static void DeleteAnestheticServiceNote(AnestheticServiceNote ansn, AriClinicContext ctx)
        {
            foreach (AnestheticTicket at in ansn.AnestheticTickets)
                ctx.Delete(at);

            ctx.Delete(ansn);
            ctx.SaveChanges();
        }
コード例 #22
0
ファイル: CntAriCli.cs プロジェクト: ragare62/AriClinic
 public static bool ContainsAnesthesicTicketsInvoiced(AnestheticServiceNote asn, AriClinicContext ctx)
 {
     foreach (Ticket t in asn.AnestheticTickets)
     {
         if (t.InvoiceLines.Count > 0)
             return true;
     }
     return false;
 }
コード例 #23
0
ファイル: CntAriCli.cs プロジェクト: ragare62/AriClinic
 public static IList<SaveCheck> SaveChecks(AnestheticServiceNote asn)
 {
     IList<SaveCheck> lsc = new List<SaveCheck>();
     foreach (AnestheticTicket atck in asn.AnestheticTickets)
     {
         if (atck.Checked)
         {
             SaveCheck schk = new SaveCheck();
             schk.ProcedureId = atck.Procedure.ProcedureId;
             schk.Chk = true;
             lsc.Add(schk);
         }
     }
     return lsc;
 }
コード例 #24
0
ファイル: CntAriCli.cs プロジェクト: ragare62/AriClinic
 public static void CheckAnestheticServiceNoteTickets(AnestheticServiceNote ansn, AriClinicContext ctx, IList<SaveCheck> lschk)
 {
     // Read parameters
     AriCliModel.Parameter parameter = GetParameter(ctx);
     Service painPump = parameter.PainPump;
     bool hRisk = ansn.Chk3;
     //
     AnestheticTicket anstk = null;
     // Do we need check pain pump?
     if (painPump != null && ansn.Chk1)
     {
         // Is there a pain pump assigned?
         var rs = from t in ansn.AnestheticTickets
                  where t.InsuranceService.Service.ServiceId == painPump.ServiceId
                  select t;
         if (rs.Count() == 0)
         {
             // Does this customer have a primary policy with that service?
             Policy pol = PrimaryPolicy(ansn.Customer);
             if (pol == null)
             {
                 throw new AriCliException(1, "There isn't a primary policy for this customer");
             }
             // Does this policy (insurance) includes a pain pump service?
             InsuranceService ins = PolicyIncludesService(pol, painPump);
             if (ins == null)
             {
                 throw new AriCliException(2, "The insurance company have not the pain pump service assigned");
             }
             // Everything seems ok, we can add the ticket
             anstk = new AnestheticTicket()
             {
                 TicketDate = ansn.ServiceNoteDate,
                 Description = String.Format("{0} ({1})", ansn.Procedures[0].Name, ins.Service.Name),
                 Amount = ins.Price,
                 Policy = pol,
                 InsuranceService = ins,
                 User = ansn.User,
                 Clinic = ansn.Clinic,
                 Professional = ansn.Professional,
                 Surgeon = ansn.Surgeon,
                 Procedure = ansn.Procedures[0],
                 AnestheticServiceNote = ansn
             };
             if (ansn.Chk2)
             {
                 anstk.Checked = true;
             }
             else
             {
                 anstk.Checked = CntAriCli.IsItInChecks(anstk, lschk);
             }
             if (hRisk)
                 anstk.Amount = anstk.Amount * 1.5M; // increase 50%
             ctx.Add(anstk);
     
             ctx.SaveChanges();
         }
     }
     // Do we need check procedure - service link?
     if (parameter.UseNomenclator)
     {
         bool multi = false;
         foreach (Procedure p in ansn.Procedures)
         {
             AddAutomaticTicket(ansn, p, ctx, multi, lschk);
             multi = true;
         }
     }
 }
コード例 #25
0
    protected bool CreateChange()
    {
        if (asn == null)
        {
            firstTime = true;
            asn = new AnestheticServiceNote();
            UnloadData(asn);
            ctx.Add(asn);
            lschk = CntAriCli.SaveTckChecks(asn);
        }
        else
        { 
            asn = CntAriCli.GetAnestheticServiceNote(anestheticServiceNoteId, ctx);
            //lschk = CntAriCli.SaveChecks(asn);
            lschk = CntAriCli.SaveTckChecks(asn);
            bool procedurechanged = false;
            if(Session["procedurechanged"]!=null)
                procedurechanged = (bool)Session["procedurechanged"];
            if (procedurechanged )
            {
                firstTime = true;
                Session["procedurechanged"] = null;

                IList<AnestheticTicket> tickets = asn.AnestheticTickets;
                
                foreach (AnestheticTicket item in tickets)
                {
                    ctx.Delete(CntAriCli.GetTicket(item.TicketId, ctx));
                }
                ctx.SaveChanges();

                asn.AnestheticTickets.Clear();
                asn.Procedures.Clear();
            }
            UnloadData(asn);
        }
        //bool res = UpdateRelatedTickets(asn, lschk);
        // ---
        bool res = CntAriCli.UpdateRelatedTckV2(asn, lschk, ctx);
        // Update anesthetic service note total
        asn.Total = asn.AnestheticTickets.Sum(x => x.Amount);
        ctx.SaveChanges();
        if (firstTime)
        {
            firstTime = false;
            Response.Redirect(String.Format("AnestheticServiceNoteForm.aspx?AnestheticServiceNoteId={0}", asn.AnestheticServiceNoteId));
        }
        return res;
    }
コード例 #26
0
 protected bool UpdateRelatedTickets(AnestheticServiceNote asn, IList<SaveCheck> lschk)
 {
     try
     {
         ctx.Delete(asn.AnestheticTickets);
         asn.AnestheticTickets.Clear();
         CntAriCli.CheckAnestheticServiceNoteTickets(asn, ctx, lschk);
         if (firstTime)
         {
             firstTime = false;
             Response.Redirect(String.Format("AnestheticServiceNoteForm.aspx?AnestheticServiceNoteId={0}", asn.AnestheticServiceNoteId));
         }
     }
     catch (AriCliException ex)
     {
         string message = "";
         switch (ex.Number)
         {
             case 1:
                 message = Resources.GeneralResource.NoPrimaryPolicy;
                 break;
             case 2:
                 message = Resources.GeneralResource.NoPainPump;
                 break;
             case 3:
                 message = Resources.GeneralResource.NoNomenclatorService;
                 break;
             default:
                 message = ex.Message;
                 break;
         }
         string command = String.Format("showDialog('{0}','{1}','warning',null,0,0);"
                                        , Resources.GeneralResource.Warning
                                        , message);
         RadAjaxManager1.ResponseScripts.Add(command);
         Session["LinkId"] = asn.AnestheticServiceNoteId;
         return false;
     }
     return true;
 }
コード例 #27
0
ファイル: TicketGrid.aspx.cs プロジェクト: ragare62/AriClinic
 protected void Page_Init(object sender, EventArgs e)
 {
     ctx = new AriClinicContext("AriClinicContext");
     // security control, it must be a user logged
     if (Session["User"] == null)
         Response.Redirect("Default.aspx");
     else
     {
         user = CntAriCli.GetUser((Session["User"] as User).UserId, ctx);
         Process proc = (from p in ctx.Processes
                         where p.Code == "policy"
                         select p).FirstOrDefault<Process>();
         per = CntAriCli.GetPermission(user.UserGroup, proc, ctx);
     }
     // cheks if is call from another form
     if (Request.QueryString["Type"] != null)
         type = Request.QueryString["Type"];
     // read the realated patient
     if (Request.QueryString["PatientId"] != null)
     {
         patientId = Int32.Parse(Request.QueryString["PatientId"]);
         pat = CntAriCli.GetPatient(patientId, ctx);
         cus = pat.Customer;
     }
     // read passed customer if any
     if (Request.QueryString["CustomerId"] != null)
     {
         customerId = Int32.Parse(Request.QueryString["CustomerId"]);
         cus = CntAriCli.GetCustomer(customerId, ctx);
     }
     //
     if (Request.QueryString["NotPaid"] != null)
     {
         notPaid = true;
     }
     // 
     if (type == "InTab")
     {
         HtmlControl tt = (HtmlControl)this.FindControl("TitleArea");
         tt.Attributes["class"] = "ghost";
         // hide patient column
         RadGrid1.Columns.FindByDataField("Policy.Customer.FullName").Visible = false;
         //
         RadGrid1.PageSize = 6;
     }
     else
     {
         
     }
     if (Request.QueryString["AnestheticServiceNoteId"] != null)
     {
         anestheticServiceNoteId = Int32.Parse(Request.QueryString["AnestheticServiceNoteId"]);
         asn = CntAriCli.GetAnestheticServiceNote(anestheticServiceNoteId, ctx);
         HtmlControl tt = (HtmlControl)this.FindControl("TitleArea");
         tt.Attributes["class"] = "ghost";
         // here the fields that must be hidden
         RadGrid1.Columns.FindByDataField("TicketDate").Visible = false;
         RadGrid1.Columns.FindByDataField("Policy.Customer.FullName").Visible = false;
         RadGrid1.Columns.FindByDataField("Checked").Visible = false;
         RadGrid1.Columns.FindByDataField("Clinic.Name").Visible = false;
     }
     if (Request.QueryString["ServiceNoteId"] != null)
     {
         serviceNoteId = int.Parse(Request.QueryString["ServiceNoteId"]);
         sn = CntAriCli.GetServiceNote(serviceNoteId, ctx);
         HtmlControl tt = (HtmlControl)this.FindControl("TitleArea");
         tt.Attributes["class"] = "ghost";
         // here the fields that must be hidden
         RadGrid1.Columns.FindByDataField("TicketDate").Visible = false;
         RadGrid1.Columns.FindByDataField("Policy.Customer.FullName").Visible = false;
         RadGrid1.Columns.FindByDataField("Checked").Visible = false;
         RadGrid1.Columns.FindByDataField("Clinic.Name").Visible = false;
         RadGrid1.Columns.FindByDataField("Paid").Visible = false;
     }
     // translate filters
     CntWeb.TranslateRadGridFilters(RadGrid1);
     //
 }
コード例 #28
0
ファイル: CntAriCli.cs プロジェクト: ragare62/AriClinic
 public static void AddAutomaticTicket(AnestheticServiceNote ansn, Procedure proc, AriClinicContext ctx, bool multi, IList<SaveCheck> lschk)
 {
     // Does this customer have a primary policy with that service?
     Policy pol = PrimaryPolicy(ansn.Customer);
     bool hRisk = ansn.Chk3;
     if (pol == null)
     {
         throw new AriCliException(1, "There isn't a primary policy for this customer");
     }
     // Does this policy includes related (from procedure) services
     InsuranceService ins = PolicyIncludesService(pol, proc.Service);
     if (ins == null)
     {
         throw new AriCliException(3, "The insurance company have not the nomenclator service assigned");
     }
     // Everything seems ok, we can add anesthetic ticket
     AnestheticTicket anstk = new AnestheticTicket()
     {
         TicketDate = ansn.ServiceNoteDate,
         Description = String.Format("{0} ({1})", proc.Name, ins.Service.Name),
         Amount = ins.Price,
         Policy = pol,
         InsuranceService = ins,
         User = ansn.User,
         Clinic = ansn.Clinic,
         Professional = ansn.Professional,
         Surgeon = ansn.Surgeon,
         Procedure = proc,
         AnestheticServiceNote = ansn
     };
     if (ansn.Chk2)
     {
         anstk.Checked = true;
     }
     else
     {
         anstk.Checked = CntAriCli.IsItInChecks(anstk, lschk);
     }
     if (multi)
     {
         anstk.Amount = anstk.Amount / 2;
         anstk.Comments = "-50%";
     }
     if (hRisk)
         anstk.Amount = anstk.Amount * 1.5M; // high risk increase 50%
     ctx.Add(anstk);
     ctx.SaveChanges();
 }