Ejemplo n.º 1
0
        public static EGUID Create(this EGUID eguid, IBaseModel model, TableDefinitionAttribute tableDefinition, IEmpresa empresa = null)
        {
            #if !IsPAF
            //-------------------------------------------------------------------------
            // Se o EGUID já foi informado, descartar as condições abaixo.
            // Isso pode dar erros nas importações se for modificado.
            // Pode dar erros nas integrações entre DAV/PV
            // Pode dar erros em todos os lugares que usam a condição EGUID = ??
            // Modifique a condição abaixo apenas se souber o que está fazendo
            //-------------------------------------------------------------------------
              //  if(!eguid.IsNullOrEmpty())
            //    return eguid;
            #endif
            EGUID result = EGUID.Empty;

            string tableName = tableDefinition.TableName;

            if (model is Model.Faturamento.Lancamento.Movimento.NFCe.INFCe && eguid.IsNullOrEmpty())
                tableName = "fat_LanMovNFCe";
            else if (model is Model.Faturamento.Lancamento.Movimento.NFe.INFe && eguid.IsNullOrEmpty())
                tableName = "fat_LanMovNFe";

            IConfiguracaoEGUID conf = new ConfiguracaoEGUID(tableName);
            switch(conf.UsoEGUID)
            {
                case Enuns.Configuracao.UsoEGUID.Custom:

                    if(conf.Code.StartsWith("code={", StringComparison.CurrentCultureIgnoreCase))
                    {
                        string s = conf.Code.Substring(6);
                        s = "public object GetEGUID(object value){" + s.Substring(0, s.Length - 1) + "}";
                        Assembly assembly = Compiler.Compiler.Compile(Code.Builder.Build("OpenPOS", "OpenPOSEGUIDConfiguracao", s));
                        result = Compiler.Compiler.Invoke("OpenPOS.OpenPOSEGUIDConfiguracao", "GetEGUID", assembly, new object[] { eguid }).ToString();
                    }
                    break;

                case Enuns.Configuracao.UsoEGUID.PorEmpresa:
                    //TODO: Aqui temos que melhorar, pois temos que filtrar pela empresa atual, e
                    // Se não encontrada deve-se criar um para a empresa atual.
                    conf.Numero += 1;
                    result = conf.Numero.ToString();
                    break;
                case Enuns.Configuracao.UsoEGUID.PorTabela:
                    conf.Numero += 1;
                    result = conf.Numero.ToString();
                    break;
                case Enuns.Configuracao.UsoEGUID.Default:
                default:
                    result = eguid.IsNullOrEmpty() ? new Random().Next().ToString() : Convert.ToString(eguid);
                    break;
            }

            if(!String.IsNullOrEmpty(conf.Mascara))
                result = conf.Numero.ToString(conf.Mascara);

            conf.Save();

            return result;
        }
Ejemplo n.º 2
0
 public override void Gravar()
 {
     IConfiguracaoEGUID config = new ConfiguracaoEGUID();
     config.Code = "";
     config.Mascara = "D10";
     config.Tabela = "fat_LanMovPV2";
     config.UsoEGUID = Enuns.Configuracao.UsoEGUID.PorTabela;
     GUID = config.Save();
 }
Ejemplo n.º 3
0
 public override void Editar()
 {
     IConfiguracaoEGUID config = new ConfiguracaoEGUID(GUID);
     config.Tabela = "fat_LanMovPV";
     config.Save();
 }