public void Pedido() { if (Id <= 0) { return; } var itens = new Model.PedidoItem().FindAll().Where("pedido", Id).WhereFalse("excluir").Get(); foreach (var data in itens) { var item = GetItem(data.ITEM); Amount = Validation.ConvertToDouble(data.QUANTIDADE); _mItemEstoque.SetUsuario(User).SetQuantidade(Amount).SetTipo(Action).SetLocal(Local).SetObs(Obs) .SetIdPedido(Id).SetItem(item).Save(_mItemEstoque); if (data.ATRIBUTO == "0") { continue; } string attrId = data.ATRIBUTO; var upEstoque = new ItemEstoque().FindAll().Where("id", attrId).FirstOrDefault <ItemEstoque>(); if (upEstoque == null) { continue; } switch (Action) { case "A": { upEstoque.Estoque += Amount; if (Local != "Compras" || Local != "Devoluções") { upEstoque.Vendido -= Validation.ConvertToInt32(data.QUANTIDADE); } break; } case "R": { upEstoque.Estoque -= Amount; if (Local != "Remessas" || Local != "Compras" || Local != "Devoluções") { upEstoque.Vendido += Validation.ConvertToInt32(data.QUANTIDADE); } if (Local == "Devoluções") { upEstoque.Vendido -= Validation.ConvertToInt32(data.QUANTIDADE); } break; } } upEstoque.Save(upEstoque); } }
public IEnumerable <dynamic> GetDataTable() { var model = new Model.PedidoItem().Query(); model.Where("totalcompra", "=", 0); model.Where("valorcompra", ">", 0); model.Where("excluir", "=", 0); return(model.Get()); }
public IEnumerable <dynamic> GetDataItens(int idPedido) { var itens = new Model.PedidoItem().Query() .LeftJoin("item", "item.id", "pedido_item.item") .Select("pedido_item.id", "pedido_item.quantidade", "pedido_item.xprod", "pedido_item.medida", "pedido_item.valorvenda", "pedido_item.desconto", "pedido_item.frete", "pedido_item.ncm", "pedido_item.cfop", "pedido_item.origem", "pedido_item.icms", "pedido_item.ipi", "pedido_item.pis", "pedido_item.cofins", "pedido_item.federal", "pedido_item.estadual", "pedido_item.total", "pedido_item.status", "item.nome", "item.referencia", "pedido_item.item") .Where("pedido_item.pedido", idPedido) .Where("pedido_item.excluir", 0); //.Where("pedido_item.tipo", "Produtos"); return(itens.Get()); }
public void GetId(int id) { //_pedidoItem = _pedidoItem.Query().Where("Id", id).FirstOrDefault<Model.PedidoItem>(); _pedidoItem = _pedidoItem.FindById(id).FirstOrDefault <Model.PedidoItem>(); }
private void LoadDados() { itemPedido = new Model.PedidoItem().Query().Where("pedido_item.id", idPdt).FirstOrDefault <Model.PedidoItem>(); if (itemPedido != null) { item.Text = nrItem.ToString(); referencia.Text = itemPedido?.CProd ?? ""; codebarras.Text = itemPedido?.CEan ?? ""; descricao.Text = itemPedido?.xProd ?? ""; origem.Text = itemPedido?.Origem ?? ""; ncm.Text = itemPedido?.Ncm ?? ""; cest.Text = itemPedido?.Cest ?? ""; cfop.Text = itemPedido?.Cfop ?? ""; quantidade.Text = Validation.FormatMedidas(itemPedido.Medida, Validation.ConvertToDouble(itemPedido.Quantidade)); valorUnitario.Text = Validation.FormatPrice(itemPedido.ValorVenda); valorDesconto.Text = Validation.FormatPrice(itemPedido.DescontoItem); valorFrete.Text = Validation.FormatPrice(itemPedido.Frete); valorSeguro.Text = Validation.FormatPrice(itemPedido.Seguro); vlrDespesa.Text = Validation.FormatPrice(itemPedido.Despesa); valorTotal.Text = Validation.FormatPrice(itemPedido.Total); Icms.SelectedValue = itemPedido.Icms != null ? itemPedido.Icms : ""; icmsaliq.Text = Validation.FormatPrice(itemPedido.IcmsAliq); icmsBase.Text = Validation.Price(Validation.ConvertToDouble(itemPedido.IcmsBase)); icmsvlr.Text = Validation.FormatPrice(itemPedido.IcmsVlr); Pis.SelectedValue = itemPedido.Pis != null ? itemPedido.Pis : ""; Cofins.SelectedValue = itemPedido.Cofins != null ? itemPedido.Cofins : ""; Ipi.SelectedValue = itemPedido.Ipi != null ? itemPedido.Ipi : ""; icmsstaliq.Text = Validation.Price(itemPedido.IcmsStAliq); icmsstbasecomreducao.Text = Validation.Price(itemPedido.IcmsStBaseComReducao); icmsstbase.Text = Validation.Price(itemPedido.IcmsStBase); icmsstvlr.Text = Validation.Price(itemPedido.Icmsstvlr); ipialiq.Text = Validation.Price(itemPedido.IpiAliq); pisaliq.Text = Validation.Price(itemPedido.PisAliq); cofinsaliq.Text = Validation.Price(itemPedido.CofinsAliq); pisvlr.Text = Validation.Price(itemPedido.PisVlr); cofinsvlr.Text = Validation.Price(itemPedido.CofinsVlr); ipivlr.Text = Validation.Price(itemPedido.IpiVlr); federal.Text = Validation.Price(itemPedido.Federal); estadual.Text = Validation.Price(itemPedido.Estadual); municipal.Text = Validation.Price(itemPedido.Municipal); infoAdicional.Text = itemPedido.Info_Adicional != null ? itemPedido.Info_Adicional : ""; pedidoCompra.Text = itemPedido.Pedido_compra != null ? itemPedido.Pedido_compra : ""; itemPedidoCompra.Text = itemPedido.Item_Pedido_Compra != null ? itemPedido.Item_Pedido_Compra : ""; } medida.DataSource = Support.GetMedidas(); origem.DataSource = Support.GetOrigens(); origem.DisplayMember = "Nome"; origem.ValueMember = "Id"; if (itemPedido.Medida != null) { medida.SelectedItem = itemPedido.Medida; } if (itemPedido.Origem != null) { origem.SelectedValue = itemPedido.Origem; } }
/// <summary> /// Adiciona item ao pedido, controla o estoque e atualiza os totais. /// </summary> private void AddItem() { if (collection.Lookup(nomeProduto()[0]) > 0 && String.IsNullOrEmpty(PedidoModalItens.NomeProduto)) { var itemId = collection.Lookup(nomeProduto()[0]); Model.Item item = _mItem.FindById(itemId).WhereFalse("excluir").Where("tipo", "Produtos").FirstOrDefault <Model.Item>(); if (ModoRapAva == 0) { Medidas.SelectedItem = item.Medida; } double QuantidadeTxt = Validation.ConvertToDouble(Quantidade.Text); double DescontoReaisTxt = Validation.ConvertToDouble(DescontoReais.Text); double DescontoPorcentagemTxt = Validation.ConvertToDouble(DescontoPorcentagem.Text); string MedidaTxt = Medidas.Text; double PriceTxt = Validation.ConvertToDouble(Preco.Text); #region Controle de estoque var controlarEstoque = IniFile.Read("ControlarEstoque", "Comercial"); if (!string.IsNullOrEmpty(controlarEstoque) && controlarEstoque == "True") { if (item.EstoqueAtual <= 0) { Alert.Message("Opps", "Você está sem estoque desse produto.", Alert.AlertType.warning); return; } } if (PriceTxt == 0) { if (DescontoReaisTxt > item.ValorVenda || DescontoReaisTxt > item.Limite_Desconto || DescontoPorcentagemTxt > 101) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o valor do item.", Alert.AlertType.warning); return; } } if (PriceTxt > 0) { if (DescontoReaisTxt > PriceTxt || DescontoPorcentagemTxt >= 101) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o valor do item.", Alert.AlertType.warning); return; } } double LimiteDescontoIni = 0; if (!String.IsNullOrEmpty(IniFile.Read("LimiteDesconto", "Comercial"))) { LimiteDescontoIni = Validation.ConvertToDouble(IniFile.Read("LimiteDesconto", "Comercial")); } if (item.Limite_Desconto != 0) { if (DescontoReaisTxt > item.Limite_Desconto) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning); return; } if (PriceTxt > 0) { var porcentagemValor = (PriceTxt / 100 * DescontoPorcentagemTxt); if (porcentagemValor > item.Limite_Desconto) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning); return; } } if (PriceTxt == 0) { var porcentagemValor = (item.ValorVenda / 100 * DescontoPorcentagemTxt); if (porcentagemValor > item.Limite_Desconto) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning); return; } } } else { if (LimiteDescontoIni != 0) { if (DescontoReaisTxt > LimiteDescontoIni) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning); return; } if (PriceTxt == 0) { var porcentagemValor = (item.ValorVenda / 100 * DescontoPorcentagemTxt); if (porcentagemValor > LimiteDescontoIni) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning); return; } } if (PriceTxt > 0) { var porcentagemValor = (PriceTxt / 100 * DescontoPorcentagemTxt); if (porcentagemValor > LimiteDescontoIni) { Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning); return; } } } } #endregion var pedidoItem = new Model.PedidoItem(); pedidoItem.SetId(0) .SetTipo("Produtos") .SetPedidoId(_mNota.id_pedido) .SetAdicionalNomePdt(nomeProduto()[1]) .SetItem(item) .SetQuantidade(QuantidadeTxt) .SetMedida(MedidaTxt) .SetDescontoReal(DescontoReaisTxt); if (!pedidoItem.SetValorVenda(PriceTxt)) { if (ModoRapAva == 0) { AlterarModo(); ModoRapAvaConfig = 1; } Preco.Select(); Preco.Focus(); return; } pedidoItem.SetDescontoPorcentagens(DescontoPorcentagemTxt); pedidoItem.SomarTotal(); pedidoItem.Save(pedidoItem); if (item.Tipo == "Produtos") { new Controller.Imposto().SetImposto(pedidoItem.GetLastId()); // Class Estoque -> Se for igual 'Compras', adiciona a quantidade no estoque do Item, se não Remove a quantidade do estoque do Item if (Home.pedidoPage == "Compras" || Home.pedidoPage == "Devoluções") { new Controller.Estoque(pedidoItem.GetLastId(), Home.pedidoPage, "Adicionar Produto").Add().Item(); } else { new Controller.Estoque(pedidoItem.GetLastId(), Home.pedidoPage, "Adicionar Produto").Remove().Item(); } } new Controller.Imposto().SetImposto(pedidoItem.GetLastId()); // Carrega a Grid com o Item adicionado acima. GetDataTableItens(GridListaProdutos, _mNota.id_pedido); // Atualiza o total do pedido, e os totais da tela LoadTotais(); // Limpa os campos ClearForms(); // Verifica se modo é avançado e altera para modo simples, apenas se modo simples for padrão if (ModoRapAva == 1 && ModoRapAvaConfig == 1) { AlterarModo(); ModoRapAvaConfig = 0; } BuscarProduto.Select(); } }
public void SetImposto(int idPedidoItem, int idImposto = 0, string tipo = "", string NCM = "") { _modelpedidoItem = _modelpedidoItem.FindById(idPedidoItem).FirstOrDefault <Model.PedidoItem>(); _modelItem = _modelItem.FindById(_modelpedidoItem.Item).FirstOrDefault <Model.Item>(); #region IMPOSTO if (idImposto == 0) { if (_modelItem.Count() != 0) { switch (tipo) { case "CFe": if (_modelItem.Impostoidcfe == 0) { break; } _modelImposto = _modelImposto.FindById(_modelItem.Impostoidcfe) .FirstOrDefault <Model.Imposto>(); break; default: if (_modelItem.Impostoid == 0) { break; } _modelImposto = _modelImposto.FindById(_modelItem.Impostoid) .FirstOrDefault <Model.Imposto>(); break; } } } else { _modelImposto = _modelImposto.FindById(idImposto).FirstOrDefault <Model.Imposto>(); } #endregion IMPOSTO #region NCM | CEST | ORIGEM _modelpedidoItem.Ncm = string.IsNullOrEmpty(NCM) ? _modelItem.Ncm : NCM; _modelpedidoItem.Cest = _modelItem.Cest; _modelpedidoItem.Origem = _modelItem.Origem; #endregion NCM | CEST | ORIGEM #region CFOP _modelpedidoItem.Cfop = _modelImposto.Cfop; #endregion CFOP #region ICMS _modelpedidoItem.Icms = _modelImposto.Icms; switch (_modelImposto.Icms) { #region REGIME NORMAL //00 = Tributada integralmente. //10 = Tributada e com cobrança do ICMS por substituição tributária //20 = Com redução de base de cálculo //30 = Isenta ou não tributada e com cobrança do ICMS por substituição tributária //40 = Isenta //41 = Não tributada //50 = Suspensão //51 = Diferimento //60 = ICMS cobrado anteriormente por substituição tributária //70 = Com redução de base de cálculo e cobrança do ICMS por substituição tributária //90 = Outros case "00": case "90": _modelpedidoItem.IcmsBase = _modelpedidoItem.Total; _modelpedidoItem.IcmsAliq = Validation.RoundAliquotas(_modelImposto.IcmsAliq / 100); _modelpedidoItem.IcmsVlr = Validation.Round(_modelpedidoItem.IcmsBase * _modelpedidoItem.IcmsAliq); break; #endregion REGIME NORMAL #region SIMPLES NACIONAL //101 = Tributada pelo Simples Nacional com permissão de crédito //102 = Tributada pelo Simples Nacional sem permissão de crédito //103 = Isenção do ICMS no Simples Nacional para faixa de receita bruta //201 = Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por Substituição Tributária202 = Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por Substituição Tributária //202 //203 = Isenção do ICMS nos Simples Nacional para faixa de receita bruta e com cobrança do ICMS por Substituição Tributária //300 = Imune //400 = Não tributada pelo Simples Nacional //500 = ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação //900 = Outros case "101": _modelpedidoItem.Icms101Aliq = Validation.RoundAliquotas(_modelImposto.IcmsAliq / 100); _modelpedidoItem.Icms101Vlr = Validation.Round(_modelpedidoItem.Total * _modelpedidoItem.Icms101Aliq); break; case "201": case "202": //---------------ICMS _modelpedidoItem.IcmsBase = _modelpedidoItem.Total; _modelpedidoItem.IcmsAliq = Validation.RoundAliquotas(_modelImposto.IcmsAliq / 100); _modelpedidoItem.IcmsVlr = Validation.Round(_modelpedidoItem.IcmsBase * _modelpedidoItem.IcmsAliq); //---------------ICMS ST _modelpedidoItem.IcmsStBase = Validation.Round(_modelpedidoItem.IcmsBase + _modelpedidoItem.IcmsBase * (_modelImposto.IcmsStIva / 100)); _modelpedidoItem.IcmsStAliq = Validation.RoundAliquotas(_modelImposto.IcmsStAliq / 100); if (_modelImposto.IcmsStReducaoAliq > 0) { _modelpedidoItem.IcmsStBase = Validation.Round( _modelpedidoItem.IcmsStBase - _modelpedidoItem.IcmsStBase * (_modelImposto.IcmsStReducaoAliq / 100)); } _modelpedidoItem.Icmsstvlr = Validation.Round(_modelpedidoItem.IcmsStBase * _modelpedidoItem.IcmsStAliq); //---------------ICMS ST - ICMS _modelpedidoItem.Icmsstvlr = Validation.Round(_modelpedidoItem.Icmsstvlr - _modelpedidoItem.IcmsVlr); _modelpedidoItem.IcmsBase = 0; _modelpedidoItem.IcmsAliq = 0; _modelpedidoItem.IcmsVlr = 0; break; case "900": break; #endregion SIMPLES NACIONAL default: _modelpedidoItem.IcmsBase = 0; _modelpedidoItem.IcmsAliq = 0; _modelpedidoItem.IcmsVlr = 0; _modelpedidoItem.IcmsStAliq = 0; _modelpedidoItem.IcmsStBase = 0; _modelpedidoItem.IcmsStBaseComReducao = 0; _modelpedidoItem.IcmsStReducaoAliq = 0; break; } if (_modelpedidoItem.IcmsAliq > 0) { _modelpedidoItem.IcmsAliq = _modelpedidoItem.IcmsAliq * 100; } if (_modelpedidoItem.IcmsStAliq > 0) { _modelpedidoItem.IcmsStAliq = _modelpedidoItem.IcmsStAliq * 100; } #endregion ICMS #region IPI _modelpedidoItem.Ipi = _modelImposto.Ipi; switch (_modelImposto.Ipi) { case "50": case "99": if (_modelImposto.IpiAliq > 0) { _modelpedidoItem.IpiAliq = Validation.RoundAliquotas(_modelImposto.IpiAliq / 100); _modelpedidoItem.IpiVlr = Validation.Round(_modelpedidoItem.Total * _modelpedidoItem.IpiAliq); } break; default: _modelpedidoItem.Ipi = "0"; _modelpedidoItem.IpiAliq = 0; _modelpedidoItem.IpiVlr = 0; break; } #endregion IPI #region PIS _modelpedidoItem.Pis = _modelImposto.Pis; switch (_modelImposto.Pis) { case "01": case "99": if (_modelImposto.PisAliq > 0) { _modelpedidoItem.PisAliq = Validation.RoundAliquotas(_modelImposto.PisAliq / 100); _modelpedidoItem.PisVlr = Validation.Round(_modelpedidoItem.Total * _modelpedidoItem.PisAliq); } break; default: _modelpedidoItem.PisAliq = 0; _modelpedidoItem.PisVlr = 0; break; } if (_modelpedidoItem.PisAliq > 0) { _modelpedidoItem.PisAliq = _modelpedidoItem.PisAliq * 100; } if (string.IsNullOrEmpty(_modelpedidoItem.Pis)) { _modelpedidoItem.Pis = "0"; } #endregion PIS #region COFINS _modelpedidoItem.Cofins = _modelImposto.Cofins; switch (_modelImposto.Cofins) { case "01": case "99": if (_modelImposto.CofinsAliq > 0) { _modelpedidoItem.CofinsAliq = Validation.RoundAliquotas(_modelImposto.CofinsAliq / 100); _modelpedidoItem.CofinsVlr = Validation.Round(_modelpedidoItem.Total * _modelpedidoItem.CofinsAliq); } break; default: _modelpedidoItem.CofinsAliq = 0; _modelpedidoItem.CofinsVlr = 0; break; } if (_modelpedidoItem.CofinsAliq > 0) { _modelpedidoItem.CofinsAliq = _modelpedidoItem.CofinsAliq * 100; } if (string.IsNullOrEmpty(_modelpedidoItem.Cofins)) { _modelpedidoItem.Cofins = "0"; } #endregion COFINS #region vTotTrib _modelpedidoItem.Federal = Validation.Round(_modelpedidoItem.Total * Validation.Round(_modelItem.AliqFederal / 100)); _modelpedidoItem.Estadual = Validation.Round(_modelpedidoItem.Total * Validation.Round(_modelItem.AliqEstadual / 100)); _modelpedidoItem.Municipal = Validation.Round(_modelpedidoItem.Total * Validation.Round(_modelItem.AliqMunicipal / 100)); #endregion vTotTrib _modelpedidoItem.Save(_modelpedidoItem); }