コード例 #1
0
 protected string getPersonToVisit(object id, SharedClass.RelationType relation)
 {
     using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
     {
         var visitingFile = mc.Petient_Visiting_Financials.Where(o => o.Id == (long)id).First();
         var persons = visitingFile.Connectors.Where(o => o.RelationType == SharedClass.GetRelationType(relation)).ToList();
         if (persons.Count() != 0)
         {
             return persons.First().BSI__Clinic_Employees.First_Name + " " + persons.First().BSI__Clinic_Employees.Last_Name;
         }
         else
         {
             return nobody;
         }
     }
 }
コード例 #2
0
 protected string getPersonToVisitValue(object id, SharedClass.RelationType relation)
 {
     using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
     {
         var visitingFile = mc.Petient_Visiting_Financials.Where(o => o.Id == (long)id).First();
         var employees = visitingFile.Connectors.Where(o => o.RelationType == SharedClass.GetRelationType(relation)).ToList();
         if (employees.Count() != 0)
         {
             var employee = employees.First().BSI__Clinic_Employees;
             return employee.Id;
         }
         else
         {
             return "";
         }
     }
 }
コード例 #3
0
        public void getServicesOfFile(out string reason, out  int? service, out List<int> parts, ref ServicesControl ucServicesControl)
        {
            using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
            {
                service = (ucServicesControl.SelectedService != ucServicesControl.OthersValue) ? ucServicesControl.SelectedService : null;
                parts = ucServicesControl.SelectedParts;

                if (service != null)
                {
                    reason = null;
                }
                else
                {
                    reason = ucServicesControl.ReasonValue;
                }
            }
        }
コード例 #4
0
        protected void Page_LoadComplete(object sender, EventArgs e)
        {
            using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
            {
                var petientId = Guid.Parse(Request["ID"]);

                var firstJoin = mc.Petients.Where(o => o.Id == petientId).Join
                    (mc.Connectors, oOtter => oOtter.Id, oInner => oInner.PetientId, (petient, connector) => new { petient, connector });

                var grvStateDataSource = mc.Petient_Visiting_Financials.Join(firstJoin, oOtter => oOtter.Id, oInner => oInner.connector.FinancialId, (financial, prevJoin) => new
                {
                    Id = financial.Id,
                    EmployeeId = prevJoin.connector.EmployeeId,
                    Petient_Id = prevJoin.petient.Id,
                    First_Name = prevJoin.petient.First_Name,
                    Last_Name = prevJoin.petient.Last_Name,
                    Age = prevJoin.petient.Age,
                    Mobile = prevJoin.petient.Mobile,
                    TimeVisitStarts = financial.TimeVisitStarts,
                    TimeVisitEnds = financial.TimeVisitEnds,
                    Money_To_Pay = financial.Money_To_Pay,
                    Money_Changed = financial.Money_Changed,
                    Money_Paid_Cash = financial.Money_Paid_Cash,
                    Money_Paid_Card = financial.Money_Paid_Card,
                    Balance = financial.Balance,
                    POS_Name = financial.POS_Name,
                    Description = financial.Description,
                    Is_Petient_Returned = financial.Is_Petient_Returned,
                    Is_Money_Paid = financial.Is_Money_Paid,
                    Is_Petient_Visited = financial.Is_Petient_Visited,
                    Is_Petient_Canceled = financial.Is_Petient_Canceled
                }).GroupBy(o => o.Id).Select(o => o.FirstOrDefault()).OrderBy(o => o.TimeVisitStarts).ToList();
                //Sometimes there are two rows per recored on gridview. Because of the Tech, Doctor pairs.

                grvFinancialHistory.DataSource = grvStateDataSource;
                grvFinancialHistory.DataBind();
            }
        }
コード例 #5
0
 private int? getSelectedServiceEmployee(int? serviceId, string employeeId, ref ServicesControl ucServicesControl)
 {
     using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
     {
         if (serviceId == null || serviceId == ucServicesControl.OthersValue)
         {
             return null;
         }
         else
         {
             if (mc.BSI__Employee_Service_Set.Where(o => o.Service_Id == serviceId && o.Employee_Id == employeeId).Count() != 0)
             {
                 return mc.BSI__Employee_Service_Set.Where(o => o.Service_Id == serviceId && o.Employee_Id == employeeId).First().Id;
             }
             else
             {
                 return null;
             }
         }
     }
 }
コード例 #6
0
        private void createRemoveConnections(Medical_Clinic_Entities mc, int? selectedService, Guid petientId, long financialId, List<int> selectedParts,
            ref ServicesControl ucServicesControl, ref DropDownList ddlDoctor, ref DropDownList ddlTech)
        {
            var connectors = mc.Connectors.Where(o => o.FinancialId == financialId).ToList();
            var petientFileId = connectors.First().FileId;
            var petientFileWriter = connectors.Where(o => o.RelationType == SharedClass.GetRelationType(SharedClass.RelationType.Writer)).FirstOrDefault();
            var petientFileWriterId = (petientFileWriter == null) ? null : petientFileWriter.EmployeeId; //If was not NULL it means that a file has been created.

            //Writer
            if (petientFileWriterId != null)
            {
                ModelClass.RemoveConnectorObjectUsingFileId(petientFileId, SharedClass.RelationType.Writer);
                ModelClass.CreateConnectorObject(
                        mc,
                        SharedClass.CurrentUser,
                        selectedService,
                        getSelectedServiceEmployee(ucServicesControl.SelectedService, SharedClass.CurrentUser, ref ucServicesControl),
                        petientId,
                        petientFileId,
                        financialId,
                        SharedClass.RelationType.Writer
                        );
            }

            //Doctor
            ModelClass.RemoveConnectorObjectUsingFinancialId(financialId, SharedClass.RelationType.Doctor);
            if (ddlDoctor.SelectedValue.ToString() != "")
            {
                ModelClass.CreateConnectorObject(
                    mc,
                    ddlDoctor.SelectedValue,
                    selectedService,
                    getSelectedServiceEmployee(ucServicesControl.SelectedService, ddlDoctor.SelectedValue, ref ucServicesControl),
                    petientId,
                    petientFileId,
                    financialId,
                    SharedClass.RelationType.Doctor
                    );

                if (selectedParts != null)
                {
                    ModelClass.CreateConnectorObject(
                        mc,
                        ddlDoctor.SelectedValue,
                        selectedParts,
                        petientId,
                        petientFileId,
                        financialId,
                        SharedClass.RelationType.Doctor
                        );
                }
            }

            //Tech
            ModelClass.RemoveConnectorObjectUsingFinancialId(financialId, SharedClass.RelationType.Technician);
            if (ddlTech.SelectedValue.ToString() != "")
            {
                ModelClass.CreateConnectorObject(
                    mc,
                    ddlTech.SelectedValue,
                    selectedService,
                    getSelectedServiceEmployee(ucServicesControl.SelectedService, ddlTech.SelectedValue, ref ucServicesControl),
                    petientId,
                    petientFileId,
                    financialId,
                    SharedClass.RelationType.Technician
                    );

                if (selectedParts != null)
                {
                    ModelClass.CreateConnectorObject(
                        mc,
                        ddlTech.SelectedValue,
                        selectedParts,
                        petientId,
                        petientFileId,
                        financialId,
                        SharedClass.RelationType.Technician
                        );
                }
            }
        }
コード例 #7
0
        private int costOfService(int? serviceId, ref ServicesControl ucServicesControl)
        {
            int totalCost = 0;

            if (serviceId != null)
            {
                var servicePartIds = ucServicesControl.SelectedParts;

                if (servicePartIds != null)
                {
                    using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
                    {
                        foreach (var partId in servicePartIds)
                        {
                            totalCost = totalCost + mc.BSI__Clinic_Services.Where(o => o.Id == partId).First().Cost;
                        }
                        totalCost = totalCost + mc.BSI__Clinic_Services.Where(o => o.Id == serviceId).First().Cost;
                    }
                }
                return totalCost;
            }
            else
            {
                return totalCost;
            }
        }
コード例 #8
0
        private void bindGridView()
        {
            using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
            {
                //Financials
                var financials = mc.Petient_Visiting_Financials.Where(o => DbFunctions.TruncateTime(o.TimeVisitStarts) >= calFrom.Date &&
                    DbFunctions.TruncateTime(o.TimeVisitStarts) <= calTo.Date);

                //Petients
                IQueryable<Petient> petients = mc.Petients;
                if (txtPetientFirstName.Text != "")
                {
                    petients = petients.Where(o => o.First_Name.Contains(txtPetientFirstName.Text));
                }
                if (txtPetientLastName.Text != "")
                {
                    petients = petients.Where(o => o.Last_Name.Contains(txtPetientLastName.Text));
                }
                if (txtPetientMobile.Text != "")
                {
                    petients = petients.Where(o => o.Mobile.Contains(txtPetientMobile.Text));
                }

                //Connectors (To filter doctor and tech and services)
                IQueryable<Connector> connectors;

                //Doctor And Tech Both Are Combined In DDL
                if (ddlEmployees.SelectedValue != "")
                {
                    connectors = mc.Connectors.Where(o => o.BSI__Clinic_Employees.Id == ddlEmployees.SelectedValue);
                }
                else
                {
                    connectors = mc.Connectors;
                }

                //Filter Specified Services
                if(ucServicesControlSearch.SelectedService != ucServicesControlSearch.RootValue && ucServicesControlSearch.SelectedService != ucServicesControlSearch.OthersValue)
                {
                    connectors = connectors.Where(o => o.BSI__Clinic_Services.Id == ucServicesControlSearch.SelectedService);
                }
                else if (ucServicesControlSearch.SelectedService == ucServicesControlSearch.OthersValue)
                {
                    financials = financials.Where(o => o.Reason == ucServicesControlSearch.ReasonValue);
                }

                //Joining Petient-Connection
                var firstJoin = petients.Join(connectors, oOtter => oOtter.Id, oInner => oInner.PetientId, (petient, connector) => new { petient, connector });

                var grvTimeDataSource = financials.Join(firstJoin, oOtter => oOtter.Id, oInner => oInner.connector.FinancialId, (financial, prevJoin) => new
                {
                    Id = financial.Id,
                    First_Name = prevJoin.petient.First_Name,
                    Last_Name = prevJoin.petient.Last_Name,
                    Mobile = prevJoin.petient.Mobile,
                    TimeVisitStarts = financial.TimeVisitStarts,
                    TimeVisitEnds = financial.TimeVisitEnds,
                    Is_Petient_Canceled = financial.Is_Petient_Canceled
                }).Distinct()
                .OrderBy(o => o.TimeVisitStarts).ToList();
                //Sometimes there are two rows per recored on gridview. Because of the Tech, Doctor pairs.
                grvTime.DataSource = grvTimeDataSource;
                grvTime.DataBind();

                //TODO: Cache the datasource and make it only relate to btnSearch.
            }
        }
コード例 #9
0
        protected void grvTime_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
            {
                var row = grvTime.Rows[e.RowIndex];
                var financialId = (long)grvTime.DataKeys[e.RowIndex].Value;
                var financialFile = mc.Petient_Visiting_Financials.Where(o => o.Id == financialId).First();
                var petientId = financialFile.Connectors.First().Petient.Id;

                var calEdit = (JQControls.JQDatePicker)row.FindControl("calEdit");
                var ucTimePickerControlStart = (Controls.TimePickerControl)row.FindControl("ucTimePickerControlStart");
                var ucTimePickerControlEnd = (Controls.TimePickerControl)row.FindControl("ucTimePickerControlEnd");
                var ucServicesControl = (ServicesControl)row.FindControl("ucServicesControl");
                var ddlDoctorEdit = (DropDownList)row.FindControl("ddlDoctorEdit");
                var ddlTechEdit = (DropDownList)row.FindControl("ddlTechEdit");
                var chkIsPetientCanceled = (CheckBox)row.FindControl("chkIsPetientCanceled");

                //Change Timing
                var date = calEdit.Date.Value.Date;

                var startTime = ucTimePickerControlStart.Time;
                var timeVisitStarts = new DateTime(date.Year, date.Month, date.Day, startTime.Hour, startTime.Minute, 0);

                var endTime = ucTimePickerControlEnd.Time;
                var timeVisitEnds = new DateTime(date.Year, date.Month, date.Day, endTime.Hour, endTime.Minute, 0);

                financialFile.TimeVisitStarts = timeVisitStarts;
                financialFile.TimeVisitEnds = timeVisitEnds;

                //Change Doctor, Tech
                //Change Service
                string reason = null;
                int? selectedService = null;
                List<int> selectedParts = null;

                getServicesOfFile(out reason, out selectedService, out selectedParts, ref ucServicesControl);
                financialFile.Reason = reason;
                createRemoveConnections(mc, selectedService, financialFile.Connectors.First().Petient.Id, financialId, selectedParts, ref ucServicesControl, ref ddlDoctorEdit, ref ddlTechEdit);

                //Canceled
                financialFile.Is_Petient_Canceled = chkIsPetientCanceled.Checked;
                if (financialFile.Is_Petient_Canceled == false)
                {
                    //Recalculate Balance On Not Canceled
                    if (reason == null)
                    {
                        financialFile.Money_To_Pay = costOfService(ucServicesControl.SelectedService, ref ucServicesControl);
                    }
                    else
                    {
                        financialFile.Money_To_Pay = 0;
                    }

                    int lastBalance = 0;
                    var petientVisitingFiles = mc.Connectors.Where(o => o.PetientId == petientId && o.FinancialId != null
                        && o.Petient_Visiting_Financials.TimeVisitStarts < financialFile.TimeVisitStarts)
                        .OrderByDescending(o => o.Petient_Visiting_Financials.TimeVisitStarts).ToList();
                    if (petientVisitingFiles.Count() != 0)
                    {
                        lastBalance = petientVisitingFiles.ElementAt(petientVisitingFiles.IndexOf(petientVisitingFiles.First())).Petient_Visiting_Financials.Balance;
                    }
                    financialFile.Balance = lastBalance + (financialFile.Money_To_Pay - (financialFile.Money_Paid_Cash + financialFile.Money_Paid_Card));
                    if (financialFile.Money_Changed != null)
                    {
                        financialFile.Balance = financialFile.Balance + financialFile.Money_Changed.Value;
                    }
                }
                else
                {
                    //Recalculate Balance On Canceled
                    int lastBalance = 0;
                    var petientVisitingFiles = mc.Connectors.Where(o => o.PetientId == petientId && o.FinancialId != null
                        && o.Petient_Visiting_Financials.TimeVisitStarts < financialFile.TimeVisitStarts)
                        .OrderByDescending(o => o.Petient_Visiting_Financials.TimeVisitStarts).ToList();
                    if (petientVisitingFiles.Count() != 0)
                    {
                        lastBalance = petientVisitingFiles.ElementAt(petientVisitingFiles.IndexOf(petientVisitingFiles.First())).Petient_Visiting_Financials.Balance;
                    }
                    financialFile.Money_Changed = 0;
                    financialFile.Money_Paid_Cash = 0;
                    financialFile.Money_Paid_Card = 0;
                    financialFile.POS_Name = "";
                    financialFile.Balance = lastBalance;
                    financialFile.Is_Petient_Returned = false;
                    financialFile.Is_Money_Paid = false;
                    financialFile.Is_Petient_Visited = false;
                }

                //Save Changes
                mc.SaveChanges();
            }
            grvTime.EditIndex = -1;
            bindGridView();
        }
コード例 #10
0
        protected void grvTime_RowEditing(object sender, GridViewEditEventArgs e)
        {
            grvTime.EditIndex = e.NewEditIndex;
            bindGridView();
            if (grvTime.EditIndex != -1 && e.NewEditIndex == grvTime.EditIndex)
            {
                var row = grvTime.Rows[e.NewEditIndex];
                var ucServicesControl = (ServicesControl)row.FindControl("ucServicesControl");

                using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
                {
                    var id = (long)grvTime.DataKeys[e.NewEditIndex].Value;
                    var financialToEdit = mc.Petient_Visiting_Financials.Where(o => o.Id == id).First();
                    if (financialToEdit.Connectors.Where(o => o.BSI__Employee_Service_Set != null).FirstOrDefault() == null)
                    {
                        ucServicesControl.SelectedService = ucServicesControl.OthersValue;
                        ucServicesControl.ReasonValue = financialToEdit.Reason;
                    }
                    else
                    {
                        var serviceOfFile = financialToEdit.Connectors.Where(o => o.BSI__Employee_Service_Set != null && o.BSI__Clinic_Services.Is_Part != true).First();
                        ucServicesControl.SelectedService = serviceOfFile.BSI__Clinic_Services.Id;
                        var partsOfFile = financialToEdit.Connectors.Where(o => o.BSI__Employee_Service_Set != null && o.BSI__Clinic_Services.Is_Part == true).ToList();
                        ucServicesControl.SelectedParts = partsOfFile.GroupBy(o => o.ServiceId).Select(o => o.FirstOrDefault().ServiceId.Value).ToList();
                    }
                }

                ucServicesControl.MakeTree();
            }
        }
コード例 #11
0
        protected void grvTime_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            var id = long.Parse(grvTime.DataKeys[e.RowIndex].Value.ToString());

            using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
            {
                var financialFileToDelete = mc.Petient_Visiting_Financials.Where(o => o.Id == id).First();
                mc.Petient_Visiting_Financials.Remove(financialFileToDelete);

                mc.SaveChanges();
            }
            bindGridView();
        }
コード例 #12
0
ファイル: Reports.aspx.cs プロジェクト: manili/Medical_Clinic
        private void bindGridView()
        {
            using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
            {
                //Financials
                var financials = mc.Petient_Visiting_Financials.Where(o => DbFunctions.TruncateTime(o.TimeVisitStarts) >= calFrom.Date &&
                    DbFunctions.TruncateTime(o.TimeVisitStarts) <= calTo.Date && o.Connectors.Count != 0);

                //Petients
                IQueryable<Petient> petients = mc.Petients;
                if (txtPetientFirstName.Text != "")
                {
                    petients = petients.Where(o => o.First_Name.Contains(txtPetientFirstName.Text));
                }
                if (txtPetientLastName.Text != "")
                {
                    petients = petients.Where(o => o.Last_Name.Contains(txtPetientLastName.Text));
                }
                if (txtPetientMobile.Text != "")
                {
                    petients = petients.Where(o => o.Mobile.Contains(txtPetientMobile.Text));
                }

                //Connectors (To filter doctor and tech and services)
                IQueryable<Connector> connectors;

                //Doctor And Tech Both Are Combined In DDL
                if (ddlEmployees.SelectedValue != "")
                {
                    connectors = mc.Connectors.Where(o => o.BSI__Clinic_Employees.Id == ddlEmployees.SelectedValue);
                }
                else
                {
                    connectors = mc.Connectors;
                }

                //Filter Specified Services
                if (ucServicesControlSearch.SelectedService != ucServicesControlSearch.RootValue && ucServicesControlSearch.SelectedService != ucServicesControlSearch.OthersValue)
                {
                    connectors = connectors.Where(o => o.BSI__Clinic_Services.Id == ucServicesControlSearch.SelectedService);
                }
                else if (ucServicesControlSearch.SelectedService == ucServicesControlSearch.OthersValue)
                {
                    financials = financials.Where(o => o.Reason == ucServicesControlSearch.ReasonValue);
                }

                //Petients Not Returned
                if (chkNotReturnedMode.Checked == true && calNotReturnedFrom.Text != "")
                {
                    var petientsList = petients.ToList();
                    var returnedFinancialList = financials.Where(o => DbFunctions.TruncateTime(o.TimeVisitStarts) >= calNotReturnedFrom.Date).ToList();

                    if (returnedFinancialList.Count() != 0)
                    {
                        foreach (var item in returnedFinancialList)
                        {
                            petientsList.RemoveAll(o => o.Id == item.Connectors.First().PetientId);
                        }
                    }

                    petients = petientsList.AsQueryable();
                }
                else
                {
                    financials = financials.Where(o => o.Is_Petient_Canceled != true);
                }

                //Temporarily make list because cannot join in memory data and in database data
                var connectorList = connectors.ToList();
                var petientList = petients.ToList();
                var financialList = financials.ToList();

                //Joining Petient-Connection
                var firstJoin = petientList.Join(connectorList, oOtter => oOtter.Id, oInner => oInner.PetientId, (petient, connector) => new { petient, connector });

                //Joining Financial-firstJoin
                var grvStateDataSource = financialList.Join(firstJoin, oOtter => oOtter.Id, oInner => oInner.connector.FinancialId, (financial, prevJoin) => new
                {
                    Id = financial.Id,
                    First_Name = prevJoin.petient.First_Name,
                    Last_Name = prevJoin.petient.Last_Name,
                    Mobile = prevJoin.petient.Mobile,
                    EmployeeId = prevJoin.connector.EmployeeId,
                    Petient_Id = prevJoin.petient.Id,
                    TimeVisitStarts = financial.TimeVisitStarts,
                    TimeVisitEnds = financial.TimeVisitEnds,
                    Money_To_Pay = financial.Money_To_Pay,
                    Money_Changed = financial.Money_Changed,
                    Money_Paid_Cash = financial.Money_Paid_Cash,
                    Money_Paid_Card = financial.Money_Paid_Card,
                    Balance = financial.Balance,
                    POS_Name = financial.POS_Name,
                    Description = financial.Description,
                    Is_Petient_Returned = financial.Is_Petient_Returned,
                    Is_Money_Paid = financial.Is_Money_Paid,
                    Is_Petient_Visited = financial.Is_Petient_Visited,
                    Is_Petient_Canceled = financial.Is_Petient_Canceled,
                    Operator_Unit_Value = financial.Operator_Unit_Value
                }).GroupBy(o => o.Id).Select(o => o.FirstOrDefault())
                        .OrderBy(o => o.TimeVisitStarts).ToList();
                //Sometimes there are two rows per recored on gridview. Because of the Tech, Doctor pairs.

                //Data binding
                grvState.DataSource = grvStateDataSource;
                grvState.DataBind();

                //TODO: Cache the datasource and make it only relate to btnSearch.

                var cost = grvStateDataSource.Select(o => o.Money_To_Pay).ToList();
                lblCost.Text = sum(cost).ToString();

                var changed = grvStateDataSource.Select(o => o.Money_Changed).ToList();
                lblChangedCost.Text = sum(changed).ToString();

                var cash = grvStateDataSource.Select(o => o.Money_Paid_Cash).ToList();
                lblPaidCash.Text = sum(cash).ToString();

                var card = grvStateDataSource.Select(o => o.Money_Paid_Card).ToList();
                lblPaidCard.Text = sum(card).ToString();

                var balance = grvStateDataSource.GroupBy(o => o.Petient_Id).Select( o => o.LastOrDefault())
                    .Select(o => o.Balance).ToList();
                lblBalance.Text = sum(balance).ToString();

                lblStandardShuts.Text = standardShuts.ToString();

                lblOperatorShuts.Text = operatorShuts.ToString();
            }
        }
コード例 #13
0
ファイル: Reports.aspx.cs プロジェクト: manili/Medical_Clinic
        protected void grvState_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
            {
                var row = grvState.Rows[e.RowIndex];
                var id = grvState.DataKeys[e.RowIndex].Value;

                var visitingFile = mc.Petient_Visiting_Financials.Where(o => o.Id == (long)id).First();

                var petientId = Guid.Parse(((Label)row.FindControl("lblPetientId")).Text);

                if (visitingFile.Connectors.First().BSI__Employee_Service_Set == null)
                {
                    visitingFile.Money_To_Pay = int.Parse(((TextBox)row.FindControl("txtMoneyToPay")).Text);
                }
                var moneyChanged = ((TextBox)row.FindControl("txtMoneyChanged")).Text;
                visitingFile.Money_Changed = int.Parse(moneyChanged == "" ? "0" : moneyChanged);
                visitingFile.Money_Paid_Cash = int.Parse(((TextBox)row.FindControl("txtCashPaid")).Text);
                visitingFile.Money_Paid_Card = int.Parse(((TextBox)row.FindControl("txtCardPaid")).Text);
                visitingFile.POS_Name = ((DropDownList)row.FindControl("ddlPOS")).Text;
                visitingFile.Description = ((TextBox)row.FindControl("txtDescription")).Text;

                var txtOperatorUnitValue = (TextBox)row.FindControl("txtOperatorUnitValue");
                if (txtOperatorUnitValue.Visible == true)
                {
                    if(txtOperatorUnitValue.Text != "")
                    {
                        visitingFile.Operator_Unit_Value = short.Parse(txtOperatorUnitValue.Text);

                        if (visitingFile.Connectors.First().BSI__Employee_Service_Set != null && ModelClass.GetUnitName((long?)id) != SharedClass.GetUnit(SharedClass.UnitType.Shut))
                        {
                            var parentServiceStandardValue = ModelClass.GetParentServiceStandardValue((long?)id);
                            if (parentServiceStandardValue.HasValue == true && parentServiceStandardValue.Value != 0)
                            {
                                visitingFile.Money_To_Pay = visitingFile.Money_To_Pay * visitingFile.Operator_Unit_Value.Value / parentServiceStandardValue.Value;
                            }
                        }
                    }
                    else
                    {
                        visitingFile.Operator_Unit_Value = null;
                    }
                }
                else
                {
                    visitingFile.Operator_Unit_Value = null;
                }

                int lastBalance = 0;
                var petientVisitingFiles = mc.Connectors.Where(o => o.PetientId == petientId && o.FinancialId != null
                    && o.Petient_Visiting_Financials.TimeVisitStarts < visitingFile.TimeVisitStarts)
                    .OrderByDescending(o => o.Petient_Visiting_Financials.TimeVisitStarts).ToList();
                if (petientVisitingFiles.Count() != 0)
                {
                    lastBalance = petientVisitingFiles.ElementAt(petientVisitingFiles.IndexOf(petientVisitingFiles.First())).Petient_Visiting_Financials.Balance;
                }
                visitingFile.Balance = lastBalance + (visitingFile.Money_To_Pay - (visitingFile.Money_Paid_Cash + visitingFile.Money_Paid_Card));
                if (visitingFile.Money_Changed != null)
                {
                    visitingFile.Balance = visitingFile.Balance + visitingFile.Money_Changed.Value;
                }


                mc.SaveChanges();
            }
            grvState.EditIndex = -1;
            bindGridView();
        }
コード例 #14
0
ファイル: Reports.aspx.cs プロジェクト: manili/Medical_Clinic
        protected string getUnitAndStandardValue(object id)
        {
            var services = ModelClass.GetServicesOfFinancial((long?)id);
            int sum = 0;
            var unitName = ModelClass.GetUnitName((long?)Eval("Id"));

            if (services != null && unitName != null)
            {
                foreach (var service in services)
                {
                    if (service.Unit_Standard_Value.HasValue == true)
                    {
                        sum += service.Unit_Standard_Value.Value;
                    }
                    else
                    {
                        sum += 0;
                    }
                }

                if (unitName == SharedClass.GetUnit(SharedClass.UnitType.Shut))
                {
                    standardShuts += sum;
                    using (Medical_Clinic_Entities mc = new Medical_Clinic_Entities())
                    {
                        var financialOperatorShuts = mc.Petient_Visiting_Financials.Where(o => o.Id == (long?)id).First().Operator_Unit_Value;
                        operatorShuts += (financialOperatorShuts.HasValue == true) ? financialOperatorShuts.Value : 0;
                    }
                }

                return sum.ToString();
            }
            else
            {
                return "";
            }
        }