コード例 #1
0
 private void treeProject_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
 {
     if (treeProject.SelectedItem_ != null)
     {
         project_task project_task = (project_task)treeProject.SelectedItem_;
         project_taskViewSource.View.MoveCurrentTo(project_task);
         try
         {
             if (project_task_dimensionViewSource != null)
             {
                 if (project_task_dimensionViewSource.View != null)
                 {
                     project_task_dimensionViewSource.View.Filter = i =>
                     {
                         project_task_dimension _project_task_dimension = (project_task_dimension)i;
                         if (_project_task_dimension.id_project_task == project_task.id_project_task)
                         {
                             return(true);
                         }
                         else
                         {
                             return(false);
                         }
                     };
                 }
             }
         }
         catch (Exception ex)
         {
             toolBar.msgError(ex);
         }
     }
 }
コード例 #2
0
        private void project_task_dimensionDataGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
        {
            project_task           project_task           = (project_task)treeProject.SelectedItem_;
            project_task_dimension project_task_dimension = e.Row.Item as project_task_dimension;

            project_task.project_task_dimension.Add(project_task_dimension);
        }
コード例 #3
0
        private void item_Select(object sender, RoutedEventArgs e)
        {
            if (sbxItem.ItemID > 0)
            {
                item item = ProjectTaskDB.items.Where(x => x.id_item == sbxItem.ItemID).FirstOrDefault();


                project_task project_task_output = treeProject.SelectedItem_ as project_task;
                if (project_task_output.parent != null)
                {
                    if (project_task_output.parent.items.is_autorecepie)
                    {
                        MessageBox.Show("can't add becuse item is auto receipe");
                    }
                }

                if (item != null && item.id_item > 0 && item.is_autorecepie)
                {
                    project_task_output.id_item = item.id_item;
                    project_task_output.items   = item;
                    project_task_output.RaisePropertyChanged("item");
                    project_task_output.quantity_est = 1;
                    foreach (item_recepie_detail item_recepie_detail in item.item_recepie.FirstOrDefault().item_recepie_detail)
                    {
                        project_task project_task = new project_task();

                        project_task.code             = item_recepie_detail.item.name;
                        project_task.item_description = item_recepie_detail.item.name;
                        project_task.id_item          = item_recepie_detail.item.id_item;
                        project_task.items            = item_recepie_detail.item;
                        project_task.id_project       = project_task_output.id_project;
                        project_task.status           = Status.Project.Pending;
                        project_task.RaisePropertyChanged("item");
                        if (item_recepie_detail.quantity > 0)
                        {
                            project_task.quantity_est = (decimal)item_recepie_detail.quantity;
                        }
                        project_task_output.child.Add(project_task);
                    }
                    filter_task();
                }
                else
                {
                    if (project_task_output.code == "")
                    {
                        project_task_output.code = item.code;
                    }
                    project_task_output.id_item          = item.id_item;
                    project_task_output.items            = item;
                    project_task_output.item_description = item.name;
                    project_task_output.RaisePropertyChanged("item_description");
                    project_task_output.RaisePropertyChanged("item");
                    project_task_output.quantity_est = 1;
                }

                if (item.item_dimension != null)
                {
                    project_task_output.items = item;
                    project_task_output.project_task_dimension.Clear();
                    foreach (item_dimension _item_dimension in item.item_dimension)
                    {
                        project_task_dimension project_task_dimension = new project_task_dimension();
                        project_task_dimension.id_dimension    = _item_dimension.id_app_dimension;
                        project_task_dimension.app_dimension   = _item_dimension.app_dimension;
                        project_task_dimension.value           = _item_dimension.value;
                        project_task_dimension.id_measurement  = _item_dimension.id_measurement;
                        project_task_dimension.app_measurement = _item_dimension.app_measurement;
                        project_task_dimension.id_project_task = project_task_output.id_project_task;
                        project_task_dimension.project_task    = project_task_output;
                        ProjectTaskDB.project_task_dimension.Add(project_task_dimension);
                        project_task_dimensionViewSource.View.MoveCurrentToLast();
                    }
                }
                try
                {
                    if (project_task_dimensionViewSource != null)
                    {
                        if (project_task_dimensionViewSource.View != null)
                        {
                            project_task_dimensionViewSource.View.Filter = i =>
                            {
                                project_task_dimension _project_task_dimension = (project_task_dimension)i;
                                if (_project_task_dimension.project_task == project_task_output)
                                {
                                    return(true);
                                }
                                else
                                {
                                    return(false);
                                }
                            };
                        }
                    }
                }
                catch (Exception ex)
                {
                    toolBar.msgError(ex);
                }
            }
        }
コード例 #4
0
ファイル: Project.cs プロジェクト: mercaditu/ERP
        public void project()
        {
            MySqlConnection conn      = new MySqlConnection(_connString);
            MySqlCommand    cmd       = new MySqlCommand();
            string          sql_count = " select" +
                                        " sum(a.count)" +
                                        " from" +
                                        " ( select count(*) as count from project union all " +
                                        "   select count(*) as count from project_category union all " +
                                        "  select count(*) as count from project_task ) a ";

            conn.Open();
            cmd.Connection  = conn;
            cmd.CommandText = sql_count;
            cmd.CommandType = CommandType.Text;
            int count = Convert.ToInt32(cmd.ExecuteScalar());

            conn.Close();

            int value = 0;

            Dispatcher.BeginInvoke((Action)(() => projectMaximum.Text = count.ToString()));
            Dispatcher.BeginInvoke((Action)(() => projectValue.Text = value.ToString()));
            Dispatcher.BeginInvoke((Action)(() => progProject.Maximum = count));
            Dispatcher.BeginInvoke((Action)(() => progProject.Value = value));

            string sql_proj_category = " SELECT * FROM project_category;";

            conn.Open();
            cmd.Connection  = conn;
            cmd.CommandText = sql_proj_category;
            cmd.CommandType = CommandType.Text;
            MySqlDataReader category_reader = cmd.ExecuteReader();

            while (category_reader.Read())
            {
                using (db db = new db())
                {
                    project_template project_template = new project_template();
                    project_template.name      = category_reader.GetString("category");
                    project_template.is_active = true;

                    db.project_template.Add(project_template);
                    db.SaveChanges();
                    value += 1;
                    Dispatcher.BeginInvoke((Action)(() => progProject.Value = value));
                    Dispatcher.BeginInvoke((Action)(() => projectValue.Text = value.ToString()));
                }
            }
            conn.Close();

            string sql_template = " SELECT project_template.*, project_category.category, item_sku.product FROM project_template "
                                  + " INNER JOIN project_category ON project_template.id_category = project_category.id"
                                  + " INNER JOIN item_sku ON project_template.id_sku = item_sku.id;";

            conn.Open();
            cmd.Connection  = conn;
            cmd.CommandText = sql_template;
            cmd.CommandType = CommandType.Text;
            MySqlDataReader template_reader = cmd.ExecuteReader();

            while (template_reader.Read())
            {
                using (db db = new db())
                {
                    project_template_detail project_template_detail = new project_template_detail();
                    string category = template_reader.GetString("category");
                    project_template_detail.id_project_template = db.project_template.Where(i => i.name == category).FirstOrDefault().id_project_template;
                    project_template_detail.code             = template_reader.GetString("task_number");
                    project_template_detail.item_description = template_reader.GetString("product");
                    if (db.items.Where(i => i.name == project_template_detail.item_description).FirstOrDefault() != null)
                    {
                        project_template_detail.id_item = db.items.Where(i => i.name == project_template_detail.item_description).FirstOrDefault().id_item;
                        if (template_reader.GetInt16("id_task_rel") == 0)
                        {
                            //no parent. do nothing
                        }
                        else
                        {
                            //has parent
                            string code = template_reader.GetString("task_number");
                            int    pos  = code.LastIndexOf('.');
                            if (pos >= 0)
                            {
                                code = code.Substring(0, pos);
                            }
                            project_template_detail.parent = db.project_template_detail.Where(p => p.code == code &&
                                                                                              p.id_project_template == project_template_detail.id_project_template)
                                                             .FirstOrDefault();
                        }
                        //Insert into Context & Save
                        db.project_template_detail.Add(project_template_detail);
                        db.SaveChanges();
                    }
                }
            }
            conn.Close();

            string sql_proj = " SELECT * FROM project";

            conn.Open();
            cmd.Connection  = conn;
            cmd.CommandText = sql_proj;
            cmd.CommandType = CommandType.Text;
            MySqlDataReader proj_reader = cmd.ExecuteReader();

            while (proj_reader.Read())
            {
                using (db db = new db())
                {
                    db.Configuration.AutoDetectChangesEnabled = false;
                    project project = new project();
                    project.id_project     = proj_reader.GetInt32("id");
                    project.est_start_date = proj_reader.GetDateTime("begin_date");

                    if (proj_reader["id_contact"] is DBNull)
                    {
                        value += 1;
                        continue;
                    }
                    else
                    {
                        project.id_contact = proj_reader.GetInt32("id_contact");
                    }

                    project.name = proj_reader.GetString("project");

                    if (project.Error == null)
                    {
                        db.projects.Add(project);
                        db.SaveChanges();
                        value += 1;
                        Dispatcher.BeginInvoke((Action)(() => progProject.Value = value));
                        Dispatcher.BeginInvoke((Action)(() => projectValue.Text = value.ToString()));
                    }
                }
            }
            conn.Close();

            string sql_proj_task = " SELECT project_task.*, project.project, item_sku.product,app_status.status FROM project_task "
                                   + " INNER JOIN project ON project_task.id_project = project.id"
                                   + " INNER JOIN item_sku ON project_task.id_sku = item_sku.id"
                                   + " INNER JOIN app_status ON project_task.id_status = app_status.id";

            conn.Open();
            cmd.Connection  = conn;
            cmd.CommandText = sql_proj_task;
            cmd.CommandType = CommandType.Text;
            MySqlDataReader proj_task_reader = cmd.ExecuteReader();


            while (proj_task_reader.Read())
            {
                using (db db = new db())
                {
                    project_task project_task = new project_task();
                    string       project      = proj_task_reader.GetString("project");
                    project_task.id_project = db.projects.Where(i => i.name == project).FirstOrDefault().id_project;
                    project_task.code       = proj_task_reader.GetString("task_number");

                    string product = proj_task_reader.GetString("product");
                    if (db.items.Where(i => i.name == product).FirstOrDefault() != null)
                    {
                        project_task.item_description = db.items.Where(i => i.name == product).FirstOrDefault().name;
                        project_task.id_item          = db.items.Where(i => i.name == product).FirstOrDefault().id_item;
                        if (proj_task_reader.GetString("status") == "Aprobado")
                        {
                            project_task.status = Status.Project.Approved;
                        }
                        else if (proj_task_reader.GetString("status") == "Pendiente")
                        {
                            project_task.status = Status.Project.Pending;
                        }

                        if (!(proj_task_reader["qty"] is DBNull))
                        {
                            project_task.quantity_est = proj_task_reader.GetInt16("qty");
                        }



                        if (proj_task_reader.GetInt16("id_task_rel") == 0)
                        {
                            //no parent. do nothing
                        }
                        else
                        {
                            //has parent
                            string code = proj_task_reader.GetString("task_number");
                            //logic to have children

                            if (project_task.quantity_est == null)
                            {
                                var pos = code.LastIndexOf('.');
                                if (pos >= 0)
                                {
                                    code = code.Substring(0, pos);
                                    project_task.parent = db.project_task.Where(p => p.code == code &&
                                                                                p.id_project == project_task.id_project
                                                                                ).FirstOrDefault();
                                }
                            }
                            else
                            {
                                project_task.parent = db.project_task.Where(p => p.code == code &&
                                                                            p.id_project == project_task.id_project
                                                                            ).FirstOrDefault();
                            }
                        }

                        //if (project_task.Error == null)
                        //{
                        db.project_task.Add(project_task);
                        //}
                    }
                    else
                    {
                    }



                    string sql_task = "SELECT * FROM project_task_dimension inner join app_dimension on app_dimension.id=project_task_dimension.id_dimension inner join project_task on project_task.id=project_task_dimension.id_task where id_task=" + proj_task_reader.GetInt32("id");
                    try
                    {
                        MySqlConnection conntask = new MySqlConnection(_connString);
                        MySqlCommand    cmdtask  = new MySqlCommand();
                        conntask.Open();
                        cmdtask.Connection  = conntask;
                        cmdtask.CommandText = sql_task;
                        cmdtask.CommandType = CommandType.Text;
                        MySqlDataReader task_reader = cmdtask.ExecuteReader();
                        while (task_reader.Read())
                        {
                            project_task_dimension project_task_dimension = new project_task_dimension();
                            string name = task_reader.GetString("dimension");
                            if (db.app_dimension.Where(x => x.name == name).FirstOrDefault() != null)
                            {
                                project_task_dimension.id_dimension   = db.app_dimension.Where(x => x.name == name).FirstOrDefault().id_dimension;
                                project_task_dimension.project_task   = project_task;
                                project_task_dimension.value          = task_reader.GetInt32("value");
                                project_task_dimension.id_measurement = db.app_measurement.FirstOrDefault().id_measurement;
                                if (project_task_dimension.Error == null)
                                {
                                    db.project_task_dimension.Add(project_task_dimension);
                                }
                            }
                        }
                        task_reader.Close();
                        cmdtask.Dispose();
                        conntask.Close();
                    }
                    catch (Exception ex)
                    { throw ex; }


                    IEnumerable <DbEntityValidationResult> validationresult = db.GetValidationErrors();
                    if (validationresult.Count() == 0)
                    {
                        try
                        {
                            db.SaveChanges();
                        }
                        catch (Exception ex)
                        {
                            throw ex;
                        }
                        value += 1;
                        Dispatcher.BeginInvoke((Action)(() => progProject.Value = value));
                        Dispatcher.BeginInvoke((Action)(() => projectValue.Text = value.ToString()));
                    }
                }
            }
            cmd.Dispose();
            conn.Close();
        }