Resumo20050125

De Stoq Wiki
Ir para: navegação, pesquisa

Reunião realizada no dia 25/01/2006, com questionamentos sobre o módulo domain/product.py.


Há necessidade de checar foreign_key nos adapters? <verbatim> Jan 25 11:06:26 grazieno beyond, henrique para os testes de foreign_key preciso

                               testar os adapters tb?

Jan 25 11:07:09 beyond grazieno, como assim ? Jan 25 11:08:44 grazieno beyond, na definicao da classe ProductSupplierInfo, por exemplo, existe a definicao

                               de dois foreign_key

Jan 25 11:10:15 grazieno q sao supplier para PersonAdaptToSupplier e product para Product Jan 25 11:10:42 grazieno preciso testar supplier? Jan 25 11:11:17 beyond para o teste ser completo de fato voce precisa testar sim Jan 25 11:12:57 grazieno ok, entao preciso estender um pouco o metodo generateforeignkeyattrs

                               de BaseDomainTest

</verbatim>

Dúvidas sobre sobre as classes ProductStockReference e ProductStockItem: <verbatim> Jan 25 11:18:38 grazieno beyond, henrique preciso confirmar algumas conclusoes com vcs Jan 25 11:19:10 grazieno entre as diferencas entre ProductStockReference e ProductStockItem Jan 25 11:19:40 grazieno pelo q entendi ProductStockReference guarda informacoes sobre os itens existentes Jan 25 11:20:05 grazieno se um novo item for colocado a venda, ele deve estar cadastrado lá Jan 25 11:20:42 grazieno em ProductStockReference sempre teremos uma lista de todos os produtos

                               existentes a venda, eh isso mesmo?

</verbatim>

Fases para venda de um produto: <verbatim> Jan 25 11:21:08 beyond sim, é praticamente isso Jan 25 11:21:15 beyond mas farei uma explicacao mais detalhada Jan 25 11:21:40 beyond existem duas coisas basicas no sistema:

                       'tipo de produto' e 'produto'.

Jan 25 11:22:14 beyond 'tipo de produto' é apenas um cadastro, um conjunto de informações basicas

                       sobre como um produto deve ser vendido

Jan 25 11:22:36 beyond nesse caso seu representante é a classe Product e seu adapter de ISellable,

                       ProductAdaptToSellable

Jan 25 11:22:51 beyond observe que é impossível vender um tipo de produto Jan 25 11:23:17 beyond o que se vende é um "produto". E o que é um produto no sistema ?

                       São as classes que herdam de AbstractSellableItem

Jan 25 11:23:40 grazieno ProductSellableItem, nesse caso Jan 25 11:24:09 beyond note que se voce quiser obter uma lista de items vendidos para determinada venda faça,

                       sale.get_items() e obterá vários objetos que herdam de abstractsellableitem

Jan 25 11:24:19 beyond exato, ProductSellableItem Jan 25 11:24:27 beyond mas get_items te retorna mais do isso Jan 25 11:24:36 beyond voce pode ter produtos, serviços e vale compras Jan 25 11:24:51 beyond todos são instancias de classes que herdam de abstractsellableitem Jan 25 11:24:58 beyond mas agora voltando ao tipo de produto Jan 25 11:25:21 beyond observe que não se pode vender um produto que não exista no estoque, concorda ?

                       E como armazenamos informacoes de estoque ?

Jan 25 11:25:35 beyond depende do numero de unidades (filiais) da empresa Jan 25 11:26:28 beyond se tenho 3 filiais, entao terei para cada tipo de produto, 3 instancias de ProductStockItem,

                       cada uma representando o saldo de estoque daquele produto para uma determinada filial

Jan 25 11:26:53 beyond Ao efetuar uma venda para um produto "Teclado", o que ocorre entao ? Jan 25 11:27:20 beyond 1 - Eu crio uma instancia de ProductSellableItem que irá apontar para o

                       tipo de produto "Teclado"

Jan 25 11:27:41 beyond 2- associo essa instancia a minha venda, setando seu atributo sale para a minha

                       instancia de venda

Jan 25 11:29:45 beyond para cada tipo de produto, que seria no caso uma instancia de Product, eu terei um adapter representando

                       informaçoes de venda

Jan 25 11:29:50 beyond que é ProductAdaptToSellable Jan 25 11:29:59 beyond e um adapter representando informacoes de estoque para o mesmo Jan 25 11:30:07 beyond que é ProductAdaptToStorable Jan 25 11:30:32 beyond observe o método facetIStorableadd de Product Jan 25 11:31:48 beyond esse método é um hook que é chamado sempre que voce instancia um novo adapter

                       para IStorable

Jan 25 11:31:51 beyond e o que ele faz ? Jan 25 11:32:12 beyond ele simplesmente chama fill_stocks, que por sua vez captura a lista de unidades da empresa e Jan 25 11:32:32 beyond cria objetos ProductStockItem para cada uma delas Jan 25 11:32:49 beyond aí eu continuo meu exemplo sobre a venda do produto "Teclado" Jan 25 11:32:53 beyond o item 3 seria: Jan 25 11:33:43 beyond 3 - Ao confirmar a venda eu localizo o objeto ProductStockItem referente ao produto "Teclado"

                       e com o atributo "branch" igual ao objeto que representa a minha loja atual

Jan 25 11:33:48 beyond então fica fácil Jan 25 11:34:00 beyond com esse objeto na mao eu atualizo o estoque da minha unidade Jan 25 11:34:55 beyond se vendi 3 produtos "Teclado" e tenho o atributo "quantity" de ProductStockItem = 7,

                       então preciso atualizar esse atributo, sendo que o valor dele após a atualização será 4

</verbatim>

ProductStockReference: <verbatim> Jan 25 11:35:36 beyond esse objeto já é outra historia Jan 25 11:36:02 beyond diante da minha explicação notamos que a sua conclusao inicial estava errada Jan 25 11:36:19 beyond onde voce citou ProductStockReference leia-se ProductStockItem Jan 25 11:38:14 beyond ok, ProductStockReference é uma classe que nos auxiliaria a fornecer

                       um suporte interessante ao Stoq

Jan 25 11:38:37 beyond por exemplo Jan 25 11:38:44 beyond Quero vender 3 teclados Jan 25 11:38:56 beyond só que tenho apenas um teclado na loja em que trabalho Jan 25 11:39:05 beyond tenho outro na loja de um outro bairro Jan 25 11:39:10 beyond e mais um no depósito Jan 25 11:39:13 beyond entendeu o problema ? Jan 25 11:39:44 beyond nesse caso, para um único objeto ProductSellableItem eu teria 3 instancias

                       de ProductStockReference

Jan 25 11:40:00 beyond veja o atributo product_item de ProductStockReference Jan 25 11:40:18 beyond ele aponta para um ProductSellableItem, é uma associação de 1 para n Jan 25 11:40:53 beyond onde 'n' possui um valor máximo que é igual ao valor do atributo quantity presente

                       em ProductSellableItem

Jan 25 11:41:19 beyond já que não faz o menor sentido eu vender 3 teclados e querer obter 4 de diferentes filiais Jan 25 11:41:43 beyond entenda que não existe suporte para o uso de ProductStockReference na atual aplicação POS Jan 25 11:41:46 beyond não por enquanto </verbatim>

O que significa o atributo order_product em ProductSellableItem? <verbatim> Jan 25 11:45:48 grazieno em productsellableitem, existe um atributo chamado order_product...o q significa? Jan 25 11:47:08 beyond order_product ? está falando de um argumento da funcao sell ? Jan 25 11:47:27 beyond é encomenda Jan 25 11:47:44 beyond significa que se nao houver pessas em estoque eu venderei sob a forma de encomenda Jan 25 11:48:00 beyond mas esse é outro recurso que ainda nao disponibilizamos no POS Jan 25 11:48:12 beyond aos poucos vamos disponibilizando Jan 25 11:48:17 beyond é uma parte complexa </verbatim>

Dúvida sobre ismainsupplier, essa dúvida se tornou o bug 2400: <verbatim> Jan 25 11:48:44 grazieno beyond, existe hj no stoq uma forma de garantir q um product tem somente um fornecedor principal? Jan 25 11:48:53 grazieno beyond, estou falando de ismainsupplier Jan 25 11:49:43 beyond Se voce associa um fornecedor para um produto ele sempre será o principal Jan 25 11:49:52 grazieno em getmainsupplierinfo, o unico teste eh verificar isso: assert not len(supplierdata) > 1 Jan 25 11:49:58 beyond se voce muda, e atribui um segundo, esse segundo será o principal Jan 25 11:50:33 grazieno certo, e nessa rotina de setar o segundo como principal, tb seta-se o primeiro como false certo? Jan 25 11:50:43 beyond um produto pode inclusive nao ter fornecedor, entende ? Jan 25 11:50:45 beyond por exemplo Jan 25 11:51:03 beyond sou um lojista, tenho uma gama de produtos e alguns deles eu adquiri de um representante obscuro Jan 25 11:51:13 beyond e nao faço a menor ideia de quem é o fornecedor Jan 25 11:51:19 beyond por exemplo, um lote de alface Jan 25 11:51:51 beyond grazieno, sim, ao mudar o fornecedor principal automaticamente seta-se o anterior como secundario Jan 25 11:52:20 beyond se bem que esse codigo que está na interface provavelmente deveria ser movido para as classes de dominio Jan 25 11:52:36 grazieno ok, eh q me surgiu essa duvida, e precisava ter certeza... Jan 25 11:52:52 beyond grazieno, quer abrir um bug pra isso ? Jan 25 11:53:06 grazieno beyond, posso sim </verbatim>