/// <summary> /// Registra un Item del Documento de Compra /// </summary> public bool fu_reg_cmp(c_cnx000 _cnx000) { try { StringBuilder vv_str_sql = new StringBuilder(); vv_str_sql.AppendLine(" Insert into cmp001a( "); vv_str_sql.AppendLine("va_cod_cmp,va_nro_itm,va_cod_pro,va_nom_pro,va_cod_uni,va_can_pro, "); vv_str_sql.AppendLine("va_pre_uni,va_imp_tot,va_cod_alm,va_tip_cmp,va_lot_cod,va_fec_ven) "); vv_str_sql.AppendFormat(" values({0}, ", va_cod_cmp); vv_str_sql.AppendFormat(" {0}, ", va_nro_itm); vv_str_sql.AppendFormat(" '{0}', ", va_cod_pro); vv_str_sql.AppendFormat(" '{0}', ", va_nom_pro); vv_str_sql.AppendFormat(" '{0}', ", va_cod_uni); vv_str_sql.AppendFormat(" {0}, ", va_can_pro); vv_str_sql.AppendFormat(" {0}, ", va_pre_uni); vv_str_sql.AppendFormat(" {0}, ", va_imp_tot); vv_str_sql.AppendFormat(" {0}, ", va_cod_alm); vv_str_sql.AppendFormat(" '{0}', ", va_tip_cmp); vv_str_sql.AppendFormat(" '{0}', ", va_lot_cod); vv_str_sql.AppendFormat(" '{0}') ", va_fec_ven.ToShortDateString()); if (!_cnx000.fu_exe_sql_no(vv_str_sql.ToString())) { Exception ex = new Exception("Error:cmp001a- No se pudo Registrar el item: " + va_cod_pro); throw ex; } return(true); } catch (Exception ex) { throw ex; } }
/// <summary> /// Registra los datos de la Cabecera del Documento de Compra /// </summary> private bool fu_reg_cab(c_cnx000 _cnx000) { try { StringBuilder vv_str_sql = new StringBuilder(); vv_str_sql.AppendLine(" Insert into cmp001( "); vv_str_sql.AppendLine("va_cod_doc,va_nro_tal,va_nro_doc,va_cod_prv,va_fec_cmp,va_cod_ges,va_emp_cod, "); vv_str_sql.AppendLine("va_cod_suc,va_tip_cmp,va_cod_alm,va_fec_emi,va_fom_pag,va_pla_pag,va_mon_eda, "); vv_str_sql.AppendLine("va_tip_cam,va_tot_bru,va_des_cmp,va_tot_net,va_obs_cmp,va_est_ado,va_nro_fac, "); vv_str_sql.AppendLine("va_nit_fac,va_raz_fac,va_nro_aut,va_cod_ctr,va_tot_exe,va_tot_suj,va_tot_imp, "); vv_str_sql.AppendLine("va_rim_itr,va_riu_bie,va_riu_ser,va_rie_alq) "); vv_str_sql.AppendFormat(" values('{0}', ", va_cod_doc); vv_str_sql.AppendFormat(" {0}, ", va_nro_tal); vv_str_sql.AppendFormat(" {0}, ", va_nro_doc); vv_str_sql.AppendFormat(" '{0}', ", va_cod_prv); vv_str_sql.AppendFormat(" '{0}', ", va_fec_cmp.ToShortDateString()); vv_str_sql.AppendFormat(" {0}, ", va_cod_ges); vv_str_sql.AppendFormat(" {0}, ", va_emp_cod); vv_str_sql.AppendFormat(" {0}, ", va_cod_suc); vv_str_sql.AppendFormat(" '{0}', ", va_tip_cmp); vv_str_sql.AppendFormat(" {0}, ", va_cod_alm); vv_str_sql.AppendFormat(" '{0}', ", va_fec_emi.ToShortDateString()); vv_str_sql.AppendFormat(" '{0}', ", va_fom_pag); vv_str_sql.AppendFormat(" {0}, ", va_pla_pag); vv_str_sql.AppendFormat(" '{0}', ", va_mon_eda); vv_str_sql.AppendFormat(" {0}, ", va_tip_cam); vv_str_sql.AppendFormat(" {0}, ", va_tot_bru); vv_str_sql.AppendFormat(" {0}, ", va_des_cmp); vv_str_sql.AppendFormat(" {0}, ", va_tot_net); vv_str_sql.AppendFormat(" '{0}', ", va_obs_cmp); vv_str_sql.AppendFormat(" '{0}', ", va_est_ado); vv_str_sql.AppendFormat(" {0}, ", va_nro_fac); vv_str_sql.AppendFormat(" {0}, ", va_nit_fac); vv_str_sql.AppendFormat(" '{0}', ", va_raz_fac); vv_str_sql.AppendFormat(" '{0}', ", va_nro_aut); vv_str_sql.AppendFormat(" '{0}', ", va_cod_ctr); vv_str_sql.AppendFormat(" {0}, ", va_tot_exe); vv_str_sql.AppendFormat(" {0}, ", va_tot_suj); vv_str_sql.AppendFormat(" {0}, ", va_tot_imp); vv_str_sql.AppendFormat(" {0}, ", va_rim_itr); vv_str_sql.AppendFormat(" {0}, ", va_riu_bie); vv_str_sql.AppendFormat(" {0}, ", va_riu_ser); vv_str_sql.AppendFormat(" {0}) ", va_rie_alq); va_cod_cmp = _cnx000.fu_exe_sql_id(vv_str_sql.ToString()); if (va_cod_cmp <= 0) { Exception ex = new Exception("Error:cmp001- No se pudo Registrar el Movimiento del Producto: "); throw ex; } return(true); } catch (Exception ex) { throw ex; } }
/// <summary> /// Registra Documento de Compra /// </summary> public Boolean fu_reg_cmp() { c_cnx000 o_cnx000 = new c_cnx000(); using (TransactionScope oTran = new TransactionScope()) { try { //Grabamos Cabecera fu_reg_cab(o_cnx000); foreach (c_cmp001a item in lisItem) { item.va_cod_cmp = va_cod_cmp; if (!item.fu_reg_cmp(o_cnx000)) { oTran.Dispose(); throw new Exception("Error:cmp001- No se pudo Registrar el item: " + item.va_cod_pro); } c_inv100 o_inv100 = new DATOS.c_inv100(); o_inv100.va_cod_pro = item.va_cod_pro; o_inv100.va_alm_mov = item.va_cod_alm; o_inv100.va_can_pro = item.va_can_pro; o_inv100.va_cod_suc = va_cod_suc; o_inv100.va_emp_cod = va_emp_cod; o_inv100.va_est_tra = va_est_ado; o_inv100.va_fec_pro = va_fec_cmp; o_inv100.va_fec_tra = va_fec_emi; o_inv100.va_fec_ven = item.va_fec_ven; o_inv100.va_gst_cod = va_cod_ges; o_inv100.va_imp_tot = va_tot_net; o_inv100.va_lot_cod = item.va_lot_cod; o_inv100.va_mod_org = "CMP"; o_inv100.va_mon_tra = va_mon_eda; o_inv100.va_nro_tal = va_nro_tal; o_inv100.va_ref_doc = va_nro_fac; o_inv100.va_tas_cam = va_tip_cam; o_inv100.va_tip_tra = va_tip_cmp; o_inv100.va_tra_glo = "Compra de Productos"; o_inv100.va_tra_org = va_nro_doc; switch (va_tip_cmp) { case "IVA": //IVA o_inv100.va_tra_fac = "0"; o_inv100.va_cos_uni = item.va_pre_uni - Math.Round(item.va_pre_uni * 13 / 100, 4); break; case "EXE": //EXENTA o_inv100.va_cos_uni = item.va_pre_uni; break; case "RETBIEN": //RETENCION BIEN o_inv100.va_tra_ret = "1"; o_inv100.va_cos_uni = item.va_pre_uni + Math.Round(item.va_pre_uni / (92 / 100), 4); break; case "RETSER": //RETENCION SERVICIOS o_inv100.va_tra_ret = "1"; o_inv100.va_cos_uni = item.va_pre_uni + Math.Round(item.va_pre_uni / (84.5m / 100), 4); break; case "IVAXREC": //IVA POR RECUPERAR o_inv100.va_cos_uni = Math.Round(item.va_pre_uni * 13 / 100, 4); break; default: o_inv100.va_tra_fac = "1"; o_inv100.va_tra_ret = "0"; break; } //Registramos el movimiento en Inventario y Actualizamos Saldos if (!o_inv100.fu_reg_mov(o_cnx000, c_inv100.TipoTransaccions.Ingreso)) { oTran.Dispose(); throw new Exception("Error:cmp001- No se pudo Registrar el Movimiento de Inventario del Item: " + item.va_cod_pro); } } oTran.Complete(); return(true); } catch (Exception ex) { oTran.Dispose(); throw ex; } } }