/// <summary>
 /// Cria uma instancia da classe com o tipo passado como parâmetro
 /// </summary>
 /// <param name="tipo">Tipo de lançamento a ser criado</param>
 /// <returns>Retorna um objeto do tipo ILancamento</returns>
 public static ILancamento Create(Tipo tipo)
 {
     ILancamento lancamento = null;
     if (tipo == Enuns.Faturamento.Lancamento.Tipo.ContasPagar)
         lancamento = new Data.Financeiro.Lancamento.ContaPagar();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.ContasReceber)
         lancamento = new Data.Financeiro.Lancamento.ContaReceber();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.CupomFiscal)
         lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.VendaCF.VendaCF();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.DAV)
         lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.DAV.DAV();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.DAVOS)
         lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.DAV.OS.DAV();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.NotaFiscalEletronica)
         lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.NFe.NFe();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.PreVenda)
         lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.PreVenda.PreVenda();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.Recebimento)
         throw new NotImplementedException("Faturamento.Lancamento.Tipo.Recebimento");
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.Sangria)
         lancamento = new OpenPOS.Data.FrenteCaixa.Lancamento.Sangria();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.Suprimento)
         lancamento = new OpenPOS.Data.FrenteCaixa.Lancamento.Suprimento();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.LancamentoGeral)
         lancamento = new OpenPOS.Data.FrenteCaixa.Lancamento.LancamentoCaixa();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.DevolucaoMercadoria)
         lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Devolucao.Devolucao();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.NotaFiscalManual)
         lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.NFManual.NFManual();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.NotaFiscalConsumidorEletronica)
         lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.NFCe.NFCe();
     else if (tipo == Enuns.Faturamento.Lancamento.Tipo.ConferenciaMercadoria)
         lancamento = new OpenPOS.Data.Faturamento.Lancamento.Movimento.Conferencia.Conferencia();
     return lancamento;
 }
Esempio n. 2
0
        /// <summary>
        /// Método para vincular DAVOS com outro DAVOS
        /// </summary>
        /// <param name="dav">objeto do tipo DAV-OS</param>
        public IDAV VinculaDAVOS()
        {
            if(IsVinculado)
                throw new OpenPOS.Exceptions.Faturamento.Lancamento.Movimento.MovimentoIsReadOnly();

            IDAV dav = new OpenPOS.Data.Faturamento.Lancamento.Movimento.DAV.OS.DAV(GUID);
            // Atualiza o objeto dav para a cópia
            this.New = true;
            this.GUID = GUID.Create();

            // Adiciona os vinculos
            foreach(IItem item in this.Itens)
            {
                IItem itemPai = dav.Itens.Contains(item) ? dav.Itens.First(i => i.GUID.Equals(item.GUID)) : null;
                if(itemPai != null)
                    itemPai.ItensParent.Add(item);
            }

            ((List<IItem>)Itens).ForEach(k => k.New = true);

            // salva o vinculo na lanSK
            ILanSK sk = new LanSK();
            sk.GUIDSK = dav.GUID;
            sk.Pai = dav.GUID;
            sk.Filho = GUID;
            sk.TableHash = dav.GetTableHash();
            foreach(IItem item in dav.Itens)
                foreach(Model.Faturamento.Lancamento.Movimento.Item.IItem p in Itens)
                    if(item.ItensParent.Contains(p))
                        sk.SKItens.Add(new LanSKItem() { ItemPai = item.GUID, ItemFilho = p.GUID, SKPai = dav.GUID, SKFilho = GUID, TableHash = item.GetTableHash() });
            sk.Save();
            dav.IsVinculado = true;
            dav.Save();
            return this;
        }