REGISTRO DE PESSOAS - CLIENTES, FORNECEDORES...
O caso da pessoa desempenhar mais de um papel, é apenas um exemplo. Vejam o caso da Massey Ferguson que citei acima. Uma peça, pode ser também um conjunto, que pode ser composto de outras peças e outros conjuntos. Deixar as tabelas [Ô]livres[Ô] para expansão é sim uma excelente prática e não creio que fuja dos princÃpios da OOP. Posso citar mais um caso em que tive muito trabalho para conseguir montar o banco de dados de forma que atendesse à s necessidades:
A empresa, trabalhava com refeitórios coletivos. Eram vários clientes, cada um com um contrato diferente tanto de composição de cardápio quanto de valor pago por refeição. Então, para montar o cardápio, vários requisitos deveriam ser atendidos:
- O custo total por refeição, somando todos os diferentes pratos, não poderia exceder o valor pago pelo cliente
- O número de pratos deveria atender as especificações de contrato. Deveria conter pratos base(geralmente arroz e feijão), o número de tipos de carnes, guarnições, saladas e sobremesas
- O valor calórico de cada refeição deveria atender padrões ditados pelo órgão competente do estado em que a refeição era servida
- O reaproveitamento de produtos prontos, é terminantemente proibido em todo o território nacional. Portanto, mesmo que no estoque local existisse uma quantidade de carne moÃda, esta não poderia ser aproveitada para nenhuma receita, devendo ser dispensada.
- A complexidade de pratos deveria atender ao [Ô]skillset[Ô] das cozinheiras.
Quanto à produtos:
- Cada ingrediente de cada prato, pode possuir valores diferentes em cada uma das comensais(refeitórios), portanto o custo não era fixo em lugar algum
- Cada unidade(cozinha + refeitório), possuÃa um pequeno estoque, que era gerenciado tanto localmente quanto remotamente
- O transporte poderia ser realizado de várias maneiras. Dependendo da urgência, distância, custo do produto comprado, fornecedor e alguns outros fatores de menor importância
Isso era o básico. Então vamos à um estudo de caso:
A empresa X, contratou refeições contendo pratos base, 2 tipos de carne, 2 guarnições e 3 tipos de salada. Esse cliente, servia em média 800 refeições. Então a elaboração do cardápio seria algo como:
- Arroz e feijão carioca
- Bife à milanesa
- Frango grelhado
- Bolinho de arroz
- Aipim(para quem não sabe, mandioca)
- Cenoura
- Beterraba
- Agrião
Ok, temos o cardápio. Com isso temos que calcular os custos de cada prato:
- Arroz: 280g arroz parboilizado, 10ml óleo de soja, 1g de sal
- Feijão carioca: 200g de feijão, 10ml óleo de soja, 1g de sal, 5g de pimenta de cheiro, 20g de toucinho(bacon), 40g de cebola, 25g de alho
- Bife à milanesa: 250g de coxão de dentro, 60g de farinha de rosca, 40g de ovo batido, 1g de sal + 40ml de óleo de soja para preparção(fritura)
- Frango grelhado: Peito de frango 250g, 2g de sal + 20ml de óleo de soja para chapa
- Bolinho de arroz: 100g de arroz cozido(o mesmo que o arroz lá em cima), 20g de ovo batido, 3g de sal, 20 de tempero verde + 100ml de óleo de soja para fritura
- Aipim: 150g de aipim, 3g de sal, 20ml de óleo de soja
Só aqui a complexidade já é bem grande. Pois terÃamos de ingredientes apenas:
Arroz: 280g + ((280g/100)*150)
Feijão: 200g
Coxão de dentro: 250g
Peito de frango: 250g
Sal: 10g
Óleo de soja: 200ml
Toucinho: 20g
Cebola: 40g
Alho: 25g
Farinha de rosca: 60g
Ovo batido: 60g
(E por aà vai)
Agora, temos que calcular a necessidade total para 800 refeições, multiplicando isso tudo por 80. Em seguida, calcular o custo de cada ingrediente levando em conta suas quantidades por refeição, custo de cada ingrediente(levando em conta as compras locais, produtos já em estoque central e estoque local), Este custo, deve levar em conta também custos não mensuráveis, como gás, água, equipamento e desgaste, além de horas de trabalho de cozinheiras, auxiliares, motoristas(de transporte) e custos extras que podem ser de tudo.
Com todos esses dados em mãos, podemos chegar à valor estimado de custo por refeição, que lembrando, não deve exceder o valor pago pelo cliente, caso em que o cardápio deve ser alterado e todo o processo refeito. Supondo que o valor do custo seja menor(não igual, MENOR) que o valor pago pelo cliente, o cardápio então passa para a avaliação nutricional, que contará as calorias total por refeição e caso esse valor não esteja de acordo com estipulado pelo governo estadual, todo o processo deve ser refeito também. Supondo que o valor nutricional e o custo estejam de acordo, então o cardápio para o dia será liberado e começa o processo de remessa, levando em conta estoque central, local e possÃveis estoques de outras cozinhas mais próximas que o central que possuam os produtos do cardápio caso este esteja ausente no estoque central, isso sendo medida para corte de gastos. Produtos perecÃveis, precisam de inspeção sanitária onde quer que estejam armazenados. Freezers, resfriadores e outros modos de acondicionamento, devem ter seus custos operacionais(energia e manutenção) também incluÃdos no valor de custo de cada prato. Esses produtos perecÃveis, devem ser regidos pelo FIFO(PEPS), onde o primeiro que entra é sempre o primeiro à ser utilizado, mantendo assim uma rotação dos produtos com o menor tempo de armazenamento possÃvel. Perdas de produtos, abatem também sobre o valor de custo por refeição.
Feita a remessa, o transporte então é realizado, sendo que um caminhão pode atender diversas comensais em uma mesma viagem, tendo que separar os produtos em suas respectivas quantidades para cada comensal e torcer para o motorista e ajudante não entregar o produto errado. Os produtos entregues, as refeições são preparadas e por fim servidas.
Todo esse sistema, é web e pode ser consultado pelos comensais(quem come no refeitório) e inclusive ter opiniões e notas que devem ser levadas em conta na constituição de futuros cardápios. Cada comensal, possui um computador, onde pode realizar pedidos extras de produtos, cancelamentos, reposição de estoque, devolução de estoque e muitas outras operações. Tudo web.
UFA!! Complicado hein? E olha que isso é um vislumbre apenas, no operacional haviam muitas outras coisas que atrapalhavam em muito toda a operação.
Utilizando as técnicas de OOP, boas práticas e ferramentas disponÃveis na época(2005 mais ou menos), quanto tempo vocês acreditam que alguém consiga desenvolver algo assim, sozinho. Todo o banco de dados, telas de cadastro, backwork e WebAPI. Façam suas apostas e eu respondo em seguida!
A empresa, trabalhava com refeitórios coletivos. Eram vários clientes, cada um com um contrato diferente tanto de composição de cardápio quanto de valor pago por refeição. Então, para montar o cardápio, vários requisitos deveriam ser atendidos:
- O custo total por refeição, somando todos os diferentes pratos, não poderia exceder o valor pago pelo cliente
- O número de pratos deveria atender as especificações de contrato. Deveria conter pratos base(geralmente arroz e feijão), o número de tipos de carnes, guarnições, saladas e sobremesas
- O valor calórico de cada refeição deveria atender padrões ditados pelo órgão competente do estado em que a refeição era servida
- O reaproveitamento de produtos prontos, é terminantemente proibido em todo o território nacional. Portanto, mesmo que no estoque local existisse uma quantidade de carne moÃda, esta não poderia ser aproveitada para nenhuma receita, devendo ser dispensada.
- A complexidade de pratos deveria atender ao [Ô]skillset[Ô] das cozinheiras.
Quanto à produtos:
- Cada ingrediente de cada prato, pode possuir valores diferentes em cada uma das comensais(refeitórios), portanto o custo não era fixo em lugar algum
- Cada unidade(cozinha + refeitório), possuÃa um pequeno estoque, que era gerenciado tanto localmente quanto remotamente
- O transporte poderia ser realizado de várias maneiras. Dependendo da urgência, distância, custo do produto comprado, fornecedor e alguns outros fatores de menor importância
Isso era o básico. Então vamos à um estudo de caso:
A empresa X, contratou refeições contendo pratos base, 2 tipos de carne, 2 guarnições e 3 tipos de salada. Esse cliente, servia em média 800 refeições. Então a elaboração do cardápio seria algo como:
- Arroz e feijão carioca
- Bife à milanesa
- Frango grelhado
- Bolinho de arroz
- Aipim(para quem não sabe, mandioca)
- Cenoura
- Beterraba
- Agrião
Ok, temos o cardápio. Com isso temos que calcular os custos de cada prato:
- Arroz: 280g arroz parboilizado, 10ml óleo de soja, 1g de sal
- Feijão carioca: 200g de feijão, 10ml óleo de soja, 1g de sal, 5g de pimenta de cheiro, 20g de toucinho(bacon), 40g de cebola, 25g de alho
- Bife à milanesa: 250g de coxão de dentro, 60g de farinha de rosca, 40g de ovo batido, 1g de sal + 40ml de óleo de soja para preparção(fritura)
- Frango grelhado: Peito de frango 250g, 2g de sal + 20ml de óleo de soja para chapa
- Bolinho de arroz: 100g de arroz cozido(o mesmo que o arroz lá em cima), 20g de ovo batido, 3g de sal, 20 de tempero verde + 100ml de óleo de soja para fritura
- Aipim: 150g de aipim, 3g de sal, 20ml de óleo de soja
Só aqui a complexidade já é bem grande. Pois terÃamos de ingredientes apenas:
Arroz: 280g + ((280g/100)*150)
Feijão: 200g
Coxão de dentro: 250g
Peito de frango: 250g
Sal: 10g
Óleo de soja: 200ml
Toucinho: 20g
Cebola: 40g
Alho: 25g
Farinha de rosca: 60g
Ovo batido: 60g
(E por aà vai)
Agora, temos que calcular a necessidade total para 800 refeições, multiplicando isso tudo por 80. Em seguida, calcular o custo de cada ingrediente levando em conta suas quantidades por refeição, custo de cada ingrediente(levando em conta as compras locais, produtos já em estoque central e estoque local), Este custo, deve levar em conta também custos não mensuráveis, como gás, água, equipamento e desgaste, além de horas de trabalho de cozinheiras, auxiliares, motoristas(de transporte) e custos extras que podem ser de tudo.
Com todos esses dados em mãos, podemos chegar à valor estimado de custo por refeição, que lembrando, não deve exceder o valor pago pelo cliente, caso em que o cardápio deve ser alterado e todo o processo refeito. Supondo que o valor do custo seja menor(não igual, MENOR) que o valor pago pelo cliente, o cardápio então passa para a avaliação nutricional, que contará as calorias total por refeição e caso esse valor não esteja de acordo com estipulado pelo governo estadual, todo o processo deve ser refeito também. Supondo que o valor nutricional e o custo estejam de acordo, então o cardápio para o dia será liberado e começa o processo de remessa, levando em conta estoque central, local e possÃveis estoques de outras cozinhas mais próximas que o central que possuam os produtos do cardápio caso este esteja ausente no estoque central, isso sendo medida para corte de gastos. Produtos perecÃveis, precisam de inspeção sanitária onde quer que estejam armazenados. Freezers, resfriadores e outros modos de acondicionamento, devem ter seus custos operacionais(energia e manutenção) também incluÃdos no valor de custo de cada prato. Esses produtos perecÃveis, devem ser regidos pelo FIFO(PEPS), onde o primeiro que entra é sempre o primeiro à ser utilizado, mantendo assim uma rotação dos produtos com o menor tempo de armazenamento possÃvel. Perdas de produtos, abatem também sobre o valor de custo por refeição.
Feita a remessa, o transporte então é realizado, sendo que um caminhão pode atender diversas comensais em uma mesma viagem, tendo que separar os produtos em suas respectivas quantidades para cada comensal e torcer para o motorista e ajudante não entregar o produto errado. Os produtos entregues, as refeições são preparadas e por fim servidas.
Todo esse sistema, é web e pode ser consultado pelos comensais(quem come no refeitório) e inclusive ter opiniões e notas que devem ser levadas em conta na constituição de futuros cardápios. Cada comensal, possui um computador, onde pode realizar pedidos extras de produtos, cancelamentos, reposição de estoque, devolução de estoque e muitas outras operações. Tudo web.
UFA!! Complicado hein? E olha que isso é um vislumbre apenas, no operacional haviam muitas outras coisas que atrapalhavam em muito toda a operação.
Utilizando as técnicas de OOP, boas práticas e ferramentas disponÃveis na época(2005 mais ou menos), quanto tempo vocês acreditam que alguém consiga desenvolver algo assim, sozinho. Todo o banco de dados, telas de cadastro, backwork e WebAPI. Façam suas apostas e eu respondo em seguida!
Utilizando as técnicas de OOP, boas práticas e ferramentas disponÃveis na época(2005 mais ou menos), quanto tempo vocês acreditam que alguém consiga desenvolver algo assim, sozinho. Todo o banco de dados, telas de cadastro, backwork e WebAPI. Façam suas apostas e eu respondo em seguida!
sistema web em 2005?
em 2005 eu tinha internet só discada e olha lá...
ficava feliz ainda de um plano da oi que cobrava apenas um pulso durante o dia.
alias, nesse ano nem programava ainda. Comecei em 2006 no vb6 com access
agora desenvolver um projeto desses.. depende do [Ô]alguém[Ô]... rsrs
sendo eu, já nem pegaria um caso desses.. certeza! ainda mais sozinho. Poderia me oferecer 50mil não pegaria nem f@dendo.
agora alguém com boa base de conhecimento e corajoso... não faria isso em menos de 6 meses
Citação::
Utilizando as técnicas de OOP, boas práticas e ferramentas disponÃveis na época(2005 mais ou menos), quanto tempo vocês acreditam que alguém consiga desenvolver algo assim, sozinho. Todo o banco de dados, telas de cadastro, backwork e WebAPI. Façam suas apostas e eu respondo em seguida!
sistema web em 2005?
em 2005 eu tinha internet só discada e olha lá...
ficava feliz ainda de um plano da oi que cobrava apenas um pulso durante o dia.
alias, nesse ano nem programava ainda. Comecei em 2006 no vb6 com access
agora desenvolver um projeto desses.. depende do [Ô]alguém[Ô]... rsrs
sendo eu, já nem pegaria um caso desses.. certeza! ainda mais sozinho. Poderia me oferecer 50mil não pegaria nem f@dendo.
agora alguém com boa base de conhecimento e corajoso... não faria isso em menos de 6 meses
Eu 2005 eu já programava fazia tempo... mais de dez anos na verdade. Fiz tudo com PHP. A WebAPI era necessária porque vários dos clientes informavam o número de refeições para cada dia, além de ser usado para liberar entrada de caminhões que tinha que ter agendamento para poder entrar em alguns locais e também a consulta dos cardápios e [Ô]trocar uma idéia[Ô] com as nutricionistas. Muitas vezes eles queriam um cardápio especial para uma determinada ocasião e queriam um almoço diferente, lógico, pagavam por isso e lá se ia toda a lógica, tendo que criar todo um fluxo de cálculo para uma refeição especÃfica. Mas por ter criado o banco de dados e fluxo de cardápio de forma bem dinâmica, isso era possÃvel de ser feito.
mas voce nao falou...em quanto tempo fez aquele projeto?
sobre php, também já programei..
mas depois que descobri o c# há uns 3 meses.. to gostando cada vez mais do tio bill
sobre php, também já programei..
mas depois que descobri o c# há uns 3 meses.. to gostando cada vez mais do tio bill
Citação::
mas voce nao falou...em quanto tempo fez aquele projeto?
sobre php, também já programei..
mas depois que descobri o c# há uns 3 meses.. to gostando cada vez mais do tio bill
Levou quase 7 meses. Incluindo testes e tudo mais. Funcionou até 2010 sem praticamente nenhuma manutenção, apenas implementação de algumas funcionalidades menores. O custo batia em cerca de 95% com o caixa, o que é uma aproximação muito boa, levando em conta todas as variáveis envolvidas no calculo. Isso possibilitava melhorar custos(e lucros), pois como o custo final do prato era praticamente o custo real, era possÃvel até mesmo realizar previsão de lucros à curto e médio prazo, à longo prazo nunca deu muito certo, simplesmente porque a flutuação de preços de produtos alimentÃcios com fornecedores é muito alta. Principalmente carnes e outros perecÃveis como produtos hortifrutigranjeiros. E isso é questão de simplesmente ir ao mercado para constatar...
olá galera
segue o projeto no qual iniciei para realizar o cadastro de PESSOAS (clientes, fornecedores e colaboradores) conforme discutido nesse tópico
desenvolvido em C# com EF6 no VS2015
Estou utilizando o Migrations, então para adicionar a base no SqlServer é só abrir o package manager e dar um [Ô]update-database[Ô] (eu acho que é só isso)
Sou iniciante em C# e SQL Server, comecei há cerca de 3 meses
como eu já tinha iniciado um projeto, por enquanto possuà apenas as entidades de Pessoas, Enderecos e Telefones
antes de desmembrar as entidades (separar estado, cidade, bairros e pessoas)... gostaria de uma opinião dos usuários mais experientes para saber se estou fazendo certo
Tenho receio de estar indo pelo caminho mais longo sem necessidade. A minha maior dúvida é em relação ao relacionamento.
Ao salvar uma pessoa, preciso salvar endereço e telefones separadamente ?
Ao atualizar um telefone (um para muitos), preciso saber manualmente quais os registros que foram alterados ou incluidos?
agradeço quem puder ajudar.
segue o projeto no qual iniciei para realizar o cadastro de PESSOAS (clientes, fornecedores e colaboradores) conforme discutido nesse tópico
desenvolvido em C# com EF6 no VS2015
Estou utilizando o Migrations, então para adicionar a base no SqlServer é só abrir o package manager e dar um [Ô]update-database[Ô] (eu acho que é só isso)
Sou iniciante em C# e SQL Server, comecei há cerca de 3 meses
como eu já tinha iniciado um projeto, por enquanto possuà apenas as entidades de Pessoas, Enderecos e Telefones
antes de desmembrar as entidades (separar estado, cidade, bairros e pessoas)... gostaria de uma opinião dos usuários mais experientes para saber se estou fazendo certo
Tenho receio de estar indo pelo caminho mais longo sem necessidade. A minha maior dúvida é em relação ao relacionamento.
Ao salvar uma pessoa, preciso salvar endereço e telefones separadamente ?
Ao atualizar um telefone (um para muitos), preciso saber manualmente quais os registros que foram alterados ou incluidos?
agradeço quem puder ajudar.
segue o link do github
https://github.com/michaelgomes/CRM.GESTAO
https://github.com/michaelgomes/CRM.GESTAO
KERPLUNK? DS2T? ACCIOLLY? XLEGENDARY?
por favor, quem puder me ajudar agradeço
por favor, quem puder me ajudar agradeço
Se não quiser que uma chave estrangeira seja obrigatória é só desmarcar a opção NN (Not Null). Isso vai depender muito da sua regra de negócio por isso nem vou discutir.
Quanto salvar os dados separadamente, a nÃvel de banco vai. A nÃvel de aplicação nem tanto. Pois sabendo quais dados devem ser salvos primeiro você pode por exemplo dar um insert em todas as tabelas ao mesmo tempo. E sem perca de performance. Duvida?!
Acredito que também possa haver outras possibilidades. E por obra do destino, hoje mesmo estava pesquisando e estudando sobre insert e update em uma view do mysql. Se tudo der certo, vai ser mais um conhecimento agregado!
Boa noite!

Quanto salvar os dados separadamente, a nÃvel de banco vai. A nÃvel de aplicação nem tanto. Pois sabendo quais dados devem ser salvos primeiro você pode por exemplo dar um insert em todas as tabelas ao mesmo tempo. E sem perca de performance. Duvida?!

Acredito que também possa haver outras possibilidades. E por obra do destino, hoje mesmo estava pesquisando e estudando sobre insert e update em uma view do mysql. Se tudo der certo, vai ser mais um conhecimento agregado!

Boa noite!

Citação::
KERPLUNK? DS2T? ACCIOLLY? XLEGENDARY?
por favor, quem puder me ajudar agradeço
Ora, mas é o que viemos discutindo no tópico todo...
Tópico encerrado , respostas não são mais permitidas