REGISTRO DE PESSOAS - CLIENTES, FORNECEDORES...

KERPLUNK 20/08/2016 21:33:57
#466055
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!
MICHAELL 20/08/2016 21:54:47
#466056
 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
KERPLUNK 20/08/2016 22:13:02
#466057
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.
MICHAELL 20/08/2016 23:12:24
#466063
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




KERPLUNK 20/08/2016 23:55:41
#466065
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...
MICHAELL 22/08/2016 17:32:41
#466075
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.
MICHAELL 22/08/2016 18:46:18
#466079
MICHAELL 22/08/2016 22:37:19
#466083
KERPLUNK? DS2T? ACCIOLLY? XLEGENDARY?
por favor, quem puder me ajudar agradeço
ACCIOLLY 22/08/2016 23:35:14
#466084
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!
KERPLUNK 22/08/2016 23:43:12
#466085
Citação:

:
KERPLUNK? DS2T? ACCIOLLY? XLEGENDARY?
por favor, quem puder me ajudar agradeço


Ora, mas é o que viemos discutindo no tópico todo...
Página 4 de 5 [46 registro(s)]
Tópico encerrado , respostas não são mais permitidas