//string public Mensaje getClaveStringMax(string tabla, List <CamposWhere> camposWhere, string campoBuscar, DBContextAdapter dbContext) { if (String.IsNullOrEmpty(tabla)) { tabla = typeof(TEntity).Name; } CamposSelect campoSelect; if ((String.IsNullOrEmpty(campoBuscar))) { campoSelect = new CamposSelect(String.Concat(tabla, ".clave"), TipoFuncion.MAXIMO); } else { campoSelect = new CamposSelect(campoBuscar, TipoFuncion.MAXIMO); } List <CamposSelect> camposSelect = new List <CamposSelect>() { campoSelect }; OperadorSelect select = new OperadorSelect(camposSelect); mensajeResultado = conectorQuerysGenericos.consultaGenerica(dbContext, TipoResultado.Unico, TipoOperacion.SELECT, tabla, select, null, camposWhere, null, null, null); return(mensajeResultado); }
private void ConcatCampos(List <CamposSelect> lCampos, StringBuilder sCampos) { for (int i = 0; i < lCampos.Count; i++) { CamposSelect camp = lCampos[i]; sCampos.Append(camp.sCampo + " " + camp.sAlias + ((i + 1) != lCampos.Count() ? "," : "") + Environment.NewLine); } }
public Mensaje selectExisteClave(string tabla, CamposSelect campoSelect, List <CamposWhere> camposWhere, DBContextAdapter dbContext, DBContextAdapter dbContextMaestra) { int tipoConexion = eligeConexionBDPorTabla(tabla); DBContextAdapter conexionUsada = null; if (tipoConexion == 1) { conexionUsada = dbContext; } else if (tipoConexion == 2) { conexionUsada = dbContextMaestra; } List <CamposSelect> camposSelect = new List <CamposSelect>() { campoSelect }; OperadorSelect select = new OperadorSelect(camposSelect); mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionUsada, TipoResultado.Unico, TipoOperacion.SELECT, tabla, select, null, camposWhere, null, null, null); return(mensajeResultado); }
public static DataTable BuscaItem(string seqNF, bool bEx) { List<CamposSelect> lCampos = new List<CamposSelect>(); StringBuilder sCampos = new StringBuilder(); StringBuilder sInnerJoin = new StringBuilder(); StringBuilder sWhere = new StringBuilder(); StringBuilder sGroup = new StringBuilder(); try { #region Campos do Select //CD_DOC if (HlpDbFuncoes.fExisteCampo("CD_ANP", "PRODUTO")) lCampos.Add(new CamposSelect { sCampo = "coalesce(PRODUTO.CD_ANP,'0')", sAlias = "CD_ANP" });//OS_28293 else lCampos.Add(new CamposSelect { sCampo = "'0'", sAlias = "CD_ANP" });//OS_28293 if (HlpDbFuncoes.fExisteCampo("vl_total_impostos", "MOVITEM")) lCampos.Add(new CamposSelect { sCampo = "coalesce(MOVITEM.vl_total_impostos,0)", sAlias = "vTotTrib", bAgrupa = Acesso.bAGRUPA_ITENS_NFE });//os_28878 else lCampos.Add(new CamposSelect { sCampo = "'0'", sAlias = "vTotTrib" });//os_28878 if (HlpDbFuncoes.fExisteCampo("nr_fci", "MOVITEM")) lCampos.Add(new CamposSelect { sCampo = "coalesce(MOVITEM.nr_fci,'')", sAlias = "nr_fci" });//OS_29280 else lCampos.Add(new CamposSelect { sCampo = "''", sAlias = "nr_fci" });//OS_29280 //coalesce(m.vl_fattransp,0)vl_fattransp //coalesce(m.vl_aliqtransp,0)vl_aliqtransp lCampos.Add(new CamposSelect { sCampo = "coalesce(MOVITEM.vl_fattransp,0)", sAlias = "vl_fattransp", bAgrupa = Acesso.bAGRUPA_ITENS_NFE });//OS_29949 lCampos.Add(new CamposSelect { sCampo = "coalesce(MOVITEM.vl_aliqtransp,0)", sAlias = "vl_aliqtransp" });//OS_29949 lCampos.Add(new CamposSelect { sCampo = "coalesce(MOVITEM.vl_siscomex,0)", sAlias = "vl_siscomex", bAgrupa = Acesso.bAGRUPA_ITENS_NFE });//OS_28303 lCampos.Add(new CamposSelect { sCampo = "coalesce(MOVITEM.CD_DOC,'')", sAlias = "CD_DOC" });//OS_27921 lCampos.Add(new CamposSelect { sCampo = "coalesce(opereve.ST_ESTTERC,'N')", sAlias = "ST_ESTTERC" });//OS_27921 lCampos.Add(new CamposSelect { sCampo = "coalesce(tpdoc.st_pauta,'N')", sAlias = "st_pauta" });//OS_25969 lCampos.Add(new CamposSelect { sCampo = "coalesce(tpdoc.st_frete_entra_ipi_s,'N')", sAlias = "st_frete_entra_ipi_s" });//OS_26866 lCampos.Add(new CamposSelect { sCampo = "coalesce(tpdoc.ST_FRETE_ENTRA_ICMS_S,'N')", sAlias = "ST_FRETE_ENTRA_ICMS_S" });//OS_26866 lCampos.Add(new CamposSelect { sCampo = "coalesce(MOVITEM.vl_baseicm,0)", sAlias = "vBC_Pauta", bAgrupa = Acesso.bAGRUPA_ITENS_NFE });//OS_25969 lCampos.Add(new CamposSelect { sCampo = "coalesce(MOVITEM.vl_icms,0)", sAlias = "vl_icms_Pauta", bAgrupa = Acesso.bAGRUPA_ITENS_NFE });//OS_25969 lCampos.Add(new CamposSelect { sCampo = "coalesce(MOVITEM.cd_pedcli,'')", sAlias = "xPed" });//OS_25977 lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.nr_item_ped_compra,'')", sAlias = "nItemPed" });//OS_25977 lCampos.Add(new CamposSelect { sCampo = "coalesce(opereve.st_servico,'')", sAlias = "st_servico" }); lCampos.Add(new CamposSelect { sCampo = "movitem.cd_oper", sAlias = "cd_oper" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(nf.st_soma_dev_tot_nf,'N')", sAlias = "st_soma_dev_tot_nf" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(produto.cd_orig_sittrib,0)", sAlias = "Orig" }); //os_26467 - CST_NOVAS lCampos.Add(new CamposSelect { sCampo = "movitem.cd_sittrib", sAlias = "CST" }); //CST Antiga lCampos.Add(new CamposSelect { sCampo = "coalesce(EMPRESA.ST_SUPERSIMPLES,'N')", sAlias = "ST_SUPERSIMPLES" }); //os_26817 lCampos.Add(new CamposSelect { sCampo = "coalesce(MOVITEM.VL_BASEIPI,0)", sAlias = "VL_BASEIPI" }); //os_26467 if (Acesso.IMPRIMI_NUM_PEDIDO_VENDA) { lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.cd_pedido,'')", sAlias = "cd_pedido" }); } if (Acesso.IMPRIMI_NUM_REVISAO) { if (HlpDbFuncoes.fExisteCampo("CD_REVISAO", "MOVITEM")) lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.CD_REVISAO,'')", sAlias = "CD_REVISAO" }); else lCampos.Add(new CamposSelect { sCampo = "''", sAlias = "CD_REVISAO" }); } if (Acesso.NM_RAMO == Acesso.BancoDados.INDUSTRIA) //SE FOR INDUSTRIA { lCampos.Add(new CamposSelect { sCampo = "coalesce(tpdoc.st_compoe_vl_totprod_nf,'A')", sAlias = "st_compoe_vl_totprod_nf" }); } if (Acesso.NM_EMPRESA != "MOGPLAST") { lCampos.Add(new CamposSelect { sCampo = "case when empresa.st_codprodnfe = 'C' then produto.cd_prod else produto.cd_alter end", sAlias = "cProd" }); } else { lCampos.Add(new CamposSelect { sCampo = "case when empresa.nm_empresa containing 'MOGPLAST' then " + "produto.ds_detalhe " + "else " + "case when empresa.st_codprodnfe = 'C' then " + "movitem.cd_prod else " + "movitem.cd_alter end " + "End ", sAlias = "cProd" }); } if (Acesso.COD_BARRAS_XML.ToUpper() == "TRUE") { lCampos.Add(new CamposSelect { sCampo = "produto.cd_barras", sAlias = "cEAN" }); } else { lCampos.Add(new CamposSelect { sCampo = "produto.cd_alter", sAlias = "cEAN" }); } if (Acesso.NM_EMPRESA == "NAVE_THERM") { lCampos.Add(new CamposSelect { sCampo = "case when produto.ds_prod_compl is not null then " + "substring(produto.ds_prod_compl from 1 for 120) " + "else " + "produto.ds_prod end ", sAlias = "xProd" }); } else if (Acesso.NM_EMPRESA == "SENIRAM") { lCampos.Add(new CamposSelect { sCampo = "produto.ds_detalhe", sAlias = "xProd" }); } else { lCampos.Add(new CamposSelect { sCampo = "movitem.ds_prod", sAlias = "xProd" }); } if (Acesso.DS_DETALHE) { if (HlpDbFuncoes.fExisteCampo("DS_DETALHE", "PRODUTO")) { lCampos.Add(new CamposSelect { sCampo = "produto.DS_DETALHE", sAlias = "DS_DETALHE" }); } else { lCampos.Add(new CamposSelect { sCampo = "''", sAlias = "DS_DETALHE" }); } } lCampos.Add(new CamposSelect { sCampo = "substring(clas_fis.ds_clasfis from 1 for 15)", sAlias = "NCM" });// Diego - 21/10 Lorenzon lCampos.Add(new CamposSelect { sCampo = "movitem.cd_cfop", sAlias = "CFOP" }); lCampos.Add(new CamposSelect { sCampo = "unidades.cd_unfat", sAlias = "uCom" });//Diego - OS_ 25/08/10 lCampos.Add(new CamposSelect { sCampo = "movitem.qt_prod", sAlias = "qCom", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); if ((Acesso.NM_EMPRESA.Equals("MAD_STA_RITA")) || (Acesso.NM_EMPRESA.Equals("CONSTRUF"))) { lCampos.Add(new CamposSelect { sCampo = "movitem.vl_comprimento", sAlias = "vl_comprimento", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); // Diego - OS_25550 } if (Acesso.NM_EMPRESA.Equals("ZINCOBRIL")) //os_25787 { lCampos.Add(new CamposSelect { sCampo = "coalesce(opereve.tp_industrializacao,'')", sAlias = "tp_industrializacao" }); } lCampos.Add(new CamposSelect { sCampo = "coalesce(vl_uniprod_sem_desc,0)", sAlias = "vl_uniprod_sem_desc", bAgrupa = Acesso.bAGRUPA_ITENS_NFE });//cast -> OS_25771 // 6 casas decimais if (!bEx) { //cast(movitem.vl_uniprod as numeric (15,5)) lCampos.Add(new CamposSelect { sCampo = "movitem.vl_uniprod", sAlias = "vUnCom" });//cast -> OS_25771 // 6 casas decimais } else { lCampos.Add(new CamposSelect { sCampo = "(case when movitem.vl_uniprod_ii = 0 then movitem.vl_uniprod else movitem.vl_uniprod_ii end)", sAlias = "vUnCom", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } if (bEx) //DIEGO - OS_24730 { lCampos.Add(new CamposSelect { sCampo = "(case when movitem.vl_uniprod_ii = 0 then movitem.vl_totbruto else (movitem.vl_uniprod_ii * movitem.qt_prod) end)", sAlias = "vProd", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } else { lCampos.Add(new CamposSelect { sCampo = "movitem.vl_totbruto", sAlias = "vProd", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); //2 casas decimais }//DIEGO - OS_24730 - FIM lCampos.Add(new CamposSelect { sCampo = "movitem.vl_totliq", sAlias = "vl_totliq", bAgrupa = Acesso.bAGRUPA_ITENS_NFE });// Diego 0S_24595 if (Acesso.COD_BARRAS_XML.ToUpper() == "TRUE") { lCampos.Add(new CamposSelect { sCampo = "produto.cd_barras", sAlias = "cEANTrib" }); } else { lCampos.Add(new CamposSelect { sCampo = "produto.cd_alter", sAlias = "cEANTrib" }); } lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_descsuframa,0) + coalesce(movitem.vl_desccofinssuframa,0) + coalesce(movitem.vl_descpissuframa,0)", sAlias = "vDescSuframa", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "coalesce(nf.st_desc,'U')", sAlias = "st_desc" }); lCampos.Add(new CamposSelect { sCampo = "movitem.cd_tpunid", sAlias = "uTrib" }); lCampos.Add(new CamposSelect { sCampo = "movitem.qt_prod", sAlias = "qTrib", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); if (!bEx) { lCampos.Add(new CamposSelect { sCampo = "movitem.vl_uniprod", sAlias = "vUnTrib" }); } else { // lCampos.Add(new CamposSelect { sCampo = "movitem.vl_uniprod_ii", sAlias = "vUnTrib" }); lCampos.Add(new CamposSelect { sCampo = "(case when movitem.vl_uniprod_ii = 0 then movitem.vl_uniprod else movitem.vl_uniprod_ii end)", sAlias = "vUnTrib" }); if (HlpDbFuncoes.fExisteCampo("vl_base_ii", "movitem")) { lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_base_ii,0)", sAlias = "bii", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } else { lCampos.Add(new CamposSelect { sCampo = "'0'", sAlias = "bii" }); } lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_base_ii,0)", sAlias = "bii", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_ii,0)", sAlias = "vl_ii", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "coalesce(nf.st_ipi,'S')", sAlias = "st_ipi" }); //OS_25673 lCampos.Add(new CamposSelect { sCampo = "movitem.vl_alicredicms", sAlias = "pCredSN" });//NFe_2.0 lCampos.Add(new CamposSelect { sCampo = "movitem.vl_credicms", sAlias = "vCredICMSSN", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); // ** #region BC_ICMS if (!bEx) { List<string> lClientesLiberados = new List<string>(); lClientesLiberados.Add("CALDLASER"); lClientesLiberados.Add("ALPHAFLEX"); lClientesLiberados.Add("BENGALAS"); lClientesLiberados.Add("MASTERFEW"); //if (lClientesLiberados.Contains(Acesso.NM_EMPRESA.ToUpper())) if (true) // liberado para todos os clientes { lCampos.Add(new CamposSelect { sCampo = "coalesce(MOVITEM.vl_baseicm,0)", sAlias = "vBC", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } else { lCampos.Add(new CamposSelect { sCampo = GetSelectVbc(), sAlias = "vBC", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } } else { lCampos.Add(new CamposSelect { sCampo = "movitem.vl_baseicm", sAlias = "vBC", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } #endregion lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_bicmproprio_subst,0) ", sAlias = "vBCProp", bAgrupa = Acesso.bAGRUPA_ITENS_NFE });// Diego OS_25278 lCampos.Add(new CamposSelect { sCampo = "movitem.vl_aliicms", sAlias = "pICMS" });//Diego - OS_24730 if (bEx) { lCampos.Add(new CamposSelect { sCampo = "movitem.vl_icms", sAlias = "vICMS", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } else { lCampos.Add(new CamposSelect { sCampo = "(movitem.vl_icms + movitem.vl_icmproprio_subst)", sAlias = "vICMS", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } //os_26817 - FIM lCampos.Add(new CamposSelect { sCampo = "case when coalesce(tpdoc.st_nfcompl,'N') = 'N' then " + "coalesce(movitem.vl_bicmssubst, 0) " + "else " + "nf.VL_BICMSSU " + "end ", sAlias = "vBCST", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "coalesce(icm.vl_aliinte, 0)", sAlias = "pICMSST" }); lCampos.Add(new CamposSelect { sCampo = "case when coalesce(tpdoc.st_nfcompl,'N') = 'N' then " + "coalesce(movitem.vl_icmretsubst, 0) " + "else " + "nf.VL_ICMSSUB " + "end ", sAlias = "vICMSST", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "(100-coalesce(movitem.vl_redbase, 0)) ", sAlias = "pRedBC", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "coalesce(icm.vl_alisubs, 0)", sAlias = "pMVAST" }); lCampos.Add(new CamposSelect { sCampo = "(100-coalesce(movitem.vl_redbase, 0))", sAlias = "pRedBCST", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_aliipi, 0)", sAlias = "pIPI" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_ipi, 0)", sAlias = "vIPI", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); if (Acesso.bAGRUPA_ITENS_NFE == false) { lCampos.Add(new CamposSelect { sCampo = "nf.ds_anota", sAlias = "infAdProd", }); } lCampos.Add(new CamposSelect { sCampo = "coalesce(clas_fis.st_tributacao, '1')", sAlias = "Tributa_ipi" }); lCampos.Add(new CamposSelect { sCampo = "tpdoc.tp_doc", sAlias = "tp_doc" }); lCampos.Add(new CamposSelect { sCampo = "case when tpdoc.tp_doc = 'NS' then " + "opereve.ST_CALCIPI_FA " + "else " + "opereve.st_ipi " + "end ", sAlias = "Calcula_IPI" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(opereve.st_hefrete, 'N')", sAlias = "st_hefrete" }); lCampos.Add(new CamposSelect { sCampo = "opereve.st_piscofins", sAlias = "st_piscofins" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_frete, 0)", sAlias = "vFrete", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); if (Acesso.bAGRUPA_ITENS_NFE == false) { lCampos.Add(new CamposSelect { sCampo = "movitem.nr_lanc", sAlias = "nr_lanc" }); } else { lCampos.Add(new CamposSelect { sCampo = "0", sAlias = "nr_lanc", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } if (bEx) { lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_aliqcofins_cif , 0)", sAlias = "vl_aliqcofins_suframa", bAgrupa = Acesso.bAGRUPA_ITENS_NFE });//DIEGO - 24730 - 02/08 lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.VL_ALIQPIS_CIF , 0)", sAlias = "vl_aliqpis_suframa", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } else { lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_percofins, 0)", sAlias = "vl_aliqcofins_suframa", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_perpis, 0)", sAlias = "vl_aliqpis_suframa", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } lCampos.Add(new CamposSelect { sCampo = "endentr.ds_endent", sAlias = "xLgr" }); lCampos.Add(new CamposSelect { sCampo = "endentr.ds_endent", sAlias = "xLgr" }); lCampos.Add(new CamposSelect { sCampo = "endentr.nr_endent", sAlias = "nro" }); lCampos.Add(new CamposSelect { sCampo = "endentr.nm_bairroent", sAlias = "xBairro" }); lCampos.Add(new CamposSelect { sCampo = "endentr.nm_cident", sAlias = "cMun" }); lCampos.Add(new CamposSelect { sCampo = "endentr.cd_ufent", sAlias = "UF" }); lCampos.Add(new CamposSelect { sCampo = "listaserv.ds_codigo", sAlias = "cListserv" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_aliqserv, 0)", sAlias = "vAliqISS", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "(movitem.vl_totliq * coalesce(movitem.vl_aliqserv, 0))/100", sAlias = "vIssqn", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "movitem.vl_totliq", sAlias = "vBCISS", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "cidades.cd_municipio", sAlias = "cMunFG" }); lCampos.Add(new CamposSelect { sCampo = "movitem.VL_COEF", sAlias = "VL_COEF" }); if (bEx) //Diego - 02/08 - 24730 { lCampos.Add(new CamposSelect { sCampo = "movitem.VL_COFINS", sAlias = "vl_cofins", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "movitem.VL_PIS", sAlias = "vl_pis", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } else { lCampos.Add(new CamposSelect { sCampo = "movitem.vl_cofins", sAlias = "vl_cofins", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "movitem.vl_pis", sAlias = "vl_pis", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); } lCampos.Add(new CamposSelect { sCampo = "movitem.vl_basecofins", sAlias = "vl_basecofins", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_basepis,0)", sAlias = "vl_basepis", bAgrupa = Acesso.bAGRUPA_ITENS_NFE }); if (Acesso.NM_RAMO == Acesso.BancoDados.INDUSTRIA) { lCampos.Add(new CamposSelect { sCampo = "case when empresa.ST_RASTREABILIDADE = '1' " + "then " + "coalesce(movitem.nr_lote,'') " + "else '' " + "end", sAlias = "nr_lote" }); lCampos.Add(new CamposSelect { sCampo = "movitem.cd_prodcli", sAlias = "cd_prodcli" }); } if (Acesso.NM_EMPRESA == "MARPA") { lCampos.Add(new CamposSelect { sCampo = "nf.vl_desccomer ", sAlias = "Desconto_Valor" }); lCampos.Add(new CamposSelect { sCampo = "(case when coalesce(nf.vl_totnf,0) > 0 then ((nf.vl_desccomer / nf.vl_totnf)*100) else '0' end)", sAlias = "Desconto_Percentual" }); } lCampos.Add(new CamposSelect { sCampo = "movitem.CD_SITTRIBCOF", sAlias = "CD_SITTRIBCOF" }); lCampos.Add(new CamposSelect { sCampo = "movitem.CD_SITTRIBIPI", sAlias = "CD_SITTRIBIPI" }); lCampos.Add(new CamposSelect { sCampo = "movitem.CD_SITTRIBPIS", sAlias = "CD_SITTRIBPIS" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.vl_outras,'0') ", sAlias = "vOutro" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(opereve.st_tpoper,'0')", sAlias = "st_tpoper" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(opereve.ST_ESTTERC,'N')", sAlias = "ST_ESTTERC" });//NFe_2.0 OS_25346 lCampos.Add(new CamposSelect { sCampo = "tpdoc.cd_operval", sAlias = "cd_operval" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(Empresa.st_imp_cdpedcli, 'N')", sAlias = "st_imp_cdpedcli" }); lCampos.Add(new CamposSelect { sCampo = "transpor.nm_trans", sAlias = "Redespacho" }); lCampos.Add(new CamposSelect { sCampo = "transpor.ds_endnor", sAlias = "xLgrRedes" }); lCampos.Add(new CamposSelect { sCampo = "transpor.cd_cgc", sAlias = "Transpcd_cgc" }); lCampos.Add(new CamposSelect { sCampo = "transpor.nr_endnor", sAlias = "nroRedes" }); lCampos.Add(new CamposSelect { sCampo = "transpor.ds_bairronor", sAlias = "xBairroRedes" }); lCampos.Add(new CamposSelect { sCampo = "transpor.nm_cidnor", sAlias = "cmunRedes" }); lCampos.Add(new CamposSelect { sCampo = "transpor.cd_ufnor", sAlias = "UFRedes" }); #endregion sCampos.Append(Environment.NewLine + "Select " + Environment.NewLine); lCampos = lCampos.OrderBy(c => c.bAgrupa).ToList(); for (int i = 0; i < lCampos.Count; i++) { CamposSelect camp = lCampos[i]; string sFormat = "Sum({0}) "; sCampos.Append((camp.bAgrupa ? string.Format(sFormat, camp.sCampo) : camp.sCampo) + " " + camp.sAlias + ((i + 1) != lCampos.Count() ? "," : "") + Environment.NewLine); } #region Inner Join //Tabelas sInnerJoin.Append("From MOVITEM "); //Relacionamentos sInnerJoin.Append("inner join nf on (nf.cd_empresa = movitem.cd_empresa)"); sInnerJoin.Append(" and "); sInnerJoin.Append("(nf.cd_nfseq = movitem.cd_nfseq) "); sInnerJoin.Append("inner join empresa on (empresa.cd_empresa = movitem.cd_empresa) "); sInnerJoin.Append("inner join unidades on (movitem.cd_tpunid = unidades.cd_tpunid) "); // Diego - OS_ 25/08/10 sInnerJoin.Append("left join clas_fis on (clas_fis.cd_empresa = movitem.cd_empresa)"); sInnerJoin.Append(" and "); sInnerJoin.Append("(clas_fis.cd_cf = movitem.cd_cf) "); sInnerJoin.Append("left join icm on (icm.cd_ufnor = nf.cd_ufnor) "); sInnerJoin.Append("And "); sInnerJoin.Append("(icm.cd_aliicms = movitem.cd_aliicms) "); sInnerJoin.Append("left join opereve on (opereve.cd_oper = movitem.cd_oper) "); sInnerJoin.Append("left join tpdoc on (tpdoc.cd_tipodoc = nf.cd_tipodoc) "); sInnerJoin.Append("left join produto "); sInnerJoin.Append("on (produto.cd_empresa = movitem.cd_empresa) "); sInnerJoin.Append("and "); sInnerJoin.Append("(produto.cd_prod = movitem.cd_prod) "); sInnerJoin.Append("left join linhapro "); sInnerJoin.Append("on (linhapro.cd_empresa = produto.cd_empresa) "); sInnerJoin.Append("and "); sInnerJoin.Append("(linhapro.cd_linha = produto.cd_linha) "); sInnerJoin.Append("left join listaserv "); sInnerJoin.Append("on (listaserv.nr_lanc = linhapro.nr_lanclistaserv) "); sInnerJoin.Append("inner join clifor "); sInnerJoin.Append("on (clifor.cd_clifor = nf.cd_clifor) "); sInnerJoin.Append("left join cidades "); //sInnerJoin.Append("on (cidades.nm_cidnor = clifor.nm_cidnor) "); sInnerJoin.Append("on (cidades.cd_municipio = clifor.cd_municipio) "); //cidades.cd_municipio = clifor.cd_municipio sInnerJoin.Append("and "); sInnerJoin.Append("(cidades.cd_ufnor = clifor.cd_ufnor) "); sInnerJoin.Append("inner join uf on (clifor.cd_ufnor = uf.cd_uf) ");//25385 sInnerJoin.Append("left join endentr on (endentr.cd_cliente = nf.cd_clifor) "); sInnerJoin.Append("and "); sInnerJoin.Append(" (endentr.cd_endent = nf.cd_endent) "); if ((Acesso.NM_EMPRESA == "NAVE_THERM") || (Acesso.NM_EMPRESA == "MOGPLAST")) { sInnerJoin.Append("left join produto on (produto.cd_empresa = movitem.cd_empresa) "); sInnerJoin.Append("And "); sInnerJoin.Append("(produto.cd_prod = movitem.cd_prod)"); } sInnerJoin.Append("left join transpor on (transpor.cd_trans = nf.cd_redes) "); #endregion #region Where sWhere.Append("Where "); sWhere.Append("(movitem.cd_empresa ='"); sWhere.Append(Acesso.CD_EMPRESA); sWhere.Append("')"); sWhere.Append(" and "); sWhere.Append("(nf.cd_nfseq = '"); sWhere.Append(seqNF); sWhere.Append("') "); sWhere.Append((Acesso.bAGRUPA_ITENS_NFE == false ? "Order by movitem.nr_lanc" : "")); #endregion if (Acesso.bAGRUPA_ITENS_NFE) { sGroup.Append(Environment.NewLine + " Group by " + Environment.NewLine); lCampos = lCampos.Where(c => c.bAgrupa == false).ToList(); for (int i = 0; i < lCampos.Count; i++) { CamposSelect camp = lCampos[i]; if (camp.sCampo != "''") { sGroup.Append((camp.bAgrupa == false ? camp.sCampo + ((i + 1) < lCampos.Count() ? ", " : "") + Environment.NewLine : "")); } } } string sQueryItens = sCampos.ToString() + sInnerJoin + sWhere + (Acesso.bAGRUPA_ITENS_NFE ? sGroup.ToString() : ""); return HlpDbFuncoes.qrySeekRet(sQueryItens.ToString()); } catch (Exception ex) { throw ex; } }
public DataTable BuscaDadosServico(string sNota) { try { List <CamposSelect> lCampos = new List <CamposSelect>(); StringBuilder sCampos = new StringBuilder(); StringBuilder sInnerJoin = new StringBuilder(); StringBuilder sWhere = new StringBuilder(); StringBuilder sGroup = new StringBuilder(); lCampos.Add(new CamposSelect { sCampo = "movitem.ds_prod", sAlias = "ds_prod" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(movitem.ds_obs,'')", sAlias = "ds_obs" }); lCampos.Add(new CamposSelect { sCampo = "movitem.vl_totbruto", sAlias = "vl_totbruto", bAgrupa = Acesso.bAGRUPA_ITENS_NFSE }); lCampos.Add(new CamposSelect { sCampo = "coalesce(produto.cd_trib_municipio,'')", sAlias = "cd_trib_municipio" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(empresa.cd_lista_servico,'')", sAlias = "cd_lista_servico_Emp" }); lCampos.Add(new CamposSelect { sCampo = "coalesce(produto.cd_lista_servico,'')", sAlias = "cd_lista_servico_Prod" }); sCampos.Append(Environment.NewLine + "Select " + Environment.NewLine); lCampos = lCampos.OrderBy(c => c.bAgrupa).ToList(); for (int i = 0; i < lCampos.Count; i++) { CamposSelect camp = lCampos[i]; string sFormat = "Sum({0}) "; sCampos.Append((camp.bAgrupa ? string.Format(sFormat, camp.sCampo) : camp.sCampo) + " " + camp.sAlias + ((i + 1) != lCampos.Count() ? "," : "") + Environment.NewLine); } sInnerJoin.Append("from movitem "); sInnerJoin.Append("left join produto on movitem.cd_prod = produto.cd_prod "); sInnerJoin.Append("left join empresa on movitem.cd_empresa = empresa.cd_empresa "); #region Where sWhere.Append("Where "); sWhere.Append("movitem.cd_nfseq = '" + sNota + "' and "); sWhere.Append("movitem.cd_empresa = '" + Acesso.CD_EMPRESA + "' and "); sWhere.Append("produto.cd_empresa = '" + Acesso.CD_EMPRESA + "'"); #endregion if (Acesso.bAGRUPA_ITENS_NFSE) { sGroup.Append(Environment.NewLine + " Group by " + Environment.NewLine); lCampos = lCampos.Where(c => c.bAgrupa == false).ToList(); for (int i = 0; i < lCampos.Count; i++) { CamposSelect camp = lCampos[i]; if (camp.sCampo != "''") { sGroup.Append((camp.bAgrupa == false ? camp.sCampo + ((i + 1) < lCampos.Count() ? ", " : "") + Environment.NewLine : "")); } } } string sQueryItens = sCampos.ToString() + sInnerJoin + sWhere + (Acesso.bAGRUPA_ITENS_NFSE ? sGroup.ToString() : ""); return(HlpDbFuncoes.qrySeekRet(sQueryItens.ToString())); //StringBuilder sQuery = new StringBuilder(); //sQuery.Append("Select "); //sQuery.Append("distinct movitem.ds_prod, coalesce(movitem.ds_obs,'')ds_obs ,movitem.vl_totbruto,coalesce(produto.cd_trib_municipio,'')cd_trib_municipio, " + // " coalesce(empresa.cd_lista_servico,'')cd_lista_servico_Emp, " + // " coalesce(produto.cd_lista_servico,'')cd_lista_servico_Prod from movitem "); //sQuery.Append("left join produto on movitem.cd_prod = produto.cd_prod "); //sQuery.Append("left join empresa on movitem.cd_empresa = empresa.cd_empresa "); //sQuery.Append("where movitem.cd_nfseq = '" + sNota + "' and "); //sQuery.Append("movitem.cd_empresa = '" + Acesso.CD_EMPRESA + "' and "); //sQuery.Append("produto.cd_empresa = '" + Acesso.CD_EMPRESA + "'"); //return HlpDbFuncoes.qrySeekRet(sQuery.ToString()); } catch (Exception ex) { throw ex; } }
public Mensaje consultaPorRangosFiltros(string tabla, ValoresRango valoresRango, List <CamposWhere> camposWhere, CamposSelect campoSelect, CamposOrden camposOrden, DBContextAdapter dbContext, DBContextAdapter dbContextMaestra) { int tipoConexion = eligeConexionBDPorTabla(tabla); DBContextAdapter conexionUsada = null; if (tipoConexion == 1) { conexionUsada = dbContext; } else if (tipoConexion == 2) { conexionUsada = dbContextMaestra; } List <CamposSelect> camposSelect; if (campoSelect == null) { camposSelect = new List <CamposSelect>() { new CamposSelect(tabla, TipoFuncion.NINGUNO) }; } else { camposSelect = new List <CamposSelect>() { campoSelect }; } OperadorSelect select = new OperadorSelect(camposSelect); List <CamposOrden> listCamposOrden = new List <CamposOrden>(); if (camposOrden != null) { listCamposOrden.Add(camposOrden); } select.todosDatos = true; mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionUsada, TipoResultado.Lista, TipoOperacion.SELECT, tabla, select, null, camposWhere, null, listCamposOrden, valoresRango); return(mensajeResultado); }
private Mensaje obtenerQueryPerzonalizado(string identificador, List <CamposWhere> listCamposWhere, bool uniqueResult, DBContextAdapter dbContext, DBContextAdapter dbContextMaestra) { List <object> camposWhere = new List <object>(); mensajeResultado.error = ""; mensajeResultado.noError = 0; CamposSelect campoSelect; OperadorSelect operadorSelect; List <CamposFrom> listCamposFrom; CamposOrden campoOrden; //Code 12630 DBContextAdapter conexionUsada; if (dbContext != null) { conexionUsada = dbContext; } else { conexionUsada = dbContextMaestra; } TipoResultado tipoResultado = TipoResultado.Lista; if (uniqueResult) { tipoResultado = TipoResultado.Unico; } if (identificador.Equals("QueryEmpleadoFiniquito")) { campoSelect = new CamposSelect("FiniqLiquidPlazas.plazasPorEmpleado.empleados", TipoFuncion.NINGUNO); operadorSelect = new OperadorSelect(new List <CamposSelect>() { campoSelect }); listCamposFrom = new List <CamposFrom>() { new CamposFrom("FiniqLiquidPlazas", TipoJoin.LEFT_JOIN), new CamposFrom("FiniqLiquidPlazas.finiquitosLiquida", TipoJoin.RIGHT_JOIN), new CamposFrom("FiniqLiquidPlazas.plazasPorEmpleado", TipoJoin.RIGHT_JOIN), new CamposFrom("FiniqLiquidPlazas.plazasPorEmpleado.empleados", TipoJoin.RIGHT_JOIN), new CamposFrom("FiniqLiquidPlazas.plazasPorEmpleado.razonesSociales", TipoJoin.RIGHT_JOIN) }; listCamposWhere = listCamposWhere == null ? new List <CamposWhere>() : listCamposWhere; if (listCamposWhere.Count > 0) { listCamposWhere[listCamposWhere.Count - 2].campo = "FiniqLiquidPlazas.plazasPorEmpleado.razonesSociales.clave"; listCamposWhere[listCamposWhere.Count - 1].campo = "FiniqLiquidPlazas.finiquitosLiquida.modoBaja"; listCamposWhere[listCamposWhere.Count - 1].operadorComparacion = OperadorComparacion.DIFERENTE; listCamposWhere[listCamposWhere.Count - 1].operadorLogico = OperadorLogico.OR; List <CamposWhere> listSubCamposWhere = new List <CamposWhere>() { new CamposWhere("FiniqLiquidPlazas.id", 0, OperadorComparacion.IS_NULL, OperadorLogico.AND) }; listCamposWhere[listCamposWhere.Count - 1].listCamposAgrupados = listSubCamposWhere; } campoOrden = new CamposOrden("FiniqLiquidPlazas.plazasPorEmpleado.empleados.clave"); mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionUsada, tipoResultado, TipoOperacion.SELECT, "", operadorSelect, listCamposFrom, listCamposWhere, null, new List <CamposOrden>() { campoOrden }, null); return(mensajeResultado); } else if (identificador.Equals("QueryEmpleadoEspecial") | identificador.Equals("QueryEmpleadoEspecialMovimientosNomina")) { if (identificador.ToUpper().Equals("QueryEmpleadoEspecial")) { operadorSelect = new OperadorSelect(new List <CamposSelect>() { new CamposSelect("PlazasPorEmpleadosMov.tipoNomina", TipoFuncion.NINGUNO), new CamposSelect("PlazasPorEmpleadosMov.plazasPorEmpleado.empleados", TipoFuncion.NINGUNO) }); } else { operadorSelect = new OperadorSelect(new List <CamposSelect>() { new CamposSelect("PlazasPorEmpleadosMov", TipoFuncion.NINGUNO), new CamposSelect("PlazasPorEmpleadosMov.plazasPorEmpleado.empleados", TipoFuncion.NINGUNO) }); } CamposWhere campoWherePrincipal = new CamposWhere("PlazasPorEmpleadosMov.id", null, OperadorComparacion.IN, OperadorLogico.AND); SubConsulta subConsulta = new SubConsulta(); CamposSelect campoSelectSub = new CamposSelect("PlazasPorEmpleadosMov.id", TipoFuncion.MAXIMO); OperadorSelect operadorSelectSub = new OperadorSelect(new List <CamposSelect>() { campoSelectSub }); if (listCamposWhere.Count > 0) { int cont = 0, index = 0; if (listCamposWhere.Count > 4) { index = 1; } bool aplicarRestriccionEmpleadoDadoDeBaja = false; foreach (var campoWhere in listCamposWhere) { if (String.IsNullOrEmpty(campoWhere.campo)) { if (cont == 0 + index) { campoWhere.campo = "PlazasPorEmpleadosMov.plazasPorEmpleado.razonesSociales.clave"; } else if (cont == (1 + index) & campoWhere.valor != null) { if (campoWhere.valor.GetType().Equals(typeof(TipoCorrida))) { TipoCorrida corrida = (TipoCorrida)campoWhere.valor; if (corrida.clave.ToUpper().Equals("FIN") || corrida.clave.ToUpper().Equals("LIQ")) { aplicarRestriccionEmpleadoDadoDeBaja = false; } //consulta and parametros i++ = parametro i ++ sabe em que se use mal codigo } } else if (cont == 2 + index) { if (aplicarRestriccionEmpleadoDadoDeBaja) { campoWhere.campo = "PlazasPorEmpleadosMov.fechaInicial"; campoWhere.operadorComparacion = OperadorComparacion.MENOR_IGUAL; campoWhere.operadorLogico = OperadorLogico.OR; CamposWhere campoWhereSub = new CamposWhere("PlazasPorEmpleadosMov.fechaInicial", campoWhere.valor, OperadorComparacion.BETWEEN, OperadorLogico.AND); campoWhere.listCamposAgrupados = new List <CamposWhere>() { campoWhereSub }; } else { campoWhere.campo = "PlazasPorEmpleadosMov.fechaInicial"; campoWhere.operadorComparacion = OperadorComparacion.IGUAL; campoWhere.operadorLogico = OperadorLogico.AND; } } else if (cont == 3 + index) { if (aplicarRestriccionEmpleadoDadoDeBaja) { campoWhere.campo = "PlazasPorEmpleadosMov.plazasPorEmpleado.fechaFinal"; campoWhere.operadorComparacion = OperadorComparacion.MAYOR_IGUAL; campoWhere.operadorLogico = OperadorLogico.OR; CamposWhere campoWhereSub = new CamposWhere("PlazasPorEmpleadosMov.plazasPorEmpleado.fechaFinal", campoWhere.valor, OperadorComparacion.BETWEEN, OperadorLogico.AND); campoWhere.listCamposAgrupados = new List <CamposWhere>() { campoWhereSub }; } else { campoWhere.campo = "PlazasPorEmpleadosMov.plazasPorEmpleado.fechaFinal"; campoWhere.operadorComparacion = OperadorComparacion.IGUAL; campoWhere.operadorLogico = OperadorLogico.AND; } } cont++; } else { if (!campoWhere.campo.Contains(typeof(PlazasPorEmpleadosMov).Name)) { campoWhere.campo = String.Concat(typeof(PlazasPorEmpleadosMov).Name, ".", campoWhere.campo); } } } } CamposGrupo campoGrupo = new CamposGrupo("PlazasPorEmpleadosMov.plazasPorEmpleado.empleados.clave"); campoOrden = new CamposOrden("PlazasPorEmpleadosMov.plazasPorEmpleado.empleados.clave"); mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionUsada, tipoResultado, TipoOperacion.SELECT, "", operadorSelect, null, listCamposWhere, new List <CamposGrupo>() { campoGrupo }, new List <CamposOrden>() { campoOrden, new CamposOrden("PlazasPorEmpleadosMov.fechaInicial") }, null); } else if (identificador.Equals("queryPlazasEmpleadoEspecial")) { bool manejoPagoPorHora = false; ManejoHorasPor manejoPorHoras = ManejoHorasPor.HSM; ManejoSalarioDiario manejoSalarioDiario = ManejoSalarioDiario.QUINCENAL; try { setSession(dbContext.context); getSession().Database.BeginTransaction(); #region Maneja pago por horas operadorSelect = new OperadorSelect(new List <CamposSelect>() { new CamposSelect("Cruce.valor", TipoFuncion.NINGUNO) }); var query = (from cr in getSession().Set <Cruce>() join pr in getSession().Set <Parametros>() on cr.parametros_ID equals pr.id join ea in getSession().Set <ElementosAplicacion>() on cr.elementosAplicacion_ID equals ea.id where pr.clave == (decimal)ClavesParametrosModulos.claveParametroPagosPorHora && ea.clave.Equals(ClavesParametrosModulos.claveElementoAplicacionRazonSocial) && cr.claveElemento.Equals(listCamposWhere[listCamposWhere.Count - 1].valor) select cr.valor ); string valor = query.FirstOrDefault(); //List<CamposWhere> listSubCamposWhere = new List<CamposWhere>() { new CamposWhere("Cruce.parametros.clave", claveParametroPagosPorHora, OperadorComparacion.IGUAL, OperadorLogico.AND), // new CamposWhere("Cruce.elementosAplicacion.clave", claveElementoAplicacionRazonSocial, OperadorComparacion.IGUAL, OperadorLogico.AND), // new CamposWhere("Cruce.claveElemento", listCamposWhere[listCamposWhere.Count - 1].valor, OperadorComparacion.IGUAL, OperadorLogico.AND)}; //mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionPendiente, TipoResultado.Unico, TipoOperacion.SELECT, // "", operadorSelect, null, listSubCamposWhere, null, null, null); //if (mensajeResultado.noError != 0) { // return mensajeResultado; //} //string valor = (string) mensajeResultado.resultado; if (String.IsNullOrEmpty(valor)) { // operadorSelect = new OperadorSelect(new List<CamposSelect>() { new CamposSelect("Parametros.valor", TipoFuncion.NINGUNO) }); // listSubCamposWhere = new List<CamposWhere>() { new CamposWhere("Parametros.clave", claveParametroPagosPorHora, OperadorComparacion.IGUAL, OperadorLogico.AND), // new CamposWhere("Parametros.modulo.clave", claveModuloGlobal, OperadorComparacion.IGUAL, OperadorLogico.AND)}; // mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionPendiente, TipoResultado.Unico, TipoOperacion.SELECT, //"", operadorSelect, null, listSubCamposWhere, null, null, null); // if (mensajeResultado.noError != 0) // { // return mensajeResultado; // } // valor = (string)mensajeResultado.resultado; query = (from pr in getSession().Set <Parametros>() join m in getSession().Set <Modulo>() on pr.modulo_ID equals m.id where pr.clave == (decimal)ClavesParametrosModulos.claveParametroPagosPorHora && m.clave.Equals(ClavesParametrosModulos.claveModuloGlobal) select pr.valor ); valor = query.FirstOrDefault(); } if (valor.Equals(ClavesParametrosModulos.opcionParametroPagarPorHoras)) { manejoPagoPorHora = true; } else { manejoPagoPorHora = false; } #endregion #region Manejo horas por ////operadorSelect = new OperadorSelect(new List<CamposSelect>() { new CamposSelect("Cruce.valor", TipoFuncion.NINGUNO) }); query = (from cr in getSession().Set <Cruce>() join pr in getSession().Set <Parametros>() on cr.parametros_ID equals pr.id join ea in getSession().Set <ElementosAplicacion>() on cr.elementosAplicacion_ID equals ea.id where pr.clave == (decimal)ClavesParametrosModulos.claveParametroManejarHorasPor && ea.clave.Equals(ClavesParametrosModulos.claveElementoAplicacionRazonSocial) && cr.claveElemento.Equals(listCamposWhere[listCamposWhere.Count - 1].valor) select cr.valor ); valor = query.FirstOrDefault(); ////listSubCamposWhere = new List<CamposWhere>() { new CamposWhere("Cruce.parametros.clave", claveParametroManejarHorasPor, OperadorComparacion.IGUAL, OperadorLogico.AND), //// new CamposWhere("Cruce.elementosAplicacion.clave", claveElementoAplicacionRazonSocial, OperadorComparacion.IGUAL, OperadorLogico.AND), //// new CamposWhere("Cruce.claveElemento", listCamposWhere[listCamposWhere.Count - 1].valor, OperadorComparacion.IGUAL, OperadorLogico.AND)}; ////mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionPendiente, TipoResultado.Unico, TipoOperacion.SELECT, //// "", operadorSelect, null, listSubCamposWhere, null, null, null); ////if (mensajeResultado.noError != 0) ////{ //// return mensajeResultado; ////} ////valor = (string)mensajeResultado.resultado; if (String.IsNullOrEmpty(valor)) { // operadorSelect = new OperadorSelect(new List<CamposSelect>() { new CamposSelect("Parametros.valor", TipoFuncion.NINGUNO) }); // listSubCamposWhere = new List<CamposWhere>() { new CamposWhere("Parametros.clave", claveParametroManejarHorasPor, OperadorComparacion.IGUAL, OperadorLogico.AND), // new CamposWhere("Parametros.modulo.clave", claveModuloGlobal, OperadorComparacion.IGUAL, OperadorLogico.AND)}; // mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionPendiente, TipoResultado.Unico, TipoOperacion.SELECT, //"", operadorSelect, null, listSubCamposWhere, null, null, null); // if (mensajeResultado.noError != 0) // { // return mensajeResultado; // } // valor = (string)mensajeResultado.resultado; query = (from pr in getSession().Set <Parametros>() join m in getSession().Set <Modulo>() on pr.modulo_ID equals m.id where pr.clave == (decimal)ClavesParametrosModulos.claveParametroManejarHorasPor && m.clave.Equals(ClavesParametrosModulos.claveModuloGlobal) select pr.valor ); valor = query.FirstOrDefault(); } string opcionParametroHorasNaturales = "1"; if (valor.Equals(opcionParametroHorasNaturales)) { manejoPorHoras = ManejoHorasPor.HORASNATURALES; } else { manejoPorHoras = ManejoHorasPor.HSM; } #endregion #region Manejo salario diario ////operadorSelect = new OperadorSelect(new List<CamposSelect>() { new CamposSelect("Cruce.valor", TipoFuncion.NINGUNO) }); query = (from cr in getSession().Set <Cruce>() join pr in getSession().Set <Parametros>() on cr.parametros_ID equals pr.id join ea in getSession().Set <ElementosAplicacion>() on cr.elementosAplicacion_ID equals ea.id where pr.clave == (decimal)ClavesParametrosModulos.claveParametroManejarSalarioDiarioPor && ea.clave.Equals(ClavesParametrosModulos.claveElementoAplicacionRazonSocial) && cr.claveElemento.Equals(listCamposWhere[listCamposWhere.Count - 1].valor) select cr.valor ); valor = query.FirstOrDefault(); ////listSubCamposWhere = new List<CamposWhere>() { new CamposWhere("Cruce.parametros.clave", claveParametroManejarSalarioDiarioPor, OperadorComparacion.IGUAL, OperadorLogico.AND), //// new CamposWhere("Cruce.elementosAplicacion.clave", claveElementoAplicacionRazonSocial, OperadorComparacion.IGUAL, OperadorLogico.AND), //// new CamposWhere("Cruce.claveElemento", listCamposWhere[listCamposWhere.Count - 1].valor, OperadorComparacion.IGUAL, OperadorLogico.AND)}; ////mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionPendiente, TipoResultado.Unico, TipoOperacion.SELECT, //// "", operadorSelect, null, listSubCamposWhere, null, null, null); ////if (mensajeResultado.noError != 0) ////{ //// return mensajeResultado; ////} ////valor = (string)mensajeResultado.resultado; if (String.IsNullOrEmpty(valor)) { // operadorSelect = new OperadorSelect(new List<CamposSelect>() { new CamposSelect("Parametros.valor", TipoFuncion.NINGUNO) }); // listSubCamposWhere = new List<CamposWhere>() { new CamposWhere("Parametros.clave", claveParametroManejarSalarioDiarioPor, OperadorComparacion.IGUAL, OperadorLogico.AND), // new CamposWhere("Parametros.modulo.clave", claveModuloGlobal, OperadorComparacion.IGUAL, OperadorLogico.AND)}; // mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionPendiente, TipoResultado.Unico, TipoOperacion.SELECT, //"", operadorSelect, null, listSubCamposWhere, null, null, null); // if (mensajeResultado.noError != 0) // { // return mensajeResultado; // } // valor = (string)mensajeResultado.resultado; query = (from pr in getSession().Set <Parametros>() join m in getSession().Set <Modulo>() on pr.modulo_ID equals m.id where pr.clave == (decimal)ClavesParametrosModulos.claveParametroManejarSalarioDiarioPor && m.clave.Equals(ClavesParametrosModulos.claveModuloGlobal) select pr.valor ); valor = query.FirstOrDefault(); } if (valor.Equals(ClavesParametrosModulos.opcionParametroSalarioDiario)) { manejoSalarioDiario = ManejoSalarioDiario.DIARIO; } else if (valor.Equals(ClavesParametrosModulos.opcionParametroSalarioSemanal)) { manejoSalarioDiario = ManejoSalarioDiario.SEMANAL; } else if (valor.Equals(ClavesParametrosModulos.opcionParametroSalarioQuincenal)) { manejoSalarioDiario = ManejoSalarioDiario.QUINCENAL; } else { manejoSalarioDiario = ManejoSalarioDiario.MENSUAL; } #endregion getSession().Database.CurrentTransaction.Commit(); setSession(dbContext.context); getSession().Database.BeginTransaction(); var queryPrincipal = (from p in getSession().Set <PlazasPorEmpleadosMov>() join pe in getSession().Set <PlazasPorEmpleado>() on p.plazasPorEmpleado_ID equals pe.id into pe_join from pe in pe_join.DefaultIfEmpty() join emp2 in getSession().Set <Empleados>() on pe.empleados_ID equals emp2.id into emp2_join from emp2 in emp2_join.DefaultIfEmpty() where (from m in getSession().Set <PlazasPorEmpleadosMov>() join pe2 in getSession().Set <PlazasPorEmpleado>() on m.plazasPorEmpleado_ID equals pe2.id into pe2_join from pe2 in pe2_join.DefaultIfEmpty() join rs in getSession().Set <RazonesSociales>() on pe2.razonesSociales_ID equals rs.id into rs_join from rs in rs_join.DefaultIfEmpty() join emp3 in getSession().Set <Empleados>() on pe2.empleados_ID equals emp3.id into emp3_join from emp3 in emp3_join.DefaultIfEmpty() where rs.clave.Equals(listCamposWhere[listCamposWhere.Count - 1].valor) && (DateTime.Now >= m.fechaInicial && DateTime.Now <= pe2.fechaFinal) group new { pe2, m } by new { pe2.referencia } into g select new { Column1 = g.Max(pp => pp.m.id) }).Contains(new { Column1 = p.id }) select new { p, pe, emp2 } ); for (int i = 0; i < listCamposWhere.Count - 2; i++) { if (!String.IsNullOrEmpty(listCamposWhere[i].campo)) { if (listCamposWhere[i].campo.Equals("ClaveEmpleado")) { queryPrincipal = (from subquery in queryPrincipal where subquery.emp2.clave.Equals(listCamposWhere[i].valor) select subquery); } if (listCamposWhere[i].campo.Equals("ClavePlazaEmpleado")) { queryPrincipal = (from subquery in queryPrincipal where subquery.pe.referencia.Equals(listCamposWhere[i].valor) select subquery); } if (listCamposWhere[i].campo.Equals("FechaInicial")) { queryPrincipal = (from subquery in queryPrincipal where subquery.p.fechaInicial == (DateTime)listCamposWhere[i].valor select subquery); } if (listCamposWhere[i].campo.Equals("FechaFinal")) { queryPrincipal = (from subquery in queryPrincipal where subquery.pe.fechaFinal == (DateTime)listCamposWhere[i].valor select subquery); } if (listCamposWhere[i].campo.Equals("Horas")) { queryPrincipal = (from subquery in queryPrincipal where subquery.p.horas == (int)listCamposWhere[i].valor select subquery); } if (listCamposWhere[i].campo.Equals("Importe")) { queryPrincipal = (from subquery in queryPrincipal where subquery.p.importe == (double)listCamposWhere[i].valor select subquery); } if (listCamposWhere[i].campo.Equals("DescripcionCentroCosto")) { queryPrincipal = (from subquery in queryPrincipal join cc in getSession().Set <CentroDeCosto>() on subquery.p.centroDeCosto_ID equals cc.id into cc_join from cc in cc_join.DefaultIfEmpty() where cc.descripcion.Equals(listCamposWhere[i].valor) select subquery); } if (listCamposWhere[i].campo.Equals("DescripcionPuesto")) { queryPrincipal = (from subquery in queryPrincipal join pt in getSession().Set <Puestos>() on subquery.p.puestos_ID equals pt.id into pt_join from pt in pt_join.DefaultIfEmpty() where pt.descripcion.Equals(listCamposWhere[i].valor) select subquery); } if (listCamposWhere[i].campo.Equals("ClavePlaza")) { queryPrincipal = (from subquery in queryPrincipal join pz in getSession().Set <Plazas>() on subquery.p.plazas_ID equals pz.id into pz_join from pz in pz_join.DefaultIfEmpty() where pz.clave.Equals(listCamposWhere[i].valor) select subquery); } } } var queryFinal = (from subquery in queryPrincipal orderby subquery.emp2.clave, subquery.p.fechaInicial select new DatosPlazasEmpleado() { plazasPorEmpleadosMov = subquery.p, fechaIngreso = ((from ingresos in getSession().Set <IngresosBajas>() where ingresos.id == (from ol in getSession().Set <IngresosBajas>() where ol.fechaIngreso <= (from o2 in getSession().Set <IngresosBajas>() join emp in getSession().Set <Empleados>() on ol.empleados_ID equals emp.id into emp_join from emp in emp_join.DefaultIfEmpty() where o2.fechaBaja >= DateTime.Now && emp.clave == subquery.emp2.clave select new { o2.fechaIngreso }).Max(pp => pp.fechaIngreso) select new { ol.id }).Max(pp => pp.id) select new { ingresos.fechaIngreso }).First().fechaIngreso), manejaPagosPorHora = manejoPagoPorHora ? 0 : 1, manejoHorasPor = (int)manejoPorHoras, manejoSalarioDiario = (int)manejoSalarioDiario }); if (uniqueResult) { mensajeResultado.noError = 0; mensajeResultado.resultado = queryFinal.SingleOrDefault(); } else { mensajeResultado.noError = 0; mensajeResultado.resultado = queryFinal.ToList(); } getSession().Database.CurrentTransaction.Commit(); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("buscaCFDIEmpleadosFiltrado()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; getSession().Database.CurrentTransaction.Rollback(); } } return(mensajeResultado); }